pgindent run for 8.3.
authorBruce Momjian <[email protected]>
Thu, 15 Nov 2007 21:14:46 +0000 (21:14 +0000)
committerBruce Momjian <[email protected]>
Thu, 15 Nov 2007 21:14:46 +0000 (21:14 +0000)
486 files changed:
contrib/cube/cube.c
contrib/dblink/dblink.c
contrib/dict_int/dict_int.c
contrib/dict_xsyn/dict_xsyn.c
contrib/hstore/hstore.h
contrib/hstore/hstore_gin.c
contrib/hstore/hstore_op.c
contrib/intarray/_int_gin.c
contrib/intarray/_int_gist.c
contrib/isn/isn.c
contrib/pageinspect/btreefuncs.c
contrib/pageinspect/heapfuncs.c
contrib/pageinspect/rawpage.c
contrib/pg_buffercache/pg_buffercache_pages.c
contrib/pg_standby/pg_standby.c
contrib/pg_trgm/trgm_gin.c
contrib/pgbench/pgbench.c
contrib/pgcrypto/blf.c
contrib/pgcrypto/blf.h
contrib/pgcrypto/crypt-blowfish.c
contrib/pgcrypto/imath.h
contrib/pgcrypto/internal.c
contrib/pgcrypto/openssl.c
contrib/pgcrypto/pgp-compress.c
contrib/pgcrypto/px.c
contrib/pgcrypto/sha2.c
contrib/pgstattuple/pgstatindex.c
contrib/tablefunc/tablefunc.c
contrib/test_parser/test_parser.c
contrib/tsearch2/tsearch2.c
contrib/uuid-ossp/uuid-ossp.c
src/backend/access/common/heaptuple.c
src/backend/access/common/indextuple.c
src/backend/access/common/reloptions.c
src/backend/access/gin/ginarrayproc.c
src/backend/access/gin/ginbtree.c
src/backend/access/gin/gindatapage.c
src/backend/access/gin/ginentrypage.c
src/backend/access/gin/ginget.c
src/backend/access/gin/ginscan.c
src/backend/access/gin/ginutil.c
src/backend/access/gin/ginvacuum.c
src/backend/access/gin/ginxlog.c
src/backend/access/gist/gist.c
src/backend/access/gist/gistget.c
src/backend/access/gist/gistproc.c
src/backend/access/gist/gistvacuum.c
src/backend/access/hash/hash.c
src/backend/access/hash/hashfunc.c
src/backend/access/hash/hashovfl.c
src/backend/access/hash/hashpage.c
src/backend/access/heap/heapam.c
src/backend/access/heap/pruneheap.c
src/backend/access/heap/rewriteheap.c
src/backend/access/heap/syncscan.c
src/backend/access/heap/tuptoaster.c
src/backend/access/index/indexam.c
src/backend/access/nbtree/nbtinsert.c
src/backend/access/nbtree/nbtpage.c
src/backend/access/nbtree/nbtsearch.c
src/backend/access/nbtree/nbtutils.c
src/backend/access/nbtree/nbtxlog.c
src/backend/access/transam/clog.c
src/backend/access/transam/multixact.c
src/backend/access/transam/transam.c
src/backend/access/transam/twophase.c
src/backend/access/transam/twophase_rmgr.c
src/backend/access/transam/varsup.c
src/backend/access/transam/xact.c
src/backend/access/transam/xlog.c
src/backend/bootstrap/bootstrap.c
src/backend/catalog/aclchk.c
src/backend/catalog/dependency.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_constraint.c
src/backend/catalog/pg_conversion.c
src/backend/catalog/pg_enum.c
src/backend/catalog/pg_operator.c
src/backend/catalog/pg_proc.c
src/backend/catalog/pg_shdepend.c
src/backend/catalog/pg_type.c
src/backend/commands/analyze.c
src/backend/commands/cluster.c
src/backend/commands/comment.c
src/backend/commands/copy.c
src/backend/commands/dbcommands.c
src/backend/commands/discard.c
src/backend/commands/explain.c
src/backend/commands/functioncmds.c
src/backend/commands/indexcmds.c
src/backend/commands/opclasscmds.c
src/backend/commands/operatorcmds.c
src/backend/commands/portalcmds.c
src/backend/commands/prepare.c
src/backend/commands/schemacmds.c
src/backend/commands/sequence.c
src/backend/commands/tablecmds.c
src/backend/commands/tablespace.c
src/backend/commands/tsearchcmds.c
src/backend/commands/typecmds.c
src/backend/commands/vacuum.c
src/backend/commands/vacuumlazy.c
src/backend/commands/variable.c
src/backend/commands/view.c
src/backend/executor/execAmi.c
src/backend/executor/execCurrent.c
src/backend/executor/execMain.c
src/backend/executor/execQual.c
src/backend/executor/execScan.c
src/backend/executor/execUtils.c
src/backend/executor/functions.c
src/backend/executor/nodeAgg.c
src/backend/executor/nodeBitmapHeapscan.c
src/backend/executor/nodeBitmapIndexscan.c
src/backend/executor/nodeHash.c
src/backend/executor/nodeHashjoin.c
src/backend/executor/nodeIndexscan.c
src/backend/executor/nodeLimit.c
src/backend/executor/nodeMaterial.c
src/backend/executor/nodeMergejoin.c
src/backend/executor/nodeResult.c
src/backend/executor/nodeSubplan.c
src/backend/executor/nodeSubqueryscan.c
src/backend/executor/nodeTidscan.c
src/backend/executor/spi.c
src/backend/lib/stringinfo.c
src/backend/libpq/auth.c
src/backend/libpq/be-secure.c
src/backend/libpq/hba.c
src/backend/libpq/ip.c
src/backend/libpq/pqcomm.c
src/backend/libpq/pqformat.c
src/backend/main/main.c
src/backend/nodes/copyfuncs.c
src/backend/nodes/equalfuncs.c
src/backend/nodes/outfuncs.c
src/backend/nodes/print.c
src/backend/optimizer/geqo/geqo_eval.c
src/backend/optimizer/path/allpaths.c
src/backend/optimizer/path/costsize.c
src/backend/optimizer/path/equivclass.c
src/backend/optimizer/path/indxpath.c
src/backend/optimizer/path/joinpath.c
src/backend/optimizer/path/joinrels.c
src/backend/optimizer/path/pathkeys.c
src/backend/optimizer/plan/createplan.c
src/backend/optimizer/plan/initsplan.c
src/backend/optimizer/plan/planagg.c
src/backend/optimizer/plan/planmain.c
src/backend/optimizer/plan/planner.c
src/backend/optimizer/plan/setrefs.c
src/backend/optimizer/plan/subselect.c
src/backend/optimizer/prep/prepunion.c
src/backend/optimizer/util/clauses.c
src/backend/optimizer/util/joininfo.c
src/backend/optimizer/util/pathnode.c
src/backend/optimizer/util/plancat.c
src/backend/optimizer/util/predtest.c
src/backend/optimizer/util/relnode.c
src/backend/optimizer/util/restrictinfo.c
src/backend/optimizer/util/tlist.c
src/backend/optimizer/util/var.c
src/backend/parser/analyze.c
src/backend/parser/keywords.c
src/backend/parser/parse_clause.c
src/backend/parser/parse_coerce.c
src/backend/parser/parse_expr.c
src/backend/parser/parse_func.c
src/backend/parser/parse_oper.c
src/backend/parser/parse_target.c
src/backend/parser/parse_type.c
src/backend/parser/parse_utilcmd.c
src/backend/parser/parser.c
src/backend/port/dynloader/darwin.c
src/backend/port/sysv_shmem.c
src/backend/port/win32/mingwcompat.c
src/backend/port/win32/socket.c
src/backend/postmaster/autovacuum.c
src/backend/postmaster/bgwriter.c
src/backend/postmaster/pgarch.c
src/backend/postmaster/pgstat.c
src/backend/postmaster/postmaster.c
src/backend/postmaster/syslogger.c
src/backend/postmaster/walwriter.c
src/backend/regex/regc_color.c
src/backend/rewrite/rewriteDefine.c
src/backend/rewrite/rewriteManip.c
src/backend/snowball/dict_snowball.c
src/backend/storage/buffer/bufmgr.c
src/backend/storage/buffer/freelist.c
src/backend/storage/buffer/localbuf.c
src/backend/storage/file/fd.c
src/backend/storage/ipc/ipc.c
src/backend/storage/ipc/ipci.c
src/backend/storage/ipc/procarray.c
src/backend/storage/ipc/sinvaladt.c
src/backend/storage/large_object/inv_api.c
src/backend/storage/lmgr/deadlock.c
src/backend/storage/lmgr/lmgr.c
src/backend/storage/lmgr/lock.c
src/backend/storage/lmgr/lwlock.c
src/backend/storage/lmgr/proc.c
src/backend/storage/page/bufpage.c
src/backend/storage/smgr/md.c
src/backend/storage/smgr/smgr.c
src/backend/tcop/postgres.c
src/backend/tcop/pquery.c
src/backend/tcop/utility.c
src/backend/tsearch/dict.c
src/backend/tsearch/dict_ispell.c
src/backend/tsearch/dict_simple.c
src/backend/tsearch/dict_synonym.c
src/backend/tsearch/dict_thesaurus.c
src/backend/tsearch/spell.c
src/backend/tsearch/to_tsany.c
src/backend/tsearch/ts_locale.c
src/backend/tsearch/ts_parse.c
src/backend/tsearch/ts_utils.c
src/backend/tsearch/wparser.c
src/backend/tsearch/wparser_def.c
src/backend/utils/adt/arrayutils.c
src/backend/utils/adt/bool.c
src/backend/utils/adt/cash.c
src/backend/utils/adt/date.c
src/backend/utils/adt/datetime.c
src/backend/utils/adt/dbsize.c
src/backend/utils/adt/enum.c
src/backend/utils/adt/float.c
src/backend/utils/adt/format_type.c
src/backend/utils/adt/formatting.c
src/backend/utils/adt/geo_ops.c
src/backend/utils/adt/like.c
src/backend/utils/adt/like_match.c
src/backend/utils/adt/lockfuncs.c
src/backend/utils/adt/network.c
src/backend/utils/adt/numeric.c
src/backend/utils/adt/oracle_compat.c
src/backend/utils/adt/pg_lzcompress.c
src/backend/utils/adt/pgstatfuncs.c
src/backend/utils/adt/regexp.c
src/backend/utils/adt/regproc.c
src/backend/utils/adt/ri_triggers.c
src/backend/utils/adt/ruleutils.c
src/backend/utils/adt/selfuncs.c
src/backend/utils/adt/timestamp.c
src/backend/utils/adt/tsginidx.c
src/backend/utils/adt/tsquery.c
src/backend/utils/adt/tsquery_cleanup.c
src/backend/utils/adt/tsquery_gist.c
src/backend/utils/adt/tsquery_rewrite.c
src/backend/utils/adt/tsquery_util.c
src/backend/utils/adt/tsrank.c
src/backend/utils/adt/tsvector.c
src/backend/utils/adt/tsvector_parser.c
src/backend/utils/adt/txid.c
src/backend/utils/adt/uuid.c
src/backend/utils/adt/varbit.c
src/backend/utils/adt/varchar.c
src/backend/utils/adt/varlena.c
src/backend/utils/adt/xml.c
src/backend/utils/cache/catcache.c
src/backend/utils/cache/inval.c
src/backend/utils/cache/lsyscache.c
src/backend/utils/cache/plancache.c
src/backend/utils/cache/relcache.c
src/backend/utils/cache/ts_cache.c
src/backend/utils/cache/typcache.c
src/backend/utils/error/elog.c
src/backend/utils/fmgr/fmgr.c
src/backend/utils/hash/dynahash.c
src/backend/utils/init/flatfiles.c
src/backend/utils/init/globals.c
src/backend/utils/init/postinit.c
src/backend/utils/mb/conversion_procs/euc_jis_2004_and_shift_jis_2004/euc_jis_2004_and_shift_jis_2004.c
src/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.c
src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c
src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.c
src/backend/utils/mb/conversion_procs/utf8_and_euc_jis_2004/utf8_and_euc_jis_2004.c
src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.c
src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.c
src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.c
src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c
src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c
src/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.c
src/backend/utils/mb/conversion_procs/utf8_and_shift_jis_2004/utf8_and_shift_jis_2004.c
src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c
src/backend/utils/mb/encnames.c
src/backend/utils/mb/mbutils.c
src/backend/utils/mb/wchar.c
src/backend/utils/misc/guc.c
src/backend/utils/misc/ps_status.c
src/backend/utils/mmgr/aset.c
src/backend/utils/mmgr/portalmem.c
src/backend/utils/resowner/resowner.c
src/backend/utils/sort/tuplesort.c
src/backend/utils/sort/tuplestore.c
src/backend/utils/time/combocid.c
src/backend/utils/time/tqual.c
src/bin/initdb/initdb.c
src/bin/pg_ctl/pg_ctl.c
src/bin/pg_dump/common.c
src/bin/pg_dump/dumputils.c
src/bin/pg_dump/pg_backup_archiver.c
src/bin/pg_dump/pg_backup_tar.c
src/bin/pg_dump/pg_dump.c
src/bin/pg_dump/pg_dump.h
src/bin/pg_dump/pg_dumpall.c
src/bin/pg_resetxlog/pg_resetxlog.c
src/bin/psql/command.c
src/bin/psql/common.c
src/bin/psql/copy.c
src/bin/psql/describe.c
src/bin/psql/help.c
src/bin/psql/tab-complete.c
src/bin/scripts/common.c
src/bin/scripts/common.h
src/include/access/genam.h
src/include/access/gin.h
src/include/access/hash.h
src/include/access/heapam.h
src/include/access/htup.h
src/include/access/nbtree.h
src/include/access/relscan.h
src/include/access/rewriteheap.h
src/include/access/slru.h
src/include/access/transam.h
src/include/access/tupmacs.h
src/include/access/tuptoaster.h
src/include/access/xact.h
src/include/access/xlog.h
src/include/bootstrap/bootstrap.h
src/include/catalog/dependency.h
src/include/catalog/indexing.h
src/include/catalog/namespace.h
src/include/catalog/pg_am.h
src/include/catalog/pg_amop.h
src/include/catalog/pg_amproc.h
src/include/catalog/pg_autovacuum.h
src/include/catalog/pg_cast.h
src/include/catalog/pg_class.h
src/include/catalog/pg_database.h
src/include/catalog/pg_enum.h
src/include/catalog/pg_opclass.h
src/include/catalog/pg_operator.h
src/include/catalog/pg_proc.h
src/include/catalog/pg_trigger.h
src/include/catalog/pg_ts_config.h
src/include/catalog/pg_ts_config_map.h
src/include/catalog/pg_ts_dict.h
src/include/catalog/pg_ts_parser.h
src/include/catalog/pg_ts_template.h
src/include/catalog/pg_type.h
src/include/commands/defrem.h
src/include/commands/discard.h
src/include/commands/explain.h
src/include/commands/portalcmds.h
src/include/commands/prepare.h
src/include/commands/schemacmds.h
src/include/commands/tablecmds.h
src/include/commands/trigger.h
src/include/commands/typecmds.h
src/include/commands/vacuum.h
src/include/commands/variable.h
src/include/executor/execdesc.h
src/include/executor/executor.h
src/include/executor/spi.h
src/include/executor/spi_priv.h
src/include/fmgr.h
src/include/libpq/libpq-be.h
src/include/libpq/pqcomm.h
src/include/mb/pg_wchar.h
src/include/miscadmin.h
src/include/nodes/execnodes.h
src/include/nodes/params.h
src/include/nodes/parsenodes.h
src/include/nodes/plannodes.h
src/include/nodes/primnodes.h
src/include/nodes/relation.h
src/include/optimizer/joininfo.h
src/include/optimizer/paths.h
src/include/optimizer/plancat.h
src/include/optimizer/planmain.h
src/include/optimizer/planner.h
src/include/optimizer/tlist.h
src/include/parser/parse_coerce.h
src/include/parser/parse_type.h
src/include/parser/parse_utilcmd.h
src/include/pgstat.h
src/include/port.h
src/include/port/linux.h
src/include/port/solaris.h
src/include/port/win32.h
src/include/postgres.h
src/include/postmaster/autovacuum.h
src/include/postmaster/syslogger.h
src/include/rewrite/rewriteDefine.h
src/include/snowball/header.h
src/include/storage/buf_internals.h
src/include/storage/bufmgr.h
src/include/storage/bufpage.h
src/include/storage/itemid.h
src/include/storage/large_object.h
src/include/storage/lock.h
src/include/storage/pmsignal.h
src/include/storage/proc.h
src/include/storage/procarray.h
src/include/storage/sinvaladt.h
src/include/storage/smgr.h
src/include/tcop/tcopprot.h
src/include/tcop/utility.h
src/include/tsearch/dicts/regis.h
src/include/tsearch/dicts/spell.h
src/include/tsearch/ts_cache.h
src/include/tsearch/ts_locale.h
src/include/tsearch/ts_public.h
src/include/tsearch/ts_type.h
src/include/tsearch/ts_utils.h
src/include/utils/builtins.h
src/include/utils/elog.h
src/include/utils/guc.h
src/include/utils/guc_tables.h
src/include/utils/inet.h
src/include/utils/lsyscache.h
src/include/utils/pg_lzcompress.h
src/include/utils/plancache.h
src/include/utils/portal.h
src/include/utils/rel.h
src/include/utils/resowner.h
src/include/utils/timestamp.h
src/include/utils/tqual.h
src/include/utils/typcache.h
src/include/utils/uuid.h
src/include/utils/xml.h
src/interfaces/ecpg/compatlib/informix.c
src/interfaces/ecpg/ecpglib/connect.c
src/interfaces/ecpg/ecpglib/data.c
src/interfaces/ecpg/ecpglib/descriptor.c
src/interfaces/ecpg/ecpglib/error.c
src/interfaces/ecpg/ecpglib/execute.c
src/interfaces/ecpg/ecpglib/extern.h
src/interfaces/ecpg/ecpglib/memory.c
src/interfaces/ecpg/ecpglib/misc.c
src/interfaces/ecpg/ecpglib/prepare.c
src/interfaces/ecpg/ecpglib/typename.c
src/interfaces/ecpg/include/ecpg-pthread-win32.h
src/interfaces/ecpg/pgtypeslib/datetime.c
src/interfaces/ecpg/pgtypeslib/dt.h
src/interfaces/ecpg/pgtypeslib/dt_common.c
src/interfaces/ecpg/preproc/ecpg.c
src/interfaces/ecpg/preproc/ecpg_keywords.c
src/interfaces/ecpg/preproc/extern.h
src/interfaces/ecpg/preproc/keywords.c
src/interfaces/ecpg/preproc/output.c
src/interfaces/ecpg/preproc/parser.c
src/interfaces/ecpg/preproc/type.c
src/interfaces/ecpg/preproc/type.h
src/interfaces/ecpg/test/pg_regress_ecpg.c
src/interfaces/libpq/fe-auth.c
src/interfaces/libpq/fe-auth.h
src/interfaces/libpq/fe-connect.c
src/interfaces/libpq/fe-lobj.c
src/interfaces/libpq/fe-secure.c
src/interfaces/libpq/libpq-int.h
src/pl/plperl/plperl.c
src/pl/plpgsql/src/pl_comp.c
src/pl/plpgsql/src/pl_exec.c
src/pl/plpgsql/src/pl_funcs.c
src/pl/plpgsql/src/plpgsql.h
src/pl/plpython/plpython.c
src/pl/tcl/pltcl.c
src/port/chklocale.c
src/port/dirmod.c
src/port/exec.c
src/port/open.c
src/port/path.c
src/port/strlcat.c
src/test/regress/pg_regress.c
src/test/regress/pg_regress.h
src/test/regress/pg_regress_main.c
src/timezone/localtime.c
src/timezone/pgtz.c
src/timezone/pgtz.h
src/tools/fsync/test_fsync.c

index ec8cb72e3b7d5cf27fb0e5db00caa64965d94296..c57b9919c48db35234a17ff7ec5b779ee519d764 100644 (file)
@@ -1,5 +1,5 @@
 /******************************************************************************
-  $PostgreSQL: pgsql/contrib/cube/cube.c,v 1.33 2007/06/05 21:31:03 tgl Exp $
+  $PostgreSQL: pgsql/contrib/cube/cube.c,v 1.34 2007/11/15 21:14:29 momjian Exp $
 
   This file contains routines that can be bound to a Postgres backend and
   called by the backend in the process of processing queries.  The calling
@@ -306,7 +306,7 @@ cube_subset(PG_FUNCTION_ARGS)
        result->x[i + dim] = c->x[dx[i] + c->dim - 1];
    }
 
-   PG_FREE_IF_COPY(c,0);
+   PG_FREE_IF_COPY(c, 0);
    PG_RETURN_NDBOX(result);
 }
 
@@ -360,7 +360,7 @@ cube_out(PG_FUNCTION_ARGS)
        appendStringInfoChar(&buf, ')');
    }
 
-   PG_FREE_IF_COPY(cube,0);
+   PG_FREE_IF_COPY(cube, 0);
    PG_RETURN_CSTRING(buf.data);
 }
 
@@ -381,20 +381,20 @@ g_cube_consistent(PG_FUNCTION_ARGS)
    GISTENTRY  *entry = (GISTENTRY *) PG_GETARG_POINTER(0);
    NDBOX      *query = PG_GETARG_NDBOX(1);
    StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2);
-   bool        res;
+   bool        res;
 
    /*
     * if entry is not leaf, use g_cube_internal_consistent, else use
     * g_cube_leaf_consistent
     */
    if (GIST_LEAF(entry))
-       res = g_cube_leaf_consistent( DatumGetNDBOX(entry->key),
-                                     query, strategy);
+       res = g_cube_leaf_consistent(DatumGetNDBOX(entry->key),
+                                    query, strategy);
    else
-       res = g_cube_internal_consistent( DatumGetNDBOX(entry->key),
-                                         query, strategy);
+       res = g_cube_internal_consistent(DatumGetNDBOX(entry->key),
+                                        query, strategy);
 
-   PG_FREE_IF_COPY(query,1);
+   PG_FREE_IF_COPY(query, 1);
    PG_RETURN_BOOL(res);
 }
 
@@ -451,14 +451,15 @@ Datum
 g_cube_decompress(PG_FUNCTION_ARGS)
 {
    GISTENTRY  *entry = (GISTENTRY *) PG_GETARG_POINTER(0);
-   NDBOX       *key = DatumGetNDBOX(PG_DETOAST_DATUM(entry->key));
+   NDBOX      *key = DatumGetNDBOX(PG_DETOAST_DATUM(entry->key));
 
    if (key != DatumGetNDBOX(entry->key))
    {
        GISTENTRY  *retval = (GISTENTRY *) palloc(sizeof(GISTENTRY));
+
        gistentryinit(*retval, PointerGetDatum(key),
-                       entry->rel, entry->page,
-                       entry->offset, FALSE);
+                     entry->rel, entry->page,
+                     entry->offset, FALSE);
        PG_RETURN_POINTER(retval);
    }
    PG_RETURN_POINTER(entry);
@@ -479,8 +480,8 @@ g_cube_penalty(PG_FUNCTION_ARGS)
    double      tmp1,
                tmp2;
 
-   ud = cube_union_v0( DatumGetNDBOX(origentry->key),
-                       DatumGetNDBOX(newentry->key));
+   ud = cube_union_v0(DatumGetNDBOX(origentry->key),
+                      DatumGetNDBOX(newentry->key));
    rt_cube_size(ud, &tmp1);
    rt_cube_size(DatumGetNDBOX(origentry->key), &tmp2);
    *result = (float) (tmp1 - tmp2);
@@ -812,12 +813,12 @@ cube_union(PG_FUNCTION_ARGS)
 {
    NDBOX      *a = PG_GETARG_NDBOX(0),
               *b = PG_GETARG_NDBOX(1);
-   NDBOX      *res; 
+   NDBOX      *res;
 
    res = cube_union_v0(a, b);
 
-   PG_FREE_IF_COPY(a,0);
-   PG_FREE_IF_COPY(b,1);
+   PG_FREE_IF_COPY(a, 0);
+   PG_FREE_IF_COPY(b, 1);
    PG_RETURN_NDBOX(res);
 }
 
@@ -876,8 +877,9 @@ cube_inter(PG_FUNCTION_ARGS)
                                   a->x[i + a->dim]), result->x[i + a->dim]);
    }
 
-   PG_FREE_IF_COPY(a,0);
-   PG_FREE_IF_COPY(b,1);
+   PG_FREE_IF_COPY(a, 0);
+   PG_FREE_IF_COPY(b, 1);
+
    /*
     * Is it OK to return a non-null intersection for non-overlapping boxes?
     */
@@ -899,7 +901,7 @@ cube_size(PG_FUNCTION_ARGS)
    for (i = 0, j = a->dim; i < a->dim; i++, j++)
        result = result * Abs((a->x[j] - a->x[i]));
 
-   PG_FREE_IF_COPY(a,0);
+   PG_FREE_IF_COPY(a, 0);
    PG_RETURN_FLOAT8(result);
 }
 
@@ -1011,8 +1013,8 @@ cube_cmp(PG_FUNCTION_ARGS)
 
    res = cube_cmp_v0(a, b);
 
-   PG_FREE_IF_COPY(a,0);
-   PG_FREE_IF_COPY(b,1);
+   PG_FREE_IF_COPY(a, 0);
+   PG_FREE_IF_COPY(b, 1);
    PG_RETURN_INT32(res);
 }
 
@@ -1026,8 +1028,8 @@ cube_eq(PG_FUNCTION_ARGS)
 
    res = cube_cmp_v0(a, b);
 
-   PG_FREE_IF_COPY(a,0);
-   PG_FREE_IF_COPY(b,1);
+   PG_FREE_IF_COPY(a, 0);
+   PG_FREE_IF_COPY(b, 1);
    PG_RETURN_BOOL(res == 0);
 }
 
@@ -1041,8 +1043,8 @@ cube_ne(PG_FUNCTION_ARGS)
 
    res = cube_cmp_v0(a, b);
 
-   PG_FREE_IF_COPY(a,0);
-   PG_FREE_IF_COPY(b,1);
+   PG_FREE_IF_COPY(a, 0);
+   PG_FREE_IF_COPY(b, 1);
    PG_RETURN_BOOL(res != 0);
 }
 
@@ -1056,8 +1058,8 @@ cube_lt(PG_FUNCTION_ARGS)
 
    res = cube_cmp_v0(a, b);
 
-   PG_FREE_IF_COPY(a,0);
-   PG_FREE_IF_COPY(b,1);
+   PG_FREE_IF_COPY(a, 0);
+   PG_FREE_IF_COPY(b, 1);
    PG_RETURN_BOOL(res < 0);
 }
 
@@ -1071,8 +1073,8 @@ cube_gt(PG_FUNCTION_ARGS)
 
    res = cube_cmp_v0(a, b);
 
-   PG_FREE_IF_COPY(a,0);
-   PG_FREE_IF_COPY(b,1);
+   PG_FREE_IF_COPY(a, 0);
+   PG_FREE_IF_COPY(b, 1);
    PG_RETURN_BOOL(res > 0);
 }
 
@@ -1086,8 +1088,8 @@ cube_le(PG_FUNCTION_ARGS)
 
    res = cube_cmp_v0(a, b);
 
-   PG_FREE_IF_COPY(a,0);
-   PG_FREE_IF_COPY(b,1);
+   PG_FREE_IF_COPY(a, 0);
+   PG_FREE_IF_COPY(b, 1);
    PG_RETURN_BOOL(res <= 0);
 }
 
@@ -1101,8 +1103,8 @@ cube_ge(PG_FUNCTION_ARGS)
 
    res = cube_cmp_v0(a, b);
 
-   PG_FREE_IF_COPY(a,0);
-   PG_FREE_IF_COPY(b,1);
+   PG_FREE_IF_COPY(a, 0);
+   PG_FREE_IF_COPY(b, 1);
    PG_RETURN_BOOL(res >= 0);
 }
 
@@ -1157,8 +1159,8 @@ cube_contains(PG_FUNCTION_ARGS)
 
    res = cube_contains_v0(a, b);
 
-   PG_FREE_IF_COPY(a,0);
-   PG_FREE_IF_COPY(b,1);
+   PG_FREE_IF_COPY(a, 0);
+   PG_FREE_IF_COPY(b, 1);
    PG_RETURN_BOOL(res);
 }
 
@@ -1173,8 +1175,8 @@ cube_contained(PG_FUNCTION_ARGS)
 
    res = cube_contains_v0(b, a);
 
-   PG_FREE_IF_COPY(a,0);
-   PG_FREE_IF_COPY(b,1);
+   PG_FREE_IF_COPY(a, 0);
+   PG_FREE_IF_COPY(b, 1);
    PG_RETURN_BOOL(res);
 }
 
@@ -1234,8 +1236,8 @@ cube_overlap(PG_FUNCTION_ARGS)
 
    res = cube_overlap_v0(a, b);
 
-   PG_FREE_IF_COPY(a,0);
-   PG_FREE_IF_COPY(b,1);
+   PG_FREE_IF_COPY(a, 0);
+   PG_FREE_IF_COPY(b, 1);
    PG_RETURN_BOOL(res);
 }
 
@@ -1281,8 +1283,8 @@ cube_distance(PG_FUNCTION_ARGS)
        distance += d * d;
    }
 
-   PG_FREE_IF_COPY(a,0);
-   PG_FREE_IF_COPY(b,1);
+   PG_FREE_IF_COPY(a, 0);
+   PG_FREE_IF_COPY(b, 1);
    PG_RETURN_FLOAT8(sqrt(distance));
 }
 
@@ -1317,7 +1319,7 @@ cube_is_point(PG_FUNCTION_ARGS)
            PG_RETURN_BOOL(FALSE);
    }
 
-   PG_FREE_IF_COPY(a,0);
+   PG_FREE_IF_COPY(a, 0);
    PG_RETURN_BOOL(TRUE);
 }
 
@@ -1331,7 +1333,7 @@ cube_dim(PG_FUNCTION_ARGS)
    c = PG_GETARG_NDBOX(0);
    dim = c->dim;
 
-   PG_FREE_IF_COPY(c,0);
+   PG_FREE_IF_COPY(c, 0);
    PG_RETURN_INT32(c->dim);
 }
 
@@ -1350,7 +1352,7 @@ cube_ll_coord(PG_FUNCTION_ARGS)
    if (c->dim >= n && n > 0)
        result = Min(c->x[n - 1], c->x[c->dim + n - 1]);
 
-   PG_FREE_IF_COPY(c,0);
+   PG_FREE_IF_COPY(c, 0);
    PG_RETURN_FLOAT8(result);
 }
 
@@ -1369,7 +1371,7 @@ cube_ur_coord(PG_FUNCTION_ARGS)
    if (c->dim >= n && n > 0)
        result = Max(c->x[n - 1], c->x[c->dim + n - 1]);
 
-   PG_FREE_IF_COPY(c,0);
+   PG_FREE_IF_COPY(c, 0);
    PG_RETURN_FLOAT8(result);
 }
 
@@ -1384,7 +1386,7 @@ cube_enlarge(PG_FUNCTION_ARGS)
                j,
                k;
    NDBOX      *a;
-   double      r;
+   double      r;
    int4        n;
 
    a = PG_GETARG_NDBOX(0);
@@ -1426,7 +1428,7 @@ cube_enlarge(PG_FUNCTION_ARGS)
        result->x[j] = r;
    }
 
-   PG_FREE_IF_COPY(a,0);
+   PG_FREE_IF_COPY(a, 0);
    PG_RETURN_NDBOX(result);
 }
 
@@ -1490,7 +1492,7 @@ cube_c_f8(PG_FUNCTION_ARGS)
    result->x[result->dim - 1] = x;
    result->x[2 * result->dim - 1] = x;
 
-   PG_FREE_IF_COPY(c,0);
+   PG_FREE_IF_COPY(c, 0);
    PG_RETURN_NDBOX(result);
 }
 
@@ -1521,6 +1523,6 @@ cube_c_f8_f8(PG_FUNCTION_ARGS)
    result->x[result->dim - 1] = x1;
    result->x[2 * result->dim - 1] = x2;
 
-   PG_FREE_IF_COPY(c,0);
+   PG_FREE_IF_COPY(c, 0);
    PG_RETURN_NDBOX(result);
 }
index 295a77977255369ecde26b4571fa760ce9f8fc9a..dd5cfc7f86d1f8a8955654a69578798286e16e29 100644 (file)
@@ -8,7 +8,7 @@
  * Darko Prenosil <[email protected]>
  * Shridhar Daithankar <[email protected]>
  *
- * $PostgreSQL: pgsql/contrib/dblink/dblink.c,v 1.65 2007/08/27 01:24:50 tgl Exp $
+ * $PostgreSQL: pgsql/contrib/dblink/dblink.c,v 1.66 2007/11/15 21:14:29 momjian Exp $
  * Copyright (c) 2001-2007, PostgreSQL Global Development Group
  * ALL RIGHTS RESERVED;
  *
@@ -256,10 +256,10 @@ dblink_connect(PG_FUNCTION_ARGS)
                pfree(rconn);
 
            ereport(ERROR,
-                   (errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED),
-                    errmsg("password is required"),
-                    errdetail("Non-superuser cannot connect if the server does not request a password."),
-                    errhint("Target server's authentication method must be changed.")));
+                 (errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED),
+                  errmsg("password is required"),
+                  errdetail("Non-superuser cannot connect if the server does not request a password."),
+                  errhint("Target server's authentication method must be changed.")));
        }
    }
 
index 85d45491ccbfe13c113291c8e3acac71c0a56064..5cc2111adcb8c69ecdc9bf8f32c27ca223cc41ef 100644 (file)
@@ -6,7 +6,7 @@
  * Copyright (c) 2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/contrib/dict_int/dict_int.c,v 1.1 2007/10/15 21:36:50 tgl Exp $
+ *   $PostgreSQL: pgsql/contrib/dict_int/dict_int.c,v 1.2 2007/11/15 21:14:29 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 PG_MODULE_MAGIC;
 
 
-typedef struct {
-   int     maxlen;
-   bool    rejectlong;
-} DictInt;
+typedef struct
+{
+   int         maxlen;
+   bool        rejectlong;
+}  DictInt;
 
 
 PG_FUNCTION_INFO_V1(dintdict_init);
-Datum dintdict_init(PG_FUNCTION_ARGS);
+Datum      dintdict_init(PG_FUNCTION_ARGS);
 
 PG_FUNCTION_INFO_V1(dintdict_lexize);
-Datum dintdict_lexize(PG_FUNCTION_ARGS);
+Datum      dintdict_lexize(PG_FUNCTION_ARGS);
 
 Datum
 dintdict_init(PG_FUNCTION_ARGS)
 {
-   List        *dictoptions = (List *) PG_GETARG_POINTER(0);
-   DictInt     *d;
-   ListCell    *l;
+   List       *dictoptions = (List *) PG_GETARG_POINTER(0);
+   DictInt    *d;
+   ListCell   *l;
 
    d = (DictInt *) palloc0(sizeof(DictInt));
    d->maxlen = 6;
@@ -44,7 +45,7 @@ dintdict_init(PG_FUNCTION_ARGS)
 
    foreach(l, dictoptions)
    {
-       DefElem *defel = (DefElem *) lfirst(l);
+       DefElem    *defel = (DefElem *) lfirst(l);
 
        if (pg_strcasecmp(defel->defname, "MAXLEN") == 0)
        {
@@ -62,22 +63,22 @@ dintdict_init(PG_FUNCTION_ARGS)
                            defel->defname)));
        }
    }
-   
+
    PG_RETURN_POINTER(d);
 }
 
 Datum
 dintdict_lexize(PG_FUNCTION_ARGS)
 {
-   DictInt *d = (DictInt*)PG_GETARG_POINTER(0);
-   char       *in = (char*)PG_GETARG_POINTER(1);
-   char *txt = pnstrdup(in, PG_GETARG_INT32(2));
-   TSLexeme *res=palloc(sizeof(TSLexeme)*2);
+   DictInt    *d = (DictInt *) PG_GETARG_POINTER(0);
+   char       *in = (char *) PG_GETARG_POINTER(1);
+   char       *txt = pnstrdup(in, PG_GETARG_INT32(2));
+   TSLexeme   *res = palloc(sizeof(TSLexeme) * 2);
 
    res[1].lexeme = NULL;
-   if  (PG_GETARG_INT32(2) > d->maxlen)
+   if (PG_GETARG_INT32(2) > d->maxlen)
    {
-       if ( d->rejectlong )
+       if (d->rejectlong)
        {
            /* reject by returning void array */
            pfree(txt);
index 1cd53a26bd1398cc58e02378dedf4d3a28e317fc..753886117dad6490fe45493a004a1066316bf2d0 100644 (file)
@@ -6,7 +6,7 @@
  * Copyright (c) 2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/contrib/dict_xsyn/dict_xsyn.c,v 1.1 2007/10/15 21:36:50 tgl Exp $
+ *   $PostgreSQL: pgsql/contrib/dict_xsyn/dict_xsyn.c,v 1.2 2007/11/15 21:14:29 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -24,29 +24,30 @@ PG_MODULE_MAGIC;
 
 typedef struct
 {
-   char *key; /* Word */
-   char *value; /* Unparsed list of synonyms, including the word itself */
+   char       *key;            /* Word */
+   char       *value;          /* Unparsed list of synonyms, including the
+                                * word itself */
 }  Syn;
 
 typedef struct
 {
-   int len;
-   Syn *syn;
+   int         len;
+   Syn        *syn;
 
-   bool keeporig;
+   bool        keeporig;
 }  DictSyn;
 
 
 PG_FUNCTION_INFO_V1(dxsyn_init);
-Datum dxsyn_init(PG_FUNCTION_ARGS);
+Datum      dxsyn_init(PG_FUNCTION_ARGS);
 
 PG_FUNCTION_INFO_V1(dxsyn_lexize);
-Datum dxsyn_lexize(PG_FUNCTION_ARGS);
+Datum      dxsyn_lexize(PG_FUNCTION_ARGS);
 
 static char *
 find_word(char *in, char **end)
 {
-   char *start;
+   char       *start;
 
    *end = NULL;
    while (*in && t_isspace(in))
@@ -71,12 +72,12 @@ compare_syn(const void *a, const void *b)
 }
 
 static void
-read_dictionary(DictSyn *d, char *filename)
+read_dictionary(DictSyn * d, char *filename)
 {
-   char *real_filename = get_tsearch_config_filename(filename, "rules");
-   FILE *fin;
-   char *line;
-   int cur = 0;
+   char       *real_filename = get_tsearch_config_filename(filename, "rules");
+   FILE       *fin;
+   char       *line;
+   int         cur = 0;
 
    if ((fin = AllocateFile(real_filename, "r")) == NULL)
        ereport(ERROR,
@@ -86,9 +87,9 @@ read_dictionary(DictSyn *d, char *filename)
 
    while ((line = t_readline(fin)) != NULL)
    {
-       char *value;
-       char *key;
-       char *end = NULL;
+       char       *value;
+       char       *key;
+       char       *end = NULL;
 
        if (*line == '\0')
            continue;
@@ -130,9 +131,9 @@ read_dictionary(DictSyn *d, char *filename)
 Datum
 dxsyn_init(PG_FUNCTION_ARGS)
 {
-   List *dictoptions = (List *) PG_GETARG_POINTER(0);
-   DictSyn *d;
-   ListCell *l;
+   List       *dictoptions = (List *) PG_GETARG_POINTER(0);
+   DictSyn    *d;
+   ListCell   *l;
 
    d = (DictSyn *) palloc0(sizeof(DictSyn));
    d->len = 0;
@@ -141,7 +142,7 @@ dxsyn_init(PG_FUNCTION_ARGS)
 
    foreach(l, dictoptions)
    {
-       DefElem *defel = (DefElem *) lfirst(l);
+       DefElem    *defel = (DefElem *) lfirst(l);
 
        if (pg_strcasecmp(defel->defname, "KEEPORIG") == 0)
        {
@@ -166,19 +167,19 @@ dxsyn_init(PG_FUNCTION_ARGS)
 Datum
 dxsyn_lexize(PG_FUNCTION_ARGS)
 {
-   DictSyn *d = (DictSyn *) PG_GETARG_POINTER(0);
-   char *in = (char *) PG_GETARG_POINTER(1);
-   int length = PG_GETARG_INT32(2);
-   Syn word;
-   Syn *found;
-   TSLexeme *res = NULL;
+   DictSyn    *d = (DictSyn *) PG_GETARG_POINTER(0);
+   char       *in = (char *) PG_GETARG_POINTER(1);
+   int         length = PG_GETARG_INT32(2);
+   Syn         word;
+   Syn        *found;
+   TSLexeme   *res = NULL;
 
    if (!length || d->len == 0)
        PG_RETURN_POINTER(NULL);
 
    /* Create search pattern */
    {
-       char *temp = pnstrdup(in, length);
+       char       *temp = pnstrdup(in, length);
 
        word.key = lowerstr(temp);
        pfree(temp);
@@ -186,7 +187,7 @@ dxsyn_lexize(PG_FUNCTION_ARGS)
    }
 
    /* Look for matching syn */
-   found = (Syn *)bsearch(&word, d->syn, d->len, sizeof(Syn), compare_syn);
+   found = (Syn *) bsearch(&word, d->syn, d->len, sizeof(Syn), compare_syn);
    pfree(word.key);
 
    if (!found)
@@ -194,28 +195,28 @@ dxsyn_lexize(PG_FUNCTION_ARGS)
 
    /* Parse string of synonyms and return array of words */
    {
-       char *value = pstrdup(found->value);
-       int value_length = strlen(value);
-       char *pos = value;
-       int nsyns = 0;
-       bool is_first = true;
+       char       *value = pstrdup(found->value);
+       int         value_length = strlen(value);
+       char       *pos = value;
+       int         nsyns = 0;
+       bool        is_first = true;
 
        res = palloc(0);
 
-       while(pos < value + value_length)
+       while (pos < value + value_length)
        {
-           char *end;
-           char *syn = find_word(pos, &end);
+           char       *end;
+           char       *syn = find_word(pos, &end);
 
            if (!syn)
                break;
            *end = '\0';
 
-           res = repalloc(res, sizeof(TSLexeme)*(nsyns + 2));
+           res = repalloc(res, sizeof(TSLexeme) * (nsyns + 2));
            res[nsyns].lexeme = NULL;
 
            /* first word is added to result only if KEEPORIG flag is set */
-           if(d->keeporig || !is_first)
+           if (d->keeporig || !is_first)
            {
                res[nsyns].lexeme = pstrdup(syn);
                res[nsyns + 1].lexeme = NULL;
index 5ef18abd8e8b5c95744b49184204fff2d22265d5..48ec6e064880bd3fd0a950782b05c181280a8059 100644 (file)
@@ -50,7 +50,7 @@ typedef struct
 int            comparePairs(const void *a, const void *b);
 int            uniquePairs(Pairs * a, int4 l, int4 *buflen);
 
-#define HStoreContainsStrategyNumber    7
-#define HStoreExistsStrategyNumber      9
+#define HStoreContainsStrategyNumber   7
+#define HStoreExistsStrategyNumber     9
 
 #endif
index f6fab2b89d6e4ff1ef76219d7493148759aeaa95..144758f3cd5e60863872baa910dfe38e674a08fe 100644 (file)
@@ -1,24 +1,24 @@
 #include "hstore.h"
 
-#include "access/gin.h"   
+#include "access/gin.h"
 
-#define    KEYFLAG     'K'
-#define    VALFLAG     'V'
-#define    NULLFLAG    'N'
+#define KEYFLAG        'K'
+#define VALFLAG        'V'
+#define NULLFLAG   'N'
 
 PG_FUNCTION_INFO_V1(gin_extract_hstore);
-Datum       gin_extract_hstore(PG_FUNCTION_ARGS);
+Datum      gin_extract_hstore(PG_FUNCTION_ARGS);
 
-static text*
-makeitem( char *str, int len )
+static text *
+makeitem(char *str, int len)
 {
-   text    *item;
+   text       *item;
 
-   item = (text*)palloc( VARHDRSZ + len + 1 );
+   item = (text *) palloc(VARHDRSZ + len + 1);
    SET_VARSIZE(item, VARHDRSZ + len + 1);
 
-   if ( str && len > 0 )
-       memcpy( VARDATA(item)+1, str, len );
+   if (str && len > 0)
+       memcpy(VARDATA(item) + 1, str, len);
 
    return item;
 }
@@ -26,37 +26,37 @@ makeitem( char *str, int len )
 Datum
 gin_extract_hstore(PG_FUNCTION_ARGS)
 {
-   HStore  *hs = PG_GETARG_HS(0);
-   int32   *nentries = (int32 *) PG_GETARG_POINTER(1);
-   Datum   *entries = NULL;
+   HStore     *hs = PG_GETARG_HS(0);
+   int32      *nentries = (int32 *) PG_GETARG_POINTER(1);
+   Datum      *entries = NULL;
 
-   *nentries = 2*hs->size;
+   *nentries = 2 * hs->size;
 
-   if ( hs->size > 0 )
+   if (hs->size > 0)
    {
-       HEntry  *ptr = ARRPTR(hs);
-       char    *words = STRPTR(hs);
-       int     i=0;
+       HEntry     *ptr = ARRPTR(hs);
+       char       *words = STRPTR(hs);
+       int         i = 0;
 
-       entries = (Datum*)palloc( sizeof(Datum) * 2 * hs->size );
+       entries = (Datum *) palloc(sizeof(Datum) * 2 * hs->size);
 
        while (ptr - ARRPTR(hs) < hs->size)
        {
-           text    *item;
+           text       *item;
 
-           item = makeitem( words + ptr->pos, ptr->keylen ); 
+           item = makeitem(words + ptr->pos, ptr->keylen);
            *VARDATA(item) = KEYFLAG;
            entries[i++] = PointerGetDatum(item);
 
-           if ( ptr->valisnull )
+           if (ptr->valisnull)
            {
-               item = makeitem( NULL, 0 ); 
+               item = makeitem(NULL, 0);
                *VARDATA(item) = NULLFLAG;
 
            }
            else
            {
-               item = makeitem( words + ptr->pos + ptr->keylen, ptr->vallen ); 
+               item = makeitem(words + ptr->pos + ptr->keylen, ptr->vallen);
                *VARDATA(item) = VALFLAG;
            }
            entries[i++] = PointerGetDatum(item);
@@ -65,36 +65,37 @@ gin_extract_hstore(PG_FUNCTION_ARGS)
        }
    }
 
-   PG_FREE_IF_COPY(hs,0);
+   PG_FREE_IF_COPY(hs, 0);
    PG_RETURN_POINTER(entries);
 }
 
 PG_FUNCTION_INFO_V1(gin_extract_hstore_query);
-Datum       gin_extract_hstore_query(PG_FUNCTION_ARGS);
+Datum      gin_extract_hstore_query(PG_FUNCTION_ARGS);
 
 Datum
 gin_extract_hstore_query(PG_FUNCTION_ARGS)
 {
    StrategyNumber strategy = PG_GETARG_UINT16(2);
 
-   if ( strategy == HStoreContainsStrategyNumber )
+   if (strategy == HStoreContainsStrategyNumber)
    {
-       PG_RETURN_DATUM( DirectFunctionCall2(
-               gin_extract_hstore,
-               PG_GETARG_DATUM(0),
-               PG_GETARG_DATUM(1)
-       ));
+       PG_RETURN_DATUM(DirectFunctionCall2(
+                                           gin_extract_hstore,
+                                           PG_GETARG_DATUM(0),
+                                           PG_GETARG_DATUM(1)
+                                           ));
    }
-   else if ( strategy == HStoreExistsStrategyNumber )
+   else if (strategy == HStoreExistsStrategyNumber)
    {
-       text *item, *q = PG_GETARG_TEXT_P(0);
-       int32   *nentries = (int32 *) PG_GETARG_POINTER(1);
-       Datum   *entries = NULL;
+       text       *item,
+                  *q = PG_GETARG_TEXT_P(0);
+       int32      *nentries = (int32 *) PG_GETARG_POINTER(1);
+       Datum      *entries = NULL;
 
        *nentries = 1;
-       entries = (Datum*)palloc( sizeof(Datum) );
+       entries = (Datum *) palloc(sizeof(Datum));
 
-       item = makeitem( VARDATA(q), VARSIZE(q)-VARHDRSZ );
+       item = makeitem(VARDATA(q), VARSIZE(q) - VARHDRSZ);
        *VARDATA(item) = KEYFLAG;
        entries[0] = PointerGetDatum(item);
 
@@ -107,29 +108,28 @@ gin_extract_hstore_query(PG_FUNCTION_ARGS)
 }
 
 PG_FUNCTION_INFO_V1(gin_consistent_hstore);
-Datum       gin_consistent_hstore(PG_FUNCTION_ARGS);
+Datum      gin_consistent_hstore(PG_FUNCTION_ARGS);
 
 Datum
 gin_consistent_hstore(PG_FUNCTION_ARGS)
 {
    StrategyNumber strategy = PG_GETARG_UINT16(1);
-   bool    res = true;
+   bool        res = true;
 
-   if ( strategy == HStoreContainsStrategyNumber )
+   if (strategy == HStoreContainsStrategyNumber)
    {
-       bool    *check = (bool *) PG_GETARG_POINTER(0);
-       HStore  *query = PG_GETARG_HS(2);
-       int     i;
+       bool       *check = (bool *) PG_GETARG_POINTER(0);
+       HStore     *query = PG_GETARG_HS(2);
+       int         i;
 
-       for(i=0;res && i<2*query->size;i++)
-           if ( check[i] == false )
+       for (i = 0; res && i < 2 * query->size; i++)
+           if (check[i] == false)
                res = false;
    }
-   else if ( strategy == HStoreExistsStrategyNumber )
+   else if (strategy == HStoreExistsStrategyNumber)
        res = true;
    else
        elog(ERROR, "Unsupported strategy number: %d", strategy);
 
    PG_RETURN_BOOL(res);
 }
-
index 74597c3490009eae734a49b1b108c857b353dd04..bcac30ee6fdd3c4720c862eaf5ac9dade3619e2e 100644 (file)
@@ -275,13 +275,13 @@ tconvert(PG_FUNCTION_ARGS)
    int         len;
    HStore     *out;
 
-   if ( PG_ARGISNULL(0) )
+   if (PG_ARGISNULL(0))
        PG_RETURN_NULL();
 
    key = PG_GETARG_TEXT_P(0);
 
-   if ( PG_ARGISNULL(1) )
-       len = CALCDATASIZE(1, VARSIZE(key) );
+   if (PG_ARGISNULL(1))
+       len = CALCDATASIZE(1, VARSIZE(key));
    else
    {
        val = PG_GETARG_TEXT_P(1);
@@ -292,7 +292,7 @@ tconvert(PG_FUNCTION_ARGS)
    out->size = 1;
 
    ARRPTR(out)->keylen = VARSIZE(key) - VARHDRSZ;
-   if ( PG_ARGISNULL(1) )
+   if (PG_ARGISNULL(1))
    {
        ARRPTR(out)->vallen = 0;
        ARRPTR(out)->valisnull = true;
@@ -537,18 +537,18 @@ hs_contains(PG_FUNCTION_ARGS)
 
        if (entry)
        {
-           if ( te->valisnull || entry->valisnull )
+           if (te->valisnull || entry->valisnull)
            {
-               if ( !(te->valisnull && entry->valisnull) )
+               if (!(te->valisnull && entry->valisnull))
                    res = false;
            }
-           else if ( te->vallen != entry->vallen ||  
-                                         strncmp(
-                                            vv + entry->pos + entry->keylen,
-                                                 tv + te->pos + te->keylen,
-                                                 te->vallen) 
-                                         )
-                   res = false;
+           else if (te->vallen != entry->vallen ||
+                    strncmp(
+                            vv + entry->pos + entry->keylen,
+                            tv + te->pos + te->keylen,
+                            te->vallen)
+               )
+               res = false;
        }
        else
            res = false;
index 22484287862d26619d75c1aa3668d8cd98fc6351..6856a68e03835ba7af33be65f4069f3391210e09 100644 (file)
@@ -57,16 +57,17 @@ ginint4_queryextract(PG_FUNCTION_ARGS)
        }
    }
 
-   if ( nentries == 0 )
+   if (nentries == 0)
    {
-       switch( strategy )
+       switch (strategy)
        {
            case BooleanSearchStrategy:
            case RTOverlapStrategyNumber:
-                   *nentries = -1; /* nobody can be found */
-                   break;
-           default:   /* require fullscan: GIN can't find void arrays */
-           break;
+               *nentries = -1; /* nobody can be found */
+               break;
+           default:            /* require fullscan: GIN can't find void
+                                * arrays */
+               break;
        }
    }
 
index 3c34cb67a7aa7a6cef4c7a9ec9d9240ea39272d3..51cc77b863db996780ad708c37e4fee8e7eb381e 100644 (file)
@@ -233,10 +233,11 @@ g_int_decompress(PG_FUNCTION_ARGS)
    CHECKARRVALID(in);
    if (ARRISVOID(in))
    {
-       if (in != (ArrayType *) DatumGetPointer(entry->key)) {
+       if (in != (ArrayType *) DatumGetPointer(entry->key))
+       {
            retval = palloc(sizeof(GISTENTRY));
            gistentryinit(*retval, PointerGetDatum(in),
-               entry->rel, entry->page, entry->offset, FALSE);
+                         entry->rel, entry->page, entry->offset, FALSE);
            PG_RETURN_POINTER(retval);
        }
 
index 1dfb940e92982d119a680ea72d558b691119dda0..9134fc06d82f40895b29695b6347e916eeacc6f3 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/contrib/isn/isn.c,v 1.6 2007/06/05 21:31:03 tgl Exp $
+ *   $PostgreSQL: pgsql/contrib/isn/isn.c,v 1.7 2007/11/15 21:14:29 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -506,7 +506,7 @@ ean2UPC(char *isn)
  * Returns the ean13 value of the string.
  */
 static
-ean13
+           ean13
 str2ean(const char *num)
 {
    ean13       ean = 0;        /* current ean */
index 6251fd5b5f918149036f6e8ab05b6c52771e8520..ce8b97e46baadd6888c975ba8808fa99e98dfd48 100644 (file)
@@ -302,9 +302,9 @@ bt_page_items(PG_FUNCTION_ARGS)
        buffer = ReadBuffer(rel, blkno);
 
        /*
-        * We copy the page into local storage to avoid holding pin on
-        * the buffer longer than we must, and possibly failing to
-        * release it at all if the calling query doesn't fetch all rows.
+        * We copy the page into local storage to avoid holding pin on the
+        * buffer longer than we must, and possibly failing to release it at
+        * all if the calling query doesn't fetch all rows.
         */
        mctx = MemoryContextSwitchTo(fctx->multi_call_memory_ctx);
 
index 931c1a5036594fc3a6108d6311a26d590faa5e48..31b5b2e642e2239e54a667e7cc7af25375ce3f6a 100644 (file)
@@ -8,17 +8,17 @@
  * information as possible, even if it's nonsense. That's because if a
  * page is corrupt, we don't know why and how exactly it is corrupt, so we
  * let the user to judge it.
- * 
+ *
  * These functions are restricted to superusers for the fear of introducing
- * security holes if the input checking isn't as water-tight as it should. 
- * You'd need to be superuser to obtain a raw page image anyway, so 
+ * security holes if the input checking isn't as water-tight as it should.
+ * You'd need to be superuser to obtain a raw page image anyway, so
  * there's hardly any use case for using these without superuser-rights
  * anyway.
  *
  * Copyright (c) 2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/contrib/pageinspect/heapfuncs.c,v 1.2 2007/09/12 22:10:25 tgl Exp $
+ *   $PostgreSQL: pgsql/contrib/pageinspect/heapfuncs.c,v 1.3 2007/11/15 21:14:30 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "utils/builtins.h"
 #include "miscadmin.h"
 
-Datum heap_page_items(PG_FUNCTION_ARGS);
+Datum      heap_page_items(PG_FUNCTION_ARGS);
 
 #define GET_TEXT(str_) \
-        DirectFunctionCall1(textin, CStringGetDatum(str_))
+       DirectFunctionCall1(textin, CStringGetDatum(str_))
 
 /*
  * bits_to_text
@@ -48,12 +48,12 @@ Datum heap_page_items(PG_FUNCTION_ARGS);
 static char *
 bits_to_text(bits8 *bits, int len)
 {
-   int i;
-   char *str;
+   int         i;
+   char       *str;
 
    str = palloc(len + 1);
-   
-   for(i = 0; i < len; i++)
+
+   for (i = 0; i < len; i++)
        str[i] = (bits[(i / 8)] & (1 << (i % 8))) ? '1' : '0';
 
    str[i] = '\0';
@@ -74,15 +74,15 @@ typedef struct heap_page_items_state
    TupleDesc   tupd;
    Page        page;
    uint16      offset;
-} heap_page_items_state;
+}  heap_page_items_state;
 
 Datum
 heap_page_items(PG_FUNCTION_ARGS)
 {
-   bytea  *raw_page = PG_GETARG_BYTEA_P(0);
+   bytea      *raw_page = PG_GETARG_BYTEA_P(0);
    heap_page_items_state *inter_call_data = NULL;
    FuncCallContext *fctx;
-   int     raw_page_size;
+   int         raw_page_size;
 
    if (!superuser())
        ereport(ERROR,
@@ -96,10 +96,10 @@ heap_page_items(PG_FUNCTION_ARGS)
        TupleDesc   tupdesc;
        MemoryContext mctx;
 
-       if(raw_page_size < SizeOfPageHeaderData)
-           ereport(ERROR, 
+       if (raw_page_size < SizeOfPageHeaderData)
+           ereport(ERROR,
                    (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                    errmsg("input page too small (%d bytes)", raw_page_size)));
+                 errmsg("input page too small (%d bytes)", raw_page_size)));
 
        fctx = SRF_FIRSTCALL_INIT();
        mctx = MemoryContextSwitchTo(fctx->multi_call_memory_ctx);
@@ -132,42 +132,42 @@ heap_page_items(PG_FUNCTION_ARGS)
        ItemId      id;
        Datum       values[13];
        bool        nulls[13];
-       uint16      lp_offset;
+       uint16      lp_offset;
        uint16      lp_flags;
        uint16      lp_len;
 
        memset(nulls, 0, sizeof(nulls));
 
        /* Extract information from the line pointer */
-       
+
        id = PageGetItemId(page, inter_call_data->offset);
 
-       lp_offset   = ItemIdGetOffset(id);
-       lp_flags    = ItemIdGetFlags(id);
-       lp_len      = ItemIdGetLength(id);
+       lp_offset = ItemIdGetOffset(id);
+       lp_flags = ItemIdGetFlags(id);
+       lp_len = ItemIdGetLength(id);
 
        values[0] = UInt16GetDatum(inter_call_data->offset);
        values[1] = UInt16GetDatum(lp_offset);
        values[2] = UInt16GetDatum(lp_flags);
        values[3] = UInt16GetDatum(lp_len);
 
-       /* We do just enough validity checking to make sure we don't 
-        * reference data outside the page passed to us. The page
-        * could be corrupt in many other ways, but at least we won't 
-        * crash.
+       /*
+        * We do just enough validity checking to make sure we don't reference
+        * data outside the page passed to us. The page could be corrupt in
+        * many other ways, but at least we won't crash.
         */
        if (ItemIdHasStorage(id) &&
            lp_len >= sizeof(HeapTupleHeader) &&
            lp_offset == MAXALIGN(lp_offset) &&
            lp_offset + lp_len <= raw_page_size)
        {
-           HeapTupleHeader tuphdr;
-           int             bits_len;
+           HeapTupleHeader tuphdr;
+           int         bits_len;
 
            /* Extract information from the tuple header */
 
            tuphdr = (HeapTupleHeader) PageGetItem(page, id);
-       
+
            values[4] = UInt32GetDatum(HeapTupleHeaderGetXmin(tuphdr));
            values[5] = UInt32GetDatum(HeapTupleHeaderGetXmax(tuphdr));
            values[6] = UInt32GetDatum(HeapTupleHeaderGetRawCommandId(tuphdr)); /* shared with xvac */
@@ -176,22 +176,23 @@ heap_page_items(PG_FUNCTION_ARGS)
            values[9] = UInt16GetDatum(tuphdr->t_infomask);
            values[10] = UInt8GetDatum(tuphdr->t_hoff);
 
-           /* We already checked that the item as is completely within
-            * the raw page passed to us, with the length given in the line
+           /*
+            * We already checked that the item as is completely within the
+            * raw page passed to us, with the length given in the line
             * pointer.. Let's check that t_hoff doesn't point over lp_len,
             * before using it to access t_bits and oid.
             */
-           if (tuphdr->t_hoff >= sizeof(HeapTupleHeader) && 
+           if (tuphdr->t_hoff >= sizeof(HeapTupleHeader) &&
                tuphdr->t_hoff <= lp_len)
            {
                if (tuphdr->t_infomask & HEAP_HASNULL)
                {
-                   bits_len = tuphdr->t_hoff - 
-                       (((char *)tuphdr->t_bits) - ((char *)tuphdr));
+                   bits_len = tuphdr->t_hoff -
+                       (((char *) tuphdr->t_bits) -((char *) tuphdr));
 
                    values[11] = GET_TEXT(
-                       bits_to_text(tuphdr->t_bits, bits_len * 8));
-               } 
+                                bits_to_text(tuphdr->t_bits, bits_len * 8));
+               }
                else
                    nulls[11] = true;
 
@@ -208,17 +209,19 @@ heap_page_items(PG_FUNCTION_ARGS)
        }
        else
        {
-           /* The line pointer is not used, or it's invalid. Set the rest of
-            * the fields to NULL */
-           int i;
+           /*
+            * The line pointer is not used, or it's invalid. Set the rest of
+            * the fields to NULL
+            */
+           int         i;
 
-           for(i = 4; i <= 12; i++)
+           for (i = 4; i <= 12; i++)
                nulls[i] = true;
        }
 
-        /* Build and return the result tuple. */
-        resultTuple = heap_form_tuple(inter_call_data->tupd, values, nulls);
-        result = HeapTupleGetDatum(resultTuple);
+       /* Build and return the result tuple. */
+       resultTuple = heap_form_tuple(inter_call_data->tupd, values, nulls);
+       result = HeapTupleGetDatum(resultTuple);
 
        inter_call_data->offset++;
 
index 80632be9fb55b9b61a1d65e369fdbef0b14ae458..7d69fd5e22ea3d7110efd4f92589829311150830 100644 (file)
@@ -8,7 +8,7 @@
  * Copyright (c) 2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/contrib/pageinspect/rawpage.c,v 1.2 2007/09/21 21:25:42 tgl Exp $
+ *   $PostgreSQL: pgsql/contrib/pageinspect/rawpage.c,v 1.3 2007/11/15 21:14:30 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -26,8 +26,8 @@
 
 PG_MODULE_MAGIC;
 
-Datum get_raw_page(PG_FUNCTION_ARGS);
-Datum page_header(PG_FUNCTION_ARGS);
+Datum      get_raw_page(PG_FUNCTION_ARGS);
+Datum      page_header(PG_FUNCTION_ARGS);
 
 /*
  * get_raw_page
@@ -43,9 +43,9 @@ get_raw_page(PG_FUNCTION_ARGS)
    uint32      blkno = PG_GETARG_UINT32(1);
 
    Relation    rel;
-   RangeVar    *relrv;
-   bytea       *raw_page;
-   char        *raw_page_data;
+   RangeVar   *relrv;
+   bytea      *raw_page;
+   char       *raw_page_data;
    Buffer      buf;
 
    if (!superuser())
@@ -61,12 +61,12 @@ get_raw_page(PG_FUNCTION_ARGS)
        ereport(ERROR,
                (errcode(ERRCODE_WRONG_OBJECT_TYPE),
                 errmsg("cannot get raw page from view \"%s\"",
-                           RelationGetRelationName(rel))));
+                       RelationGetRelationName(rel))));
    if (rel->rd_rel->relkind == RELKIND_COMPOSITE_TYPE)
        ereport(ERROR,
                (errcode(ERRCODE_WRONG_OBJECT_TYPE),
                 errmsg("cannot get raw page from composite type \"%s\"",
-                           RelationGetRelationName(rel))));
+                       RelationGetRelationName(rel))));
 
    if (blkno >= RelationGetNumberOfBlocks(rel))
        elog(ERROR, "block number %u is out of range for relation \"%s\"",
@@ -125,13 +125,13 @@ page_header(PG_FUNCTION_ARGS)
    raw_page_size = VARSIZE(raw_page) - VARHDRSZ;
 
    /*
-    * Check that enough data was supplied, so that we don't try to access 
-    * fields outside the supplied buffer. 
+    * Check that enough data was supplied, so that we don't try to access
+    * fields outside the supplied buffer.
     */
-   if(raw_page_size < sizeof(PageHeaderData))
-       ereport(ERROR, 
-            (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-             errmsg("input page too small (%d bytes)", raw_page_size)));
+   if (raw_page_size < sizeof(PageHeaderData))
+       ereport(ERROR,
+               (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
+                errmsg("input page too small (%d bytes)", raw_page_size)));
 
    page = (PageHeader) VARDATA(raw_page);
 
@@ -154,12 +154,12 @@ page_header(PG_FUNCTION_ARGS)
    values[7] = UInt16GetDatum(PageGetPageLayoutVersion(page));
    values[8] = TransactionIdGetDatum(page->pd_prune_xid);
 
-    /* Build and return the tuple. */
+   /* Build and return the tuple. */
 
    memset(nulls, 0, sizeof(nulls));
 
-    tuple = heap_form_tuple(tupdesc, values, nulls);
-    result = HeapTupleGetDatum(tuple);
+   tuple = heap_form_tuple(tupdesc, values, nulls);
+   result = HeapTupleGetDatum(tuple);
 
    PG_RETURN_DATUM(result);
 }
index e7c5b06a563bfcc62ae236203dfab2a0133abb0e..21ac8da1764ad56f8585cd329c2aa3fc28b45597 100644 (file)
@@ -3,7 +3,7 @@
  * pg_buffercache_pages.c
  *   display some contents of the buffer cache
  *
- *   $PostgreSQL: pgsql/contrib/pg_buffercache/pg_buffercache_pages.c,v 1.13 2007/07/16 21:20:36 tgl Exp $
+ *   $PostgreSQL: pgsql/contrib/pg_buffercache/pg_buffercache_pages.c,v 1.14 2007/11/15 21:14:30 momjian Exp $
  *-------------------------------------------------------------------------
  */
 #include "postgres.h"
@@ -149,9 +149,9 @@ pg_buffercache_pages(PG_FUNCTION_ARGS)
        /*
         * And release locks.  We do this in reverse order for two reasons:
         * (1) Anyone else who needs more than one of the locks will be trying
-        * to lock them in increasing order; we don't want to release the other
-        * process until it can get all the locks it needs.
-        * (2) This avoids O(N^2) behavior inside LWLockRelease.
+        * to lock them in increasing order; we don't want to release the
+        * other process until it can get all the locks it needs. (2) This
+        * avoids O(N^2) behavior inside LWLockRelease.
         */
        for (i = NUM_BUFFER_PARTITIONS; --i >= 0;)
            LWLockRelease(FirstBufMappingLock + i);
index 35c90fde48472968aa8dcb41972fdd1835810969..41b3500dd11e8eb4fbf130800e595c2ef6f68fc1 100644 (file)
@@ -1,12 +1,12 @@
 /*
  * pg_standby.c
- * 
+ *
  * Production-ready example of how to create a Warm Standby
- * database server using continuous archiving as a 
+ * database server using continuous archiving as a
  * replication mechanism
  *
  * We separate the parameters for archive and nextWALfile
- * so that we can check the archive exists, even if the 
+ * so that we can check the archive exists, even if the
  * WAL file doesn't (yet).
  *
  * This program will be executed once in full for each file
@@ -14,9 +14,9 @@
  *
  * It is designed to cater to a variety of needs, as well
  * providing a customizable section.
- * 
- * Original author:        Simon Riggs  [email protected]
- * Current maintainer:     Simon Riggs
+ *
+ * Original author:        Simon Riggs  [email protected]
+ * Current maintainer: Simon Riggs
  */
 #include "postgres_fe.h"
 
@@ -26,7 +26,7 @@
 #include <signal.h>
 
 #ifdef WIN32
-int getopt(int argc, char * const argv[], const char *optstring);
+int            getopt(int argc, char *const argv[], const char *optstring);
 #else
 #include <sys/time.h>
 #include <unistd.h>
@@ -34,42 +34,44 @@ int getopt(int argc, char * const argv[], const char *optstring);
 #ifdef HAVE_GETOPT_H
 #include <getopt.h>
 #endif
-
 #endif   /* ! WIN32 */
 
 extern char *optarg;
 extern int optind;
 
 /* Options and defaults */
-int sleeptime = 5;             /* amount of time to sleep between file checks */
-int waittime = -1;             /* how long we have been waiting, -1 no wait yet */
-int maxwaittime = 0;           /* how long are we prepared to wait for? */
-int keepfiles = 0;             /* number of WAL files to keep, 0 keep all */
-int maxretries = 3;                /* number of retries on restore command */
-bool debug = false;                /* are we debugging? */
-bool triggered = false;            /* have we been triggered? */
-bool need_cleanup = false;     /* do we need to remove files from archive? */
+int            sleeptime = 5;      /* amount of time to sleep between file checks */
+int            waittime = -1;      /* how long we have been waiting, -1 no wait
+                                * yet */
+int            maxwaittime = 0;    /* how long are we prepared to wait for? */
+int            keepfiles = 0;      /* number of WAL files to keep, 0 keep all */
+int            maxretries = 3;     /* number of retries on restore command */
+bool       debug = false;      /* are we debugging? */
+bool       triggered = false;  /* have we been triggered? */
+bool       need_cleanup = false;       /* do we need to remove files from
+                                        * archive? */
 
 static volatile sig_atomic_t signaled = false;
 
-char *archiveLocation;       /* where to find the archive? */
-char *triggerPath;           /* where to find the trigger file? */
-char *xlogFilePath;              /* where we are going to restore to */
-char *nextWALFileName;       /* the file we need to get from archive */
-char *restartWALFileName;    /* the file from which we can restart restore */
-char *priorWALFileName;          /* the file we need to get from archive */
-char WALFilePath[MAXPGPATH];/* the file path including archive */
-char restoreCommand[MAXPGPATH]; /* run this to restore */
-char exclusiveCleanupFileName[MAXPGPATH];        /* the file we need to get from archive */
+char      *archiveLocation;    /* where to find the archive? */
+char      *triggerPath;        /* where to find the trigger file? */
+char      *xlogFilePath;       /* where we are going to restore to */
+char      *nextWALFileName;    /* the file we need to get from archive */
+char      *restartWALFileName; /* the file from which we can restart restore */
+char      *priorWALFileName;   /* the file we need to get from archive */
+char       WALFilePath[MAXPGPATH];     /* the file path including archive */
+char       restoreCommand[MAXPGPATH];  /* run this to restore */
+char       exclusiveCleanupFileName[MAXPGPATH];        /* the file we need to
+                                                        * get from archive */
 
 #define RESTORE_COMMAND_COPY 0
 #define RESTORE_COMMAND_LINK 1
-int restoreCommandType;         
+int            restoreCommandType;
 
 #define XLOG_DATA           0
 #define XLOG_HISTORY        1
 #define XLOG_BACKUP_LABEL   2
-int nextWALFileType;
+int            nextWALFileType;
 
 #define SET_RESTORE_COMMAND(cmd, arg1, arg2) \
    snprintf(restoreCommand, MAXPGPATH, cmd " \"%s\" \"%s\"", arg1, arg2)
@@ -86,21 +88,21 @@ struct stat stat_buf;
  * accessible directory. If you want to make other assumptions,
  * such as using a vendor-specific archive and access API, these
  * routines are the ones you'll need to change. You're
- *  enouraged to submit any changes to [email protected]
- *     or personally to the current maintainer. Those changes may be 
+ * enouraged to submit any changes to [email protected]
+ * or personally to the current maintainer. Those changes may be
  * folded in to later versions of this program.
  */
 
-#define XLOG_DATA_FNAME_LEN    24
+#define XLOG_DATA_FNAME_LEN        24
 /* Reworked from access/xlog_internal.h */
 #define XLogFileName(fname, tli, log, seg) \
    snprintf(fname, XLOG_DATA_FNAME_LEN + 1, "%08X%08X%08X", tli, log, seg)
 
 /*
- *  Initialize allows customized commands into the warm standby program.
+ * Initialize allows customized commands into the warm standby program.
  *
- *  As an example, and probably the common case, we use either
- *  cp/ln commands on *nix, or copy/move command on Windows.
+ * As an example, and probably the common case, we use either
+ * cp/ln commands on *nix, or copy/move command on Windows.
  *
  */
 static void
@@ -111,79 +113,79 @@ CustomizableInitialize(void)
    switch (restoreCommandType)
    {
        case RESTORE_COMMAND_LINK:
-           SET_RESTORE_COMMAND("mklink",WALFilePath, xlogFilePath);
+           SET_RESTORE_COMMAND("mklink", WALFilePath, xlogFilePath);
        case RESTORE_COMMAND_COPY:
        default:
-           SET_RESTORE_COMMAND("copy",WALFilePath, xlogFilePath);
+           SET_RESTORE_COMMAND("copy", WALFilePath, xlogFilePath);
            break;
-    }   
+   }
 #else
    snprintf(WALFilePath, MAXPGPATH, "%s/%s", archiveLocation, nextWALFileName);
    switch (restoreCommandType)
    {
        case RESTORE_COMMAND_LINK:
 #if HAVE_WORKING_LINK
-           SET_RESTORE_COMMAND("ln -s -f",WALFilePath, xlogFilePath);
+           SET_RESTORE_COMMAND("ln -s -f", WALFilePath, xlogFilePath);
            break;
 #endif
        case RESTORE_COMMAND_COPY:
        default:
-           SET_RESTORE_COMMAND("cp",WALFilePath, xlogFilePath);
+           SET_RESTORE_COMMAND("cp", WALFilePath, xlogFilePath);
            break;
-    }   
+   }
 #endif
 
    /*
-    * This code assumes that archiveLocation is a directory
-    * You may wish to add code to check for tape libraries, etc..
-    * So, since it is a directory, we use stat to test if its accessible
+    * This code assumes that archiveLocation is a directory You may wish to
+    * add code to check for tape libraries, etc.. So, since it is a
+    * directory, we use stat to test if its accessible
     */
    if (stat(archiveLocation, &stat_buf) != 0)
    {
-       fprintf(stderr, "pg_standby: archiveLocation \"%s\" does not exist\n", archiveLocation);
+       fprintf(stderr, "pg_standby: archiveLocation \"%s\" does not exist\n", archiveLocation);
        fflush(stderr);
-       exit(2);            
+       exit(2);
    }
 }
 
 /*
  * CustomizableNextWALFileReady()
- * 
+ *
  *   Is the requested file ready yet?
  */
-static bool 
+static bool
 CustomizableNextWALFileReady()
 {
    if (stat(WALFilePath, &stat_buf) == 0)
    {
        /*
-        * If its a backup file, return immediately
-        * If its a regular file return only if its the right size already
+        * If its a backup file, return immediately If its a regular file
+        * return only if its the right size already
         */
        if (strlen(nextWALFileName) > 24 &&
            strspn(nextWALFileName, "0123456789ABCDEF") == 24 &&
-           strcmp(nextWALFileName + strlen(nextWALFileName) - strlen(".backup"),
-                  ".backup") == 0)
+       strcmp(nextWALFileName + strlen(nextWALFileName) - strlen(".backup"),
+              ".backup") == 0)
        {
            nextWALFileType = XLOG_BACKUP_LABEL;
-               return true;
+           return true;
        }
-       else
-           if (stat_buf.st_size == XLOG_SEG_SIZE)
-           {
+       else if (stat_buf.st_size == XLOG_SEG_SIZE)
+       {
 #ifdef WIN32
-               /*
-                * Windows reports that the file has the right number of bytes
-                * even though the file is still being copied and cannot be
-                * opened by pg_standby yet. So we wait for sleeptime secs
-                * before attempting to restore. If that is not enough, we
-                * will rely on the retry/holdoff mechanism.
-                */
-               pg_usleep(sleeptime * 1000000L);
+
+           /*
+            * Windows reports that the file has the right number of bytes
+            * even though the file is still being copied and cannot be opened
+            * by pg_standby yet. So we wait for sleeptime secs before
+            * attempting to restore. If that is not enough, we will rely on
+            * the retry/holdoff mechanism.
+            */
+           pg_usleep(sleeptime * 1000000L);
 #endif
-               nextWALFileType = XLOG_DATA;
-               return true;
-           }
+           nextWALFileType = XLOG_DATA;
+           return true;
+       }
 
        /*
         * If still too small, wait until it is the correct size
@@ -192,10 +194,10 @@ CustomizableNextWALFileReady()
        {
            if (debug)
            {
-               fprintf(stderr, "file size greater than expected\n");
+               fprintf(stderr, "file size greater than expected\n");
                fflush(stderr);
            }
-           exit(3); 
+           exit(3);
        }
    }
 
@@ -212,35 +214,36 @@ CustomizableCleanupPriorWALFiles(void)
     */
    if (nextWALFileType == XLOG_DATA)
    {
-       int             rc;
-       DIR             *xldir;
-       struct dirent   *xlde;
+       int         rc;
+       DIR        *xldir;
+       struct dirent *xlde;
 
        /*
-        * Assume its OK to keep failing. The failure situation may change over
-        * time, so we'd rather keep going on the main processing than fail
-        * because we couldnt clean up yet.
+        * Assume its OK to keep failing. The failure situation may change
+        * over time, so we'd rather keep going on the main processing than
+        * fail because we couldnt clean up yet.
         */
        if ((xldir = opendir(archiveLocation)) != NULL)
        {
            while ((xlde = readdir(xldir)) != NULL)
            {
                /*
-                * We ignore the timeline part of the XLOG segment identifiers in
-                * deciding whether a segment is still needed.  This ensures that we
-                * won't prematurely remove a segment from a parent timeline. We could
-                * probably be a little more proactive about removing segments of
-                * non-parent timelines, but that would be a whole lot more
-                * complicated.
+                * We ignore the timeline part of the XLOG segment identifiers
+                * in deciding whether a segment is still needed.  This
+                * ensures that we won't prematurely remove a segment from a
+                * parent timeline. We could probably be a little more
+                * proactive about removing segments of non-parent timelines,
+                * but that would be a whole lot more complicated.
                 *
-                * We use the alphanumeric sorting property of the filenames to decide
-                * which ones are earlier than the exclusiveCleanupFileName file.
-                * Note that this means files are not removed in the order they were 
-                * originally written, in case this worries you.
+                * We use the alphanumeric sorting property of the filenames
+                * to decide which ones are earlier than the
+                * exclusiveCleanupFileName file. Note that this means files
+                * are not removed in the order they were originally written,
+                * in case this worries you.
                 */
                if (strlen(xlde->d_name) == XLOG_DATA_FNAME_LEN &&
                    strspn(xlde->d_name, "0123456789ABCDEF") == XLOG_DATA_FNAME_LEN &&
-                   strcmp(xlde->d_name + 8, exclusiveCleanupFileName + 8) < 0)
+                 strcmp(xlde->d_name + 8, exclusiveCleanupFileName + 8) < 0)
                {
 #ifdef WIN32
                    snprintf(WALFilePath, MAXPGPATH, "%s\\%s", archiveLocation, xlde->d_name);
@@ -249,7 +252,7 @@ CustomizableCleanupPriorWALFiles(void)
 #endif
 
                    if (debug)
-                       fprintf(stderr, "\nremoving \"%s\"", WALFilePath);
+                       fprintf(stderr, "\nremoving \"%s\"", WALFilePath);
 
                    rc = unlink(WALFilePath);
                    if (rc != 0)
@@ -264,7 +267,7 @@ CustomizableCleanupPriorWALFiles(void)
                fprintf(stderr, "\n");
        }
        else
-           fprintf(stderr, "pg_standby: archiveLocation \"%s\" open error\n", archiveLocation);
+           fprintf(stderr, "pg_standby: archiveLocation \"%s\" open error\n", archiveLocation);
 
        closedir(xldir);
        fflush(stderr);
@@ -278,19 +281,19 @@ CustomizableCleanupPriorWALFiles(void)
 
 /*
  * SetWALFileNameForCleanup()
- * 
+ *
  *   Set the earliest WAL filename that we want to keep on the archive
- *    and decide whether we need_cleanup
+ *   and decide whether we need_cleanup
  */
 static bool
 SetWALFileNameForCleanup(void)
 {
-   uint32          tli = 1,
-                   log = 0,
-                   seg = 0;
-   uint32          log_diff = 0,
-                   seg_diff = 0;
-   bool            cleanup = false;
+   uint32      tli = 1,
+               log = 0,
+               seg = 0;
+   uint32      log_diff = 0,
+               seg_diff = 0;
+   bool        cleanup = false;
 
    if (restartWALFileName)
    {
@@ -305,7 +308,7 @@ SetWALFileNameForCleanup(void)
        {
            log_diff = keepfiles / MaxSegmentsPerLogFile;
            seg_diff = keepfiles % MaxSegmentsPerLogFile;
-               if (seg_diff > seg)
+           if (seg_diff > seg)
            {
                log_diff++;
                seg = MaxSegmentsPerLogFile - seg_diff;
@@ -333,31 +336,30 @@ SetWALFileNameForCleanup(void)
 
 /*
  * CheckForExternalTrigger()
- * 
+ *
  *   Is there a trigger file?
  */
-static bool 
+static bool
 CheckForExternalTrigger(void)
 {
-   int rc;
+   int         rc;
 
    /*
-    *  Look for a trigger file, if that option has been selected
+    * Look for a trigger file, if that option has been selected
     *
-    *  We use stat() here because triggerPath is always a file
-    *  rather than potentially being in an archive
+    * We use stat() here because triggerPath is always a file rather than
+    * potentially being in an archive
     */
    if (triggerPath && stat(triggerPath, &stat_buf) == 0)
    {
-       fprintf(stderr, "trigger file found\n");
+       fprintf(stderr, "trigger file found\n");
        fflush(stderr);
 
        /*
-        * If trigger file found, we *must* delete it. Here's why:
-        * When recovery completes, we will be asked again
-        * for the same file from the archive using pg_standby
-        * so must remove trigger file so we can reload file again
-        * and come up correctly.
+        * If trigger file found, we *must* delete it. Here's why: When
+        * recovery completes, we will be asked again for the same file from
+        * the archive using pg_standby so must remove trigger file so we can
+        * reload file again and come up correctly.
         */
        rc = unlink(triggerPath);
        if (rc != 0)
@@ -374,14 +376,14 @@ CheckForExternalTrigger(void)
 
 /*
  * RestoreWALFileForRecovery()
- * 
+ *
  *   Perform the action required to restore the file from archive
  */
 static bool
 RestoreWALFileForRecovery(void)
 {
-   int rc = 0;
-   int numretries = 0;
+   int         rc = 0;
+   int         numretries = 0;
 
    if (debug)
    {
@@ -401,7 +403,7 @@ RestoreWALFileForRecovery(void)
            }
            return true;
        }
-        pg_usleep(numretries++ * sleeptime * 1000000L);
+       pg_usleep(numretries++ * sleeptime * 1000000L);
    }
 
    /*
@@ -441,13 +443,13 @@ sighandler(int sig)
 }
 
 /*------------ MAIN ----------------------------------------*/
-int 
+int
 main(int argc, char **argv)
 {
    int         c;
 
-   (void) signal(SIGINT,   sighandler);
-   (void) signal(SIGQUIT,  sighandler);
+   (void) signal(SIGINT, sighandler);
+   (void) signal(SIGQUIT, sighandler);
 
    while ((c = getopt(argc, argv, "cdk:lr:s:t:w:")) != -1)
    {
@@ -492,8 +494,8 @@ main(int argc, char **argv)
            case 't':           /* Trigger file */
                triggerPath = optarg;
                if (CheckForExternalTrigger())
-                   exit(1);     /* Normal exit, with non-zero */
-                   break;
+                   exit(1);    /* Normal exit, with non-zero */
+               break;
            case 'w':           /* Max wait time */
                maxwaittime = atoi(optarg);
                if (maxwaittime < 0)
@@ -510,7 +512,7 @@ main(int argc, char **argv)
        }
    }
 
-   /* 
+   /*
     * Parameter checking - after checking to see if trigger file present
     */
    if (argc == 1)
@@ -521,8 +523,8 @@ main(int argc, char **argv)
 
    /*
     * We will go to the archiveLocation to get nextWALFileName.
-    * nextWALFileName may not exist yet, which would not be an error,
-    * so we separate the archiveLocation and nextWALFileName so we can check
+    * nextWALFileName may not exist yet, which would not be an error, so we
+    * separate the archiveLocation and nextWALFileName so we can check
     * separately whether archiveLocation exists, if not that is an error
     */
    if (optind < argc)
@@ -532,7 +534,7 @@ main(int argc, char **argv)
    }
    else
    {
-       fprintf(stderr, "pg_standby: must specify archiveLocation\n");
+       fprintf(stderr, "pg_standby: must specify archiveLocation\n");
        usage();
        exit(2);
    }
@@ -544,7 +546,7 @@ main(int argc, char **argv)
    }
    else
    {
-       fprintf(stderr, "pg_standby: use %%f to specify nextWALFileName\n");
+       fprintf(stderr, "pg_standby: use %%f to specify nextWALFileName\n");
        usage();
        exit(2);
    }
@@ -556,7 +558,7 @@ main(int argc, char **argv)
    }
    else
    {
-       fprintf(stderr, "pg_standby: use %%p to specify xlogFilePath\n");
+       fprintf(stderr, "pg_standby: use %%p to specify xlogFilePath\n");
        usage();
        exit(2);
    }
@@ -573,14 +575,14 @@ main(int argc, char **argv)
 
    if (debug)
    {
-        fprintf(stderr, "\nTrigger file        : %s", triggerPath ? triggerPath : "<not set>");
-       fprintf(stderr, "\nWaiting for WAL file : %s", nextWALFileName);
-       fprintf(stderr, "\nWAL file path        : %s", WALFilePath);
-       fprintf(stderr, "\nRestoring to...      : %s", xlogFilePath);
-       fprintf(stderr, "\nSleep interval       : %d second%s", 
-                   sleeptime, (sleeptime > 1 ? "s" : " "));
-       fprintf(stderr, "\nMax wait interval    : %d %s", 
-                   maxwaittime, (maxwaittime > 0 ? "seconds" : "forever"));
+       fprintf(stderr, "\nTrigger file         : %s", triggerPath ? triggerPath : "<not set>");
+       fprintf(stderr, "\nWaiting for WAL file : %s", nextWALFileName);
+       fprintf(stderr, "\nWAL file path        : %s", WALFilePath);
+       fprintf(stderr, "\nRestoring to...      : %s", xlogFilePath);
+       fprintf(stderr, "\nSleep interval       : %d second%s",
+               sleeptime, (sleeptime > 1 ? "s" : " "));
+       fprintf(stderr, "\nMax wait interval    : %d %s",
+               maxwaittime, (maxwaittime > 0 ? "seconds" : "forever"));
        fprintf(stderr, "\nCommand for restore  : %s", restoreCommand);
        fprintf(stderr, "\nKeep archive history : %s and later", exclusiveCleanupFileName);
        fflush(stderr);
@@ -609,20 +611,20 @@ main(int argc, char **argv)
        }
    }
 
-   /* 
+   /*
     * Main wait loop
     */
    while (!CustomizableNextWALFileReady() && !triggered)
    {
        if (sleeptime <= 60)
-           pg_usleep(sleeptime * 1000000L);
+           pg_usleep(sleeptime * 1000000L);
 
        if (signaled)
        {
            triggered = true;
            if (debug)
            {
-               fprintf(stderr, "\nsignaled to exit\n");
+               fprintf(stderr, "\nsignaled to exit\n");
                fflush(stderr);
            }
        }
@@ -631,36 +633,34 @@ main(int argc, char **argv)
 
            if (debug)
            {
-               fprintf(stderr, "\nWAL file not present yet.");
+               fprintf(stderr, "\nWAL file not present yet.");
                if (triggerPath)
-                   fprintf(stderr, " Checking for trigger file...");
+                   fprintf(stderr, " Checking for trigger file...");
                fflush(stderr);
            }
 
            waittime += sleeptime;
-           
+
            if (!triggered && (CheckForExternalTrigger() || (waittime >= maxwaittime && maxwaittime > 0)))
            {
                triggered = true;
                if (debug && waittime >= maxwaittime && maxwaittime > 0)
-                   fprintf(stderr, "\nTimed out after %d seconds\n",waittime);
+                   fprintf(stderr, "\nTimed out after %d seconds\n", waittime);
            }
        }
    }
 
-   /* 
-    * Action on exit 
+   /*
+    * Action on exit
     */
    if (triggered)
-       exit(1);            /* Normal exit, with non-zero */
-
-   /* 
-    * Once we have restored this file successfully we
-    * can remove some prior WAL files.
-    * If this restore fails we musn't remove any
-    * file because some of them will be requested again
-    * immediately after the failed restore, or when
-    * we restart recovery.
+       exit(1);                /* Normal exit, with non-zero */
+
+   /*
+    * Once we have restored this file successfully we can remove some prior
+    * WAL files. If this restore fails we musn't remove any file because some
+    * of them will be requested again immediately after the failed restore,
+    * or when we restart recovery.
     */
    if (RestoreWALFileForRecovery() && need_cleanup)
        CustomizableCleanupPriorWALFiles();
index ed2ba0eae759e9f70c770c405b0bba997fc910ff..33d005ae9a0aabbfa71c07b0729dc643d2d1dfc6 100644 (file)
@@ -16,23 +16,23 @@ Datum       gin_trgm_consistent(PG_FUNCTION_ARGS);
 Datum
 gin_extract_trgm(PG_FUNCTION_ARGS)
 {
-   text        *val = (text *) PG_GETARG_TEXT_P(0);
-   int32       *nentries = (int32 *) PG_GETARG_POINTER(1);
-   Datum       *entries = NULL;
-   TRGM        *trg;
+   text       *val = (text *) PG_GETARG_TEXT_P(0);
+   int32      *nentries = (int32 *) PG_GETARG_POINTER(1);
+   Datum      *entries = NULL;
+   TRGM       *trg;
    int4        trglen;
-   
+
    *nentries = 0;
-   
+
    trg = generate_trgm(VARDATA(val), VARSIZE(val) - VARHDRSZ);
    trglen = ARRNELEM(trg);
-   
+
    if (trglen > 0)
    {
-       trgm    *ptr;
-       int4    i = 0,
-               item;
-       
+       trgm       *ptr;
+       int4        i = 0,
+                   item;
+
        *nentries = (int32) trglen;
        entries = (Datum *) palloc(sizeof(Datum) * trglen);
 
@@ -41,7 +41,7 @@ gin_extract_trgm(PG_FUNCTION_ARGS)
        {
            item = TRGMINT(ptr);
            entries[i++] = Int32GetDatum(item);
-           
+
            ptr++;
        }
    }
@@ -52,20 +52,20 @@ gin_extract_trgm(PG_FUNCTION_ARGS)
 Datum
 gin_trgm_consistent(PG_FUNCTION_ARGS)
 {
-   bool        *check = (bool *) PG_GETARG_POINTER(0);
-   text        *query = (text *) PG_GETARG_TEXT_P(2);
+   bool       *check = (bool *) PG_GETARG_POINTER(0);
+   text       *query = (text *) PG_GETARG_TEXT_P(2);
    bool        res = FALSE;
-   TRGM        *trg;
+   TRGM       *trg;
    int4        i,
                trglen,
                ntrue = 0;
-   
+
    trg = generate_trgm(VARDATA(query), VARSIZE(query) - VARHDRSZ);
    trglen = ARRNELEM(trg);
-   
+
    for (i = 0; i < trglen; i++)
        if (check[i])
-           ntrue ++;
+           ntrue++;
 
 #ifdef DIVUNION
    res = (trglen == ntrue) ? true : ((((((float4) ntrue) / ((float4) (trglen - ntrue)))) >= trgm_limit) ? true : false);
index a5e57ce9550ac8ef2c179de0dbd5da047cf9d30a..5fe48b96a3d642fcadd0de6bc0dd1400c73f2d75 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $PostgreSQL: pgsql/contrib/pgbench/pgbench.c,v 1.73 2007/10/22 10:40:47 mha Exp $
+ * $PostgreSQL: pgsql/contrib/pgbench/pgbench.c,v 1.74 2007/11/15 21:14:31 momjian Exp $
  *
  * pgbench: a simple benchmark program for PostgreSQL
  * written by Tatsuo Ishii
@@ -53,9 +53,9 @@ extern int    optind;
 
 /* max number of clients allowed */
 #ifdef FD_SETSIZE
-#define MAXCLIENTS     (FD_SETSIZE - 10)
+#define MAXCLIENTS (FD_SETSIZE - 10)
 #else
-#define MAXCLIENTS     1024
+#define MAXCLIENTS 1024
 #endif
 
 int            nclients = 1;       /* default number of simulated clients */
@@ -201,7 +201,7 @@ getrand(int min, int max)
 
 /* call PQexec() and exit() on failure */
 static void
-executeStatement(PGconn *con, const charsql)
+executeStatement(PGconn *con, const char *sql)
 {
    PGresult   *res;
 
@@ -262,7 +262,7 @@ discard_response(CState * state)
 
 /* check to see if the SQL result was good */
 static int
-check(CState *state, PGresult *res, int n)
+check(CState * state, PGresult *res, int n)
 {
    CState     *st = &state[n];
 
@@ -275,7 +275,7 @@ check(CState *state, PGresult *res, int n)
        default:
            fprintf(stderr, "Client %d aborted in state %d: %s",
                    n, st->state, PQerrorMessage(st->con));
-           remains--;              /* I've aborted */
+           remains--;          /* I've aborted */
            PQfinish(st->con);
            st->con = NULL;
            return (-1);
@@ -452,12 +452,12 @@ top:
 
    if (st->sleeping)
    {                           /* are we sleeping? */
-       int             usec;
-       struct timeval  now;
+       int         usec;
+       struct timeval now;
 
        gettimeofday(&now, NULL);
        usec = (st->until.tv_sec - now.tv_sec) * 1000000 +
-               st->until.tv_usec - now.tv_usec;
+           st->until.tv_usec - now.tv_usec;
        if (usec <= 0)
            st->sleeping = 0;   /* Done sleeping, go ahead with next command */
        else
@@ -798,11 +798,11 @@ init(void)
        "drop table if exists accounts",
        "create table accounts(aid int not null,bid int,abalance int,filler char(84)) with (fillfactor=%d)",
        "drop table if exists history",
-       "create table history(tid int,bid int,aid int,delta int,mtime timestamp,filler char(22))"};
+   "create table history(tid int,bid int,aid int,delta int,mtime timestamp,filler char(22))"};
    static char *DDLAFTERs[] = {
        "alter table branches add primary key (bid)",
        "alter table tellers add primary key (tid)",
-       "alter table accounts add primary key (aid)"};
+   "alter table accounts add primary key (aid)"};
 
 
    char        sql[256];
@@ -821,7 +821,8 @@ init(void)
            (strstr(DDLs[i], "create table tellers") == DDLs[i]) ||
            (strstr(DDLs[i], "create table accounts") == DDLs[i]))
        {
-           char ddl_stmt[128];
+           char        ddl_stmt[128];
+
            snprintf(ddl_stmt, 128, DDLs[i], fillfactor);
            executeStatement(con, ddl_stmt);
            continue;
@@ -990,7 +991,7 @@ process_commands(char *buf)
                    pg_strcasecmp(my_commands->argv[2], "ms") != 0 &&
                    pg_strcasecmp(my_commands->argv[2], "s"))
                {
-                   fprintf(stderr, "%s: unknown time unit '%s' - must be us, ms or s\n", 
+                   fprintf(stderr, "%s: unknown time unit '%s' - must be us, ms or s\n",
                            my_commands->argv[0], my_commands->argv[2]);
                    return NULL;
                }
@@ -1204,7 +1205,7 @@ main(int argc, char **argv)
    int         c;
    int         is_init_mode = 0;       /* initialize mode? */
    int         is_no_vacuum = 0;       /* no vacuum at all before testing? */
-   int         do_vacuum_accounts = 0; /* do vacuum accounts before testing? */
+   int         do_vacuum_accounts = 0; /* do vacuum accounts before testing? */
    int         debug = 0;      /* debug flag */
    int         ttype = 0;      /* transaction type. 0: TPC-B, 1: SELECT only,
                                 * 2: skip update of branches and tellers */
@@ -1308,7 +1309,7 @@ main(int argc, char **argv)
                    fprintf(stderr, "Use limit/ulimit to increase the limit before using pgbench.\n");
                    exit(1);
                }
-#endif /* HAVE_GETRLIMIT */
+#endif   /* HAVE_GETRLIMIT */
                break;
            case 'C':
                is_connect = 1;
@@ -1615,8 +1616,8 @@ main(int argc, char **argv)
 
            if (state[i].sleeping)
            {
-               int     this_usec;
-               int     sock = PQsocket(state[i].con);
+               int         this_usec;
+               int         sock = PQsocket(state[i].con);
 
                if (min_usec < 0)
                {
@@ -1625,7 +1626,7 @@ main(int argc, char **argv)
                }
 
                this_usec = (state[i].until.tv_sec - now.tv_sec) * 1000000 +
-                           state[i].until.tv_usec - now.tv_usec;
+                   state[i].until.tv_usec - now.tv_usec;
 
                if (this_usec > 0 && (min_usec == 0 || this_usec < min_usec))
                    min_usec = this_usec;
@@ -1657,11 +1658,11 @@ main(int argc, char **argv)
                timeout.tv_usec = min_usec % 1000000;
 
                nsocks = select(maxsock + 1, &input_mask, (fd_set *) NULL,
-                             (fd_set *) NULL, &timeout);
+                               (fd_set *) NULL, &timeout);
            }
            else
                nsocks = select(maxsock + 1, &input_mask, (fd_set *) NULL,
-                             (fd_set *) NULL, (struct timeval *) NULL);
+                               (fd_set *) NULL, (struct timeval *) NULL);
            if (nsocks < 0)
            {
                if (errno == EINTR)
index 93a6183fcad35e5b2ff1e05daeeb987fd8770b56..7138ffa90332e8fc5f97902326886aae6cc24176 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Butchered version of sshblowf.c from putty-0.59.
  *
- * $PostgreSQL: pgsql/contrib/pgcrypto/blf.c,v 1.8 2007/03/28 22:48:58 neilc Exp $
+ * $PostgreSQL: pgsql/contrib/pgcrypto/blf.c,v 1.9 2007/11/15 21:14:31 momjian Exp $
  */
 
 /*
@@ -251,7 +251,7 @@ static const uint32 sbox3[] = {
 
 static void
 blowfish_encrypt(uint32 xL, uint32 xR, uint32 *output,
-                BlowfishContext *ctx)
+                BlowfishContext * ctx)
 {
    uint32     *S0 = ctx->S0;
    uint32     *S1 = ctx->S1;
@@ -285,7 +285,7 @@ blowfish_encrypt(uint32 xL, uint32 xR, uint32 *output,
 
 static void
 blowfish_decrypt(uint32 xL, uint32 xR, uint32 *output,
-                BlowfishContext *ctx)
+                BlowfishContext * ctx)
 {
    uint32     *S0 = ctx->S0;
    uint32     *S1 = ctx->S1;
@@ -318,7 +318,7 @@ blowfish_decrypt(uint32 xL, uint32 xR, uint32 *output,
 }
 
 void
-blowfish_encrypt_cbc(uint8 *blk, int len, BlowfishContext *ctx)
+blowfish_encrypt_cbc(uint8 *blk, int len, BlowfishContext * ctx)
 {
    uint32      xL,
                xR,
@@ -351,7 +351,7 @@ blowfish_encrypt_cbc(uint8 *blk, int len, BlowfishContext *ctx)
 }
 
 void
-blowfish_decrypt_cbc(uint8 *blk, int len, BlowfishContext *ctx)
+blowfish_decrypt_cbc(uint8 *blk, int len, BlowfishContext * ctx)
 {
    uint32      xL,
                xR,
@@ -384,7 +384,7 @@ blowfish_decrypt_cbc(uint8 *blk, int len, BlowfishContext *ctx)
 }
 
 void
-blowfish_encrypt_ecb(uint8 *blk, int len, BlowfishContext *ctx)
+blowfish_encrypt_ecb(uint8 *blk, int len, BlowfishContext * ctx)
 {
    uint32      xL,
                xR,
@@ -405,7 +405,7 @@ blowfish_encrypt_ecb(uint8 *blk, int len, BlowfishContext *ctx)
 }
 
 void
-blowfish_decrypt_ecb(uint8 *blk, int len, BlowfishContext *ctx)
+blowfish_decrypt_ecb(uint8 *blk, int len, BlowfishContext * ctx)
 {
    uint32      xL,
                xR,
@@ -426,7 +426,7 @@ blowfish_decrypt_ecb(uint8 *blk, int len, BlowfishContext *ctx)
 }
 
 void
-blowfish_setkey(BlowfishContext *ctx,
+blowfish_setkey(BlowfishContext * ctx,
                const uint8 *key, short keybytes)
 {
    uint32     *S0 = ctx->S0;
@@ -437,7 +437,7 @@ blowfish_setkey(BlowfishContext *ctx,
    uint32      str[2];
    int         i;
 
-   Assert(keybytes > 0 && keybytes <= (448/8));
+   Assert(keybytes > 0 && keybytes <= (448 / 8));
 
    for (i = 0; i < 18; i++)
    {
@@ -492,9 +492,8 @@ blowfish_setkey(BlowfishContext *ctx,
 }
 
 void
-blowfish_setiv(BlowfishContext *ctx, const uint8 *iv)
+blowfish_setiv(BlowfishContext * ctx, const uint8 *iv)
 {
    ctx->iv0 = GET_32BIT_MSB_FIRST(iv);
    ctx->iv1 = GET_32BIT_MSB_FIRST(iv + 4);
 }
-
index 7e11dc9aeb4853a2cc6695379170844ebbad5e63..6e280d8754fee3cc6dff9c99304092e2215decf2 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/contrib/pgcrypto/blf.h,v 1.6 2007/03/28 22:48:58 neilc Exp $ */
+/* $PostgreSQL: pgsql/contrib/pgcrypto/blf.h,v 1.7 2007/11/15 21:14:31 momjian Exp $ */
 /*
  * PuTTY is copyright 1997-2007 Simon Tatham.
  *
@@ -35,14 +35,12 @@ typedef struct
                S3[256],
                P[18];
    uint32      iv0,
-               iv1;            /* for CBC mode */
-} BlowfishContext;
-
-void blowfish_setkey(BlowfishContext *ctx, const uint8 *key, short keybytes);
-void blowfish_setiv(BlowfishContext *ctx, const uint8 *iv);
-void blowfish_encrypt_cbc(uint8 *blk, int len, BlowfishContext *ctx);
-void blowfish_decrypt_cbc(uint8 *blk, int len, BlowfishContext *ctx);
-void blowfish_encrypt_ecb(uint8 *blk, int len, BlowfishContext *ctx);
-void blowfish_decrypt_ecb(uint8 *blk, int len, BlowfishContext *ctx);
-
+               iv1;            /* for CBC mode */
+}  BlowfishContext;
 
+void       blowfish_setkey(BlowfishContext * ctx, const uint8 *key, short keybytes);
+void       blowfish_setiv(BlowfishContext * ctx, const uint8 *iv);
+void       blowfish_encrypt_cbc(uint8 *blk, int len, BlowfishContext * ctx);
+void       blowfish_decrypt_cbc(uint8 *blk, int len, BlowfishContext * ctx);
+void       blowfish_encrypt_ecb(uint8 *blk, int len, BlowfishContext * ctx);
+void       blowfish_decrypt_ecb(uint8 *blk, int len, BlowfishContext * ctx);
index f951f2c411cfee210344a64137ae88c971c118b2..84b4d758af16f5d65060de1ae72d84a551877dad 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $PostgreSQL: pgsql/contrib/pgcrypto/crypt-blowfish.c,v 1.12 2007/04/06 05:36:50 tgl Exp $
+ * $PostgreSQL: pgsql/contrib/pgcrypto/crypt-blowfish.c,v 1.13 2007/11/15 21:14:31 momjian Exp $
  *
  * This code comes from John the Ripper password cracker, with reentrant
  * and crypt(3) interfaces added, but optimizations specific to password
@@ -436,7 +436,7 @@ BF_encode(char *dst, const BF_word * src, int size)
 }
 
 static void
-BF_swap(BF_word *x, int count)
+BF_swap(BF_word * x, int count)
 {
    /* Swap on little-endian hardware, else do nothing */
 #ifndef WORDS_BIGENDIAN
index f730b320506a476dea59e777b8ce5d6038e170de..5bc335e582021e3b38912aa4b32a027ba7640e99 100644 (file)
@@ -26,7 +26,7 @@
   CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
   SOFTWARE.
  */
-/* $PostgreSQL: pgsql/contrib/pgcrypto/imath.h,v 1.5 2006/10/04 00:29:46 momjian Exp $ */
+/* $PostgreSQL: pgsql/contrib/pgcrypto/imath.h,v 1.6 2007/11/15 21:14:31 momjian Exp $ */
 
 #ifndef IMATH_H_
 #define IMATH_H_
@@ -115,11 +115,12 @@ mp_result mp_int_mul(mp_int a, mp_int b, mp_int c);   /* c = a * b */
 mp_result  mp_int_mul_value(mp_int a, int value, mp_int c);
 mp_result  mp_int_mul_pow2(mp_int a, int p2, mp_int c);
 mp_result  mp_int_sqr(mp_int a, mp_int c);     /* c = a * a */
+
 mp_result
-mp_int_div(mp_int a, mp_int b, /* q = a / b */
+mp_int_div(mp_int a, mp_int b,         /* q = a / b */
           mp_int q, mp_int r); /* r = a % b */
 mp_result
-mp_int_div_value(mp_int a, int value,  /* q = a / value */
+mp_int_div_value(mp_int a, int value,          /* q = a / value */
                 mp_int q, int *r);     /* r = a % value */
 mp_result
 mp_int_div_pow2(mp_int a, int p2,      /* q = a / 2^p2  */
index 24db7c0cc83337680251d1bb58a50c6f4a18dc16..594308673bc513bd412432ae0d2663358542ff3c 100644 (file)
@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $PostgreSQL: pgsql/contrib/pgcrypto/internal.c,v 1.26 2007/03/28 22:48:58 neilc Exp $
+ * $PostgreSQL: pgsql/contrib/pgcrypto/internal.c,v 1.27 2007/11/15 21:14:31 momjian Exp $
  */
 
 #include "postgres.h"
@@ -251,7 +251,7 @@ struct int_ctx
    uint8       iv[INT_MAX_IV];
    union
    {
-       BlowfishContext     bf;
+       BlowfishContext bf;
        rijndael_ctx rj;
    }           ctx;
    unsigned    keylen;
@@ -426,7 +426,7 @@ bf_block_size(PX_Cipher * c)
 static unsigned
 bf_key_size(PX_Cipher * c)
 {
-   return 448/8;
+   return 448 / 8;
 }
 
 static unsigned
index 10df87f2bf5af21ab89c6476e982d6c97074ca82..0f46580005d8476100dfe94bb9c9165afa74c0f5 100644 (file)
@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $PostgreSQL: pgsql/contrib/pgcrypto/openssl.c,v 1.31 2007/09/29 02:18:15 tgl Exp $
+ * $PostgreSQL: pgsql/contrib/pgcrypto/openssl.c,v 1.32 2007/11/15 21:14:31 momjian Exp $
  */
 
 #include "postgres.h"
@@ -98,10 +98,13 @@ static void
 AES_cbc_encrypt(const uint8 *src, uint8 *dst, int len, AES_KEY *ctx, uint8 *iv, int enc)
 {
    memcpy(dst, src, len);
-   if (enc) {
+   if (enc)
+   {
        aes_cbc_encrypt(ctx, iv, dst, len);
        memcpy(iv, dst + len - 16, 16);
-   } else {
+   }
+   else
+   {
        aes_cbc_decrypt(ctx, iv, dst, len);
        memcpy(iv, src + len - 16, 16);
    }
@@ -394,26 +397,27 @@ static int
 bf_check_supported_key_len(void)
 {
    static const uint8 key[56] = {
-       0xf0,0xe1,0xd2,0xc3,0xb4,0xa5,0x96,0x87,0x78,0x69,
-       0x5a,0x4b,0x3c,0x2d,0x1e,0x0f,0x00,0x11,0x22,0x33,
-       0x44,0x55,0x66,0x77,0x04,0x68,0x91,0x04,0xc2,0xfd,
-       0x3b,0x2f,0x58,0x40,0x23,0x64,0x1a,0xba,0x61,0x76,
-       0x1f,0x1f,0x1f,0x1f,0x0e,0x0e,0x0e,0x0e,0xff,0xff,
-       0xff,0xff,0xff,0xff,0xff,0xff
+       0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87, 0x78, 0x69,
+       0x5a, 0x4b, 0x3c, 0x2d, 0x1e, 0x0f, 0x00, 0x11, 0x22, 0x33,
+       0x44, 0x55, 0x66, 0x77, 0x04, 0x68, 0x91, 0x04, 0xc2, 0xfd,
+       0x3b, 0x2f, 0x58, 0x40, 0x23, 0x64, 0x1a, 0xba, 0x61, 0x76,
+       0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x0e, 0x0e, 0x0e, 0xff, 0xff,
+       0xff, 0xff, 0xff, 0xff, 0xff, 0xff
    };
 
-   static const uint8 data[8] = {0xfe,0xdc,0xba,0x98,0x76,0x54,0x32,0x10};
-   static const uint8 res[8] = {0xc0,0x45,0x04,0x01,0x2e,0x4e,0x1f,0x53};
+   static const uint8 data[8] = {0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10};
+   static const uint8 res[8] = {0xc0, 0x45, 0x04, 0x01, 0x2e, 0x4e, 0x1f, 0x53};
    static uint8 out[8];
 
-   BF_KEY bf_key;
+   BF_KEY      bf_key;
 
    /* encrypt with 448bits key and verify output */
    BF_set_key(&bf_key, 56, key);
    BF_ecb_encrypt(data, out, &bf_key, BF_ENCRYPT);
 
-   if (memcmp(out, res, 8) != 0)   
-       return 0;   /* Output does not match -> strong cipher is not supported */ 
+   if (memcmp(out, res, 8) != 0)
+       return 0;               /* Output does not match -> strong cipher is
+                                * not supported */
    return 1;
 }
 
@@ -421,18 +425,19 @@ static int
 bf_init(PX_Cipher * c, const uint8 *key, unsigned klen, const uint8 *iv)
 {
    ossldata   *od = c->ptr;
-   static int bf_is_strong = -1;
+   static int  bf_is_strong = -1;
 
    /*
-    * Test if key len is supported. BF_set_key silently cut large keys and it could be
-    * be a problem when user transfer crypted data from one server to another.
+    * Test if key len is supported. BF_set_key silently cut large keys and it
+    * could be be a problem when user transfer crypted data from one server
+    * to another.
     */
-   
-   ifbf_is_strong == -1)
+
+   if (bf_is_strong == -1)
        bf_is_strong = bf_check_supported_key_len();
 
-   if( !bf_is_strong && klen>16 )
-       return PXE_KEY_TOO_BIG; 
+   if (!bf_is_strong && klen > 16)
+       return PXE_KEY_TOO_BIG;
 
    /* Key len is supported. We can use it. */
    BF_set_key(&od->u.bf.key, klen, key);
@@ -750,13 +755,14 @@ ossl_aes_init(PX_Cipher * c, const uint8 *key, unsigned klen, const uint8 *iv)
 static int
 ossl_aes_key_init(ossldata * od, int type)
 {
-   int err;
+   int         err;
+
    /*
-    * Strong key support could be missing on some openssl installations.
-    * We must check return value from set key function.
-    */ 
+    * Strong key support could be missing on some openssl installations. We
+    * must check return value from set key function.
+    */
    if (type == AES_ENCRYPT)
-       err = AES_set_encrypt_key(od->key, od->klen * 8, &od->u.aes_key);
+       err = AES_set_encrypt_key(od->key, od->klen * 8, &od->u.aes_key);
    else
        err = AES_set_decrypt_key(od->key, od->klen * 8, &od->u.aes_key);
 
@@ -776,7 +782,7 @@ ossl_aes_ecb_encrypt(PX_Cipher * c, const uint8 *data, unsigned dlen,
    unsigned    bs = gen_ossl_block_size(c);
    ossldata   *od = c->ptr;
    const uint8 *end = data + dlen - bs;
-   int err;
+   int         err;
 
    if (!od->init)
        if ((err = ossl_aes_key_init(od, AES_ENCRYPT)) != 0)
@@ -794,7 +800,7 @@ ossl_aes_ecb_decrypt(PX_Cipher * c, const uint8 *data, unsigned dlen,
    unsigned    bs = gen_ossl_block_size(c);
    ossldata   *od = c->ptr;
    const uint8 *end = data + dlen - bs;
-   int err;
+   int         err;
 
    if (!od->init)
        if ((err = ossl_aes_key_init(od, AES_DECRYPT)) != 0)
@@ -810,12 +816,12 @@ ossl_aes_cbc_encrypt(PX_Cipher * c, const uint8 *data, unsigned dlen,
                     uint8 *res)
 {
    ossldata   *od = c->ptr;
-   int err;
+   int         err;
 
    if (!od->init)
        if ((err = ossl_aes_key_init(od, AES_ENCRYPT)) != 0)
            return err;
-   
+
    AES_cbc_encrypt(data, res, dlen, &od->u.aes_key, od->iv, AES_ENCRYPT);
    return 0;
 }
@@ -825,7 +831,7 @@ ossl_aes_cbc_decrypt(PX_Cipher * c, const uint8 *data, unsigned dlen,
                     uint8 *res)
 {
    ossldata   *od = c->ptr;
-   int err;
+   int         err;
 
    if (!od->init)
        if ((err = ossl_aes_key_init(od, AES_DECRYPT)) != 0)
index 2942edf2ad1677a2e546c5dd4ffb8e4411f48bdd..9d2f61ed8ed3163304cc6e584541a61d13e420bb 100644 (file)
@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $PostgreSQL: pgsql/contrib/pgcrypto/pgp-compress.c,v 1.6 2007/01/14 20:55:14 alvherre Exp $
+ * $PostgreSQL: pgsql/contrib/pgcrypto/pgp-compress.c,v 1.7 2007/11/15 21:14:31 momjian Exp $
  */
 
 #include "postgres.h"
@@ -312,7 +312,6 @@ pgp_decompress_filter(PullFilter ** res, PGP_Context * ctx, PullFilter * src)
 {
    return pullf_create(res, &decompress_filter, ctx, src);
 }
-
 #else                          /* !HAVE_ZLIB */
 
 int
index 81222873b698cc033793a514f76e698697b6a0a8..d1b22d7ec7fc3a51359015b9aa025715d2fa62c1 100644 (file)
@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $PostgreSQL: pgsql/contrib/pgcrypto/px.c,v 1.16 2007/08/23 16:15:51 tgl Exp $
+ * $PostgreSQL: pgsql/contrib/pgcrypto/px.c,v 1.17 2007/11/15 21:14:31 momjian Exp $
  */
 
 #include "postgres.h"
@@ -286,7 +286,7 @@ combo_decrypt(PX_Combo * cx, const uint8 *data, unsigned dlen,
        /* with padding, empty ciphertext is not allowed */
        if (cx->padding)
            return PXE_DECRYPT_FAILED;
-       
+
        /* without padding, report empty result */
        *rlen = 0;
        return 0;
index e25f35acdef76792940243705d2a57a94c9c59ee..c2e9da965b9ec7a4bf633d0d70b8ee9edabec7fa 100644 (file)
@@ -33,7 +33,7 @@
  *
  * $From: sha2.c,v 1.1 2001/11/08 00:01:51 adg Exp adg $
  *
- * $PostgreSQL: pgsql/contrib/pgcrypto/sha2.c,v 1.9 2007/04/06 05:36:50 tgl Exp $
+ * $PostgreSQL: pgsql/contrib/pgcrypto/sha2.c,v 1.10 2007/11/15 21:14:31 momjian Exp $
  */
 
 #include "postgres.h"
@@ -78,7 +78,7 @@
    (x) = ((tmp & 0xffff0000ffff0000ULL) >> 16) | \
          ((tmp & 0x0000ffff0000ffffULL) << 16); \
 }
-#endif /* not bigendian */
+#endif   /* not bigendian */
 
 /*
  * Macro for incrementally adding the unsigned 64-bit integer n to the
index 3018b6aedd1c54e7e42b9c7c576245243c3163ac..3cd31478956f2c6bd5e353f085c60b1d3f0faacb 100644 (file)
@@ -159,16 +159,17 @@ pgstatindex(PG_FUNCTION_ARGS)
 
        else if (P_ISLEAF(opaque))
        {
-           int max_avail;
-           max_avail = BLCKSZ - (BLCKSZ - ((PageHeader)page)->pd_special + SizeOfPageHeaderData);
+           int         max_avail;
+
+           max_avail = BLCKSZ - (BLCKSZ - ((PageHeader) page)->pd_special + SizeOfPageHeaderData);
            indexStat.max_avail += max_avail;
            indexStat.free_space += PageGetFreeSpace(page);
 
            indexStat.leaf_pages++;
 
            /*
-            * If the next leaf is on an earlier block, it
-            * means a fragmentation.
+            * If the next leaf is on an earlier block, it means a
+            * fragmentation.
             */
            if (opaque->btpo_next != P_NONE && opaque->btpo_next < blkno)
                indexStat.fragments++;
index 22dc2f2e0ebd8fb056cfb94ac8fcbaf283cf0c4d..fd7cafea4b5755a3f78be76cf39da86e0c40b4ef 100644 (file)
@@ -552,8 +552,8 @@ crosstab(PG_FUNCTION_ARGS)
                    xpstrdup(values[0], rowid);
 
                    /*
-                    * Check to see if the rowid is the same as that of the last
-                    * tuple sent -- if so, skip this tuple entirely
+                    * Check to see if the rowid is the same as that of the
+                    * last tuple sent -- if so, skip this tuple entirely
                     */
                    if (!firstpass && xstreq(lastrowid, rowid))
                    {
@@ -563,8 +563,8 @@ crosstab(PG_FUNCTION_ARGS)
                }
 
                /*
-                * If rowid hasn't changed on us, continue building the
-                * ouput tuple.
+                * If rowid hasn't changed on us, continue building the ouput
+                * tuple.
                 */
                if (xstreq(rowid, values[0]))
                {
index 728bf4098fe9ab1decb0857a5431c11a9d39cb60..784d2d43ad02606f311cfd3f00efb277f90bf77f 100644 (file)
@@ -6,7 +6,7 @@
  * Copyright (c) 2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/contrib/test_parser/test_parser.c,v 1.1 2007/10/15 21:36:50 tgl Exp $
+ *   $PostgreSQL: pgsql/contrib/test_parser/test_parser.c,v 1.2 2007/11/15 21:14:31 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -22,40 +22,44 @@ PG_MODULE_MAGIC;
  */
 
 /* self-defined type */
-typedef struct {
-   char *  buffer; /* text to parse */
-   int     len;    /* length of the text in buffer */
-   int     pos;    /* position of the parser */
-} ParserState;
+typedef struct
+{
+   char       *buffer;         /* text to parse */
+   int         len;            /* length of the text in buffer */
+   int         pos;            /* position of the parser */
+}  ParserState;
 
 /* copy-paste from wparser.h of tsearch2 */
-typedef struct {
-   int     lexid;
-   char    *alias;
-   char    *descr;
-} LexDescr;
+typedef struct
+{
+   int         lexid;
+   char       *alias;
+   char       *descr;
+}  LexDescr;
 
 /*
  * prototypes
  */
 PG_FUNCTION_INFO_V1(testprs_start);
-Datum testprs_start(PG_FUNCTION_ARGS);
+Datum      testprs_start(PG_FUNCTION_ARGS);
 
 PG_FUNCTION_INFO_V1(testprs_getlexeme);
-Datum testprs_getlexeme(PG_FUNCTION_ARGS);
+Datum      testprs_getlexeme(PG_FUNCTION_ARGS);
 
 PG_FUNCTION_INFO_V1(testprs_end);
-Datum testprs_end(PG_FUNCTION_ARGS);
+Datum      testprs_end(PG_FUNCTION_ARGS);
 
 PG_FUNCTION_INFO_V1(testprs_lextype);
-Datum testprs_lextype(PG_FUNCTION_ARGS);
+Datum      testprs_lextype(PG_FUNCTION_ARGS);
 
 /*
  * functions
  */
-Datum testprs_start(PG_FUNCTION_ARGS)
+Datum
+testprs_start(PG_FUNCTION_ARGS)
 {
    ParserState *pst = (ParserState *) palloc0(sizeof(ParserState));
+
    pst->buffer = (char *) PG_GETARG_POINTER(0);
    pst->len = PG_GETARG_INT32(1);
    pst->pos = 0;
@@ -63,15 +67,16 @@ Datum testprs_start(PG_FUNCTION_ARGS)
    PG_RETURN_POINTER(pst);
 }
 
-Datum testprs_getlexeme(PG_FUNCTION_ARGS)
+Datum
+testprs_getlexeme(PG_FUNCTION_ARGS)
 {
-   ParserState *pst   = (ParserState *) PG_GETARG_POINTER(0);
-   char        **t    = (char **) PG_GETARG_POINTER(1);
-   int         *tlen  = (int *) PG_GETARG_POINTER(2);
+   ParserState *pst = (ParserState *) PG_GETARG_POINTER(0);
+   char      **t = (char **) PG_GETARG_POINTER(1);
+   int        *tlen = (int *) PG_GETARG_POINTER(2);
    int         type;
 
    *tlen = pst->pos;
-   *t = pst->buffer +  pst->pos;
+   *t = pst->buffer + pst->pos;
 
    if ((pst->buffer)[pst->pos] == ' ')
    {
@@ -81,7 +86,9 @@ Datum testprs_getlexeme(PG_FUNCTION_ARGS)
        while ((pst->buffer)[pst->pos] == ' ' &&
               pst->pos < pst->len)
            (pst->pos)++;
-   } else {
+   }
+   else
+   {
        /* word type */
        type = 3;
        /* go to the next white-space character */
@@ -94,28 +101,29 @@ Datum testprs_getlexeme(PG_FUNCTION_ARGS)
 
    /* we are finished if (*tlen == 0) */
    if (*tlen == 0)
-       type=0;
+       type = 0;
 
    PG_RETURN_INT32(type);
 }
 
-Datum testprs_end(PG_FUNCTION_ARGS)
+Datum
+testprs_end(PG_FUNCTION_ARGS)
 {
    ParserState *pst = (ParserState *) PG_GETARG_POINTER(0);
+
    pfree(pst);
    PG_RETURN_VOID();
 }
 
-Datum testprs_lextype(PG_FUNCTION_ARGS)
+Datum
+testprs_lextype(PG_FUNCTION_ARGS)
 {
    /*
-    * Remarks:
-    * - we have to return the blanks for headline reason
-    * - we use the same lexids like Teodor in the default
-    * word parser; in this way we can reuse the headline
-    * function of the default word parser.
+    * Remarks: - we have to return the blanks for headline reason - we use
+    * the same lexids like Teodor in the default word parser; in this way we
+    * can reuse the headline function of the default word parser.
     */
-   LexDescr *descr = (LexDescr *) palloc(sizeof(LexDescr) * (2+1));
+   LexDescr   *descr = (LexDescr *) palloc(sizeof(LexDescr) * (2 + 1));
 
    /* there are only two types in this parser */
    descr[0].lexid = 3;
index 25fb69752926e9c0559f15169d245c5251f48cb7..e0f0f651b8fab046a1141ac44af3c1ff4127dfb8 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/contrib/tsearch2/tsearch2.c,v 1.2 2007/11/13 22:14:50 tgl Exp $
+ *   $PostgreSQL: pgsql/contrib/tsearch2/tsearch2.c,v 1.3 2007/11/15 21:14:31 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -24,8 +24,8 @@
 
 PG_MODULE_MAGIC;
 
-static Oid current_dictionary_oid = InvalidOid;
-static Oid current_parser_oid = InvalidOid;
+static Oid current_dictionary_oid = InvalidOid;
+static Oid current_parser_oid = InvalidOid;
 
 /* insert given value at argument position 0 */
 #define INSERT_ARGUMENT0(argument, isnull)             \
@@ -65,27 +65,27 @@ static Oid current_parser_oid = InvalidOid;
    }                                                   \
    PG_FUNCTION_INFO_V1(name)
 
-static Oid GetCurrentDict(void);
-static Oid GetCurrentParser(void);
-
-Datum tsa_lexize_byname(PG_FUNCTION_ARGS);
-Datum tsa_lexize_bycurrent(PG_FUNCTION_ARGS);
-Datum tsa_set_curdict(PG_FUNCTION_ARGS);
-Datum tsa_set_curdict_byname(PG_FUNCTION_ARGS);
-Datum tsa_token_type_current(PG_FUNCTION_ARGS);
-Datum tsa_set_curprs(PG_FUNCTION_ARGS);
-Datum tsa_set_curprs_byname(PG_FUNCTION_ARGS);
-Datum tsa_parse_current(PG_FUNCTION_ARGS);
-Datum tsa_set_curcfg(PG_FUNCTION_ARGS);
-Datum tsa_set_curcfg_byname(PG_FUNCTION_ARGS);
-Datum tsa_to_tsvector_name(PG_FUNCTION_ARGS);
-Datum tsa_to_tsquery_name(PG_FUNCTION_ARGS);
-Datum tsa_plainto_tsquery_name(PG_FUNCTION_ARGS);
-Datum tsa_headline_byname(PG_FUNCTION_ARGS);
-Datum tsa_ts_stat(PG_FUNCTION_ARGS);
-Datum tsa_tsearch2(PG_FUNCTION_ARGS);
-Datum tsa_rewrite_accum(PG_FUNCTION_ARGS);
-Datum tsa_rewrite_finish(PG_FUNCTION_ARGS);
+static Oid GetCurrentDict(void);
+static Oid GetCurrentParser(void);
+
+Datum      tsa_lexize_byname(PG_FUNCTION_ARGS);
+Datum      tsa_lexize_bycurrent(PG_FUNCTION_ARGS);
+Datum      tsa_set_curdict(PG_FUNCTION_ARGS);
+Datum      tsa_set_curdict_byname(PG_FUNCTION_ARGS);
+Datum      tsa_token_type_current(PG_FUNCTION_ARGS);
+Datum      tsa_set_curprs(PG_FUNCTION_ARGS);
+Datum      tsa_set_curprs_byname(PG_FUNCTION_ARGS);
+Datum      tsa_parse_current(PG_FUNCTION_ARGS);
+Datum      tsa_set_curcfg(PG_FUNCTION_ARGS);
+Datum      tsa_set_curcfg_byname(PG_FUNCTION_ARGS);
+Datum      tsa_to_tsvector_name(PG_FUNCTION_ARGS);
+Datum      tsa_to_tsquery_name(PG_FUNCTION_ARGS);
+Datum      tsa_plainto_tsquery_name(PG_FUNCTION_ARGS);
+Datum      tsa_headline_byname(PG_FUNCTION_ARGS);
+Datum      tsa_ts_stat(PG_FUNCTION_ARGS);
+Datum      tsa_tsearch2(PG_FUNCTION_ARGS);
+Datum      tsa_rewrite_accum(PG_FUNCTION_ARGS);
+Datum      tsa_rewrite_finish(PG_FUNCTION_ARGS);
 
 PG_FUNCTION_INFO_V1(tsa_lexize_byname);
 PG_FUNCTION_INFO_V1(tsa_lexize_bycurrent);
@@ -150,11 +150,11 @@ UNSUPPORTED_FUNCTION(tsa_get_covers);
 Datum
 tsa_lexize_byname(PG_FUNCTION_ARGS)
 {
-   text *dictname = PG_GETARG_TEXT_P(0);
-   Datum arg1 = PG_GETARG_DATUM(1);
+   text       *dictname = PG_GETARG_TEXT_P(0);
+   Datum       arg1 = PG_GETARG_DATUM(1);
 
    return DirectFunctionCall2(ts_lexize,
-                              ObjectIdGetDatum(TextGetObjectId(regdictionaryin, dictname)),
+               ObjectIdGetDatum(TextGetObjectId(regdictionaryin, dictname)),
                               arg1);
 }
 
@@ -162,8 +162,8 @@ tsa_lexize_byname(PG_FUNCTION_ARGS)
 Datum
 tsa_lexize_bycurrent(PG_FUNCTION_ARGS)
 {
-   Datum arg0 = PG_GETARG_DATUM(0);
-   Oid id = GetCurrentDict();
+   Datum       arg0 = PG_GETARG_DATUM(0);
+   Oid         id = GetCurrentDict();
 
    return DirectFunctionCall2(ts_lexize,
                               ObjectIdGetDatum(id),
@@ -174,7 +174,7 @@ tsa_lexize_bycurrent(PG_FUNCTION_ARGS)
 Datum
 tsa_set_curdict(PG_FUNCTION_ARGS)
 {
-   Oid dict_oid = PG_GETARG_OID(0);
+   Oid         dict_oid = PG_GETARG_OID(0);
 
    if (!SearchSysCacheExists(TSDICTOID,
                              ObjectIdGetDatum(dict_oid),
@@ -191,8 +191,8 @@ tsa_set_curdict(PG_FUNCTION_ARGS)
 Datum
 tsa_set_curdict_byname(PG_FUNCTION_ARGS)
 {
-   text *name = PG_GETARG_TEXT_P(0);
-   Oid dict_oid;
+   text       *name = PG_GETARG_TEXT_P(0);
+   Oid         dict_oid;
 
    dict_oid = TSDictionaryGetDictid(stringToQualifiedNameList(TextPGetCString(name)), false);
 
@@ -213,7 +213,7 @@ tsa_token_type_current(PG_FUNCTION_ARGS)
 Datum
 tsa_set_curprs(PG_FUNCTION_ARGS)
 {
-   Oid parser_oid = PG_GETARG_OID(0);
+   Oid         parser_oid = PG_GETARG_OID(0);
 
    if (!SearchSysCacheExists(TSPARSEROID,
                              ObjectIdGetDatum(parser_oid),
@@ -230,8 +230,8 @@ tsa_set_curprs(PG_FUNCTION_ARGS)
 Datum
 tsa_set_curprs_byname(PG_FUNCTION_ARGS)
 {
-   text *name = PG_GETARG_TEXT_P(0);
-   Oid parser_oid;
+   text       *name = PG_GETARG_TEXT_P(0);
+   Oid         parser_oid;
 
    parser_oid = TSParserGetPrsid(stringToQualifiedNameList(TextPGetCString(name)), false);
 
@@ -252,12 +252,12 @@ tsa_parse_current(PG_FUNCTION_ARGS)
 Datum
 tsa_set_curcfg(PG_FUNCTION_ARGS)
 {
-   Oid arg0 = PG_GETARG_OID(0);
-   char *name;
+   Oid         arg0 = PG_GETARG_OID(0);
+   char       *name;
 
    name = DatumGetCString(DirectFunctionCall1(regconfigout,
                                               ObjectIdGetDatum(arg0)));
-               
+
    set_config_option("default_text_search_config", name,
                      PGC_USERSET,
                      PGC_S_SESSION,
@@ -271,8 +271,8 @@ tsa_set_curcfg(PG_FUNCTION_ARGS)
 Datum
 tsa_set_curcfg_byname(PG_FUNCTION_ARGS)
 {
-   text *arg0 = PG_GETARG_TEXT_P(0);
-   char *name;
+   text       *arg0 = PG_GETARG_TEXT_P(0);
+   char       *name;
 
    name = TextPGetCString(arg0);
 
@@ -289,9 +289,9 @@ tsa_set_curcfg_byname(PG_FUNCTION_ARGS)
 Datum
 tsa_to_tsvector_name(PG_FUNCTION_ARGS)
 {
-   text *cfgname = PG_GETARG_TEXT_P(0);
-   Datum arg1 = PG_GETARG_DATUM(1);
-   Oid config_oid;
+   text       *cfgname = PG_GETARG_TEXT_P(0);
+   Datum       arg1 = PG_GETARG_DATUM(1);
+   Oid         config_oid;
 
    config_oid = TextGetObjectId(regconfigin, cfgname);
 
@@ -303,9 +303,9 @@ tsa_to_tsvector_name(PG_FUNCTION_ARGS)
 Datum
 tsa_to_tsquery_name(PG_FUNCTION_ARGS)
 {
-   text *cfgname = PG_GETARG_TEXT_P(0);
-   Datum arg1 = PG_GETARG_DATUM(1);
-   Oid config_oid;
+   text       *cfgname = PG_GETARG_TEXT_P(0);
+   Datum       arg1 = PG_GETARG_DATUM(1);
+   Oid         config_oid;
 
    config_oid = TextGetObjectId(regconfigin, cfgname);
 
@@ -318,9 +318,9 @@ tsa_to_tsquery_name(PG_FUNCTION_ARGS)
 Datum
 tsa_plainto_tsquery_name(PG_FUNCTION_ARGS)
 {
-   text *cfgname = PG_GETARG_TEXT_P(0);
-   Datum arg1 = PG_GETARG_DATUM(1);
-   Oid config_oid;
+   text       *cfgname = PG_GETARG_TEXT_P(0);
+   Datum       arg1 = PG_GETARG_DATUM(1);
+   Oid         config_oid;
 
    config_oid = TextGetObjectId(regconfigin, cfgname);
 
@@ -332,22 +332,22 @@ tsa_plainto_tsquery_name(PG_FUNCTION_ARGS)
 Datum
 tsa_headline_byname(PG_FUNCTION_ARGS)
 {
-   Datum arg0 = PG_GETARG_DATUM(0);
-   Datum arg1 = PG_GETARG_DATUM(1);
-   Datum arg2 = PG_GETARG_DATUM(2);
-   Datum result;
-   Oid config_oid;
+   Datum       arg0 = PG_GETARG_DATUM(0);
+   Datum       arg1 = PG_GETARG_DATUM(1);
+   Datum       arg2 = PG_GETARG_DATUM(2);
+   Datum       result;
+   Oid         config_oid;
 
    /* first parameter has to be converted to oid */
    config_oid = DatumGetObjectId(DirectFunctionCall1(regconfigin,
-                                                     DirectFunctionCall1(textout, arg0)));
+                                       DirectFunctionCall1(textout, arg0)));
 
    if (PG_NARGS() == 3)
        result = DirectFunctionCall3(ts_headline_byid,
-                                    ObjectIdGetDatum(config_oid), arg1, arg2);
+                                  ObjectIdGetDatum(config_oid), arg1, arg2);
    else
    {
-       Datum arg3 = PG_GETARG_DATUM(3);
+       Datum       arg3 = PG_GETARG_DATUM(3);
 
        result = DirectFunctionCall4(ts_headline_byid_opt,
                                     ObjectIdGetDatum(config_oid),
@@ -371,11 +371,11 @@ tsa_tsearch2(PG_FUNCTION_ARGS)
 {
    TriggerData *trigdata;
    Trigger    *trigger;
-   char **tgargs;
+   char      **tgargs;
    int         i;
 
    /* Check call context */
-   if (!CALLED_AS_TRIGGER(fcinfo)) /* internal error */
+   if (!CALLED_AS_TRIGGER(fcinfo))     /* internal error */
        elog(ERROR, "tsvector_update_trigger: not fired by trigger manager");
 
    trigdata = (TriggerData *) fcinfo->context;
@@ -388,7 +388,7 @@ tsa_tsearch2(PG_FUNCTION_ARGS)
    tgargs = (char **) palloc((trigger->tgnargs + 1) * sizeof(char *));
    tgargs[0] = trigger->tgargs[0];
    for (i = 1; i < trigger->tgnargs; i++)
-       tgargs[i+1] = trigger->tgargs[i];
+       tgargs[i + 1] = trigger->tgargs[i];
 
    tgargs[1] = pstrdup(GetConfigOptionByName("default_text_search_config",
                                              NULL));
index d711f47207e2db510cb68ff2c645deb7187e61a3..e1aa8af0943b1c8d8e94af356a4958cc386046c8 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Copyright (c) 2007 PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/contrib/uuid-ossp/uuid-ossp.c,v 1.3 2007/10/23 21:38:16 tgl Exp $
+ * $PostgreSQL: pgsql/contrib/uuid-ossp/uuid-ossp.c,v 1.4 2007/11/15 21:14:31 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 PG_MODULE_MAGIC;
 
 
-Datum uuid_nil(PG_FUNCTION_ARGS);
-Datum uuid_ns_dns(PG_FUNCTION_ARGS);
-Datum uuid_ns_url(PG_FUNCTION_ARGS);
-Datum uuid_ns_oid(PG_FUNCTION_ARGS);
-Datum uuid_ns_x500(PG_FUNCTION_ARGS);
+Datum      uuid_nil(PG_FUNCTION_ARGS);
+Datum      uuid_ns_dns(PG_FUNCTION_ARGS);
+Datum      uuid_ns_url(PG_FUNCTION_ARGS);
+Datum      uuid_ns_oid(PG_FUNCTION_ARGS);
+Datum      uuid_ns_x500(PG_FUNCTION_ARGS);
 
-Datum uuid_generate_v1(PG_FUNCTION_ARGS);
-Datum uuid_generate_v1mc(PG_FUNCTION_ARGS);
-Datum uuid_generate_v3(PG_FUNCTION_ARGS);
-Datum uuid_generate_v4(PG_FUNCTION_ARGS);
-Datum uuid_generate_v5(PG_FUNCTION_ARGS);
+Datum      uuid_generate_v1(PG_FUNCTION_ARGS);
+Datum      uuid_generate_v1mc(PG_FUNCTION_ARGS);
+Datum      uuid_generate_v3(PG_FUNCTION_ARGS);
+Datum      uuid_generate_v4(PG_FUNCTION_ARGS);
+Datum      uuid_generate_v5(PG_FUNCTION_ARGS);
 
 
 PG_FUNCTION_INFO_V1(uuid_nil);
@@ -66,11 +66,11 @@ PG_FUNCTION_INFO_V1(uuid_generate_v5);
 
 
 static char *
-uuid_to_string(const uuid_t *uuid)
+uuid_to_string(const uuid_t * uuid)
 {
-   char   *buf = palloc(UUID_LEN_STR + 1);
-   void   *ptr = buf;
-   size_t  len = UUID_LEN_STR + 1;
+   char       *buf = palloc(UUID_LEN_STR + 1);
+   void       *ptr = buf;
+   size_t      len = UUID_LEN_STR + 1;
 
    uuid_export(uuid, UUID_FMT_STR, &ptr, &len);
 
@@ -79,7 +79,7 @@ uuid_to_string(const uuid_t *uuid)
 
 
 static void
-string_to_uuid(const char *str, uuid_t *uuid)
+string_to_uuid(const char *str, uuid_t * uuid)
 {
    uuid_import(uuid, UUID_FMT_STR, str, UUID_LEN_STR + 1);
 }
@@ -88,8 +88,8 @@ string_to_uuid(const char *str, uuid_t *uuid)
 static Datum
 special_uuid_value(const char *name)
 {
-   uuid_t *uuid;
-   char   *str;
+   uuid_t     *uuid;
+   char       *str;
 
    uuid_create(&uuid);
    uuid_load(uuid, name);
@@ -136,10 +136,10 @@ uuid_ns_x500(PG_FUNCTION_ARGS)
 
 
 static Datum
-uuid_generate_internal(int mode, const uuid_t *ns, const char *name)
+uuid_generate_internal(int mode, const uuid_t * ns, const char *name)
 {
-   uuid_t *uuid;
-   char   *str;
+   uuid_t     *uuid;
+   char       *str;
 
    uuid_create(&uuid);
    uuid_make(uuid, mode, ns, name);
@@ -165,7 +165,7 @@ uuid_generate_v1mc(PG_FUNCTION_ARGS)
 
 
 static Datum
-uuid_generate_v35_internal(int mode, pg_uuid_t *ns, text *name)
+uuid_generate_v35_internal(int mode, pg_uuid_t * ns, text *name)
 {
    uuid_t     *ns_uuid;
    Datum       result;
@@ -176,7 +176,7 @@ uuid_generate_v35_internal(int mode, pg_uuid_t *ns, text *name)
 
    result = uuid_generate_internal(mode,
                                    ns_uuid,
-                                   DatumGetCString(DirectFunctionCall1(textout, PointerGetDatum(name))));
+      DatumGetCString(DirectFunctionCall1(textout, PointerGetDatum(name))));
 
    uuid_destroy(ns_uuid);
 
index a6dab8da121cb9800a87ed613c18892859bd0faa..eb8b136cbd9fc174f442e39cb6020018064adb13 100644 (file)
@@ -28,7 +28,7 @@
  * without explicitly invoking the toaster.
  *
  * This change will break any code that assumes it needn't detoast values
- * that have been put into a tuple but never sent to disk.  Hopefully there
+ * that have been put into a tuple but never sent to disk. Hopefully there
  * are few such places.
  *
  * Varlenas still have alignment 'i' (or 'd') in pg_type/pg_attribute, since
@@ -57,7 +57,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/common/heaptuple.c,v 1.118 2007/11/07 12:24:23 petere Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/common/heaptuple.c,v 1.119 2007/11/15 21:14:31 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -99,19 +99,19 @@ heap_compute_data_size(TupleDesc tupleDesc,
 
    for (i = 0; i < numberOfAttributes; i++)
    {
-       Datum   val;
+       Datum       val;
 
        if (isnull[i])
            continue;
 
        val = values[i];
 
-       if (ATT_IS_PACKABLE(att[i]) &&
+       if (ATT_IS_PACKABLE(att[i]) &&
            VARATT_CAN_MAKE_SHORT(DatumGetPointer(val)))
        {
            /*
-            * we're anticipating converting to a short varlena header,
-            * so adjust length and don't count any alignment
+            * we're anticipating converting to a short varlena header, so
+            * adjust length and don't count any alignment
             */
            data_length += VARATT_CONVERTED_SHORT_SIZE(DatumGetPointer(val));
        }
@@ -147,19 +147,19 @@ ComputeDataSize(TupleDesc tupleDesc,
 
    for (i = 0; i < numberOfAttributes; i++)
    {
-       Datum   val;
+       Datum       val;
 
        if (nulls[i] != ' ')
            continue;
 
        val = values[i];
 
-       if (ATT_IS_PACKABLE(att[i]) &&
+       if (ATT_IS_PACKABLE(att[i]) &&
            VARATT_CAN_MAKE_SHORT(DatumGetPointer(val)))
        {
            /*
-            * we're anticipating converting to a short varlena header,
-            * so adjust length and don't count any alignment
+            * we're anticipating converting to a short varlena header, so
+            * adjust length and don't count any alignment
             */
            data_length += VARATT_CONVERTED_SHORT_SIZE(DatumGetPointer(val));
        }
@@ -195,6 +195,7 @@ heap_fill_tuple(TupleDesc tupleDesc,
    int         i;
    int         numberOfAttributes = tupleDesc->natts;
    Form_pg_attribute *att = tupleDesc->attrs;
+
 #ifdef USE_ASSERT_CHECKING
    char       *start = data;
 #endif
@@ -238,8 +239,8 @@ heap_fill_tuple(TupleDesc tupleDesc,
        }
 
        /*
-        * XXX we use the att_align macros on the pointer value itself,
-        * not on an offset.  This is a bit of a hack.
+        * XXX we use the att_align macros on the pointer value itself, not on
+        * an offset.  This is a bit of a hack.
         */
 
        if (att[i]->attbyval)
@@ -327,6 +328,7 @@ DataFill(TupleDesc tupleDesc,
    int         i;
    int         numberOfAttributes = tupleDesc->natts;
    Form_pg_attribute *att = tupleDesc->attrs;
+
 #ifdef USE_ASSERT_CHECKING
    char       *start = data;
 #endif
@@ -370,8 +372,8 @@ DataFill(TupleDesc tupleDesc,
        }
 
        /*
-        * XXX we use the att_align macros on the pointer value itself,
-        * not on an offset.  This is a bit of a hack.
+        * XXX we use the att_align macros on the pointer value itself, not on
+        * an offset.  This is a bit of a hack.
         */
 
        if (att[i]->attbyval)
@@ -611,8 +613,8 @@ nocachegetattr(HeapTuple tuple,
 
        /*
         * Otherwise, check for non-fixed-length attrs up to and including
-        * target.  If there aren't any, it's safe to cheaply initialize
-        * the cached offsets for these attrs.
+        * target.  If there aren't any, it's safe to cheaply initialize the
+        * cached offsets for these attrs.
         */
        if (HeapTupleHasVarWidth(tuple))
        {
@@ -673,8 +675,8 @@ nocachegetattr(HeapTuple tuple,
        int         i;
 
        /*
-        * Now we know that we have to walk the tuple CAREFULLY.  But we
-        * still might be able to cache some offsets for next time.
+        * Now we know that we have to walk the tuple CAREFULLY.  But we still
+        * might be able to cache some offsets for next time.
         *
         * Note - This loop is a little tricky.  For each non-null attribute,
         * we have to first account for alignment padding before the attr,
@@ -683,12 +685,12 @@ nocachegetattr(HeapTuple tuple,
         * attcacheoff until we reach either a null or a var-width attribute.
         */
        off = 0;
-       for (i = 0; ; i++)          /* loop exit is at "break" */
+       for (i = 0;; i++)       /* loop exit is at "break" */
        {
            if (HeapTupleHasNulls(tuple) && att_isnull(i, bp))
            {
                usecache = false;
-               continue;           /* this cannot be the target att */
+               continue;       /* this cannot be the target att */
            }
 
            /* If we know the next offset, we can skip the rest */
@@ -697,10 +699,10 @@ nocachegetattr(HeapTuple tuple,
            else if (att[i]->attlen == -1)
            {
                /*
-                * We can only cache the offset for a varlena attribute
-                * if the offset is already suitably aligned, so that there
-                * would be no pad bytes in any case: then the offset will
-                * be valid for either an aligned or unaligned value.
+                * We can only cache the offset for a varlena attribute if the
+                * offset is already suitably aligned, so that there would be
+                * no pad bytes in any case: then the offset will be valid for
+                * either an aligned or unaligned value.
                 */
                if (usecache &&
                    off == att_align_nominal(off, att[i]->attalign))
@@ -771,11 +773,12 @@ heap_getsysattr(HeapTuple tup, int attnum, TupleDesc tupleDesc, bool *isnull)
            break;
        case MinCommandIdAttributeNumber:
        case MaxCommandIdAttributeNumber:
+
            /*
-            * cmin and cmax are now both aliases for the same field,
-            * which can in fact also be a combo command id.  XXX perhaps we
-            * should return the "real" cmin or cmax if possible, that is
-            * if we are inside the originating transaction?
+            * cmin and cmax are now both aliases for the same field, which
+            * can in fact also be a combo command id.  XXX perhaps we should
+            * return the "real" cmin or cmax if possible, that is if we are
+            * inside the originating transaction?
             */
            result = CommandIdGetDatum(HeapTupleHeaderGetRawCommandId(tup->t_data));
            break;
@@ -855,7 +858,8 @@ heap_form_tuple(TupleDesc tupleDescriptor,
 {
    HeapTuple   tuple;          /* return tuple */
    HeapTupleHeader td;         /* tuple data */
-   Size        len, data_len;
+   Size        len,
+               data_len;
    int         hoff;
    bool        hasnull = false;
    Form_pg_attribute *att = tupleDescriptor->attrs;
@@ -965,7 +969,8 @@ heap_formtuple(TupleDesc tupleDescriptor,
 {
    HeapTuple   tuple;          /* return tuple */
    HeapTupleHeader td;         /* tuple data */
-   Size        len, data_len;
+   Size        len,
+               data_len;
    int         hoff;
    bool        hasnull = false;
    Form_pg_attribute *att = tupleDescriptor->attrs;
@@ -1263,10 +1268,10 @@ heap_deform_tuple(HeapTuple tuple, TupleDesc tupleDesc,
        else if (thisatt->attlen == -1)
        {
            /*
-            * We can only cache the offset for a varlena attribute
-            * if the offset is already suitably aligned, so that there
-            * would be no pad bytes in any case: then the offset will
-            * be valid for either an aligned or unaligned value.
+            * We can only cache the offset for a varlena attribute if the
+            * offset is already suitably aligned, so that there would be no
+            * pad bytes in any case: then the offset will be valid for either
+            * an aligned or unaligned value.
             */
            if (!slow &&
                off == att_align_nominal(off, thisatt->attalign))
@@ -1375,10 +1380,10 @@ heap_deformtuple(HeapTuple tuple,
        else if (thisatt->attlen == -1)
        {
            /*
-            * We can only cache the offset for a varlena attribute
-            * if the offset is already suitably aligned, so that there
-            * would be no pad bytes in any case: then the offset will
-            * be valid for either an aligned or unaligned value.
+            * We can only cache the offset for a varlena attribute if the
+            * offset is already suitably aligned, so that there would be no
+            * pad bytes in any case: then the offset will be valid for either
+            * an aligned or unaligned value.
             */
            if (!slow &&
                off == att_align_nominal(off, thisatt->attalign))
@@ -1484,10 +1489,10 @@ slot_deform_tuple(TupleTableSlot *slot, int natts)
        else if (thisatt->attlen == -1)
        {
            /*
-            * We can only cache the offset for a varlena attribute
-            * if the offset is already suitably aligned, so that there
-            * would be no pad bytes in any case: then the offset will
-            * be valid for either an aligned or unaligned value.
+            * We can only cache the offset for a varlena attribute if the
+            * offset is already suitably aligned, so that there would be no
+            * pad bytes in any case: then the offset will be valid for either
+            * an aligned or unaligned value.
             */
            if (!slow &&
                off == att_align_nominal(off, thisatt->attalign))
@@ -1791,7 +1796,8 @@ heap_form_minimal_tuple(TupleDesc tupleDescriptor,
                        bool *isnull)
 {
    MinimalTuple tuple;         /* return tuple */
-   Size        len, data_len;
+   Size        len,
+               data_len;
    int         hoff;
    bool        hasnull = false;
    Form_pg_attribute *att = tupleDescriptor->attrs;
index 5412ca0cf3db45d8b7a8e8fcb45d465dc19e98a3..892363b3a99805bc05089cd20bd688a6e2092ba5 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/common/indextuple.c,v 1.83 2007/11/07 12:24:24 petere Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/common/indextuple.c,v 1.84 2007/11/15 21:14:31 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -77,7 +77,7 @@ index_form_tuple(TupleDesc tupleDescriptor,
        {
            untoasted_values[i] =
                PointerGetDatum(heap_tuple_fetch_attr((struct varlena *)
-                                                     DatumGetPointer(values[i])));
+                                               DatumGetPointer(values[i])));
            untoasted_free[i] = true;
        }
 
@@ -309,8 +309,8 @@ nocache_index_getattr(IndexTuple tup,
 
        /*
         * Otherwise, check for non-fixed-length attrs up to and including
-        * target.  If there aren't any, it's safe to cheaply initialize
-        * the cached offsets for these attrs.
+        * target.  If there aren't any, it's safe to cheaply initialize the
+        * cached offsets for these attrs.
         */
        if (IndexTupleHasVarwidths(tup))
        {
@@ -371,8 +371,8 @@ nocache_index_getattr(IndexTuple tup,
        int         i;
 
        /*
-        * Now we know that we have to walk the tuple CAREFULLY.  But we
-        * still might be able to cache some offsets for next time.
+        * Now we know that we have to walk the tuple CAREFULLY.  But we still
+        * might be able to cache some offsets for next time.
         *
         * Note - This loop is a little tricky.  For each non-null attribute,
         * we have to first account for alignment padding before the attr,
@@ -381,12 +381,12 @@ nocache_index_getattr(IndexTuple tup,
         * attcacheoff until we reach either a null or a var-width attribute.
         */
        off = 0;
-       for (i = 0; ; i++)          /* loop exit is at "break" */
+       for (i = 0;; i++)       /* loop exit is at "break" */
        {
            if (IndexTupleHasNulls(tup) && att_isnull(i, bp))
            {
                usecache = false;
-               continue;           /* this cannot be the target att */
+               continue;       /* this cannot be the target att */
            }
 
            /* If we know the next offset, we can skip the rest */
@@ -395,10 +395,10 @@ nocache_index_getattr(IndexTuple tup,
            else if (att[i]->attlen == -1)
            {
                /*
-                * We can only cache the offset for a varlena attribute
-                * if the offset is already suitably aligned, so that there
-                * would be no pad bytes in any case: then the offset will
-                * be valid for either an aligned or unaligned value.
+                * We can only cache the offset for a varlena attribute if the
+                * offset is already suitably aligned, so that there would be
+                * no pad bytes in any case: then the offset will be valid for
+                * either an aligned or unaligned value.
                 */
                if (usecache &&
                    off == att_align_nominal(off, att[i]->attalign))
index 9f40fc59d3fd2b56e8cd6cda59a5a4db467607c9..7e4afd70bd520d797067c948d386b4bab0a92b96 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/common/reloptions.c,v 1.5 2007/06/03 22:16:02 petere Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/common/reloptions.c,v 1.6 2007/11/15 21:14:31 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -206,8 +206,8 @@ parseRelOptions(Datum options, int numkeywords, const char *const * keywords,
                if (values[j] && validate)
                    ereport(ERROR,
                            (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                            errmsg("parameter \"%s\" specified more than once",
-                                   keywords[j])));
+                         errmsg("parameter \"%s\" specified more than once",
+                                keywords[j])));
                value_len = text_len - kw_len - 1;
                value = (char *) palloc(value_len + 1);
                memcpy(value, text_str + kw_len + 1, value_len);
index d608bedb6058a4a903147cbb0418696660661f67..430b72a92b24cdcc8177b8bfb8340daa1c771694 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/gin/ginarrayproc.c,v 1.10 2007/08/21 01:11:12 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/gin/ginarrayproc.c,v 1.11 2007/11/15 21:14:31 momjian Exp $
  *-------------------------------------------------------------------------
  */
 #include "postgres.h"
@@ -60,17 +60,18 @@ ginarrayextract(PG_FUNCTION_ARGS)
                      elmlen, elmbyval, elmalign,
                      &entries, NULL, (int *) nentries);
 
-   if ( *nentries == 0 && PG_NARGS() == 3 )
+   if (*nentries == 0 && PG_NARGS() == 3)
    {
-       switch( PG_GETARG_UINT16(2) ) /* StrategyNumber */
+       switch (PG_GETARG_UINT16(2))    /* StrategyNumber */
        {
            case GinOverlapStrategy:
-                   *nentries = -1; /* nobody can be found */
-                   break;
+               *nentries = -1; /* nobody can be found */
+               break;
            case GinContainsStrategy:
            case GinContainedStrategy:
            case GinEqualStrategy:
-           default:    /* require fullscan: GIN can't find void arrays */
+           default:            /* require fullscan: GIN can't find void
+                                * arrays */
                break;
        }
    }
index 1a711e93c645688abbe192420da29f47c28b4e5e..a89c384dfc30eea1ba17cbb3e3e4df43aadee380 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *         $PostgreSQL: pgsql/src/backend/access/gin/ginbtree.c,v 1.9 2007/06/05 12:47:49 teodor Exp $
+ *         $PostgreSQL: pgsql/src/backend/access/gin/ginbtree.c,v 1.10 2007/11/15 21:14:31 momjian Exp $
  *-------------------------------------------------------------------------
  */
 
@@ -317,8 +317,8 @@ ginInsertValue(GinBtree btree, GinBtreeStack *stack)
            Page        newlpage;
 
            /*
-            * newlpage is a pointer to memory page, it doesn't associate
-            * with buffer, stack->buffer should be untouched
+            * newlpage is a pointer to memory page, it doesn't associate with
+            * buffer, stack->buffer should be untouched
             */
            newlpage = btree->splitPage(btree, stack->buffer, rbuffer, stack->off, &rdata);
 
index d9242c667a6137b2741a7d6b9b8fe3d334ba7232..eb6ccfc0b40e867db8fcc66a908b11b95a3c6adc 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *         $PostgreSQL: pgsql/src/backend/access/gin/gindatapage.c,v 1.7 2007/06/04 15:56:28 teodor Exp $
+ *         $PostgreSQL: pgsql/src/backend/access/gin/gindatapage.c,v 1.8 2007/11/15 21:14:31 momjian Exp $
  *-------------------------------------------------------------------------
  */
 
@@ -358,7 +358,7 @@ dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prda
    static XLogRecData rdata[3];
    int         sizeofitem = GinSizeOfItem(page);
    static ginxlogInsert data;
-   int         cnt=0;
+   int         cnt = 0;
 
    *prdata = rdata;
    Assert(GinPageIsData(page));
@@ -373,14 +373,14 @@ dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prda
    data.isData = TRUE;
    data.isLeaf = GinPageIsLeaf(page) ? TRUE : FALSE;
 
-   /* 
-    * Prevent full page write if child's split occurs. That is needed
-    * to remove incomplete splits while replaying WAL
-    * 
-    * data.updateBlkno contains new block number (of newly created right page)
-    * for recently splited page.
+   /*
+    * Prevent full page write if child's split occurs. That is needed to
+    * remove incomplete splits while replaying WAL
+    *
+    * data.updateBlkno contains new block number (of newly created right
+    * page) for recently splited page.
     */
-   if ( data.updateBlkno == InvalidBlockNumber ) 
+   if (data.updateBlkno == InvalidBlockNumber)
    {
        rdata[0].buffer = buf;
        rdata[0].buffer_std = FALSE;
@@ -393,7 +393,7 @@ dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prda
    rdata[cnt].buffer = InvalidBuffer;
    rdata[cnt].data = (char *) &data;
    rdata[cnt].len = sizeof(ginxlogInsert);
-   rdata[cnt].next = &rdata[cnt+1];
+   rdata[cnt].next = &rdata[cnt + 1];
    cnt++;
 
    rdata[cnt].buffer = InvalidBuffer;
index 2c335aea0cd7553d261d85a888a9254bfea6f7b9..134c5f99dd068c1e6c7740a9d2019c8ad4e33fba 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *         $PostgreSQL: pgsql/src/backend/access/gin/ginentrypage.c,v 1.10 2007/10/29 13:49:21 teodor Exp $
+ *         $PostgreSQL: pgsql/src/backend/access/gin/ginentrypage.c,v 1.11 2007/11/15 21:14:31 momjian Exp $
  *-------------------------------------------------------------------------
  */
 
@@ -354,7 +354,7 @@ entryPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prd
    static XLogRecData rdata[3];
    OffsetNumber placed;
    static ginxlogInsert data;
-   int     cnt=0;
+   int         cnt = 0;
 
    *prdata = rdata;
    data.updateBlkno = entryPreparePage(btree, page, off);
@@ -372,14 +372,14 @@ entryPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prd
    data.isData = false;
    data.isLeaf = GinPageIsLeaf(page) ? TRUE : FALSE;
 
-    /*
-    * Prevent full page write if child's split occurs. That is needed
-    * to remove incomplete splits while replaying WAL
+   /*
+    * Prevent full page write if child's split occurs. That is needed to
+    * remove incomplete splits while replaying WAL
     *
-    * data.updateBlkno contains new block number (of newly created right page)
-    * for recently splited page.
+    * data.updateBlkno contains new block number (of newly created right
+    * page) for recently splited page.
     */
-   if ( data.updateBlkno == InvalidBlockNumber ) 
+   if (data.updateBlkno == InvalidBlockNumber)
    {
        rdata[0].buffer = buf;
        rdata[0].buffer_std = TRUE;
@@ -392,7 +392,7 @@ entryPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prd
    rdata[cnt].buffer = InvalidBuffer;
    rdata[cnt].data = (char *) &data;
    rdata[cnt].len = sizeof(ginxlogInsert);
-   rdata[cnt].next = &rdata[cnt+1];
+   rdata[cnt].next = &rdata[cnt + 1];
    cnt++;
 
    rdata[cnt].buffer = InvalidBuffer;
index 66949f964c8ccead2f3f2ef084df30037e9feb96..b964f036a086108c5933e0d7e5f01ff2abee96a6 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *         $PostgreSQL: pgsql/src/backend/access/gin/ginget.c,v 1.8 2007/06/04 15:56:28 teodor Exp $
+ *         $PostgreSQL: pgsql/src/backend/access/gin/ginget.c,v 1.9 2007/11/15 21:14:31 momjian Exp $
  *-------------------------------------------------------------------------
  */
 
@@ -23,29 +23,29 @@ findItemInPage(Page page, ItemPointer item, OffsetNumber *off)
    OffsetNumber maxoff = GinPageGetOpaque(page)->maxoff;
    int         res;
 
-   if ( GinPageGetOpaque(page)->flags & GIN_DELETED )
+   if (GinPageGetOpaque(page)->flags & GIN_DELETED)
        /* page was deleted by concurrent  vacuum */
        return false;
 
-   if ( *off > maxoff || *off == InvalidOffsetNumber )
+   if (*off > maxoff || *off == InvalidOffsetNumber)
        res = -1;
    else
        res = compareItemPointers(item, (ItemPointer) GinDataPageGetItem(page, *off));
 
-   if ( res == 0 ) 
+   if (res == 0)
    {
        /* page isn't changed */
-       return true; 
-   } 
-   else if ( res > 0 ) 
+       return true;
+   }
+   else if (res > 0)
    {
-       /* 
-        * some items was added before our position, look further to find 
-        * it or first greater 
+       /*
+        * some items was added before our position, look further to find it
+        * or first greater
         */
-   
+
        (*off)++;
-       for (; *off <= maxoff; (*off)++) 
+       for (; *off <= maxoff; (*off)++)
        {
            res = compareItemPointers(item, (ItemPointer) GinDataPageGetItem(page, *off));
 
@@ -53,7 +53,7 @@ findItemInPage(Page page, ItemPointer item, OffsetNumber *off)
                return true;
 
            if (res < 0)
-           {   
+           {
                (*off)--;
                return true;
            }
@@ -61,20 +61,20 @@ findItemInPage(Page page, ItemPointer item, OffsetNumber *off)
    }
    else
    {
-       /* 
-        * some items was deleted before our position, look from begining
-        * to find it or first greater
+       /*
+        * some items was deleted before our position, look from begining to
+        * find it or first greater
         */
 
-       for(*off = FirstOffsetNumber; *off<= maxoff; (*off)++) 
+       for (*off = FirstOffsetNumber; *off <= maxoff; (*off)++)
        {
            res = compareItemPointers(item, (ItemPointer) GinDataPageGetItem(page, *off));
 
-           if ( res == 0 )
+           if (res == 0)
                return true;
 
            if (res < 0)
-           {   
+           {
                (*off)--;
                return true;
            }
@@ -174,7 +174,7 @@ startScanEntry(Relation index, GinState *ginstate, GinScanEntry entry, bool firs
        page = BufferGetPage(entry->buffer);
 
        /* try to find curItem in current buffer */
-       if ( findItemInPage(page, &entry->curItem, &entry->offset) )
+       if (findItemInPage(page, &entry->curItem, &entry->offset))
            return;
 
        /* walk to right */
@@ -186,13 +186,13 @@ startScanEntry(Relation index, GinState *ginstate, GinScanEntry entry, bool firs
            page = BufferGetPage(entry->buffer);
 
            entry->offset = InvalidOffsetNumber;
-           if ( findItemInPage(page, &entry->curItem, &entry->offset) )
+           if (findItemInPage(page, &entry->curItem, &entry->offset))
                return;
        }
 
        /*
-        * curItem and any greated items was deleted by concurrent vacuum,
-        * so we finished scan with currrent entry
+        * curItem and any greated items was deleted by concurrent vacuum, so
+        * we finished scan with currrent entry
         */
    }
 }
@@ -221,10 +221,10 @@ startScanKey(Relation index, GinState *ginstate, GinScanKey key)
        if (GinFuzzySearchLimit > 0)
        {
            /*
-            * If all of keys more than threshold we will try to reduce result,
-            * we hope (and only hope, for intersection operation of array our
-            * supposition isn't true), that total result will not more than
-            * minimal predictNumberResult.
+            * If all of keys more than threshold we will try to reduce
+            * result, we hope (and only hope, for intersection operation of
+            * array our supposition isn't true), that total result will not
+            * more than minimal predictNumberResult.
             */
 
            for (i = 0; i < key->nentries; i++)
index 2eb1ba95b4bd4296ab53daaaaa1e28ad2e6b4986..2e40f8b8d8c3e52a24287e5cd57138c50c04f6f4 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *         $PostgreSQL: pgsql/src/backend/access/gin/ginscan.c,v 1.10 2007/05/27 03:50:38 tgl Exp $
+ *         $PostgreSQL: pgsql/src/backend/access/gin/ginscan.c,v 1.11 2007/11/15 21:14:31 momjian Exp $
  *-------------------------------------------------------------------------
  */
 
@@ -164,13 +164,13 @@ newScanKey(IndexScanDesc scan)
                                       UInt16GetDatum(scankey[i].sk_strategy)
                                                              )
            );
-       if ( nEntryValues < 0 )
+       if (nEntryValues < 0)
        {
            /*
-            * extractQueryFn signals that nothing will be found,
-            * so we can just set isVoidRes flag...
+            * extractQueryFn signals that nothing will be found, so we can
+            * just set isVoidRes flag...
             */
-           so->isVoidRes = true;   
+           so->isVoidRes = true;
            break;
        }
        if (entryValues == NULL || nEntryValues == 0)
@@ -187,7 +187,7 @@ newScanKey(IndexScanDesc scan)
    if (so->nkeys == 0 && !so->isVoidRes)
        ereport(ERROR,
                (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                errmsg("GIN index does not support search with void query")));
+              errmsg("GIN index does not support search with void query")));
 
    pgstat_count_index_scan(scan->indexRelation);
 }
index e704e8051ebc4367b4bec99aef910e239056fa47..488a58beb5e3d8beb5ed4d634a005315470efdc5 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *         $PostgreSQL: pgsql/src/backend/access/gin/ginutil.c,v 1.10 2007/01/31 15:09:45 teodor Exp $
+ *         $PostgreSQL: pgsql/src/backend/access/gin/ginutil.c,v 1.11 2007/11/15 21:14:31 momjian Exp $
  *-------------------------------------------------------------------------
  */
 
@@ -126,17 +126,17 @@ compareEntries(GinState *ginstate, Datum a, Datum b)
                                       &ginstate->compareFn,
                                       a, b
                                       )
-   );
+       );
 }
 
 typedef struct
 {
    FmgrInfo   *cmpDatumFunc;
    bool       *needUnique;
-} cmpEntriesData;
+}  cmpEntriesData;
 
 static int
-cmpEntries(const Datum *a, const Datum *b, cmpEntriesData *arg)
+cmpEntries(const Datum *a, const Datum *b, cmpEntriesData * arg)
 {
    int         res = DatumGetInt32(FunctionCall2(arg->cmpDatumFunc,
                                                  *a, *b));
index 1f26869d646ea886849b3a77d5a6b9c1994c7890..9c0482a8903b6901cb31ffabceef60b31a08cf97 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *         $PostgreSQL: pgsql/src/backend/access/gin/ginvacuum.c,v 1.17 2007/09/20 17:56:30 tgl Exp $
+ *         $PostgreSQL: pgsql/src/backend/access/gin/ginvacuum.c,v 1.18 2007/11/15 21:14:31 momjian Exp $
  *-------------------------------------------------------------------------
  */
 
@@ -28,7 +28,7 @@ typedef struct
    IndexBulkDeleteCallback callback;
    void       *callback_state;
    GinState    ginstate;
-   BufferAccessStrategy    strategy;
+   BufferAccessStrategy strategy;
 } GinVacuumState;
 
 
@@ -160,14 +160,14 @@ ginVacuumPostingTreeLeaves(GinVacuumState *gvs, BlockNumber blkno, bool isRoot,
    /*
     * We should be sure that we don't concurrent with inserts, insert process
     * never release root page until end (but it can unlock it and lock
-    * again). New scan can't start but previously started 
-    * ones work concurrently.
+    * again). New scan can't start but previously started ones work
+    * concurrently.
     */
 
-   if ( isRoot ) 
+   if (isRoot)
        LockBufferForCleanup(buffer);
    else
-       LockBuffer(buffer, GIN_EXCLUSIVE); 
+       LockBuffer(buffer, GIN_EXCLUSIVE);
 
    Assert(GinPageIsData(page));
 
@@ -240,8 +240,8 @@ ginDeletePage(GinVacuumState *gvs, BlockNumber deleteBlkno, BlockNumber leftBlkn
              BlockNumber parentBlkno, OffsetNumber myoff, bool isParentRoot)
 {
    Buffer      dBuffer = ReadBufferWithStrategy(gvs->index, deleteBlkno, gvs->strategy);
-   Buffer      lBuffer = (leftBlkno == InvalidBlockNumber) ? 
-                           InvalidBuffer : ReadBufferWithStrategy(gvs->index, leftBlkno, gvs->strategy);
+   Buffer      lBuffer = (leftBlkno == InvalidBlockNumber) ?
+   InvalidBuffer : ReadBufferWithStrategy(gvs->index, leftBlkno, gvs->strategy);
    Buffer      pBuffer = ReadBufferWithStrategy(gvs->index, parentBlkno, gvs->strategy);
    Page        page,
                parentPage;
@@ -268,17 +268,20 @@ ginDeletePage(GinVacuumState *gvs, BlockNumber deleteBlkno, BlockNumber leftBlkn
 
    parentPage = BufferGetPage(pBuffer);
 #ifdef USE_ASSERT_CHECKING
-   do {
-       PostingItem *tod=(PostingItem *) GinDataPageGetItem(parentPage, myoff);
-       Assert( PostingItemGetBlockNumber(tod) == deleteBlkno );
-   } while(0);
+   do
+   {
+       PostingItem *tod = (PostingItem *) GinDataPageGetItem(parentPage, myoff);
+
+       Assert(PostingItemGetBlockNumber(tod) == deleteBlkno);
+   } while (0);
 #endif
    PageDeletePostingItem(parentPage, myoff);
 
    page = BufferGetPage(dBuffer);
+
    /*
-    * we shouldn't change rightlink field to save 
-    * workability of running search scan
+    * we shouldn't change rightlink field to save workability of running
+    * search scan
     */
    GinPageGetOpaque(page)->flags = GIN_DELETED;
 
@@ -363,8 +366,8 @@ typedef struct DataPageDeleteStack
    struct DataPageDeleteStack *child;
    struct DataPageDeleteStack *parent;
 
-   BlockNumber blkno; /* current block number */
-   BlockNumber leftBlkno; /* rightest non-deleted page on left */
+   BlockNumber blkno;          /* current block number */
+   BlockNumber leftBlkno;      /* rightest non-deleted page on left */
    bool        isRoot;
 } DataPageDeleteStack;
 
index 79fbb496b54461cebb62dc693d2289ef3f5bc914..7649e4c9003dfbb46f0f598a9925ba3a0953e4f0 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *          $PostgreSQL: pgsql/src/backend/access/gin/ginxlog.c,v 1.10 2007/10/29 19:26:57 teodor Exp $
+ *          $PostgreSQL: pgsql/src/backend/access/gin/ginxlog.c,v 1.11 2007/11/15 21:14:31 momjian Exp $
  *-------------------------------------------------------------------------
  */
 #include "postgres.h"
@@ -135,7 +135,7 @@ ginRedoInsert(XLogRecPtr lsn, XLogRecord *record)
        Assert(data->isDelete == FALSE);
        Assert(GinPageIsData(page));
 
-       if ( ! XLByteLE(lsn, PageGetLSN(page)) )
+       if (!XLByteLE(lsn, PageGetLSN(page)))
        {
            if (data->isLeaf)
            {
@@ -170,6 +170,7 @@ ginRedoInsert(XLogRecPtr lsn, XLogRecord *record)
        if (!data->isLeaf && data->updateBlkno != InvalidBlockNumber)
        {
            PostingItem *pitem = (PostingItem *) (XLogRecGetData(record) + sizeof(ginxlogInsert));
+
            forgetIncompleteSplit(data->node, PostingItemGetBlockNumber(pitem), data->updateBlkno);
        }
 
@@ -180,7 +181,7 @@ ginRedoInsert(XLogRecPtr lsn, XLogRecord *record)
 
        Assert(!GinPageIsData(page));
 
-       if ( ! XLByteLE(lsn, PageGetLSN(page)) )
+       if (!XLByteLE(lsn, PageGetLSN(page)))
        {
            if (data->updateBlkno != InvalidBlockNumber)
            {
@@ -202,7 +203,7 @@ ginRedoInsert(XLogRecPtr lsn, XLogRecord *record)
 
            if (PageAddItem(page, (Item) itup, IndexTupleSize(itup), data->offset, false, false) == InvalidOffsetNumber)
                elog(ERROR, "failed to add item to index page in %u/%u/%u",
-                    data->node.spcNode, data->node.dbNode, data->node.relNode);
+                 data->node.spcNode, data->node.dbNode, data->node.relNode);
        }
 
        if (!data->isLeaf && data->updateBlkno != InvalidBlockNumber)
@@ -212,7 +213,7 @@ ginRedoInsert(XLogRecPtr lsn, XLogRecord *record)
        }
    }
 
-   if ( ! XLByteLE(lsn, PageGetLSN(page)) ) 
+   if (!XLByteLE(lsn, PageGetLSN(page)))
    {
        PageSetLSN(page, lsn);
        PageSetTLI(page, ThisTimeLineID);
index 0c1b94d7d380c76c648e8cffff3e3dbd09eaf992..770c2023bd76e1d429bbda9097a447c618bc109a 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/gist/gist.c,v 1.147 2007/09/20 17:56:30 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/gist/gist.c,v 1.148 2007/11/15 21:14:31 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -360,8 +360,8 @@ gistplacetopage(GISTInsertState *state, GISTSTATE *giststate)
            ptr->block.blkno = BufferGetBlockNumber(ptr->buffer);
 
            /*
-            * fill page, we can do it because all these pages are new
-            * (ie not linked in tree or masked by temp page
+            * fill page, we can do it because all these pages are new (ie not
+            * linked in tree or masked by temp page
             */
            data = (char *) (ptr->list);
            for (i = 0; i < ptr->block.num; i++)
index ba7a8ab959fd439018fbc1a78ade38f3083838b7..cb1919ac6e0d08593622a5a76791d693404b9a49 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/gist/gistget.c,v 1.67 2007/09/12 22:10:25 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/gist/gistget.c,v 1.68 2007/11/15 21:14:31 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -383,13 +383,12 @@ gistindex_keytest(IndexTuple tuple,
            /*
             * On non-leaf page we can't conclude that child hasn't NULL
             * values because of assumption in GiST: uinon (VAL, NULL) is VAL
-            * But if on non-leaf page key IS  NULL then all childs
-            * has NULL.
+            * But if on non-leaf page key IS  NULL then all childs has NULL.
             */
 
-           Assert( key->sk_flags & SK_SEARCHNULL );
+           Assert(key->sk_flags & SK_SEARCHNULL);
 
-           if ( GistPageIsLeaf(p) && !isNull )
+           if (GistPageIsLeaf(p) && !isNull)
                return false;
        }
        else if (isNull)
@@ -404,12 +403,14 @@ gistindex_keytest(IndexTuple tuple,
                           FALSE, isNull);
 
            /*
-            * Call the Consistent function to evaluate the test.  The arguments
-            * are the index datum (as a GISTENTRY*), the comparison datum, and
-            * the comparison operator's strategy number and subtype from pg_amop.
+            * Call the Consistent function to evaluate the test.  The
+            * arguments are the index datum (as a GISTENTRY*), the comparison
+            * datum, and the comparison operator's strategy number and
+            * subtype from pg_amop.
             *
-            * (Presently there's no need to pass the subtype since it'll always
-            * be zero, but might as well pass it for possible future use.)
+            * (Presently there's no need to pass the subtype since it'll
+            * always be zero, but might as well pass it for possible future
+            * use.)
             */
            test = FunctionCall4(&key->sk_func,
                                 PointerGetDatum(&de),
index 590be9133fbc5b04c13c7c443087f0e5a149afb2..e461b5923d946cba604300b383230af22fd0f63e 100644 (file)
@@ -10,7 +10,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/gist/gistproc.c,v 1.11 2007/09/07 17:04:26 teodor Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gist/gistproc.c,v 1.12 2007/11/15 21:14:31 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -394,20 +394,22 @@ gist_box_picksplit(PG_FUNCTION_ARGS)
            ADDLIST(listT, unionT, posT, i);
    }
 
-#define LIMIT_RATIO    0.1
+#define LIMIT_RATIO 0.1
 #define _IS_BADRATIO(x,y)  ( (y) == 0 || (float)(x)/(float)(y) < LIMIT_RATIO )
 #define IS_BADRATIO(x,y) ( _IS_BADRATIO((x),(y)) || _IS_BADRATIO((y),(x)) )
    /* bad disposition, try to split by centers of boxes  */
-   if ( IS_BADRATIO(posR, posL) && IS_BADRATIO(posT, posB) )
+   if (IS_BADRATIO(posR, posL) && IS_BADRATIO(posT, posB))
    {
-       double  avgCenterX=0.0, avgCenterY=0.0;
-       double  CenterX, CenterY;
+       double      avgCenterX = 0.0,
+                   avgCenterY = 0.0;
+       double      CenterX,
+                   CenterY;
 
        for (i = FirstOffsetNumber; i <= maxoff; i = OffsetNumberNext(i))
        {
            cur = DatumGetBoxP(entryvec->vector[i].key);
-           avgCenterX +=  ((double)cur->high.x + (double)cur->low.x)/2.0;
-           avgCenterY +=  ((double)cur->high.y + (double)cur->low.y)/2.0;
+           avgCenterX += ((double) cur->high.x + (double) cur->low.x) / 2.0;
+           avgCenterY += ((double) cur->high.y + (double) cur->low.y) / 2.0;
        }
 
        avgCenterX /= maxoff;
@@ -417,11 +419,11 @@ gist_box_picksplit(PG_FUNCTION_ARGS)
        for (i = FirstOffsetNumber; i <= maxoff; i = OffsetNumberNext(i))
        {
            cur = DatumGetBoxP(entryvec->vector[i].key);
-           
-           CenterX =  ((double)cur->high.x + (double)cur->low.x)/2.0;
-           CenterY =  ((double)cur->high.y + (double)cur->low.y)/2.0;
 
-           if (CenterX < avgCenterX) 
+           CenterX = ((double) cur->high.x + (double) cur->low.x) / 2.0;
+           CenterY = ((double) cur->high.y + (double) cur->low.y) / 2.0;
+
+           if (CenterX < avgCenterX)
                ADDLIST(listL, unionL, posL, i);
            else if (CenterX == avgCenterX)
            {
@@ -442,7 +444,7 @@ gist_box_picksplit(PG_FUNCTION_ARGS)
                else
                    ADDLIST(listB, unionB, posB, i);
            }
-           else 
+           else
                ADDLIST(listT, unionT, posT, i);
        }
    }
index 212995e7c5726b8fcb6ed27bd100c20f9fe3023d..dace2c89067ad16f23574607c291f4cb31fba955 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/gist/gistvacuum.c,v 1.32 2007/09/20 17:56:30 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/gist/gistvacuum.c,v 1.33 2007/11/15 21:14:31 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -35,7 +35,7 @@ typedef struct
    Relation    index;
    MemoryContext opCtx;
    GistBulkDeleteResult *result;
-   BufferAccessStrategy    strategy;
+   BufferAccessStrategy strategy;
 } GistVacuum;
 
 typedef struct
index d3f54c934be394ecaa5bd5198b87032133cad4cc..5933b02e8eb4f32c557212599d2ead6d26e5a554 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/hash/hash.c,v 1.96 2007/09/12 22:10:25 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/hash/hash.c,v 1.97 2007/11/15 21:14:32 momjian Exp $
  *
  * NOTES
  *   This file contains only the public interface routines.
@@ -548,7 +548,7 @@ loop_top:
            vacuum_delay_point();
 
            buf = _hash_getbuf_with_strategy(rel, blkno, HASH_WRITE,
-                                            LH_BUCKET_PAGE | LH_OVERFLOW_PAGE,
+                                          LH_BUCKET_PAGE | LH_OVERFLOW_PAGE,
                                             info->strategy);
            page = BufferGetPage(buf);
            opaque = (HashPageOpaque) PageGetSpecialPointer(page);
index 71fe34c8a20297a3e3014083a7cd3185aef969a9..4d1b1ed45cc2bf8ae1ee0417f21a27b7610d233e 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/hash/hashfunc.c,v 1.53 2007/09/21 22:52:52 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/hash/hashfunc.c,v 1.54 2007/11/15 21:14:32 momjian Exp $
  *
  * NOTES
  *   These functions are stored in pg_amproc.  For each operator class
@@ -103,8 +103,8 @@ hashfloat4(PG_FUNCTION_ARGS)
     * To support cross-type hashing of float8 and float4, we want to return
     * the same hash value hashfloat8 would produce for an equal float8 value.
     * So, widen the value to float8 and hash that.  (We must do this rather
-    * than have hashfloat8 try to narrow its value to float4; that could
-    * fail on overflow.)
+    * than have hashfloat8 try to narrow its value to float4; that could fail
+    * on overflow.)
     */
    key8 = key;
 
index e4ea24a62d1203f7496f62dba9ad7cb69166d201..c510c6e65b7778e3b9ebd0d801337530dd9c6257 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/hash/hashovfl.c,v 1.60 2007/09/20 17:56:30 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/hash/hashovfl.c,v 1.61 2007/11/15 21:14:32 momjian Exp $
  *
  * NOTES
  *   Overflow pages look like ordinary relation pages.
@@ -156,7 +156,7 @@ _hash_addovflpage(Relation rel, Buffer metabuf, Buffer buf)
 /*
  * _hash_getovflpage()
  *
- * Find an available overflow page and return it.  The returned buffer
+ * Find an available overflow page and return it.  The returned buffer
  * is pinned and write-locked, and has had _hash_pageinit() applied,
  * but it is caller's responsibility to fill the special space.
  *
@@ -402,9 +402,9 @@ _hash_freeovflpage(Relation rel, Buffer ovflbuf,
    bucket = ovflopaque->hasho_bucket;
 
    /*
-    * Zero the page for debugging's sake; then write and release it.
-    * (Note: if we failed to zero the page here, we'd have problems
-    * with the Assert in _hash_pageinit() when the page is reused.)
+    * Zero the page for debugging's sake; then write and release it. (Note:
+    * if we failed to zero the page here, we'd have problems with the Assert
+    * in _hash_pageinit() when the page is reused.)
     */
    MemSet(ovflpage, 0, BufferGetPageSize(ovflbuf));
    _hash_wrtbuf(rel, ovflbuf);
@@ -420,7 +420,7 @@ _hash_freeovflpage(Relation rel, Buffer ovflbuf,
        Buffer      prevbuf = _hash_getbuf_with_strategy(rel,
                                                         prevblkno,
                                                         HASH_WRITE,
-                                                        LH_BUCKET_PAGE | LH_OVERFLOW_PAGE,
+                                          LH_BUCKET_PAGE | LH_OVERFLOW_PAGE,
                                                         bstrategy);
        Page        prevpage = BufferGetPage(prevbuf);
        HashPageOpaque prevopaque = (HashPageOpaque) PageGetSpecialPointer(prevpage);
index 807dbed8a8c72783fc7acfeedb3f79e8ca024dc5..07f27001a898c793c53b5f1f8635a8121323f92d 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/hash/hashpage.c,v 1.70 2007/09/20 17:56:30 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/hash/hashpage.c,v 1.71 2007/11/15 21:14:32 momjian Exp $
  *
  * NOTES
  *   Postgres hash pages look like ordinary relation pages.  The opaque
@@ -37,7 +37,7 @@
 
 
 static bool _hash_alloc_buckets(Relation rel, BlockNumber firstblock,
-                               uint32 nblocks);
+                   uint32 nblocks);
 static void _hash_splitbucket(Relation rel, Buffer metabuf,
                  Bucket obucket, Bucket nbucket,
                  BlockNumber start_oblkno,
@@ -138,7 +138,7 @@ _hash_getbuf(Relation rel, BlockNumber blkno, int access, int flags)
  *
  *     This must be used only to fetch pages that are known to be before
  *     the index's filesystem EOF, but are to be filled from scratch.
- *     _hash_pageinit() is applied automatically.  Otherwise it has
+ *     _hash_pageinit() is applied automatically.  Otherwise it has
  *     effects similar to _hash_getbuf() with access = HASH_WRITE.
  *
  *     When this routine returns, a write lock is set on the
@@ -184,7 +184,7 @@ _hash_getinitbuf(Relation rel, BlockNumber blkno)
 Buffer
 _hash_getnewbuf(Relation rel, BlockNumber blkno)
 {
-   BlockNumber nblocks = RelationGetNumberOfBlocks(rel);
+   BlockNumber nblocks = RelationGetNumberOfBlocks(rel);
    Buffer      buf;
 
    if (blkno == P_NEW)
@@ -354,10 +354,10 @@ _hash_metapinit(Relation rel)
        ffactor = 10;
 
    /*
-    * We initialize the metapage, the first two bucket pages, and the
-    * first bitmap page in sequence, using _hash_getnewbuf to cause
-    * smgrextend() calls to occur.  This ensures that the smgr level
-    * has the right idea of the physical index length.
+    * We initialize the metapage, the first two bucket pages, and the first
+    * bitmap page in sequence, using _hash_getnewbuf to cause smgrextend()
+    * calls to occur.  This ensures that the smgr level has the right idea of
+    * the physical index length.
     */
    metabuf = _hash_getnewbuf(rel, HASH_METAPAGE);
    pg = BufferGetPage(metabuf);
@@ -501,15 +501,16 @@ _hash_expandtable(Relation rel, Buffer metabuf)
        goto fail;
 
    /*
-    * Can't split anymore if maxbucket has reached its maximum possible value.
+    * Can't split anymore if maxbucket has reached its maximum possible
+    * value.
     *
     * Ideally we'd allow bucket numbers up to UINT_MAX-1 (no higher because
     * the calculation maxbucket+1 mustn't overflow).  Currently we restrict
     * to half that because of overflow looping in _hash_log2() and
     * insufficient space in hashm_spares[].  It's moot anyway because an
-    * index with 2^32 buckets would certainly overflow BlockNumber and
-    * hence _hash_alloc_buckets() would fail, but if we supported buckets
-    * smaller than a disk block then this would be an independent constraint.
+    * index with 2^32 buckets would certainly overflow BlockNumber and hence
+    * _hash_alloc_buckets() would fail, but if we supported buckets smaller
+    * than a disk block then this would be an independent constraint.
     */
    if (metap->hashm_maxbucket >= (uint32) 0x7FFFFFFE)
        goto fail;
@@ -536,10 +537,10 @@ _hash_expandtable(Relation rel, Buffer metabuf)
    /*
     * Likewise lock the new bucket (should never fail).
     *
-    * Note: it is safe to compute the new bucket's blkno here, even though
-    * we may still need to update the BUCKET_TO_BLKNO mapping.  This is
-    * because the current value of hashm_spares[hashm_ovflpoint] correctly
-    * shows where we are going to put a new splitpoint's worth of buckets.
+    * Note: it is safe to compute the new bucket's blkno here, even though we
+    * may still need to update the BUCKET_TO_BLKNO mapping.  This is because
+    * the current value of hashm_spares[hashm_ovflpoint] correctly shows
+    * where we are going to put a new splitpoint's worth of buckets.
     */
    start_nblkno = BUCKET_TO_BLKNO(metap, new_bucket);
 
@@ -557,11 +558,12 @@ _hash_expandtable(Relation rel, Buffer metabuf)
    if (spare_ndx > metap->hashm_ovflpoint)
    {
        Assert(spare_ndx == metap->hashm_ovflpoint + 1);
+
        /*
-        * The number of buckets in the new splitpoint is equal to the
-        * total number already in existence, i.e. new_bucket.  Currently
-        * this maps one-to-one to blocks required, but someday we may need
-        * a more complicated calculation here.
+        * The number of buckets in the new splitpoint is equal to the total
+        * number already in existence, i.e. new_bucket.  Currently this maps
+        * one-to-one to blocks required, but someday we may need a more
+        * complicated calculation here.
         */
        if (!_hash_alloc_buckets(rel, start_nblkno, new_bucket))
        {
@@ -673,14 +675,14 @@ fail:
 static bool
 _hash_alloc_buckets(Relation rel, BlockNumber firstblock, uint32 nblocks)
 {
-   BlockNumber lastblock;
+   BlockNumber lastblock;
    char        zerobuf[BLCKSZ];
 
    lastblock = firstblock + nblocks - 1;
 
    /*
-    * Check for overflow in block number calculation; if so, we cannot
-    * extend the index anymore.
+    * Check for overflow in block number calculation; if so, we cannot extend
+    * the index anymore.
     */
    if (lastblock < firstblock || lastblock == InvalidBlockNumber)
        return false;
index 052393fc6b9a1bca61c3e3f73ec59a30b388e79c..20027592b500fd4250ad5475ad803021183765c5 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.244 2007/11/07 12:24:24 petere Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.245 2007/11/15 21:14:32 momjian Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -60,9 +60,9 @@
 
 
 static HeapScanDesc heap_beginscan_internal(Relation relation,
-                                           Snapshot snapshot,
-                                           int nkeys, ScanKey key,
-                                           bool is_bitmapscan);
+                       Snapshot snapshot,
+                       int nkeys, ScanKey key,
+                       bool is_bitmapscan);
 static XLogRecPtr log_heap_update(Relation reln, Buffer oldbuf,
           ItemPointerData from, Buffer newbuf, HeapTuple newtup, bool move);
 static bool HeapSatisfiesHOTUpdate(Relation relation, Bitmapset *hot_attrs,
@@ -85,18 +85,18 @@ initscan(HeapScanDesc scan, ScanKey key)
     * Determine the number of blocks we have to scan.
     *
     * It is sufficient to do this once at scan start, since any tuples added
-    * while the scan is in progress will be invisible to my snapshot
-    * anyway.  (That is not true when using a non-MVCC snapshot.  However,
-    * we couldn't guarantee to return tuples added after scan start anyway,
-    * since they might go into pages we already scanned.  To guarantee
-    * consistent results for a non-MVCC snapshot, the caller must hold some
-    * higher-level lock that ensures the interesting tuple(s) won't change.)
+    * while the scan is in progress will be invisible to my snapshot anyway.
+    * (That is not true when using a non-MVCC snapshot.  However, we couldn't
+    * guarantee to return tuples added after scan start anyway, since they
+    * might go into pages we already scanned.  To guarantee consistent
+    * results for a non-MVCC snapshot, the caller must hold some higher-level
+    * lock that ensures the interesting tuple(s) won't change.)
     */
    scan->rs_nblocks = RelationGetNumberOfBlocks(scan->rs_rd);
 
    /*
     * If the table is large relative to NBuffers, use a bulk-read access
-    * strategy and enable synchronized scanning (see syncscan.c).  Although
+    * strategy and enable synchronized scanning (see syncscan.c).  Although
     * the thresholds for these features could be different, we make them the
     * same so that there are only two behaviors to tune rather than four.
     *
@@ -140,8 +140,8 @@ initscan(HeapScanDesc scan, ScanKey key)
        memcpy(scan->rs_key, key, scan->rs_nkeys * sizeof(ScanKeyData));
 
    /*
-    * Currently, we don't have a stats counter for bitmap heap scans
-    * (but the underlying bitmap index scans will be counted).
+    * Currently, we don't have a stats counter for bitmap heap scans (but the
+    * underlying bitmap index scans will be counted).
     */
    if (!scan->rs_bitmapscan)
        pgstat_count_heap_scan(scan->rs_rd);
@@ -283,7 +283,7 @@ heapgettup(HeapScanDesc scan,
                tuple->t_data = NULL;
                return;
            }
-           page = scan->rs_startblock;         /* first page */
+           page = scan->rs_startblock; /* first page */
            heapgetpage(scan, page);
            lineoff = FirstOffsetNumber;        /* first offnum */
            scan->rs_inited = true;
@@ -317,6 +317,7 @@ heapgettup(HeapScanDesc scan,
                tuple->t_data = NULL;
                return;
            }
+
            /*
             * Disable reporting to syncscan logic in a backwards scan; it's
             * not very likely anyone else is doing the same thing at the same
@@ -459,9 +460,9 @@ heapgettup(HeapScanDesc scan,
            finished = (page == scan->rs_startblock);
 
            /*
-            * Report our new scan position for synchronization purposes.
-            * We don't do that when moving backwards, however. That would
-            * just mess up any other forward-moving scanners.
+            * Report our new scan position for synchronization purposes. We
+            * don't do that when moving backwards, however. That would just
+            * mess up any other forward-moving scanners.
             *
             * Note: we do this before checking for end of scan so that the
             * final state of the position hint is back at the start of the
@@ -554,7 +555,7 @@ heapgettup_pagemode(HeapScanDesc scan,
                tuple->t_data = NULL;
                return;
            }
-           page = scan->rs_startblock;         /* first page */
+           page = scan->rs_startblock; /* first page */
            heapgetpage(scan, page);
            lineindex = 0;
            scan->rs_inited = true;
@@ -585,6 +586,7 @@ heapgettup_pagemode(HeapScanDesc scan,
                tuple->t_data = NULL;
                return;
            }
+
            /*
             * Disable reporting to syncscan logic in a backwards scan; it's
             * not very likely anyone else is doing the same thing at the same
@@ -719,9 +721,9 @@ heapgettup_pagemode(HeapScanDesc scan,
            finished = (page == scan->rs_startblock);
 
            /*
-            * Report our new scan position for synchronization purposes.
-            * We don't do that when moving backwards, however. That would
-            * just mess up any other forward-moving scanners.
+            * Report our new scan position for synchronization purposes. We
+            * don't do that when moving backwards, however. That would just
+            * mess up any other forward-moving scanners.
             *
             * Note: we do this before checking for end of scan so that the
             * final state of the position hint is back at the start of the
@@ -1057,7 +1059,7 @@ heap_openrv(const RangeVar *relation, LOCKMODE lockmode)
  *     heap_beginscan  - begin relation scan
  *
  * heap_beginscan_bm is an alternative entry point for setting up a HeapScanDesc
- * for a bitmap heap scan.  Although that scan technology is really quite
+ * for a bitmap heap scan. Although that scan technology is really quite
  * unlike a standard seqscan, there is just enough commonality to make it
  * worth using the same data structure.
  * ----------------
@@ -1423,10 +1425,10 @@ bool
 heap_hot_search_buffer(ItemPointer tid, Buffer buffer, Snapshot snapshot,
                       bool *all_dead)
 {
-   Page dp = (Page) BufferGetPage(buffer);
+   Page        dp = (Page) BufferGetPage(buffer);
    TransactionId prev_xmax = InvalidTransactionId;
    OffsetNumber offnum;
-   bool at_chain_start;
+   bool        at_chain_start;
 
    if (all_dead)
        *all_dead = true;
@@ -1438,7 +1440,7 @@ heap_hot_search_buffer(ItemPointer tid, Buffer buffer, Snapshot snapshot,
    /* Scan through possible multiple members of HOT-chain */
    for (;;)
    {
-       ItemId lp;
+       ItemId      lp;
        HeapTupleData heapTuple;
 
        /* check for bogus TID */
@@ -1472,7 +1474,8 @@ heap_hot_search_buffer(ItemPointer tid, Buffer buffer, Snapshot snapshot,
            break;
 
        /*
-        * The xmin should match the previous xmax value, else chain is broken.
+        * The xmin should match the previous xmax value, else chain is
+        * broken.
         */
        if (TransactionIdIsValid(prev_xmax) &&
            !TransactionIdEquals(prev_xmax,
@@ -1499,8 +1502,8 @@ heap_hot_search_buffer(ItemPointer tid, Buffer buffer, Snapshot snapshot,
            *all_dead = false;
 
        /*
-        * Check to see if HOT chain continues past this tuple; if so
-        * fetch the next offnum and loop around.
+        * Check to see if HOT chain continues past this tuple; if so fetch
+        * the next offnum and loop around.
         */
        if (HeapTupleIsHotUpdated(&heapTuple))
        {
@@ -1511,7 +1514,7 @@ heap_hot_search_buffer(ItemPointer tid, Buffer buffer, Snapshot snapshot,
            prev_xmax = HeapTupleHeaderGetXmax(heapTuple.t_data);
        }
        else
-           break;          /* end of chain */
+           break;              /* end of chain */
    }
 
    return false;
@@ -1528,8 +1531,8 @@ bool
 heap_hot_search(ItemPointer tid, Relation relation, Snapshot snapshot,
                bool *all_dead)
 {
-   bool    result;
-   Buffer  buffer;
+   bool        result;
+   Buffer      buffer;
 
    buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
    LockBuffer(buffer, BUFFER_LOCK_SHARE);
@@ -1665,7 +1668,7 @@ heap_get_latest_tid(Relation relation,
  *
  * This is called after we have waited for the XMAX transaction to terminate.
  * If the transaction aborted, we guarantee the XMAX_INVALID hint bit will
- * be set on exit.  If the transaction committed, we set the XMAX_COMMITTED
+ * be set on exit. If the transaction committed, we set the XMAX_COMMITTED
  * hint bit if possible --- but beware that that may not yet be possible,
  * if the transaction committed asynchronously.  Hence callers should look
  * only at XMAX_INVALID.
@@ -2069,7 +2072,7 @@ l1:
    /*
     * If this transaction commits, the tuple will become DEAD sooner or
     * later.  Set flag that this page is a candidate for pruning once our xid
-    * falls below the OldestXmin horizon.  If the transaction finally aborts,
+    * falls below the OldestXmin horizon.  If the transaction finally aborts,
     * the subsequent page pruning will be a no-op and the hint will be
     * cleared.
     */
@@ -2252,15 +2255,15 @@ heap_update(Relation relation, ItemPointer otid, HeapTuple newtup,
 
    /*
     * Fetch the list of attributes to be checked for HOT update.  This is
-    * wasted effort if we fail to update or have to put the new tuple on
-    * a different page.  But we must compute the list before obtaining
-    * buffer lock --- in the worst case, if we are doing an update on one
-    * of the relevant system catalogs, we could deadlock if we try to
-    * fetch the list later.  In any case, the relcache caches the data
-    * so this is usually pretty cheap.
+    * wasted effort if we fail to update or have to put the new tuple on a
+    * different page.  But we must compute the list before obtaining buffer
+    * lock --- in the worst case, if we are doing an update on one of the
+    * relevant system catalogs, we could deadlock if we try to fetch the list
+    * later.  In any case, the relcache caches the data so this is usually
+    * pretty cheap.
     *
-    * Note that we get a copy here, so we need not worry about relcache
-    * flush happening midway through.
+    * Note that we get a copy here, so we need not worry about relcache flush
+    * happening midway through.
     */
    hot_attrs = RelationGetIndexAttrBitmap(relation);
 
@@ -2555,7 +2558,7 @@ l2:
    {
        /*
         * Since the new tuple is going into the same page, we might be able
-        * to do a HOT update.  Check if any of the index columns have been
+        * to do a HOT update.  Check if any of the index columns have been
         * changed.  If not, then HOT update is possible.
         */
        if (HeapSatisfiesHOTUpdate(relation, hot_attrs, &oldtup, heaptup))
@@ -2573,14 +2576,14 @@ l2:
    /*
     * If this transaction commits, the old tuple will become DEAD sooner or
     * later.  Set flag that this page is a candidate for pruning once our xid
-    * falls below the OldestXmin horizon.  If the transaction finally aborts,
+    * falls below the OldestXmin horizon.  If the transaction finally aborts,
     * the subsequent page pruning will be a no-op and the hint will be
     * cleared.
     *
-    * XXX Should we set hint on newbuf as well?  If the transaction
-    * aborts, there would be a prunable tuple in the newbuf; but for now
-    * we choose not to optimize for aborts.  Note that heap_xlog_update
-    * must be kept in sync if this decision changes.
+    * XXX Should we set hint on newbuf as well?  If the transaction aborts,
+    * there would be a prunable tuple in the newbuf; but for now we choose
+    * not to optimize for aborts.  Note that heap_xlog_update must be kept in
+    * sync if this decision changes.
     */
    PageSetPrunable(dp, xid);
 
@@ -2695,22 +2698,24 @@ static bool
 heap_tuple_attr_equals(TupleDesc tupdesc, int attrnum,
                       HeapTuple tup1, HeapTuple tup2)
 {
-   Datum value1, value2;
-   bool isnull1, isnull2;
+   Datum       value1,
+               value2;
+   bool        isnull1,
+               isnull2;
    Form_pg_attribute att;
 
    /*
     * If it's a whole-tuple reference, say "not equal".  It's not really
-    * worth supporting this case, since it could only succeed after a
-    * no-op update, which is hardly a case worth optimizing for.
+    * worth supporting this case, since it could only succeed after a no-op
+    * update, which is hardly a case worth optimizing for.
     */
    if (attrnum == 0)
        return false;
 
    /*
-    * Likewise, automatically say "not equal" for any system attribute
-    * other than OID and tableOID; we cannot expect these to be consistent
-    * in a HOT chain, or even to be set correctly yet in the new tuple.
+    * Likewise, automatically say "not equal" for any system attribute other
+    * than OID and tableOID; we cannot expect these to be consistent in a HOT
+    * chain, or even to be set correctly yet in the new tuple.
     */
    if (attrnum < 0)
    {
@@ -2720,17 +2725,17 @@ heap_tuple_attr_equals(TupleDesc tupdesc, int attrnum,
    }
 
    /*
-    * Extract the corresponding values.  XXX this is pretty inefficient
-    * if there are many indexed columns.  Should HeapSatisfiesHOTUpdate
-    * do a single heap_deform_tuple call on each tuple, instead?  But
-    * that doesn't work for system columns ...
+    * Extract the corresponding values.  XXX this is pretty inefficient if
+    * there are many indexed columns.  Should HeapSatisfiesHOTUpdate do a
+    * single heap_deform_tuple call on each tuple, instead?  But that doesn't
+    * work for system columns ...
     */
    value1 = heap_getattr(tup1, attrnum, tupdesc, &isnull1);
    value2 = heap_getattr(tup2, attrnum, tupdesc, &isnull2);
 
    /*
-    * If one value is NULL and other is not, then they are certainly
-    * not equal
+    * If one value is NULL and other is not, then they are certainly not
+    * equal
     */
    if (isnull1 != isnull2)
        return false;
@@ -2744,7 +2749,7 @@ heap_tuple_attr_equals(TupleDesc tupdesc, int attrnum,
    /*
     * We do simple binary comparison of the two datums.  This may be overly
     * strict because there can be multiple binary representations for the
-    * same logical value.  But we should be OK as long as there are no false
+    * same logical value.  But we should be OK as long as there are no false
     * positives.  Using a type-specific equality operator is messy because
     * there could be multiple notions of equality in different operator
     * classes; furthermore, we cannot safely invoke user-defined functions
@@ -2758,7 +2763,7 @@ heap_tuple_attr_equals(TupleDesc tupdesc, int attrnum,
    else
    {
        Assert(attrnum <= tupdesc->natts);
-       att = tupdesc->attrs[attrnum - 1];
+       att = tupdesc->attrs[attrnum - 1];
        return datumIsEqual(value1, value2, att->attbyval, att->attlen);
    }
 }
@@ -2779,7 +2784,7 @@ static bool
 HeapSatisfiesHOTUpdate(Relation relation, Bitmapset *hot_attrs,
                       HeapTuple oldtup, HeapTuple newtup)
 {
-   int attrnum;
+   int         attrnum;
 
    while ((attrnum = bms_first_member(hot_attrs)) >= 0)
    {
@@ -3094,15 +3099,15 @@ l3:
    }
 
    /*
-    * We might already hold the desired lock (or stronger), possibly under
-    * a different subtransaction of the current top transaction.  If so,
-    * there is no need to change state or issue a WAL record.  We already
-    * handled the case where this is true for xmax being a MultiXactId,
-    * so now check for cases where it is a plain TransactionId.
+    * We might already hold the desired lock (or stronger), possibly under a
+    * different subtransaction of the current top transaction.  If so, there
+    * is no need to change state or issue a WAL record.  We already handled
+    * the case where this is true for xmax being a MultiXactId, so now check
+    * for cases where it is a plain TransactionId.
     *
     * Note in particular that this covers the case where we already hold
-    * exclusive lock on the tuple and the caller only wants shared lock.
-    * It would certainly not do to give up the exclusive lock.
+    * exclusive lock on the tuple and the caller only wants shared lock. It
+    * would certainly not do to give up the exclusive lock.
     */
    xmax = HeapTupleHeaderGetXmax(tuple->t_data);
    old_infomask = tuple->t_data->t_infomask;
@@ -3179,8 +3184,8 @@ l3:
            {
                /*
                 * If the XMAX is a valid TransactionId, then we need to
-                * create a new MultiXactId that includes both the old
-                * locker and our own TransactionId.
+                * create a new MultiXactId that includes both the old locker
+                * and our own TransactionId.
                 */
                xid = MultiXactIdCreate(xmax, xid);
                new_infomask |= HEAP_XMAX_IS_MULTI;
@@ -3214,8 +3219,8 @@ l3:
    /*
     * Store transaction information of xact locking the tuple.
     *
-    * Note: Cmax is meaningless in this context, so don't set it; this
-    * avoids possibly generating a useless combo CID.
+    * Note: Cmax is meaningless in this context, so don't set it; this avoids
+    * possibly generating a useless combo CID.
     */
    tuple->t_data->t_infomask = new_infomask;
    HeapTupleHeaderClearHotUpdated(tuple->t_data);
@@ -3425,6 +3430,7 @@ heap_freeze_tuple(HeapTupleHeader tuple, TransactionId cutoff_xid,
            buf = InvalidBuffer;
        }
        HeapTupleHeaderSetXmin(tuple, FrozenTransactionId);
+
        /*
         * Might as well fix the hint bits too; usually XMIN_COMMITTED will
         * already be set here, but there's a small chance not.
@@ -3437,9 +3443,9 @@ heap_freeze_tuple(HeapTupleHeader tuple, TransactionId cutoff_xid,
    /*
     * When we release shared lock, it's possible for someone else to change
     * xmax before we get the lock back, so repeat the check after acquiring
-    * exclusive lock.  (We don't need this pushup for xmin, because only
-    * VACUUM could be interested in changing an existing tuple's xmin,
-    * and there's only one VACUUM allowed on a table at a time.)
+    * exclusive lock.  (We don't need this pushup for xmin, because only
+    * VACUUM could be interested in changing an existing tuple's xmin, and
+    * there's only one VACUUM allowed on a table at a time.)
     */
 recheck_xmax:
    if (!(tuple->t_infomask & HEAP_XMAX_IS_MULTI))
@@ -3454,13 +3460,14 @@ recheck_xmax:
                LockBuffer(buf, BUFFER_LOCK_UNLOCK);
                LockBuffer(buf, BUFFER_LOCK_EXCLUSIVE);
                buf = InvalidBuffer;
-               goto recheck_xmax;          /* see comment above */
+               goto recheck_xmax;      /* see comment above */
            }
            HeapTupleHeaderSetXmax(tuple, InvalidTransactionId);
+
            /*
-            * The tuple might be marked either XMAX_INVALID or
-            * XMAX_COMMITTED + LOCKED.  Normalize to INVALID just to be
-            * sure no one gets confused.
+            * The tuple might be marked either XMAX_INVALID or XMAX_COMMITTED
+            * + LOCKED.  Normalize to INVALID just to be sure no one gets
+            * confused.
             */
            tuple->t_infomask &= ~HEAP_XMAX_COMMITTED;
            tuple->t_infomask |= HEAP_XMAX_INVALID;
@@ -3506,8 +3513,9 @@ recheck_xvac:
                LockBuffer(buf, BUFFER_LOCK_UNLOCK);
                LockBuffer(buf, BUFFER_LOCK_EXCLUSIVE);
                buf = InvalidBuffer;
-               goto recheck_xvac;          /* see comment above */
+               goto recheck_xvac;      /* see comment above */
            }
+
            /*
             * If a MOVED_OFF tuple is not dead, the xvac transaction must
             * have failed; whereas a non-dead MOVED_IN tuple must mean the
@@ -3517,9 +3525,10 @@ recheck_xvac:
                HeapTupleHeaderSetXvac(tuple, InvalidTransactionId);
            else
                HeapTupleHeaderSetXvac(tuple, FrozenTransactionId);
+
            /*
-            * Might as well fix the hint bits too; usually XMIN_COMMITTED will
-            * already be set here, but there's a small chance not.
+            * Might as well fix the hint bits too; usually XMIN_COMMITTED
+            * will already be set here, but there's a small chance not.
             */
            Assert(!(tuple->t_infomask & HEAP_XMIN_INVALID));
            tuple->t_infomask |= HEAP_XMIN_COMMITTED;
@@ -3632,8 +3641,8 @@ log_heap_clean(Relation reln, Buffer buffer,
    /*
     * The OffsetNumber arrays are not actually in the buffer, but we pretend
     * that they are.  When XLogInsert stores the whole buffer, the offset
-    * arrays need not be stored too.  Note that even if all three arrays
-    * are empty, we want to expose the buffer as a candidate for whole-page
+    * arrays need not be stored too.  Note that even if all three arrays are
+    * empty, we want to expose the buffer as a candidate for whole-page
     * storage, since this record type implies a defragmentation operation
     * even if no item pointers changed state.
     */
@@ -3686,7 +3695,7 @@ log_heap_clean(Relation reln, Buffer buffer,
 }
 
 /*
- * Perform XLogInsert for a heap-freeze operation.  Caller must already
+ * Perform XLogInsert for a heap-freeze operation. Caller must already
  * have modified the buffer and marked it dirty.
  */
 XLogRecPtr
@@ -3711,9 +3720,9 @@ log_heap_freeze(Relation reln, Buffer buffer,
    rdata[0].next = &(rdata[1]);
 
    /*
-    * The tuple-offsets array is not actually in the buffer, but pretend
-    * that it is.  When XLogInsert stores the whole buffer, the offsets array
-    * need not be stored too.
+    * The tuple-offsets array is not actually in the buffer, but pretend that
+    * it is.  When XLogInsert stores the whole buffer, the offsets array need
+    * not be stored too.
     */
    if (offcnt > 0)
    {
@@ -3853,7 +3862,7 @@ log_heap_move(Relation reln, Buffer oldbuf, ItemPointerData from,
  * for writing the page to disk after calling this routine.
  *
  * Note: all current callers build pages in private memory and write them
- * directly to smgr, rather than using bufmgr.  Therefore there is no need
+ * directly to smgr, rather than using bufmgr. Therefore there is no need
  * to pass a buffer ID to XLogInsert, nor to perform MarkBufferDirty within
  * the critical section.
  *
@@ -3905,9 +3914,9 @@ heap_xlog_clean(XLogRecPtr lsn, XLogRecord *record, bool clean_move)
    Page        page;
    OffsetNumber *offnum;
    OffsetNumber *end;
-   int nredirected;
-   int ndead;
-   int i;
+   int         nredirected;
+   int         ndead;
+   int         i;
 
    if (record->xl_info & XLR_BKP_BLOCK_1)
        return;
@@ -3934,12 +3943,12 @@ heap_xlog_clean(XLogRecPtr lsn, XLogRecord *record, bool clean_move)
    {
        OffsetNumber fromoff = *offnum++;
        OffsetNumber tooff = *offnum++;
-       ItemId  fromlp = PageGetItemId(page, fromoff);
+       ItemId      fromlp = PageGetItemId(page, fromoff);
 
        if (clean_move)
        {
            /* Physically move the "to" item to the "from" slot */
-           ItemId  tolp = PageGetItemId(page, tooff);
+           ItemId      tolp = PageGetItemId(page, tooff);
            HeapTupleHeader htup;
 
            *fromlp = *tolp;
@@ -3962,7 +3971,7 @@ heap_xlog_clean(XLogRecPtr lsn, XLogRecord *record, bool clean_move)
    for (i = 0; i < ndead; i++)
    {
        OffsetNumber off = *offnum++;
-       ItemId  lp = PageGetItemId(page, off);
+       ItemId      lp = PageGetItemId(page, off);
 
        ItemIdSetDead(lp);
    }
@@ -3971,14 +3980,14 @@ heap_xlog_clean(XLogRecPtr lsn, XLogRecord *record, bool clean_move)
    while (offnum < end)
    {
        OffsetNumber off = *offnum++;
-       ItemId  lp = PageGetItemId(page, off);
+       ItemId      lp = PageGetItemId(page, off);
 
        ItemIdSetUnused(lp);
    }
 
    /*
-    * Finally, repair any fragmentation, and update the page's hint bit
-    * about whether it has free pointers.
+    * Finally, repair any fragmentation, and update the page's hint bit about
+    * whether it has free pointers.
     */
    PageRepairFragmentation(page);
 
@@ -4617,7 +4626,7 @@ heap_desc(StringInfo buf, uint8 xl_info, char *rec)
    {
        xl_heap_update *xlrec = (xl_heap_update *) rec;
 
-       if (xl_info & XLOG_HEAP_INIT_PAGE) /* can this case happen? */
+       if (xl_info & XLOG_HEAP_INIT_PAGE)      /* can this case happen? */
            appendStringInfo(buf, "hot_update(init): ");
        else
            appendStringInfo(buf, "hot_update: ");
@@ -4724,7 +4733,7 @@ heap_sync(Relation rel)
    /* toast heap, if any */
    if (OidIsValid(rel->rd_rel->reltoastrelid))
    {
-       Relation        toastrel;
+       Relation    toastrel;
 
        toastrel = heap_open(rel->rd_rel->reltoastrelid, AccessShareLock);
        FlushRelationBuffers(toastrel);
index 9723241547ff2ea1947d6c5999c6d4d6b75cbc7e..067b23f24cca2386b24fe09eb06c5bc83fbf32de 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/heap/pruneheap.c,v 1.3 2007/10/24 13:05:57 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/heap/pruneheap.c,v 1.4 2007/11/15 21:14:32 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 
 /* Local functions */
-static int heap_prune_chain(Relation relation, Buffer buffer,
-                            OffsetNumber rootoffnum,
-                            TransactionId OldestXmin,
-                            OffsetNumber *redirected, int *nredirected,
-                            OffsetNumber *nowdead, int *ndead,
-                            OffsetNumber *nowunused, int *nunused,
-                            bool redirect_move);
+static int heap_prune_chain(Relation relation, Buffer buffer,
+                OffsetNumber rootoffnum,
+                TransactionId OldestXmin,
+                OffsetNumber *redirected, int *nredirected,
+                OffsetNumber *nowdead, int *ndead,
+                OffsetNumber *nowunused, int *nunused,
+                bool redirect_move);
 static void heap_prune_record_redirect(OffsetNumber *redirected,
-           int *nredirected,
-           OffsetNumber offnum,
-           OffsetNumber rdoffnum);
+                          int *nredirected,
+                          OffsetNumber offnum,
+                          OffsetNumber rdoffnum);
 static void heap_prune_record_dead(OffsetNumber *nowdead, int *ndead,
-           OffsetNumber offnum);
+                      OffsetNumber offnum);
 static void heap_prune_record_unused(OffsetNumber *nowunused, int *nunused,
-           OffsetNumber offnum);
+                        OffsetNumber offnum);
 
 
 /*
@@ -70,16 +70,16 @@ heap_page_prune_opt(Relation relation, Buffer buffer, TransactionId OldestXmin)
        return;
 
    /*
-    * We prune when a previous UPDATE failed to find enough space on the
-    * page for a new tuple version, or when free space falls below the
-    * relation's fill-factor target (but not less than 10%).
+    * We prune when a previous UPDATE failed to find enough space on the page
+    * for a new tuple version, or when free space falls below the relation's
+    * fill-factor target (but not less than 10%).
     *
-    * Checking free space here is questionable since we aren't holding
-    * any lock on the buffer; in the worst case we could get a bogus
-    * answer.  It's unlikely to be *seriously* wrong, though, since
-    * reading either pd_lower or pd_upper is probably atomic.  Avoiding
-    * taking a lock seems better than sometimes getting a wrong answer
-    * in what is after all just a heuristic estimate.
+    * Checking free space here is questionable since we aren't holding any
+    * lock on the buffer; in the worst case we could get a bogus answer.
+    * It's unlikely to be *seriously* wrong, though, since reading either
+    * pd_lower or pd_upper is probably atomic.  Avoiding taking a lock seems
+    * better than sometimes getting a wrong answer in what is after all just
+    * a heuristic estimate.
     */
    minfree = RelationGetTargetPageFreeSpace(relation,
                                             HEAP_DEFAULT_FILLFACTOR);
@@ -93,9 +93,9 @@ heap_page_prune_opt(Relation relation, Buffer buffer, TransactionId OldestXmin)
 
        /*
         * Now that we have buffer lock, get accurate information about the
-        * page's free space, and recheck the heuristic about whether to prune.
-        * (We needn't recheck PageIsPrunable, since no one else could have
-        * pruned while we hold pin.)
+        * page's free space, and recheck the heuristic about whether to
+        * prune. (We needn't recheck PageIsPrunable, since no one else could
+        * have pruned while we hold pin.)
         */
        if (PageIsFull(dp) || PageGetHeapFreeSpace((Page) dp) < minfree)
        {
@@ -119,7 +119,7 @@ heap_page_prune_opt(Relation relation, Buffer buffer, TransactionId OldestXmin)
  *
  * If redirect_move is set, we remove redirecting line pointers by
  * updating the root line pointer to point directly to the first non-dead
- * tuple in the chain.  NOTE: eliminating the redirect changes the first
+ * tuple in the chain. NOTE: eliminating the redirect changes the first
  * tuple's effective CTID, and is therefore unsafe except within VACUUM FULL.
  * The only reason we support this capability at all is that by using it,
  * VACUUM FULL need not cope with LP_REDIRECT items at all; which seems a
@@ -136,18 +136,18 @@ int
 heap_page_prune(Relation relation, Buffer buffer, TransactionId OldestXmin,
                bool redirect_move, bool report_stats)
 {
-   int             ndeleted = 0;
-   Page            page = BufferGetPage(buffer);
-   OffsetNumber    offnum,
-                   maxoff;
-   OffsetNumber    redirected[MaxHeapTuplesPerPage * 2];
-   OffsetNumber    nowdead[MaxHeapTuplesPerPage];
-   OffsetNumber    nowunused[MaxHeapTuplesPerPage];
-   int             nredirected = 0;
-   int             ndead = 0;
-   int             nunused = 0;
-   bool            page_was_full = false;
-   TransactionId   save_prune_xid;
+   int         ndeleted = 0;
+   Page        page = BufferGetPage(buffer);
+   OffsetNumber offnum,
+               maxoff;
+   OffsetNumber redirected[MaxHeapTuplesPerPage * 2];
+   OffsetNumber nowdead[MaxHeapTuplesPerPage];
+   OffsetNumber nowunused[MaxHeapTuplesPerPage];
+   int         nredirected = 0;
+   int         ndead = 0;
+   int         nunused = 0;
+   bool        page_was_full = false;
+   TransactionId save_prune_xid;
 
    START_CRIT_SECTION();
 
@@ -159,7 +159,7 @@ heap_page_prune(Relation relation, Buffer buffer, TransactionId OldestXmin,
    save_prune_xid = ((PageHeader) page)->pd_prune_xid;
    PageClearPrunable(page);
 
-   /* 
+   /*
     * Also clear the "page is full" flag if it is set, since there's no point
     * in repeating the prune/defrag process until something else happens to
     * the page.
@@ -176,7 +176,7 @@ heap_page_prune(Relation relation, Buffer buffer, TransactionId OldestXmin,
         offnum <= maxoff;
         offnum = OffsetNumberNext(offnum))
    {
-       ItemId itemid = PageGetItemId(page, offnum);
+       ItemId      itemid = PageGetItemId(page, offnum);
 
        /* Nothing to do if slot is empty or already dead */
        if (!ItemIdIsUsed(itemid) || ItemIdIsDead(itemid))
@@ -233,9 +233,9 @@ heap_page_prune(Relation relation, Buffer buffer, TransactionId OldestXmin,
    END_CRIT_SECTION();
 
    /*
-    * If requested, report the number of tuples reclaimed to pgstats.
-    * This is ndeleted minus ndead, because we don't want to count a now-DEAD
-    * root item as a deletion for this purpose.
+    * If requested, report the number of tuples reclaimed to pgstats. This is
+    * ndeleted minus ndead, because we don't want to count a now-DEAD root
+    * item as a deletion for this purpose.
     */
    if (report_stats && ndeleted > ndead)
        pgstat_update_heap_dead_tuples(relation, ndeleted - ndead);
@@ -243,19 +243,17 @@ heap_page_prune(Relation relation, Buffer buffer, TransactionId OldestXmin,
    /*
     * XXX Should we update the FSM information of this page ?
     *
-    * There are two schools of thought here. We may not want to update
-    * FSM information so that the page is not used for unrelated
-    * UPDATEs/INSERTs and any free space in this page will remain
-    * available for further UPDATEs in *this* page, thus improving
-    * chances for doing HOT updates.
+    * There are two schools of thought here. We may not want to update FSM
+    * information so that the page is not used for unrelated UPDATEs/INSERTs
+    * and any free space in this page will remain available for further
+    * UPDATEs in *this* page, thus improving chances for doing HOT updates.
     *
-    * But for a large table and where a page does not receive further
-    * UPDATEs for a long time, we might waste this space by not
-    * updating the FSM information. The relation may get extended and
-    * fragmented further.
+    * But for a large table and where a page does not receive further UPDATEs
+    * for a long time, we might waste this space by not updating the FSM
+    * information. The relation may get extended and fragmented further.
     *
-    * One possibility is to leave "fillfactor" worth of space in this
-    * page and update FSM with the remaining space.
+    * One possibility is to leave "fillfactor" worth of space in this page
+    * and update FSM with the remaining space.
     *
     * In any case, the current FSM implementation doesn't accept
     * one-page-at-a-time updates, so this is all academic for now.
@@ -298,17 +296,17 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum,
                 OffsetNumber *nowunused, int *nunused,
                 bool redirect_move)
 {
-   int             ndeleted = 0;
-   Page            dp = (Page) BufferGetPage(buffer);
-   TransactionId   priorXmax = InvalidTransactionId;
-   ItemId          rootlp;
-   HeapTupleHeader htup;
-   OffsetNumber    latestdead = InvalidOffsetNumber,
-                   maxoff = PageGetMaxOffsetNumber(dp),
-                   offnum;
-   OffsetNumber    chainitems[MaxHeapTuplesPerPage];
-   int             nchain = 0,
-                   i;
+   int         ndeleted = 0;
+   Page        dp = (Page) BufferGetPage(buffer);
+   TransactionId priorXmax = InvalidTransactionId;
+   ItemId      rootlp;
+   HeapTupleHeader htup;
+   OffsetNumber latestdead = InvalidOffsetNumber,
+               maxoff = PageGetMaxOffsetNumber(dp),
+               offnum;
+   OffsetNumber chainitems[MaxHeapTuplesPerPage];
+   int         nchain = 0,
+               i;
 
    rootlp = PageGetItemId(dp, rootoffnum);
 
@@ -321,14 +319,14 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum,
        if (HeapTupleHeaderIsHeapOnly(htup))
        {
            /*
-            * If the tuple is DEAD and doesn't chain to anything else, mark it
-            * unused immediately.  (If it does chain, we can only remove it as
-            * part of pruning its chain.)
+            * If the tuple is DEAD and doesn't chain to anything else, mark
+            * it unused immediately.  (If it does chain, we can only remove
+            * it as part of pruning its chain.)
             *
             * We need this primarily to handle aborted HOT updates, that is,
-            * XMIN_INVALID heap-only tuples.  Those might not be linked to
-            * by any chain, since the parent tuple might be re-updated before
-            * any pruning occurs.  So we have to be able to reap them
+            * XMIN_INVALID heap-only tuples.  Those might not be linked to by
+            * any chain, since the parent tuple might be re-updated before
+            * any pruning occurs.  So we have to be able to reap them
             * separately from chain-pruning.
             *
             * Note that we might first arrive at a dead heap-only tuple
@@ -354,9 +352,9 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum,
    /* while not end of the chain */
    for (;;)
    {
-       ItemId          lp;
-       bool            tupdead,
-                       recent_dead;
+       ItemId      lp;
+       bool        tupdead,
+                   recent_dead;
 
        /* Some sanity checks */
        if (offnum < FirstOffsetNumber || offnum > maxoff)
@@ -368,9 +366,9 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum,
            break;
 
        /*
-        * If we are looking at the redirected root line pointer,
-        * jump to the first normal tuple in the chain.  If we find
-        * a redirect somewhere else, stop --- it must not be same chain.
+        * If we are looking at the redirected root line pointer, jump to the
+        * first normal tuple in the chain.  If we find a redirect somewhere
+        * else, stop --- it must not be same chain.
         */
        if (ItemIdIsRedirected(lp))
        {
@@ -382,9 +380,9 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum,
        }
 
        /*
-        * Likewise, a dead item pointer can't be part of the chain.
-        * (We already eliminated the case of dead root tuple outside
-        * this function.)
+        * Likewise, a dead item pointer can't be part of the chain. (We
+        * already eliminated the case of dead root tuple outside this
+        * function.)
         */
        if (ItemIdIsDead(lp))
            break;
@@ -417,6 +415,7 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum,
 
            case HEAPTUPLE_RECENTLY_DEAD:
                recent_dead = true;
+
                /*
                 * This tuple may soon become DEAD.  Update the hint field so
                 * that the page is reconsidered for pruning in future.
@@ -425,6 +424,7 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum,
                break;
 
            case HEAPTUPLE_DELETE_IN_PROGRESS:
+
                /*
                 * This tuple may soon become DEAD.  Update the hint field so
                 * that the page is reconsidered for pruning in future.
@@ -434,11 +434,12 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum,
 
            case HEAPTUPLE_LIVE:
            case HEAPTUPLE_INSERT_IN_PROGRESS:
+
                /*
                 * If we wanted to optimize for aborts, we might consider
                 * marking the page prunable when we see INSERT_IN_PROGRESS.
-                * But we don't.  See related decisions about when to mark
-                * the page prunable in heapam.c.
+                * But we don't.  See related decisions about when to mark the
+                * page prunable in heapam.c.
                 */
                break;
 
@@ -486,12 +487,12 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum,
         * Mark as unused each intermediate item that we are able to remove
         * from the chain.
         *
-        * When the previous item is the last dead tuple seen, we are at
-        * the right candidate for redirection.
+        * When the previous item is the last dead tuple seen, we are at the
+        * right candidate for redirection.
         */
        for (i = 1; (i < nchain) && (chainitems[i - 1] != latestdead); i++)
        {
-           ItemId lp = PageGetItemId(dp, chainitems[i]);
+           ItemId      lp = PageGetItemId(dp, chainitems[i]);
 
            ItemIdSetUnused(lp);
            heap_prune_record_unused(nowunused, nunused, chainitems[i]);
@@ -499,17 +500,17 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum,
        }
 
        /*
-        * If the root entry had been a normal tuple, we are deleting it,
-        * so count it in the result.  But changing a redirect (even to
-        * DEAD state) doesn't count.
+        * If the root entry had been a normal tuple, we are deleting it, so
+        * count it in the result.  But changing a redirect (even to DEAD
+        * state) doesn't count.
         */
        if (ItemIdIsNormal(rootlp))
            ndeleted++;
 
        /*
         * If the DEAD tuple is at the end of the chain, the entire chain is
-        * dead and the root line pointer can be marked dead.  Otherwise
-        * just redirect the root to the correct chain member.
+        * dead and the root line pointer can be marked dead.  Otherwise just
+        * redirect the root to the correct chain member.
         */
        if (i >= nchain)
        {
@@ -528,25 +529,25 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum,
    {
        /*
         * We found a redirect item that doesn't point to a valid follow-on
-        * item.  This can happen if the loop in heap_page_prune caused us
-        * to visit the dead successor of a redirect item before visiting
-        * the redirect item.  We can clean up by setting the redirect item
-        * to DEAD state.
+        * item.  This can happen if the loop in heap_page_prune caused us to
+        * visit the dead successor of a redirect item before visiting the
+        * redirect item.  We can clean up by setting the redirect item to
+        * DEAD state.
         */
        ItemIdSetDead(rootlp);
        heap_prune_record_dead(nowdead, ndead, rootoffnum);
    }
 
    /*
-    * If requested, eliminate LP_REDIRECT items by moving tuples.  Note that
+    * If requested, eliminate LP_REDIRECT items by moving tuples.  Note that
     * if the root item is LP_REDIRECT and doesn't point to a valid follow-on
     * item, we already killed it above.
     */
    if (redirect_move && ItemIdIsRedirected(rootlp))
    {
        OffsetNumber firstoffnum = ItemIdGetRedirect(rootlp);
-       ItemId firstlp = PageGetItemId(dp, firstoffnum);
-       HeapTupleData   firsttup;
+       ItemId      firstlp = PageGetItemId(dp, firstoffnum);
+       HeapTupleData firsttup;
 
        Assert(ItemIdIsNormal(firstlp));
        /* Set up firsttup to reference the tuple at its existing CTID */
@@ -558,15 +559,15 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum,
        firsttup.t_tableOid = RelationGetRelid(relation);
 
        /*
-        * Mark the tuple for invalidation.  Needed because we're changing
-        * its CTID.
+        * Mark the tuple for invalidation.  Needed because we're changing its
+        * CTID.
         */
        CacheInvalidateHeapTuple(relation, &firsttup);
 
        /*
-        * Change heap-only status of the tuple because after the line
-        * pointer manipulation, it's no longer a heap-only tuple, but is
-        * directly pointed to by index entries.
+        * Change heap-only status of the tuple because after the line pointer
+        * manipulation, it's no longer a heap-only tuple, but is directly
+        * pointed to by index entries.
         */
        Assert(HeapTupleIsHeapOnly(&firsttup));
        HeapTupleClearHeapOnly(&firsttup);
@@ -594,7 +595,7 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum,
 /* Record newly-redirected item pointer */
 static void
 heap_prune_record_redirect(OffsetNumber *redirected, int *nredirected,
-           OffsetNumber offnum, OffsetNumber rdoffnum)
+                          OffsetNumber offnum, OffsetNumber rdoffnum)
 {
    Assert(*nredirected < MaxHeapTuplesPerPage);
    redirected[*nredirected * 2] = offnum;
@@ -641,17 +642,18 @@ heap_prune_record_unused(OffsetNumber *nowunused, int *nunused,
 void
 heap_get_root_tuples(Page page, OffsetNumber *root_offsets)
 {
-   OffsetNumber    offnum, maxoff;
+   OffsetNumber offnum,
+               maxoff;
 
    MemSet(root_offsets, 0, MaxHeapTuplesPerPage * sizeof(OffsetNumber));
 
    maxoff = PageGetMaxOffsetNumber(page);
    for (offnum = FirstOffsetNumber; offnum <= maxoff; offnum++)
    {
-       ItemId          lp = PageGetItemId(page, offnum);
-       HeapTupleHeader htup;
-       OffsetNumber    nextoffnum;
-       TransactionId   priorXmax;
+       ItemId      lp = PageGetItemId(page, offnum);
+       HeapTupleHeader htup;
+       OffsetNumber nextoffnum;
+       TransactionId priorXmax;
 
        /* skip unused and dead items */
        if (!ItemIdIsUsed(lp) || ItemIdIsDead(lp))
index e8c5eec50ac0924b9cfec8d1b26898ad303b4cb1..20c5938ff2738f212b8180c0938a2e2dbb8bc868 100644 (file)
@@ -10,7 +10,7 @@
  *
  * The caller is responsible for creating the new heap, all catalog
  * changes, supplying the tuples to be written to the new heap, and
- * rebuilding indexes.  The caller must hold AccessExclusiveLock on the
+ * rebuilding indexes. The caller must hold AccessExclusiveLock on the
  * target table, because we assume no one else is writing into it.
  *
  * To use the facility:
  * begin_heap_rewrite
  * while (fetch next tuple)
  * {
- *     if (tuple is dead)
- *         rewrite_heap_dead_tuple
- *     else
- *     {
- *         // do any transformations here if required
- *         rewrite_heap_tuple
- *     }
+ *    if (tuple is dead)
+ *        rewrite_heap_dead_tuple
+ *    else
+ *    {
+ *        // do any transformations here if required
+ *        rewrite_heap_tuple
+ *    }
  * }
  * end_heap_rewrite
  *
@@ -43,7 +43,7 @@
  * to substitute the correct ctid instead.
  *
  * For each ctid reference from A -> B, we might encounter either A first
- * or B first.  (Note that a tuple in the middle of a chain is both A and B
+ * or B first. (Note that a tuple in the middle of a chain is both A and B
  * of different pairs.)
  *
  * If we encounter A first, we'll store the tuple in the unresolved_tups
  * and can write A immediately with the correct ctid.
  *
  * Entries in the hash tables can be removed as soon as the later tuple
- * is encountered.  That helps to keep the memory usage down.  At the end,
+ * is encountered. That helps to keep the memory usage down.  At the end,
  * both tables are usually empty; we should have encountered both A and B
  * of each pair.  However, it's possible for A to be RECENTLY_DEAD and B
  * entirely DEAD according to HeapTupleSatisfiesVacuum, because the test
- * for deadness using OldestXmin is not exact.  In such a case we might
+ * for deadness using OldestXmin is not exact. In such a case we might
  * encounter B first, and skip it, and find A later.  Then A would be added
  * to unresolved_tups, and stay there until end of the rewrite.  Since
  * this case is very unusual, we don't worry about the memory usage.
@@ -78,7 +78,7 @@
  * of CLUSTERing on an unchanging key column, we'll see all the versions
  * of a given tuple together anyway, and so the peak memory usage is only
  * proportional to the number of RECENTLY_DEAD versions of a single row, not
- * in the whole table.  Note that if we do fail halfway through a CLUSTER,
+ * in the whole table. Note that if we do fail halfway through a CLUSTER,
  * the old table is still valid, so failure is not catastrophic.
  *
  * We can't use the normal heap_insert function to insert into the new
@@ -96,7 +96,7 @@
  * Portions Copyright (c) 1994-5, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/heap/rewriteheap.c,v 1.7 2007/09/20 17:56:30 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/heap/rewriteheap.c,v 1.8 2007/11/15 21:14:32 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
  */
 typedef struct RewriteStateData
 {
-   Relation        rs_new_rel;         /* destination heap */
-   Page            rs_buffer;          /* page currently being built */
-   BlockNumber     rs_blockno;         /* block where page will go */
-   bool            rs_buffer_valid;    /* T if any tuples in buffer */
-   bool            rs_use_wal;         /* must we WAL-log inserts? */
-   TransactionId   rs_oldest_xmin;     /* oldest xmin used by caller to
+   Relation    rs_new_rel;     /* destination heap */
+   Page        rs_buffer;      /* page currently being built */
+   BlockNumber rs_blockno;     /* block where page will go */
+   bool        rs_buffer_valid;    /* T if any tuples in buffer */
+   bool        rs_use_wal;     /* must we WAL-log inserts? */
+   TransactionId rs_oldest_xmin;       /* oldest xmin used by caller to
                                         * determine tuple visibility */
-   TransactionId   rs_freeze_xid;      /* Xid that will be used as freeze
-                                        * cutoff point */
-   MemoryContext   rs_cxt;             /* for hash tables and entries and
-                                        * tuples in them */
-   HTAB           *rs_unresolved_tups; /* unmatched A tuples */
-   HTAB           *rs_old_new_tid_map; /* unmatched B tuples */
-} RewriteStateData;
+   TransactionId rs_freeze_xid;/* Xid that will be used as freeze cutoff
+                                * point */
+   MemoryContext rs_cxt;       /* for hash tables and entries and tuples in
+                                * them */
+   HTAB       *rs_unresolved_tups;     /* unmatched A tuples */
+   HTAB       *rs_old_new_tid_map;     /* unmatched B tuples */
+}  RewriteStateData;
 
 /*
  * The lookup keys for the hash tables are tuple TID and xmin (we must check
@@ -139,27 +139,27 @@ typedef struct RewriteStateData
  */
 typedef struct
 {
-   TransactionId   xmin;       /* tuple xmin */
+   TransactionId xmin;         /* tuple xmin */
    ItemPointerData tid;        /* tuple location in old heap */
-} TidHashKey;
+}  TidHashKey;
 
 /*
  * Entry structures for the hash tables
  */
 typedef struct
 {
-   TidHashKey      key;        /* expected xmin/old location of B tuple */
+   TidHashKey  key;            /* expected xmin/old location of B tuple */
    ItemPointerData old_tid;    /* A's location in the old heap */
-   HeapTuple tuple;            /* A's tuple contents */
-} UnresolvedTupData;
+   HeapTuple   tuple;          /* A's tuple contents */
+}  UnresolvedTupData;
 
 typedef UnresolvedTupData *UnresolvedTup;
 
 typedef struct
 {
-   TidHashKey      key;        /* actual xmin/old location of B tuple */
+   TidHashKey  key;            /* actual xmin/old location of B tuple */
    ItemPointerData new_tid;    /* where we put it in the new heap */
-} OldToNewMappingData;
+}  OldToNewMappingData;
 
 typedef OldToNewMappingData *OldToNewMapping;
 
@@ -189,8 +189,8 @@ begin_heap_rewrite(Relation new_heap, TransactionId oldest_xmin,
    HASHCTL     hash_ctl;
 
    /*
-    * To ease cleanup, make a separate context that will contain
-    * the RewriteState struct itself plus all subsidiary data.
+    * To ease cleanup, make a separate context that will contain the
+    * RewriteState struct itself plus all subsidiary data.
     */
    rw_cxt = AllocSetContextCreate(CurrentMemoryContext,
                                   "Table rewrite",
@@ -221,7 +221,7 @@ begin_heap_rewrite(Relation new_heap, TransactionId oldest_xmin,
 
    state->rs_unresolved_tups =
        hash_create("Rewrite / Unresolved ctids",
-                   128, /* arbitrary initial size */
+                   128,        /* arbitrary initial size */
                    &hash_ctl,
                    HASH_ELEM | HASH_FUNCTION | HASH_CONTEXT);
 
@@ -229,7 +229,7 @@ begin_heap_rewrite(Relation new_heap, TransactionId oldest_xmin,
 
    state->rs_old_new_tid_map =
        hash_create("Rewrite / Old to new tid map",
-                   128, /* arbitrary initial size */
+                   128,        /* arbitrary initial size */
                    &hash_ctl,
                    HASH_ELEM | HASH_FUNCTION | HASH_CONTEXT);
 
@@ -250,8 +250,8 @@ end_heap_rewrite(RewriteState state)
    UnresolvedTup unresolved;
 
    /*
-    * Write any remaining tuples in the UnresolvedTups table. If we have
-    * any left, they should in fact be dead, but let's err on the safe side.
+    * Write any remaining tuples in the UnresolvedTups table. If we have any
+    * left, they should in fact be dead, but let's err on the safe side.
     *
     * XXX this really is a waste of code no?
     */
@@ -276,15 +276,15 @@ end_heap_rewrite(RewriteState state)
    }
 
    /*
-    * If the rel isn't temp, must fsync before commit.  We use heap_sync
-    * to ensure that the toast table gets fsync'd too.
+    * If the rel isn't temp, must fsync before commit.  We use heap_sync to
+    * ensure that the toast table gets fsync'd too.
     *
     * It's obvious that we must do this when not WAL-logging. It's less
-    * obvious that we have to do it even if we did WAL-log the pages.
-    * The reason is the same as in tablecmds.c's copy_relation_data():
-    * we're writing data that's not in shared buffers, and so a CHECKPOINT
-    * occurring during the rewriteheap operation won't have fsync'd data
-    * we wrote before the checkpoint.
+    * obvious that we have to do it even if we did WAL-log the pages. The
+    * reason is the same as in tablecmds.c's copy_relation_data(): we're
+    * writing data that's not in shared buffers, and so a CHECKPOINT
+    * occurring during the rewriteheap operation won't have fsync'd data we
+    * wrote before the checkpoint.
     */
    if (!state->rs_new_rel->rd_istemp)
        heap_sync(state->rs_new_rel);
@@ -310,17 +310,17 @@ rewrite_heap_tuple(RewriteState state,
 {
    MemoryContext old_cxt;
    ItemPointerData old_tid;
-   TidHashKey hashkey;
-   bool found;
-   bool free_new;
+   TidHashKey  hashkey;
+   bool        found;
+   bool        free_new;
 
    old_cxt = MemoryContextSwitchTo(state->rs_cxt);
 
    /*
     * Copy the original tuple's visibility information into new_tuple.
     *
-    * XXX we might later need to copy some t_infomask2 bits, too?
-    * Right now, we intentionally clear the HOT status bits.
+    * XXX we might later need to copy some t_infomask2 bits, too? Right now,
+    * we intentionally clear the HOT status bits.
     */
    memcpy(&new_tuple->t_data->t_choice.t_heap,
           &old_tuple->t_data->t_choice.t_heap,
@@ -335,16 +335,16 @@ rewrite_heap_tuple(RewriteState state,
     * While we have our hands on the tuple, we may as well freeze any
     * very-old xmin or xmax, so that future VACUUM effort can be saved.
     *
-    * Note we abuse heap_freeze_tuple() a bit here, since it's expecting
-    * to be given a pointer to a tuple in a disk buffer.  It happens
-    * though that we can get the right things to happen by passing
-    * InvalidBuffer for the buffer.
+    * Note we abuse heap_freeze_tuple() a bit here, since it's expecting to
+    * be given a pointer to a tuple in a disk buffer.  It happens though that
+    * we can get the right things to happen by passing InvalidBuffer for the
+    * buffer.
     */
    heap_freeze_tuple(new_tuple->t_data, state->rs_freeze_xid, InvalidBuffer);
 
    /*
-    * Invalid ctid means that ctid should point to the tuple itself.
-    * We'll override it later if the tuple is part of an update chain.
+    * Invalid ctid means that ctid should point to the tuple itself. We'll
+    * override it later if the tuple is part of an update chain.
     */
    ItemPointerSetInvalid(&new_tuple->t_data->t_ctid);
 
@@ -369,9 +369,9 @@ rewrite_heap_tuple(RewriteState state,
        if (mapping != NULL)
        {
            /*
-            * We've already copied the tuple that t_ctid points to, so we
-            * can set the ctid of this tuple to point to the new location,
-            * and insert it right away.
+            * We've already copied the tuple that t_ctid points to, so we can
+            * set the ctid of this tuple to point to the new location, and
+            * insert it right away.
             */
            new_tuple->t_data->t_ctid = mapping->new_tid;
 
@@ -405,10 +405,10 @@ rewrite_heap_tuple(RewriteState state,
    }
 
    /*
-    * Now we will write the tuple, and then check to see if it is the
-    * B tuple in any new or known pair.  When we resolve a known pair,
-    * we will be able to write that pair's A tuple, and then we have to
-    * check if it resolves some other pair.  Hence, we need a loop here.
+    * Now we will write the tuple, and then check to see if it is the B tuple
+    * in any new or known pair.  When we resolve a known pair, we will be
+    * able to write that pair's A tuple, and then we have to check if it
+    * resolves some other pair.  Hence, we need a loop here.
     */
    old_tid = old_tuple->t_self;
    free_new = false;
@@ -422,13 +422,12 @@ rewrite_heap_tuple(RewriteState state,
        new_tid = new_tuple->t_self;
 
        /*
-        * If the tuple is the updated version of a row, and the prior
-        * version wouldn't be DEAD yet, then we need to either resolve
-        * the prior version (if it's waiting in rs_unresolved_tups),
-        * or make an entry in rs_old_new_tid_map (so we can resolve it
-        * when we do see it).  The previous tuple's xmax would equal this
-        * one's xmin, so it's RECENTLY_DEAD if and only if the xmin is
-        * not before OldestXmin.
+        * If the tuple is the updated version of a row, and the prior version
+        * wouldn't be DEAD yet, then we need to either resolve the prior
+        * version (if it's waiting in rs_unresolved_tups), or make an entry
+        * in rs_old_new_tid_map (so we can resolve it when we do see it).
+        * The previous tuple's xmax would equal this one's xmin, so it's
+        * RECENTLY_DEAD if and only if the xmin is not before OldestXmin.
         */
        if ((new_tuple->t_data->t_infomask & HEAP_UPDATED) &&
            !TransactionIdPrecedes(HeapTupleHeaderGetXmin(new_tuple->t_data),
@@ -449,9 +448,9 @@ rewrite_heap_tuple(RewriteState state,
            if (unresolved != NULL)
            {
                /*
-                * We have seen and memorized the previous tuple already.
-                * Now that we know where we inserted the tuple its t_ctid
-                * points to, fix its t_ctid and insert it to the new heap.
+                * We have seen and memorized the previous tuple already. Now
+                * that we know where we inserted the tuple its t_ctid points
+                * to, fix its t_ctid and insert it to the new heap.
                 */
                if (free_new)
                    heap_freetuple(new_tuple);
@@ -461,8 +460,8 @@ rewrite_heap_tuple(RewriteState state,
                new_tuple->t_data->t_ctid = new_tid;
 
                /*
-                * We don't need the hash entry anymore, but don't free
-                * its tuple just yet.
+                * We don't need the hash entry anymore, but don't free its
+                * tuple just yet.
                 */
                hash_search(state->rs_unresolved_tups, &hashkey,
                            HASH_REMOVE, &found);
@@ -474,8 +473,8 @@ rewrite_heap_tuple(RewriteState state,
            else
            {
                /*
-                * Remember the new tid of this tuple. We'll use it to set
-                * the ctid when we find the previous tuple in the chain.
+                * Remember the new tid of this tuple. We'll use it to set the
+                * ctid when we find the previous tuple in the chain.
                 */
                OldToNewMapping mapping;
 
@@ -506,22 +505,22 @@ rewrite_heap_dead_tuple(RewriteState state, HeapTuple old_tuple)
 {
    /*
     * If we have already seen an earlier tuple in the update chain that
-    * points to this tuple, let's forget about that earlier tuple. It's
-    * in fact dead as well, our simple xmax < OldestXmin test in
-    * HeapTupleSatisfiesVacuum just wasn't enough to detect it. It
-    * happens when xmin of a tuple is greater than xmax, which sounds
+    * points to this tuple, let's forget about that earlier tuple. It's in
+    * fact dead as well, our simple xmax < OldestXmin test in
+    * HeapTupleSatisfiesVacuum just wasn't enough to detect it. It happens
+    * when xmin of a tuple is greater than xmax, which sounds
     * counter-intuitive but is perfectly valid.
     *
-    * We don't bother to try to detect the situation the other way
-    * round, when we encounter the dead tuple first and then the
-    * recently dead one that points to it. If that happens, we'll
-    * have some unmatched entries in the UnresolvedTups hash table
-    * at the end. That can happen anyway, because a vacuum might
-    * have removed the dead tuple in the chain before us.
+    * We don't bother to try to detect the situation the other way round,
+    * when we encounter the dead tuple first and then the recently dead one
+    * that points to it. If that happens, we'll have some unmatched entries
+    * in the UnresolvedTups hash table at the end. That can happen anyway,
+    * because a vacuum might have removed the dead tuple in the chain before
+    * us.
     */
    UnresolvedTup unresolved;
-   TidHashKey hashkey;
-   bool found;
+   TidHashKey  hashkey;
+   bool        found;
 
    memset(&hashkey, 0, sizeof(hashkey));
    hashkey.xmin = HeapTupleHeaderGetXmin(old_tuple->t_data);
@@ -541,7 +540,7 @@ rewrite_heap_dead_tuple(RewriteState state, HeapTuple old_tuple)
 }
 
 /*
- * Insert a tuple to the new relation.  This has to track heap_insert
+ * Insert a tuple to the new relation. This has to track heap_insert
  * and its subsidiary functions!
  *
  * t_self of the tuple is set to the new TID of the tuple. If t_ctid of the
@@ -551,11 +550,12 @@ rewrite_heap_dead_tuple(RewriteState state, HeapTuple old_tuple)
 static void
 raw_heap_insert(RewriteState state, HeapTuple tup)
 {
-   Page            page = state->rs_buffer;
-   Size            pageFreeSpace, saveFreeSpace;
-   Size            len;
-   OffsetNumber    newoff;
-   HeapTuple       heaptup;
+   Page        page = state->rs_buffer;
+   Size        pageFreeSpace,
+               saveFreeSpace;
+   Size        len;
+   OffsetNumber newoff;
+   HeapTuple   heaptup;
 
    /*
     * If the new tuple is too big for storage or contains already toasted
@@ -610,7 +610,8 @@ raw_heap_insert(RewriteState state, HeapTuple tup)
            /*
             * Now write the page. We say isTemp = true even if it's not a
             * temp table, because there's no need for smgr to schedule an
-            * fsync for this write; we'll do it ourselves in end_heap_rewrite.
+            * fsync for this write; we'll do it ourselves in
+            * end_heap_rewrite.
             */
            RelationOpenSmgr(state->rs_new_rel);
            smgrextend(state->rs_new_rel->rd_smgr, state->rs_blockno,
@@ -638,12 +639,12 @@ raw_heap_insert(RewriteState state, HeapTuple tup)
    ItemPointerSet(&(tup->t_self), state->rs_blockno, newoff);
 
    /*
-    * Insert the correct position into CTID of the stored tuple, too,
-    * if the caller didn't supply a valid CTID.
+    * Insert the correct position into CTID of the stored tuple, too, if the
+    * caller didn't supply a valid CTID.
     */
-   if(!ItemPointerIsValid(&tup->t_data->t_ctid))
+   if (!ItemPointerIsValid(&tup->t_data->t_ctid))
    {
-       ItemId          newitemid;
+       ItemId      newitemid;
        HeapTupleHeader onpage_tup;
 
        newitemid = PageGetItemId(page, newoff);
index 795efccc090843e5909966cbf63dfc04d829f330..7b0653c9baa007a01ef370b5ced8eaf025f333cb 100644 (file)
@@ -4,7 +4,7 @@
  *   heap scan synchronization support
  *
  * When multiple backends run a sequential scan on the same table, we try
- * to keep them synchronized to reduce the overall I/O needed.  The goal is
+ * to keep them synchronized to reduce the overall I/O needed. The goal is
  * to read each page into shared buffer cache only once, and let all backends
  * that take part in the shared scan process the page before it falls out of
  * the cache.
@@ -26,7 +26,7 @@
  * don't want such queries to slow down others.
  *
  * There can realistically only be a few large sequential scans on different
- * tables in progress at any time.  Therefore we just keep the scan positions
+ * tables in progress at any time. Therefore we just keep the scan positions
  * in a small LRU list which we scan every time we need to look up or update a
  * scan position.  The whole mechanism is only applied for tables exceeding
  * a threshold size (but that is not the concern of this module).
@@ -40,7 +40,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/heap/syncscan.c,v 1.1 2007/06/08 18:23:52 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/heap/syncscan.c,v 1.2 2007/11/15 21:14:32 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -52,7 +52,7 @@
 
 /* GUC variables */
 #ifdef TRACE_SYNCSCAN
-bool   trace_syncscan = false;
+bool       trace_syncscan = false;
 #endif
 
 
@@ -89,21 +89,21 @@ typedef struct ss_scan_location_t
 {
    RelFileNode relfilenode;    /* identity of a relation */
    BlockNumber location;       /* last-reported location in the relation */
-} ss_scan_location_t;
+}  ss_scan_location_t;
 
 typedef struct ss_lru_item_t
 {
-   struct ss_lru_item_t    *prev;
-   struct ss_lru_item_t    *next;
-   ss_scan_location_t      location;
-} ss_lru_item_t;
+   struct ss_lru_item_t *prev;
+   struct ss_lru_item_t *next;
+   ss_scan_location_t location;
+}  ss_lru_item_t;
 
 typedef struct ss_scan_locations_t
 {
-   ss_lru_item_t       *head;
-   ss_lru_item_t       *tail;
-   ss_lru_item_t       items[1]; /* SYNC_SCAN_NELEM items */
-} ss_scan_locations_t;
+   ss_lru_item_t *head;
+   ss_lru_item_t *tail;
+   ss_lru_item_t items[1];     /* SYNC_SCAN_NELEM items */
+}  ss_scan_locations_t;
 
 #define SizeOfScanLocations(N) offsetof(ss_scan_locations_t, items[N])
 
@@ -112,7 +112,7 @@ static ss_scan_locations_t *scan_locations;
 
 /* prototypes for internal functions */
 static BlockNumber ss_search(RelFileNode relfilenode,
-                            BlockNumber location, bool set);
+         BlockNumber location, bool set);
 
 
 /*
@@ -130,8 +130,8 @@ SyncScanShmemSize(void)
 void
 SyncScanShmemInit(void)
 {
-   int i;
-   bool found;
+   int         i;
+   bool        found;
 
    scan_locations = (ss_scan_locations_t *)
        ShmemInitStruct("Sync Scan Locations List",
@@ -186,20 +186,20 @@ SyncScanShmemInit(void)
 static BlockNumber
 ss_search(RelFileNode relfilenode, BlockNumber location, bool set)
 {
-   ss_lru_item_t   *item;
+   ss_lru_item_t *item;
 
    item = scan_locations->head;
    for (;;)
    {
-       bool match;
+       bool        match;
 
        match = RelFileNodeEquals(item->location.relfilenode, relfilenode);
 
        if (match || item->next == NULL)
        {
            /*
-            * If we reached the end of list and no match was found,
-            * take over the last entry
+            * If we reached the end of list and no match was found, take over
+            * the last entry
             */
            if (!match)
            {
@@ -242,7 +242,7 @@ ss_search(RelFileNode relfilenode, BlockNumber location, bool set)
  * relation, or 0 if no valid location is found.
  *
  * We expect the caller has just done RelationGetNumberOfBlocks(), and
- * so that number is passed in rather than computing it again.  The result
+ * so that number is passed in rather than computing it again. The result
  * is guaranteed less than relnblocks (assuming that's > 0).
  */
 BlockNumber
@@ -257,8 +257,8 @@ ss_get_location(Relation rel, BlockNumber relnblocks)
    /*
     * If the location is not a valid block number for this scan, start at 0.
     *
-    * This can happen if for instance a VACUUM truncated the table
-    * since the location was saved.
+    * This can happen if for instance a VACUUM truncated the table since the
+    * location was saved.
     */
    if (startloc >= relnblocks)
        startloc = 0;
@@ -294,12 +294,12 @@ ss_report_location(Relation rel, BlockNumber location)
 #endif
 
    /*
-    * To reduce lock contention, only report scan progress every N pages.
-    * For the same reason, don't block if the lock isn't immediately
-    * available.  Missing a few updates isn't critical, it just means that a
-    * new scan that wants to join the pack will start a little bit behind the
-    * head of the scan.  Hopefully the pages are still in OS cache and the
-    * scan catches up quickly.
+    * To reduce lock contention, only report scan progress every N pages. For
+    * the same reason, don't block if the lock isn't immediately available.
+    * Missing a few updates isn't critical, it just means that a new scan
+    * that wants to join the pack will start a little bit behind the head of
+    * the scan.  Hopefully the pages are still in OS cache and the scan
+    * catches up quickly.
     */
    if ((location % SYNC_SCAN_REPORT_INTERVAL) == 0)
    {
index 4f62b1f8598284f28ca5e9dade54dad8b3e7ff7f..0a8873f9945d6a95017c75346b663a23457692af 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/heap/tuptoaster.c,v 1.78 2007/10/11 18:19:58 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/heap/tuptoaster.c,v 1.79 2007/11/15 21:14:32 momjian Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -72,9 +72,9 @@ do { \
 
 static void toast_delete_datum(Relation rel, Datum value);
 static Datum toast_save_datum(Relation rel, Datum value,
-                             bool use_wal, bool use_fsm);
-static struct varlena *toast_fetch_datum(struct varlena *attr);
-static struct varlena *toast_fetch_datum_slice(struct varlena *attr,
+                bool use_wal, bool use_fsm);
+static struct varlena *toast_fetch_datum(struct varlena * attr);
+static struct varlena *toast_fetch_datum_slice(struct varlena * attr,
                        int32 sliceoffset, int32 length);
 
 
@@ -90,9 +90,9 @@ static struct varlena *toast_fetch_datum_slice(struct varlena *attr,
  ----------
  */
 struct varlena *
-heap_tuple_fetch_attr(struct varlena *attr)
+heap_tuple_fetch_attr(struct varlena * attr)
 {
-   struct varlena  *result;
+   struct varlena *result;
 
    if (VARATT_IS_EXTERNAL(attr))
    {
@@ -121,7 +121,7 @@ heap_tuple_fetch_attr(struct varlena *attr)
  * ----------
  */
 struct varlena *
-heap_tuple_untoast_attr(struct varlena *attr)
+heap_tuple_untoast_attr(struct varlena * attr)
 {
    if (VARATT_IS_EXTERNAL(attr))
    {
@@ -156,8 +156,8 @@ heap_tuple_untoast_attr(struct varlena *attr)
        /*
         * This is a short-header varlena --- convert to 4-byte header format
         */
-       Size    data_size = VARSIZE_SHORT(attr) - VARHDRSZ_SHORT;
-       Size    new_size = data_size + VARHDRSZ;
+       Size        data_size = VARSIZE_SHORT(attr) - VARHDRSZ_SHORT;
+       Size        new_size = data_size + VARHDRSZ;
        struct varlena *new_attr;
 
        new_attr = (struct varlena *) palloc(new_size);
@@ -178,12 +178,12 @@ heap_tuple_untoast_attr(struct varlena *attr)
  * ----------
  */
 struct varlena *
-heap_tuple_untoast_attr_slice(struct varlena *attr,
+heap_tuple_untoast_attr_slice(struct varlena * attr,
                              int32 sliceoffset, int32 slicelength)
 {
    struct varlena *preslice;
    struct varlena *result;
-   char       *attrdata;
+   char       *attrdata;
    int32       attrsize;
 
    if (VARATT_IS_EXTERNAL(attr))
@@ -205,7 +205,7 @@ heap_tuple_untoast_attr_slice(struct varlena *attr,
    if (VARATT_IS_COMPRESSED(preslice))
    {
        PGLZ_Header *tmp = (PGLZ_Header *) preslice;
-       Size size = PGLZ_RAW_SIZE(tmp) + VARHDRSZ;
+       Size        size = PGLZ_RAW_SIZE(tmp) + VARHDRSZ;
 
        preslice = (struct varlena *) palloc(size);
        SET_VARSIZE(preslice, size);
@@ -300,7 +300,7 @@ toast_raw_datum_size(Datum value)
 Size
 toast_datum_size(Datum value)
 {
-   struct varlena  *attr = (struct varlena *) DatumGetPointer(value);
+   struct varlena *attr = (struct varlena *) DatumGetPointer(value);
    Size        result;
 
    if (VARATT_IS_EXTERNAL(attr))
@@ -469,8 +469,8 @@ toast_insert_or_update(Relation rel, HeapTuple newtup, HeapTuple oldtup,
 
    for (i = 0; i < numAttrs; i++)
    {
-       struct varlena  *old_value;
-       struct varlena  *new_value;
+       struct varlena *old_value;
+       struct varlena *new_value;
 
        if (oldtup != NULL)
        {
@@ -488,7 +488,7 @@ toast_insert_or_update(Relation rel, HeapTuple newtup, HeapTuple oldtup,
                VARATT_IS_EXTERNAL(old_value))
            {
                if (toast_isnull[i] || !VARATT_IS_EXTERNAL(new_value) ||
-                   memcmp((char *) old_value, (char *) new_value, 
+                   memcmp((char *) old_value, (char *) new_value,
                           VARSIZE_EXTERNAL(old_value)) != 0)
                {
                    /*
@@ -543,7 +543,7 @@ toast_insert_or_update(Relation rel, HeapTuple newtup, HeapTuple oldtup,
             * We took care of UPDATE above, so any external value we find
             * still in the tuple must be someone else's we cannot reuse.
             * Fetch it back (without decompression, unless we are forcing
-            * PLAIN storage).  If necessary, we'll push it out as a new
+            * PLAIN storage).  If necessary, we'll push it out as a new
             * external value below.
             */
            if (VARATT_IS_EXTERNAL(new_value))
@@ -656,7 +656,7 @@ toast_insert_or_update(Relation rel, HeapTuple newtup, HeapTuple oldtup,
 
    /*
     * Second we look for attributes of attstorage 'x' or 'e' that are still
-    * inline.  But skip this if there's no toast table to push them to.
+    * inline.  But skip this if there's no toast table to push them to.
     */
    while (heap_compute_data_size(tupleDesc,
                                  toast_values, toast_isnull) > maxDataLen &&
@@ -956,7 +956,7 @@ toast_flatten_tuple_attribute(Datum value,
            has_nulls = true;
        else if (att[i]->attlen == -1)
        {
-           struct varlena  *new_value;
+           struct varlena *new_value;
 
            new_value = (struct varlena *) DatumGetPointer(toast_values[i]);
            if (VARATT_IS_EXTERNAL(new_value) ||
@@ -1046,7 +1046,8 @@ toast_compress_datum(Datum value)
    Assert(!VARATT_IS_COMPRESSED(value));
 
    /*
-    * No point in wasting a palloc cycle if value is too short for compression
+    * No point in wasting a palloc cycle if value is too short for
+    * compression
     */
    if (valsize < PGLZ_strategy_default->min_input_size)
        return PointerGetDatum(NULL);
@@ -1110,8 +1111,8 @@ toast_save_datum(Relation rel, Datum value,
    /*
     * Get the data pointer and length, and compute va_rawsize and va_extsize.
     *
-    * va_rawsize is the size of the equivalent fully uncompressed datum,
-    * so we have to adjust for short headers.
+    * va_rawsize is the size of the equivalent fully uncompressed datum, so
+    * we have to adjust for short headers.
     *
     * va_extsize is the actual size of the data payload in the toast records.
     */
@@ -1119,7 +1120,7 @@ toast_save_datum(Relation rel, Datum value,
    {
        data_p = VARDATA_SHORT(value);
        data_todo = VARSIZE_SHORT(value) - VARHDRSZ_SHORT;
-       toast_pointer.va_rawsize = data_todo + VARHDRSZ; /* as if not short */
+       toast_pointer.va_rawsize = data_todo + VARHDRSZ;        /* as if not short */
        toast_pointer.va_extsize = data_todo;
    }
    else if (VARATT_IS_COMPRESSED(value))
@@ -1283,7 +1284,7 @@ toast_delete_datum(Relation rel, Datum value)
  * ----------
  */
 static struct varlena *
-toast_fetch_datum(struct varlena *attr)
+toast_fetch_datum(struct varlena * attr)
 {
    Relation    toastrel;
    Relation    toastidx;
@@ -1299,7 +1300,7 @@ toast_fetch_datum(struct varlena *attr)
    int32       numchunks;
    Pointer     chunk;
    bool        isnull;
-   char       *chunkdata;
+   char       *chunkdata;
    int32       chunksize;
 
    /* Must copy to access aligned fields */
@@ -1365,7 +1366,7 @@ toast_fetch_datum(struct varlena *attr)
        {
            /* should never happen */
            elog(ERROR, "found toasted toast chunk");
-           chunksize = 0;              /* keep compiler quiet */
+           chunksize = 0;      /* keep compiler quiet */
            chunkdata = NULL;
        }
 
@@ -1384,12 +1385,12 @@ toast_fetch_datum(struct varlena *attr)
                     residx, numchunks,
                     toast_pointer.va_valueid);
        }
-       else if (residx == numchunks-1)
+       else if (residx == numchunks - 1)
        {
            if ((residx * TOAST_MAX_CHUNK_SIZE + chunksize) != ressize)
                elog(ERROR, "unexpected chunk size %d (expected %d) in final chunk %d for toast value %u",
                     chunksize,
-                    (int) (ressize - residx*TOAST_MAX_CHUNK_SIZE),
+                    (int) (ressize - residx * TOAST_MAX_CHUNK_SIZE),
                     residx,
                     toast_pointer.va_valueid);
        }
@@ -1397,7 +1398,7 @@ toast_fetch_datum(struct varlena *attr)
            elog(ERROR, "unexpected chunk number %d for toast value %u (out of range %d..%d)",
                 residx,
                 toast_pointer.va_valueid,
-                0, numchunks-1);
+                0, numchunks - 1);
 
        /*
         * Copy the data into proper place in our result
@@ -1435,7 +1436,7 @@ toast_fetch_datum(struct varlena *attr)
  * ----------
  */
 static struct varlena *
-toast_fetch_datum_slice(struct varlena *attr, int32 sliceoffset, int32 length)
+toast_fetch_datum_slice(struct varlena * attr, int32 sliceoffset, int32 length)
 {
    Relation    toastrel;
    Relation    toastidx;
@@ -1457,7 +1458,7 @@ toast_fetch_datum_slice(struct varlena *attr, int32 sliceoffset, int32 length)
    int         totalchunks;
    Pointer     chunk;
    bool        isnull;
-   char       *chunkdata;
+   char       *chunkdata;
    int32       chunksize;
    int32       chcpystrt;
    int32       chcpyend;
@@ -1574,7 +1575,7 @@ toast_fetch_datum_slice(struct varlena *attr, int32 sliceoffset, int32 length)
        {
            /* should never happen */
            elog(ERROR, "found toasted toast chunk");
-           chunksize = 0;              /* keep compiler quiet */
+           chunksize = 0;      /* keep compiler quiet */
            chunkdata = NULL;
        }
 
@@ -1593,7 +1594,7 @@ toast_fetch_datum_slice(struct varlena *attr, int32 sliceoffset, int32 length)
                     residx, totalchunks,
                     toast_pointer.va_valueid);
        }
-       else if (residx == totalchunks-1)
+       else if (residx == totalchunks - 1)
        {
            if ((residx * TOAST_MAX_CHUNK_SIZE + chunksize) != attrsize)
                elog(ERROR, "unexpected chunk size %d (expected %d) in final chunk %d for toast value %u when fetching slice",
@@ -1606,7 +1607,7 @@ toast_fetch_datum_slice(struct varlena *attr, int32 sliceoffset, int32 length)
            elog(ERROR, "unexpected chunk number %d for toast value %u (out of range %d..%d)",
                 residx,
                 toast_pointer.va_valueid,
-                0, totalchunks-1);
+                0, totalchunks - 1);
 
        /*
         * Copy the data into proper place in our result
index fd727ca68c87c500aa17af911f8dde0e6526d085..5f1092db05432c8e98fe4cee58f52a363832ed5b 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/index/indexam.c,v 1.99 2007/09/20 17:56:30 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/index/indexam.c,v 1.100 2007/11/15 21:14:32 momjian Exp $
  *
  * INTERFACE ROUTINES
  *     index_open      - open an index relation by relation OID
@@ -379,7 +379,7 @@ index_markpos(IndexScanDesc scan)
  * returnable tuple in each HOT chain, and so restoring the prior state at the
  * granularity of the index AM is sufficient.  Since the only current user
  * of mark/restore functionality is nodeMergejoin.c, this effectively means
- * that merge-join plans only work for MVCC snapshots.  This could be fixed
+ * that merge-join plans only work for MVCC snapshots. This could be fixed
  * if necessary, but for now it seems unimportant.
  * ----------------
  */
@@ -413,7 +413,7 @@ HeapTuple
 index_getnext(IndexScanDesc scan, ScanDirection direction)
 {
    HeapTuple   heapTuple = &scan->xs_ctup;
-   ItemPointer tid = &heapTuple->t_self;
+   ItemPointer tid = &heapTuple->t_self;
    FmgrInfo   *procedure;
 
    SCAN_CHECKS;
@@ -429,14 +429,14 @@ index_getnext(IndexScanDesc scan, ScanDirection direction)
    for (;;)
    {
        OffsetNumber offnum;
-       bool at_chain_start;
-       Page dp;
+       bool        at_chain_start;
+       Page        dp;
 
        if (scan->xs_next_hot != InvalidOffsetNumber)
        {
            /*
-            * We are resuming scan of a HOT chain after having returned
-            * an earlier member.  Must still hold pin on current heap page.
+            * We are resuming scan of a HOT chain after having returned an
+            * earlier member.  Must still hold pin on current heap page.
             */
            Assert(BufferIsValid(scan->xs_cbuf));
            Assert(ItemPointerGetBlockNumber(tid) ==
@@ -506,7 +506,7 @@ index_getnext(IndexScanDesc scan, ScanDirection direction)
        /* Scan through possible multiple members of HOT-chain */
        for (;;)
        {
-           ItemId lp;
+           ItemId      lp;
            ItemPointer ctid;
 
            /* check for bogus TID */
@@ -532,8 +532,8 @@ index_getnext(IndexScanDesc scan, ScanDirection direction)
            }
 
            /*
-            * We must initialize all of *heapTuple (ie, scan->xs_ctup)
-            * since it is returned to the executor on success.
+            * We must initialize all of *heapTuple (ie, scan->xs_ctup) since
+            * it is returned to the executor on success.
             */
            heapTuple->t_data = (HeapTupleHeader) PageGetItem(dp, lp);
            heapTuple->t_len = ItemIdGetLength(lp);
@@ -544,20 +544,21 @@ index_getnext(IndexScanDesc scan, ScanDirection direction)
            /*
             * Shouldn't see a HEAP_ONLY tuple at chain start.  (This test
             * should be unnecessary, since the chain root can't be removed
-            * while we have pin on the index entry, but let's make it anyway.)
+            * while we have pin on the index entry, but let's make it
+            * anyway.)
             */
            if (at_chain_start && HeapTupleIsHeapOnly(heapTuple))
                break;
 
            /*
             * The xmin should match the previous xmax value, else chain is
-            * broken.  (Note: this test is not optional because it protects
-            * us against the case where the prior chain member's xmax
-            * aborted since we looked at it.)
+            * broken.  (Note: this test is not optional because it protects
+            * us against the case where the prior chain member's xmax aborted
+            * since we looked at it.)
             */
            if (TransactionIdIsValid(scan->xs_prev_xmax) &&
                !TransactionIdEquals(scan->xs_prev_xmax,
-                                HeapTupleHeaderGetXmin(heapTuple->t_data)))
+                                 HeapTupleHeaderGetXmin(heapTuple->t_data)))
                break;
 
            /* If it's visible per the snapshot, we must return it */
@@ -565,10 +566,10 @@ index_getnext(IndexScanDesc scan, ScanDirection direction)
                                             scan->xs_cbuf))
            {
                /*
-                * If the snapshot is MVCC, we know that it could accept
-                * at most one member of the HOT chain, so we can skip
-                * examining any more members.  Otherwise, check for
-                * continuation of the HOT-chain, and set state for next time.
+                * If the snapshot is MVCC, we know that it could accept at
+                * most one member of the HOT chain, so we can skip examining
+                * any more members.  Otherwise, check for continuation of the
+                * HOT-chain, and set state for next time.
                 */
                if (IsMVCCSnapshot(scan->xs_snapshot))
                    scan->xs_next_hot = InvalidOffsetNumber;
@@ -615,7 +616,7 @@ index_getnext(IndexScanDesc scan, ScanDirection direction)
            }
            else
                break;          /* end of chain */
-       } /* loop over a single HOT chain */
+       }                       /* loop over a single HOT chain */
 
        LockBuffer(scan->xs_cbuf, BUFFER_LOCK_UNLOCK);
 
@@ -788,7 +789,7 @@ index_vacuum_cleanup(IndexVacuumInfo *info,
  *     particular indexed attribute are those with both types equal to
  *     the index opclass' opcintype (note that this is subtly different
  *     from the indexed attribute's own type: it may be a binary-compatible
- *     type instead).  Only the default functions are stored in relcache
+ *     type instead).  Only the default functions are stored in relcache
  *     entries --- access methods can use the syscache to look up non-default
  *     functions.
  *
@@ -822,7 +823,7 @@ index_getprocid(Relation irel,
  *     index_getprocinfo
  *
  *     This routine allows index AMs to keep fmgr lookup info for
- *     support procs in the relcache.  As above, only the "default"
+ *     support procs in the relcache.  As above, only the "default"
  *     functions for any particular indexed attribute are cached.
  *
  * Note: the return value points into cached data that will be lost during
index 5f7ecbe16da6de820f7710ac84505a955def1e90..413767ffeec1ce0800f2e9e27941137516052e03 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.160 2007/09/20 17:56:30 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.161 2007/11/15 21:14:32 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -32,7 +32,7 @@ typedef struct
    OffsetNumber newitemoff;    /* where the new item is to be inserted */
    int         leftspace;      /* space available for items on left page */
    int         rightspace;     /* space available for items on right page */
-   int         olddataitemstotal; /* space taken by old items */
+   int         olddataitemstotal;      /* space taken by old items */
 
    bool        have_split;     /* found a valid split? */
 
@@ -222,7 +222,7 @@ _bt_check_unique(Relation rel, IndexTuple itup, Relation heapRel,
            if (!ItemIdIsDead(curitemid))
            {
                ItemPointerData htid;
-               bool all_dead;
+               bool        all_dead;
 
                /*
                 * _bt_compare returns 0 for (1,NULL) and (1,NULL) - this's
@@ -239,8 +239,8 @@ _bt_check_unique(Relation rel, IndexTuple itup, Relation heapRel,
 
                /*
                 * We check the whole HOT-chain to see if there is any tuple
-                * that satisfies SnapshotDirty.  This is necessary because
-                * we have just a single index entry for the entire chain.
+                * that satisfies SnapshotDirty.  This is necessary because we
+                * have just a single index entry for the entire chain.
                 */
                if (heap_hot_search(&htid, heapRel, &SnapshotDirty, &all_dead))
                {
@@ -267,15 +267,16 @@ _bt_check_unique(Relation rel, IndexTuple itup, Relation heapRel,
                     * is itself now committed dead --- if so, don't complain.
                     * This is a waste of time in normal scenarios but we must
                     * do it to support CREATE INDEX CONCURRENTLY.
-                    * 
+                    *
                     * We must follow HOT-chains here because during
                     * concurrent index build, we insert the root TID though
                     * the actual tuple may be somewhere in the HOT-chain.
-                    * While following the chain we might not stop at the exact
-                    * tuple which triggered the insert, but that's OK because
-                    * if we find a live tuple anywhere in this chain, we have
-                    * a unique key conflict.  The other live tuple is not part
-                    * of this chain because it had a different index entry.
+                    * While following the chain we might not stop at the
+                    * exact tuple which triggered the insert, but that's OK
+                    * because if we find a live tuple anywhere in this chain,
+                    * we have a unique key conflict.  The other live tuple is
+                    * not part of this chain because it had a different index
+                    * entry.
                     */
                    htid = itup->t_tid;
                    if (heap_hot_search(&htid, heapRel, SnapshotSelf, NULL))
@@ -293,8 +294,8 @@ _bt_check_unique(Relation rel, IndexTuple itup, Relation heapRel,
 
                    ereport(ERROR,
                            (errcode(ERRCODE_UNIQUE_VIOLATION),
-                   errmsg("duplicate key value violates unique constraint \"%s\"",
-                          RelationGetRelationName(rel))));
+                            errmsg("duplicate key value violates unique constraint \"%s\"",
+                                   RelationGetRelationName(rel))));
                }
                else if (all_dead)
                {
@@ -372,7 +373,7 @@ _bt_check_unique(Relation rel, IndexTuple itup, Relation heapRel,
  *     On entry, *buf and *offsetptr point to the first legal position
  *     where the new tuple could be inserted. The caller should hold an
  *     exclusive lock on *buf. *offsetptr can also be set to
- *     InvalidOffsetNumber, in which case the function will search the right
+ *     InvalidOffsetNumber, in which case the function will search the right
  *     location within the page if needed. On exit, they point to the chosen
  *     insert location. If findinsertloc decided to move right, the lock and
  *     pin on the original page will be released and the new page returned to
@@ -389,11 +390,12 @@ _bt_findinsertloc(Relation rel,
                  ScanKey scankey,
                  IndexTuple newtup)
 {
-   Buffer buf = *bufptr;
-   Page page = BufferGetPage(buf);
-   Size itemsz;
+   Buffer      buf = *bufptr;
+   Page        page = BufferGetPage(buf);
+   Size        itemsz;
    BTPageOpaque lpageop;
-   bool movedright, vacuumed;
+   bool        movedright,
+               vacuumed;
    OffsetNumber newitemoff;
    OffsetNumber firstlegaloff = *offsetptr;
 
@@ -447,19 +449,21 @@ _bt_findinsertloc(Relation rel,
        Buffer      rbuf;
 
        /*
-        * before considering moving right, see if we can obtain enough
-        * space by erasing LP_DEAD items
+        * before considering moving right, see if we can obtain enough space
+        * by erasing LP_DEAD items
         */
        if (P_ISLEAF(lpageop) && P_HAS_GARBAGE(lpageop))
        {
            _bt_vacuum_one_page(rel, buf);
 
-           /* remember that we vacuumed this page, because that makes
-            * the hint supplied by the caller invalid */
+           /*
+            * remember that we vacuumed this page, because that makes the
+            * hint supplied by the caller invalid
+            */
            vacuumed = true;
 
            if (PageGetFreeSpace(page) >= itemsz)
-               break;      /* OK, now we have enough space */
+               break;          /* OK, now we have enough space */
        }
 
        /*
@@ -473,11 +477,10 @@ _bt_findinsertloc(Relation rel,
        /*
         * step right to next non-dead page
         *
-        * must write-lock that page before releasing write lock on
-        * current page; else someone else's _bt_check_unique scan could
-        * fail to see our insertion.  write locks on intermediate dead
-        * pages won't do because we don't know when they will get
-        * de-linked from the tree.
+        * must write-lock that page before releasing write lock on current
+        * page; else someone else's _bt_check_unique scan could fail to see
+        * our insertion.  write locks on intermediate dead pages won't do
+        * because we don't know when they will get de-linked from the tree.
         */
        rbuf = InvalidBuffer;
 
@@ -501,17 +504,16 @@ _bt_findinsertloc(Relation rel,
    }
 
    /*
-    * Now we are on the right page, so find the insert position. If we
-    * moved right at all, we know we should insert at the start of the
-    * page. If we didn't move right, we can use the firstlegaloff hint
-    * if the caller supplied one, unless we vacuumed the page which
-    * might have moved tuples around making the hint invalid. If we
-    * didn't move right or can't use the hint, find the position
-    * by searching.
+    * Now we are on the right page, so find the insert position. If we moved
+    * right at all, we know we should insert at the start of the page. If we
+    * didn't move right, we can use the firstlegaloff hint if the caller
+    * supplied one, unless we vacuumed the page which might have moved tuples
+    * around making the hint invalid. If we didn't move right or can't use
+    * the hint, find the position by searching.
     */
    if (movedright)
        newitemoff = P_FIRSTDATAKEY(lpageop);
-   else if(firstlegaloff != InvalidOffsetNumber && !vacuumed)
+   else if (firstlegaloff != InvalidOffsetNumber && !vacuumed)
        newitemoff = firstlegaloff;
    else
        newitemoff = _bt_binsrch(rel, buf, keysz, scankey, false);
@@ -982,8 +984,8 @@ _bt_split(Relation rel, Buffer buf, OffsetNumber firstright,
     * the data by reinserting it into a new left page.  (XXX the latter
     * comment is probably obsolete.)
     *
-    * We need to do this before writing the WAL record, so that XLogInsert can
-    * WAL log an image of the page if necessary.
+    * We need to do this before writing the WAL record, so that XLogInsert
+    * can WAL log an image of the page if necessary.
     */
    PageRestoreTempPage(leftpage, origpage);
 
@@ -1033,10 +1035,10 @@ _bt_split(Relation rel, Buffer buf, OffsetNumber firstright,
         * Log the new item and its offset, if it was inserted on the left
         * page. (If it was put on the right page, we don't need to explicitly
         * WAL log it because it's included with all the other items on the
-        * right page.) Show the new item as belonging to the left page buffer,
-        * so that it is not stored if XLogInsert decides it needs a full-page
-        * image of the left page.  We store the offset anyway, though, to
-        * support archive compression of these records.
+        * right page.) Show the new item as belonging to the left page
+        * buffer, so that it is not stored if XLogInsert decides it needs a
+        * full-page image of the left page.  We store the offset anyway,
+        * though, to support archive compression of these records.
         */
        if (newitemonleft)
        {
@@ -1052,31 +1054,31 @@ _bt_split(Relation rel, Buffer buf, OffsetNumber firstright,
 
            lastrdata->data = (char *) newitem;
            lastrdata->len = MAXALIGN(newitemsz);
-           lastrdata->buffer = buf;        /* backup block 1 */
+           lastrdata->buffer = buf;    /* backup block 1 */
            lastrdata->buffer_std = true;
        }
        else
        {
            /*
-            * Although we don't need to WAL-log the new item, we still
-            * need XLogInsert to consider storing a full-page image of the
-            * left page, so make an empty entry referencing that buffer.
-            * This also ensures that the left page is always backup block 1.
+            * Although we don't need to WAL-log the new item, we still need
+            * XLogInsert to consider storing a full-page image of the left
+            * page, so make an empty entry referencing that buffer. This also
+            * ensures that the left page is always backup block 1.
             */
            lastrdata->next = lastrdata + 1;
            lastrdata++;
 
            lastrdata->data = NULL;
            lastrdata->len = 0;
-           lastrdata->buffer = buf;        /* backup block 1 */
+           lastrdata->buffer = buf;    /* backup block 1 */
            lastrdata->buffer_std = true;
        }
 
        /*
         * Log the contents of the right page in the format understood by
         * _bt_restore_page(). We set lastrdata->buffer to InvalidBuffer,
-        * because we're going to recreate the whole page anyway, so it
-        * should never be stored by XLogInsert.
+        * because we're going to recreate the whole page anyway, so it should
+        * never be stored by XLogInsert.
         *
         * Direct access to page is not good but faster - we should implement
         * some new func in page API.  Note we only store the tuples
@@ -1101,7 +1103,7 @@ _bt_split(Relation rel, Buffer buf, OffsetNumber firstright,
 
            lastrdata->data = NULL;
            lastrdata->len = 0;
-           lastrdata->buffer = sbuf;       /* backup block 2 */
+           lastrdata->buffer = sbuf;   /* backup block 2 */
            lastrdata->buffer_std = true;
        }
 
@@ -1275,9 +1277,10 @@ _bt_findsplitloc(Relation rel,
        olddataitemstoleft += itemsz;
    }
 
-   /* If the new item goes as the last item, check for splitting so that
-    * all the old items go to the left page and the new item goes to the
-    * right page.
+   /*
+    * If the new item goes as the last item, check for splitting so that all
+    * the old items go to the left page and the new item goes to the right
+    * page.
     */
    if (newitemoff > maxoff && !goodenoughfound)
        _bt_checksplitloc(&state, newitemoff, false, olddataitemstotal, 0);
@@ -1314,16 +1317,16 @@ _bt_checksplitloc(FindSplitData *state,
                  int olddataitemstoleft,
                  Size firstoldonrightsz)
 {
-   int     leftfree,
-           rightfree;
-   Size    firstrightitemsz;
-   bool    newitemisfirstonright;
+   int         leftfree,
+               rightfree;
+   Size        firstrightitemsz;
+   bool        newitemisfirstonright;
 
    /* Is the new item going to be the first item on the right page? */
    newitemisfirstonright = (firstoldonright == state->newitemoff
                             && !newitemonleft);
 
-   if(newitemisfirstonright)
+   if (newitemisfirstonright)
        firstrightitemsz = state->newitemsz;
    else
        firstrightitemsz = firstoldonrightsz;
@@ -1334,9 +1337,8 @@ _bt_checksplitloc(FindSplitData *state,
        (state->olddataitemstotal - olddataitemstoleft);
 
    /*
-    * The first item on the right page becomes the high key of the
-    * left page; therefore it counts against left space as well as right
-    * space.
+    * The first item on the right page becomes the high key of the left page;
+    * therefore it counts against left space as well as right space.
     */
    leftfree -= firstrightitemsz;
 
@@ -1875,8 +1877,8 @@ _bt_vacuum_one_page(Relation rel, Buffer buffer)
    BTPageOpaque opaque = (BTPageOpaque) PageGetSpecialPointer(page);
 
    /*
-    * Scan over all items to see which ones need to be deleted
-    * according to LP_DEAD flags.
+    * Scan over all items to see which ones need to be deleted according to
+    * LP_DEAD flags.
     */
    minoff = P_FIRSTDATAKEY(opaque);
    maxoff = PageGetMaxOffsetNumber(page);
index f62e4b3c5ee187045cb219ece29cd0fa796947b1..8eee5a74cc7e2e64c18781fe014bdc77d8f3b2ee 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/nbtree/nbtpage.c,v 1.103 2007/09/12 22:10:26 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/nbtree/nbtpage.c,v 1.104 2007/11/15 21:14:32 momjian Exp $
  *
  * NOTES
  *    Postgres btree pages look like ordinary relation pages.  The opaque
@@ -751,8 +751,8 @@ _bt_parent_deletion_safe(Relation rel, BlockNumber target, BTStack stack)
 
    /*
     * In recovery mode, assume the deletion being replayed is valid.  We
-    * can't always check it because we won't have a full search stack,
-    * and we should complain if there's a problem, anyway.
+    * can't always check it because we won't have a full search stack, and we
+    * should complain if there's a problem, anyway.
     */
    if (InRecovery)
        return true;
@@ -781,8 +781,8 @@ _bt_parent_deletion_safe(Relation rel, BlockNumber target, BTStack stack)
        {
            /*
             * It's only child, so safe if parent would itself be removable.
-            * We have to check the parent itself, and then recurse to
-            * test the conditions at the parent's parent.
+            * We have to check the parent itself, and then recurse to test
+            * the conditions at the parent's parent.
             */
            if (P_RIGHTMOST(opaque) || P_ISROOT(opaque))
            {
@@ -887,18 +887,18 @@ _bt_pagedel(Relation rel, Buffer buf, BTStack stack, bool vacuum_full)
    targetkey = CopyIndexTuple((IndexTuple) PageGetItem(page, itemid));
 
    /*
-    * To avoid deadlocks, we'd better drop the target page lock before
-    * going further.
+    * To avoid deadlocks, we'd better drop the target page lock before going
+    * further.
     */
    _bt_relbuf(rel, buf);
 
    /*
-    * We need an approximate pointer to the page's parent page.  We use
-    * the standard search mechanism to search for the page's high key; this
-    * will give us a link to either the current parent or someplace to its
-    * left (if there are multiple equal high keys).  In recursion cases,
-    * the caller already generated a search stack and we can just re-use
-    * that work.
+    * We need an approximate pointer to the page's parent page.  We use the
+    * standard search mechanism to search for the page's high key; this will
+    * give us a link to either the current parent or someplace to its left
+    * (if there are multiple equal high keys).  In recursion cases, the
+    * caller already generated a search stack and we can just re-use that
+    * work.
     */
    if (stack == NULL)
    {
@@ -933,11 +933,11 @@ _bt_pagedel(Relation rel, Buffer buf, BTStack stack, bool vacuum_full)
            /*
             * During WAL recovery, we can't use _bt_search (for one reason,
             * it might invoke user-defined comparison functions that expect
-            * facilities not available in recovery mode).  Instead, just
-            * set up a dummy stack pointing to the left end of the parent
-            * tree level, from which _bt_getstackbuf will walk right to the
-            * parent page.  Painful, but we don't care too much about
-            * performance in this scenario.
+            * facilities not available in recovery mode).  Instead, just set
+            * up a dummy stack pointing to the left end of the parent tree
+            * level, from which _bt_getstackbuf will walk right to the parent
+            * page.  Painful, but we don't care too much about performance in
+            * this scenario.
             */
            pbuf = _bt_get_endpoint(rel, targetlevel + 1, false);
            stack = (BTStack) palloc(sizeof(BTStackData));
@@ -951,10 +951,10 @@ _bt_pagedel(Relation rel, Buffer buf, BTStack stack, bool vacuum_full)
 
    /*
     * We cannot delete a page that is the rightmost child of its immediate
-    * parent, unless it is the only child --- in which case the parent has
-    * to be deleted too, and the same condition applies recursively to it.
-    * We have to check this condition all the way up before trying to delete.
-    * We don't need to re-test when deleting a non-leaf page, though.
+    * parent, unless it is the only child --- in which case the parent has to
+    * be deleted too, and the same condition applies recursively to it. We
+    * have to check this condition all the way up before trying to delete. We
+    * don't need to re-test when deleting a non-leaf page, though.
     */
    if (targetlevel == 0 &&
        !_bt_parent_deletion_safe(rel, target, stack))
@@ -1072,8 +1072,8 @@ _bt_pagedel(Relation rel, Buffer buf, BTStack stack, bool vacuum_full)
     * might be possible to push the fast root even further down, but the odds
     * of doing so are slim, and the locking considerations daunting.)
     *
-    * We don't support handling this in the case where the parent is
-    * becoming half-dead, even though it theoretically could occur.
+    * We don't support handling this in the case where the parent is becoming
+    * half-dead, even though it theoretically could occur.
     *
     * We can safely acquire a lock on the metapage here --- see comments for
     * _bt_newroot().
@@ -1287,10 +1287,10 @@ _bt_pagedel(Relation rel, Buffer buf, BTStack stack, bool vacuum_full)
        _bt_relbuf(rel, lbuf);
 
    /*
-    * If parent became half dead, recurse to delete it. Otherwise, if
-    * right sibling is empty and is now the last child of the parent, recurse
-    * to try to delete it.  (These cases cannot apply at the same time,
-    * though the second case might itself recurse to the first.)
+    * If parent became half dead, recurse to delete it. Otherwise, if right
+    * sibling is empty and is now the last child of the parent, recurse to
+    * try to delete it.  (These cases cannot apply at the same time, though
+    * the second case might itself recurse to the first.)
     *
     * When recursing to parent, we hold the lock on the target page until
     * done.  This delays any insertions into the keyspace that was just
index b947d770aa2cd8872c73044c40f72a53fd9a4263..7b71f544f863c8070391a1ccf5dd93f37e361e55 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/nbtree/nbtsearch.c,v 1.113 2007/05/27 03:50:39 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/nbtree/nbtsearch.c,v 1.114 2007/11/15 21:14:32 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -637,17 +637,17 @@ _bt_first(IndexScanDesc scan, ScanDirection dir)
             * even if the row comparison is of ">" or "<" type, because the
             * condition applied to all but the last row member is effectively
             * ">=" or "<=", and so the extra keys don't break the positioning
-            * scheme.  But, by the same token, if we aren't able to use all
+            * scheme.  But, by the same token, if we aren't able to use all
             * the row members, then the part of the row comparison that we
-            * did use has to be treated as just a ">=" or "<=" condition,
-            * and so we'd better adjust strat_total accordingly.
+            * did use has to be treated as just a ">=" or "<=" condition, and
+            * so we'd better adjust strat_total accordingly.
             */
            if (i == keysCount - 1)
            {
                bool        used_all_subkeys = false;
 
                Assert(!(subkey->sk_flags & SK_ROW_END));
-               for(;;)
+               for (;;)
                {
                    subkey++;
                    Assert(subkey->sk_flags & SK_ROW_MEMBER);
index 6d85695c3d3f7ce911f66c53f40ee82b879f4aa7..a1b0125f78792bc34f0ee8c5d0b585c47636e3e8 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/nbtree/nbtutils.c,v 1.86 2007/09/12 22:10:26 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/nbtree/nbtutils.c,v 1.87 2007/11/15 21:14:32 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -205,7 +205,7 @@ _bt_freestack(BTStack stack)
  * that's the only one returned.  (So, we return either a single = key,
  * or one or two boundary-condition keys for each attr.)  However, if we
  * cannot compare two keys for lack of a suitable cross-type operator,
- * we cannot eliminate either.  If there are two such keys of the same
+ * we cannot eliminate either. If there are two such keys of the same
  * operator strategy, the second one is just pushed into the output array
  * without further processing here.  We may also emit both >/>= or both
  * </<= keys if we can't compare them.  The logic about required keys still
@@ -265,13 +265,13 @@ _bt_preprocess_keys(IndexScanDesc scan)
    {
        /*
         * We treat all btree operators as strict (even if they're not so
-        * marked in pg_proc).  This means that it is impossible for an
-        * operator condition with a NULL comparison constant to succeed,
-        * and we can reject it right away.
+        * marked in pg_proc).  This means that it is impossible for an
+        * operator condition with a NULL comparison constant to succeed, and
+        * we can reject it right away.
         *
         * However, we now also support "x IS NULL" clauses as search
-        * conditions, so in that case keep going.  The planner has not
-        * filled in any particular strategy in this case, so set it to
+        * conditions, so in that case keep going.  The planner has not filled
+        * in any particular strategy in this case, so set it to
         * BTEqualStrategyNumber --- we can treat IS NULL as an equality
         * operator for purposes of search strategy.
         */
@@ -303,8 +303,8 @@ _bt_preprocess_keys(IndexScanDesc scan)
    /*
     * Initialize for processing of keys for attr 1.
     *
-    * xform[i] points to the currently best scan key of strategy type i+1;
-    * it is NULL if we haven't yet found such a key for this attr.
+    * xform[i] points to the currently best scan key of strategy type i+1; it
+    * is NULL if we haven't yet found such a key for this attr.
     */
    attno = 1;
    memset(xform, 0, sizeof(xform));
@@ -464,6 +464,7 @@ _bt_preprocess_keys(IndexScanDesc scan)
            memcpy(outkey, cur, sizeof(ScanKeyData));
            if (numberOfEqualCols == attno - 1)
                _bt_mark_scankey_required(outkey);
+
            /*
             * We don't support RowCompare using equality; such a qual would
             * mess up the numberOfEqualCols tracking.
@@ -514,9 +515,9 @@ _bt_preprocess_keys(IndexScanDesc scan)
            else
            {
                /*
-                * We can't determine which key is more restrictive.  Keep
-                * the previous one in xform[j] and push this one directly
-                * to the output array.
+                * We can't determine which key is more restrictive.  Keep the
+                * previous one in xform[j] and push this one directly to the
+                * output array.
                 */
                ScanKey     outkey = &outkeys[new_numberOfKeys++];
 
@@ -542,7 +543,7 @@ _bt_preprocess_keys(IndexScanDesc scan)
  * and amoplefttype/amoprighttype equal to the two argument datatypes.
  *
  * If the opfamily doesn't supply a complete set of cross-type operators we
- * may not be able to make the comparison.  If we can make the comparison
+ * may not be able to make the comparison. If we can make the comparison
  * we store the operator result in *result and return TRUE.  We return FALSE
  * if the comparison could not be made.
  *
@@ -608,8 +609,8 @@ _bt_compare_scankey_args(IndexScanDesc scan, ScanKey op,
     * indexscan initiated by syscache lookup will use cross-data-type
     * operators.)
     *
-    * If the sk_strategy was flipped by _bt_mark_scankey_with_indoption,
-    * we have to un-flip it to get the correct opfamily member.
+    * If the sk_strategy was flipped by _bt_mark_scankey_with_indoption, we
+    * have to un-flip it to get the correct opfamily member.
     */
    strat = op->sk_strategy;
    if (op->sk_flags & SK_BT_DESC)
@@ -654,7 +655,7 @@ _bt_compare_scankey_args(IndexScanDesc scan, ScanKey op,
 static void
 _bt_mark_scankey_with_indoption(ScanKey skey, int16 *indoption)
 {
-   int     addflags;
+   int         addflags;
 
    addflags = indoption[skey->sk_attno - 1] << SK_BT_INDOPTION_SHIFT;
    if ((addflags & SK_BT_DESC) && !(skey->sk_flags & SK_BT_DESC))
@@ -874,8 +875,8 @@ _bt_checkkeys(IndexScanDesc scan,
                /*
                 * Since NULLs are sorted before non-NULLs, we know we have
                 * reached the lower limit of the range of values for this
-                * index attr.  On a backward scan, we can stop if this qual is
-                * one of the "must match" subset.  On a forward scan,
+                * index attr.  On a backward scan, we can stop if this qual
+                * is one of the "must match" subset.  On a forward scan,
                 * however, we should keep going.
                 */
                if ((key->sk_flags & SK_BT_REQBKWD) &&
@@ -887,8 +888,8 @@ _bt_checkkeys(IndexScanDesc scan,
                /*
                 * Since NULLs are sorted after non-NULLs, we know we have
                 * reached the upper limit of the range of values for this
-                * index attr.  On a forward scan, we can stop if this qual is
-                * one of the "must match" subset.  On a backward scan,
+                * index attr.  On a forward scan, we can stop if this qual is
+                * one of the "must match" subset.  On a backward scan,
                 * however, we should keep going.
                 */
                if ((key->sk_flags & SK_BT_REQFWD) &&
@@ -978,7 +979,7 @@ _bt_check_rowcompare(ScanKey skey, IndexTuple tuple, TupleDesc tupdesc,
                 * Since NULLs are sorted before non-NULLs, we know we have
                 * reached the lower limit of the range of values for this
                 * index attr. On a backward scan, we can stop if this qual is
-                * one of the "must match" subset.  On a forward scan,
+                * one of the "must match" subset.  On a forward scan,
                 * however, we should keep going.
                 */
                if ((subkey->sk_flags & SK_BT_REQBKWD) &&
@@ -991,7 +992,7 @@ _bt_check_rowcompare(ScanKey skey, IndexTuple tuple, TupleDesc tupdesc,
                 * Since NULLs are sorted after non-NULLs, we know we have
                 * reached the upper limit of the range of values for this
                 * index attr. On a forward scan, we can stop if this qual is
-                * one of the "must match" subset.  On a backward scan,
+                * one of the "must match" subset.  On a backward scan,
                 * however, we should keep going.
                 */
                if ((subkey->sk_flags & SK_BT_REQFWD) &&
@@ -1264,8 +1265,8 @@ _bt_start_vacuum(Relation rel)
    LWLockAcquire(BtreeVacuumLock, LW_EXCLUSIVE);
 
    /*
-    * Assign the next cycle ID, being careful to avoid zero as well as
-    * the reserved high values.
+    * Assign the next cycle ID, being careful to avoid zero as well as the
+    * reserved high values.
     */
    result = ++(btvacinfo->cycle_ctr);
    if (result == 0 || result > MAX_BT_CYCLE_ID)
index 499129c48f100f943c9c54827317baa921f99873..79aae66201fec62bcb359210ddccef2cdc401000 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/nbtree/nbtxlog.c,v 1.46 2007/09/20 17:56:30 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/nbtree/nbtxlog.c,v 1.47 2007/11/15 21:14:32 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -40,7 +40,7 @@ typedef struct bt_incomplete_action
    BlockNumber rightblk;       /* right half of split */
    /* these fields are for a delete: */
    BlockNumber delblk;         /* parent block to be deleted */
-} bt_incomplete_action;
+}  bt_incomplete_action;
 
 static List *incomplete_actions;
 
@@ -271,8 +271,8 @@ btree_xlog_split(bool onleft, bool isroot,
    char       *datapos;
    int         datalen;
    OffsetNumber newitemoff = 0;
-   Item newitem = NULL;
-   Size newitemsz = 0;
+   Item        newitem = NULL;
+   Size        newitemsz = 0;
 
    reln = XLogOpenRelation(xlrec->node);
 
@@ -343,15 +343,15 @@ btree_xlog_split(bool onleft, bool isroot,
     * Reconstruct left (original) sibling if needed.  Note that this code
     * ensures that the items remaining on the left page are in the correct
     * item number order, but it does not reproduce the physical order they
-    * would have had.  Is this worth changing?  See also _bt_restore_page().
+    * would have had.  Is this worth changing?  See also _bt_restore_page().
     */
    if (!(record->xl_info & XLR_BKP_BLOCK_1))
    {
-       Buffer lbuf = XLogReadBuffer(reln, xlrec->leftsib, false);
+       Buffer      lbuf = XLogReadBuffer(reln, xlrec->leftsib, false);
 
        if (BufferIsValid(lbuf))
        {
-           Page lpage = (Page) BufferGetPage(lbuf);
+           Page        lpage = (Page) BufferGetPage(lbuf);
            BTPageOpaque lopaque = (BTPageOpaque) PageGetSpecialPointer(lpage);
 
            if (!XLByteLE(lsn, PageGetLSN(lpage)))
@@ -359,19 +359,20 @@ btree_xlog_split(bool onleft, bool isroot,
                OffsetNumber off;
                OffsetNumber maxoff = PageGetMaxOffsetNumber(lpage);
                OffsetNumber deletable[MaxOffsetNumber];
-               int ndeletable = 0;
-               ItemId hiItemId;
-               Item hiItem;
+               int         ndeletable = 0;
+               ItemId      hiItemId;
+               Item        hiItem;
 
                /*
-                * Remove the items from the left page that were copied to
-                * the right page.  Also remove the old high key, if any.
-                * (We must remove everything before trying to insert any
-                * items, else we risk not having enough space.)
+                * Remove the items from the left page that were copied to the
+                * right page.  Also remove the old high key, if any. (We must
+                * remove everything before trying to insert any items, else
+                * we risk not having enough space.)
                 */
                if (!P_RIGHTMOST(lopaque))
                {
                    deletable[ndeletable++] = P_HIKEY;
+
                    /*
                     * newitemoff is given to us relative to the original
                     * page's item numbering, so adjust it for this deletion.
@@ -421,11 +422,11 @@ btree_xlog_split(bool onleft, bool isroot,
    /* Fix left-link of the page to the right of the new right sibling */
    if (xlrec->rnext != P_NONE && !(record->xl_info & XLR_BKP_BLOCK_2))
    {
-       Buffer buffer = XLogReadBuffer(reln, xlrec->rnext, false);
+       Buffer      buffer = XLogReadBuffer(reln, xlrec->rnext, false);
 
        if (BufferIsValid(buffer))
        {
-           Page page = (Page) BufferGetPage(buffer);
+           Page        page = (Page) BufferGetPage(buffer);
 
            if (!XLByteLE(lsn, PageGetLSN(page)))
            {
@@ -795,7 +796,7 @@ btree_desc(StringInfo buf, uint8 xl_info, char *rec)
                                 xlrec->node.spcNode, xlrec->node.dbNode,
                                 xlrec->node.relNode);
                appendStringInfo(buf, "left %u, right %u, next %u, level %u, firstright %d",
-                                xlrec->leftsib, xlrec->rightsib, xlrec->rnext,
+                              xlrec->leftsib, xlrec->rightsib, xlrec->rnext,
                                 xlrec->level, xlrec->firstright);
                break;
            }
@@ -807,7 +808,7 @@ btree_desc(StringInfo buf, uint8 xl_info, char *rec)
                                 xlrec->node.spcNode, xlrec->node.dbNode,
                                 xlrec->node.relNode);
                appendStringInfo(buf, "left %u, right %u, next %u, level %u, firstright %d",
-                                xlrec->leftsib, xlrec->rightsib, xlrec->rnext,
+                              xlrec->leftsib, xlrec->rightsib, xlrec->rnext,
                                 xlrec->level, xlrec->firstright);
                break;
            }
@@ -819,7 +820,7 @@ btree_desc(StringInfo buf, uint8 xl_info, char *rec)
                                 xlrec->node.spcNode, xlrec->node.dbNode,
                                 xlrec->node.relNode);
                appendStringInfo(buf, "left %u, right %u, next %u, level %u, firstright %d",
-                                xlrec->leftsib, xlrec->rightsib, xlrec->rnext,
+                              xlrec->leftsib, xlrec->rightsib, xlrec->rnext,
                                 xlrec->level, xlrec->firstright);
                break;
            }
@@ -831,7 +832,7 @@ btree_desc(StringInfo buf, uint8 xl_info, char *rec)
                                 xlrec->node.spcNode, xlrec->node.dbNode,
                                 xlrec->node.relNode);
                appendStringInfo(buf, "left %u, right %u, next %u, level %u, firstright %d",
-                                xlrec->leftsib, xlrec->rightsib, xlrec->rnext,
+                              xlrec->leftsib, xlrec->rightsib, xlrec->rnext,
                                 xlrec->level, xlrec->firstright);
                break;
            }
index 419c8656065255f6b253d51a0f324715b30faec8..72be0e855a7650edc131f8f2f731180d96cce5f6 100644 (file)
  * CLOG page is initialized to zeroes. Other writes of CLOG come from
  * recording of transaction commit or abort in xact.c, which generates its
  * own XLOG records for these events and will re-perform the status update
- * on redo; so we need make no additional XLOG entry here.  For synchronous
+ * on redo; so we need make no additional XLOG entry here. For synchronous
  * transaction commits, the XLOG is guaranteed flushed through the XLOG commit
  * record before we are called to log a commit, so the WAL rule "write xlog
  * before data" is satisfied automatically.  However, for async commits we
  * must track the latest LSN affecting each CLOG page, so that we can flush
- * XLOG that far and satisfy the WAL rule.  We don't have to worry about this
+ * XLOG that far and satisfy the WAL rule. We don't have to worry about this
  * for aborts (whether sync or async), since the post-crash assumption would
  * be that such transactions failed anyway.
  *
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/access/transam/clog.c,v 1.44 2007/09/05 18:10:47 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/clog.c,v 1.45 2007/11/15 21:14:32 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -60,8 +60,8 @@
 #define TransactionIdToBIndex(xid) ((xid) % (TransactionId) CLOG_XACTS_PER_BYTE)
 
 /* We store the latest async LSN for each group of transactions */
-#define CLOG_XACTS_PER_LSN_GROUP   32      /* keep this a power of 2 */
-#define CLOG_LSNS_PER_PAGE  (CLOG_XACTS_PER_PAGE / CLOG_XACTS_PER_LSN_GROUP)
+#define CLOG_XACTS_PER_LSN_GROUP   32  /* keep this a power of 2 */
+#define CLOG_LSNS_PER_PAGE (CLOG_XACTS_PER_PAGE / CLOG_XACTS_PER_LSN_GROUP)
 
 #define GetLSNIndex(slotno, xid)   ((slotno) * CLOG_LSNS_PER_PAGE + \
    ((xid) % (TransactionId) CLOG_XACTS_PER_PAGE) / CLOG_XACTS_PER_LSN_GROUP)
@@ -85,7 +85,7 @@ static void WriteTruncateXlogRec(int pageno);
  * Record the final state of a transaction in the commit log.
  *
  * lsn must be the WAL location of the commit record when recording an async
- * commit.  For a synchronous commit it can be InvalidXLogRecPtr, since the
+ * commit. For a synchronous commit it can be InvalidXLogRecPtr, since the
  * caller guarantees the commit record is already flushed in that case.  It
  * should be InvalidXLogRecPtr for abort cases, too.
  *
@@ -159,7 +159,7 @@ TransactionIdSetStatus(TransactionId xid, XidStatus status, XLogRecPtr lsn)
  * an LSN that is late enough to be able to guarantee that if we flush up to
  * that LSN then we will have flushed the transaction's commit record to disk.
  * The result is not necessarily the exact LSN of the transaction's commit
- * record!  For example, for long-past transactions (those whose clog pages
+ * record! For example, for long-past transactions (those whose clog pages
  * already migrated to disk), we'll return InvalidXLogRecPtr.  Also, because
  * we group transactions on the same clog page to conserve storage, we might
  * return the LSN of a later transaction that falls into the same group.
@@ -486,8 +486,8 @@ clog_redo(XLogRecPtr lsn, XLogRecord *record)
        memcpy(&pageno, XLogRecGetData(record), sizeof(int));
 
        /*
-        * During XLOG replay, latest_page_number isn't set up yet; insert
-        * suitable value to bypass the sanity test in SimpleLruTruncate.
+        * During XLOG replay, latest_page_number isn't set up yet; insert a
+        * suitable value to bypass the sanity test in SimpleLruTruncate.
         */
        ClogCtl->shared->latest_page_number = pageno;
 
index b34fa9be78502bb304b7a7460e922f6ef5595b6d..61a59961d71a030ba68b9142b0106227fec1e0c9 100644 (file)
@@ -42,7 +42,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/access/transam/multixact.c,v 1.25 2007/09/05 18:10:47 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/multixact.c,v 1.26 2007/11/15 21:14:32 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -380,9 +380,9 @@ MultiXactIdIsRunning(MultiXactId multi)
    }
 
    /*
-    * Checking for myself is cheap compared to looking in shared memory,
-    * so first do the equivalent of MultiXactIdIsCurrent().  This is not
-    * needed for correctness, it's just a fast path.
+    * Checking for myself is cheap compared to looking in shared memory, so
+    * first do the equivalent of MultiXactIdIsCurrent().  This is not needed
+    * for correctness, it's just a fast path.
     */
    for (i = 0; i < nmembers; i++)
    {
index e53b05e04d5bd2fbaa97fc595a359c2b90f4d17d..db0f79c47c4d0d0619c7af8fe7bf7d44638de18c 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/transam/transam.c,v 1.71 2007/09/08 20:31:14 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/transam/transam.c,v 1.72 2007/11/15 21:14:32 momjian Exp $
  *
  * NOTES
  *   This file contains the high level access-method interface to the
@@ -440,14 +440,14 @@ TransactionId
 TransactionIdLatest(TransactionId mainxid,
                    int nxids, const TransactionId *xids)
 {
-   TransactionId   result;
+   TransactionId result;
 
    /*
-    * In practice it is highly likely that the xids[] array is sorted, and
-    * so we could save some cycles by just taking the last child XID, but
-    * this probably isn't so performance-critical that it's worth depending
-    * on that assumption.  But just to show we're not totally stupid, scan
-    * the array back-to-front to avoid useless assignments.
+    * In practice it is highly likely that the xids[] array is sorted, and so
+    * we could save some cycles by just taking the last child XID, but this
+    * probably isn't so performance-critical that it's worth depending on
+    * that assumption.  But just to show we're not totally stupid, scan the
+    * array back-to-front to avoid useless assignments.
     */
    result = mainxid;
    while (--nxids >= 0)
index 6ce9d1b5864d7a6450333c4f72822f20d0840977..2888adbc3745233703f9692590fa1790c050c65d 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *     $PostgreSQL: pgsql/src/backend/access/transam/twophase.c,v 1.37 2007/10/24 20:55:36 alvherre Exp $
+ *     $PostgreSQL: pgsql/src/backend/access/transam/twophase.c,v 1.38 2007/11/15 21:14:32 momjian Exp $
  *
  * NOTES
  *     Each global transaction is associated with a global transaction
@@ -397,15 +397,15 @@ LockGXact(const char *gid, Oid user)
                     errhint("Must be superuser or the user that prepared the transaction.")));
 
        /*
-        * Note: it probably would be possible to allow committing from another
-        * database; but at the moment NOTIFY is known not to work and there
-        * may be some other issues as well.  Hence disallow until someone
-        * gets motivated to make it work.
+        * Note: it probably would be possible to allow committing from
+        * another database; but at the moment NOTIFY is known not to work and
+        * there may be some other issues as well.  Hence disallow until
+        * someone gets motivated to make it work.
         */
        if (MyDatabaseId != gxact->proc.databaseId)
            ereport(ERROR,
                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                    errmsg("prepared transaction belongs to another database"),
+                 errmsg("prepared transaction belongs to another database"),
                     errhint("Connect to the database where the transaction was prepared to finish it.")));
 
        /* OK for me to lock it */
@@ -937,11 +937,11 @@ EndPrepare(GlobalTransaction gxact)
     * odds of a PANIC actually occurring should be very tiny given that we
     * were able to write the bogus CRC above.
     *
-    * We have to set inCommit here, too; otherwise a checkpoint
-    * starting immediately after the WAL record is inserted could complete
-    * without fsync'ing our state file.  (This is essentially the same kind
-    * of race condition as the COMMIT-to-clog-write case that
-    * RecordTransactionCommit uses inCommit for; see notes there.)
+    * We have to set inCommit here, too; otherwise a checkpoint starting
+    * immediately after the WAL record is inserted could complete without
+    * fsync'ing our state file.  (This is essentially the same kind of race
+    * condition as the COMMIT-to-clog-write case that RecordTransactionCommit
+    * uses inCommit for; see notes there.)
     *
     * We save the PREPARE record's location in the gxact for later use by
     * CheckPointTwoPhase.
@@ -985,8 +985,8 @@ EndPrepare(GlobalTransaction gxact)
    MarkAsPrepared(gxact);
 
    /*
-    * Now we can mark ourselves as out of the commit critical section:
-    * checkpoint starting after this will certainly see the gxact as a
+    * Now we can mark ourselves as out of the commit critical section: a
+    * checkpoint starting after this will certainly see the gxact as a
     * candidate for fsyncing.
     */
    MyProc->inCommit = false;
@@ -1272,8 +1272,8 @@ RemoveTwoPhaseFile(TransactionId xid, bool giveWarning)
        if (errno != ENOENT || giveWarning)
            ereport(WARNING,
                    (errcode_for_file_access(),
-                    errmsg("could not remove two-phase state file \"%s\": %m",
-                           path)));
+                  errmsg("could not remove two-phase state file \"%s\": %m",
+                         path)));
 }
 
 /*
@@ -1500,8 +1500,8 @@ PrescanPreparedTransactions(void)
            if (buf == NULL)
            {
                ereport(WARNING,
-                       (errmsg("removing corrupt two-phase state file \"%s\"",
-                               clde->d_name)));
+                     (errmsg("removing corrupt two-phase state file \"%s\"",
+                             clde->d_name)));
                RemoveTwoPhaseFile(xid, true);
                continue;
            }
@@ -1511,8 +1511,8 @@ PrescanPreparedTransactions(void)
            if (!TransactionIdEquals(hdr->xid, xid))
            {
                ereport(WARNING,
-                       (errmsg("removing corrupt two-phase state file \"%s\"",
-                               clde->d_name)));
+                     (errmsg("removing corrupt two-phase state file \"%s\"",
+                             clde->d_name)));
                RemoveTwoPhaseFile(xid, true);
                pfree(buf);
                continue;
@@ -1599,8 +1599,8 @@ RecoverPreparedTransactions(void)
            if (buf == NULL)
            {
                ereport(WARNING,
-                       (errmsg("removing corrupt two-phase state file \"%s\"",
-                               clde->d_name)));
+                     (errmsg("removing corrupt two-phase state file \"%s\"",
+                             clde->d_name)));
                RemoveTwoPhaseFile(xid, true);
                continue;
            }
@@ -1711,9 +1711,9 @@ RecordTransactionCommitPrepared(TransactionId xid,
    recptr = XLogInsert(RM_XACT_ID, XLOG_XACT_COMMIT_PREPARED, rdata);
 
    /*
-    * We don't currently try to sleep before flush here ... nor is there
-    * any support for async commit of a prepared xact (the very idea is
-    * probably a contradiction)
+    * We don't currently try to sleep before flush here ... nor is there any
+    * support for async commit of a prepared xact (the very idea is probably
+    * a contradiction)
     */
 
    /* Flush XLOG to disk */
index 9c2f14a1a38c90417299a44541e7bc8d60d67e49..84d1e9caefc74d9bb7f0430979d736c1ac2dd920 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/transam/twophase_rmgr.c,v 1.5 2007/05/27 03:50:39 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/transam/twophase_rmgr.c,v 1.6 2007/11/15 21:14:32 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -38,7 +38,7 @@ const TwoPhaseCallback twophase_postcommit_callbacks[TWOPHASE_RM_MAX_ID + 1] =
    lock_twophase_postcommit,   /* Lock */
    inval_twophase_postcommit,  /* Inval */
    flatfile_twophase_postcommit,       /* flat file update */
-   notify_twophase_postcommit, /* notify/listen */
+   notify_twophase_postcommit, /* notify/listen */
    pgstat_twophase_postcommit  /* pgstat */
 };
 
index 14332c6ab26496ed223e3178e55295edd7d30e4b..d7a5183d4cd195475dba68b33c0b0a50fb09003d 100644 (file)
@@ -6,7 +6,7 @@
  * Copyright (c) 2000-2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/transam/varsup.c,v 1.79 2007/09/08 20:31:14 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/transam/varsup.c,v 1.80 2007/11/15 21:14:32 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -73,9 +73,9 @@ GetNewTransactionId(bool isSubXact)
        TransactionIdIsValid(ShmemVariableCache->xidVacLimit))
    {
        /*
-        * To avoid swamping the postmaster with signals, we issue the
-        * autovac request only once per 64K transaction starts.  This
-        * still gives plenty of chances before we get into real trouble.
+        * To avoid swamping the postmaster with signals, we issue the autovac
+        * request only once per 64K transaction starts.  This still gives
+        * plenty of chances before we get into real trouble.
         */
        if (IsUnderPostmaster && (xid % 65536) == 0)
            SendPostmasterSignal(PMSIGNAL_START_AUTOVAC_LAUNCHER);
@@ -119,9 +119,9 @@ GetNewTransactionId(bool isSubXact)
 
    /*
     * We must store the new XID into the shared ProcArray before releasing
-    * XidGenLock.  This ensures that every active XID older than
-    * latestCompletedXid is present in the ProcArray, which is essential
-    * for correct OldestXmin tracking; see src/backend/access/transam/README.
+    * XidGenLock.  This ensures that every active XID older than
+    * latestCompletedXid is present in the ProcArray, which is essential for
+    * correct OldestXmin tracking; see src/backend/access/transam/README.
     *
     * XXX by storing xid into MyProc without acquiring ProcArrayLock, we are
     * relying on fetch/store of an xid to be atomic, else other backends
@@ -249,18 +249,18 @@ SetTransactionIdLimit(TransactionId oldest_datfrozenxid,
        xidWarnLimit -= FirstNormalTransactionId;
 
    /*
-    * We'll start trying to force autovacuums when oldest_datfrozenxid
-    * gets to be more than autovacuum_freeze_max_age transactions old.
+    * We'll start trying to force autovacuums when oldest_datfrozenxid gets
+    * to be more than autovacuum_freeze_max_age transactions old.
     *
-    * Note: guc.c ensures that autovacuum_freeze_max_age is in a sane
-    * range, so that xidVacLimit will be well before xidWarnLimit.
+    * Note: guc.c ensures that autovacuum_freeze_max_age is in a sane range,
+    * so that xidVacLimit will be well before xidWarnLimit.
     *
     * Note: autovacuum_freeze_max_age is a PGC_POSTMASTER parameter so that
     * we don't have to worry about dealing with on-the-fly changes in its
     * value.  It doesn't look practical to update shared state from a GUC
     * assign hook (too many processes would try to execute the hook,
-    * resulting in race conditions as well as crashes of those not
-    * connected to shared memory).  Perhaps this can be improved someday.
+    * resulting in race conditions as well as crashes of those not connected
+    * to shared memory).  Perhaps this can be improved someday.
     */
    xidVacLimit = oldest_datfrozenxid + autovacuum_freeze_max_age;
    if (xidVacLimit < FirstNormalTransactionId)
index b7ab95858650bec7d6fba7a3ed802e1a60597b54..04804c38711ccffcecee376b31669c4f582d979c 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/transam/xact.c,v 1.252 2007/11/10 14:36:44 momjian Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/transam/xact.c,v 1.253 2007/11/15 21:14:32 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -274,8 +274,8 @@ IsTransactionState(void)
    TransactionState s = CurrentTransactionState;
 
    /*
-    * TRANS_DEFAULT and TRANS_ABORT are obviously unsafe states.  However,
-    * we also reject the startup/shutdown states TRANS_START, TRANS_COMMIT,
+    * TRANS_DEFAULT and TRANS_ABORT are obviously unsafe states.  However, we
+    * also reject the startup/shutdown states TRANS_START, TRANS_COMMIT,
     * TRANS_PREPARE since it might be too soon or too late within those
     * transition states to do anything interesting.  Hence, the only "valid"
     * state is TRANS_INPROGRESS.
@@ -372,7 +372,7 @@ GetCurrentTransactionIdIfAny(void)
 static void
 AssignTransactionId(TransactionState s)
 {
-   bool isSubXact = (s->parent != NULL);
+   bool        isSubXact = (s->parent != NULL);
    ResourceOwner currentOwner;
 
    /* Assert that caller didn't screw up */
@@ -400,9 +400,9 @@ AssignTransactionId(TransactionState s)
        SubTransSetParent(s->transactionId, s->parent->transactionId);
 
    /*
-    * Acquire lock on the transaction XID.  (We assume this cannot block.)
-    * We have to ensure that the lock is assigned to the transaction's
-    * own ResourceOwner.
+    * Acquire lock on the transaction XID.  (We assume this cannot block.) We
+    * have to ensure that the lock is assigned to the transaction's own
+    * ResourceOwner.
     */
    currentOwner = CurrentResourceOwner;
    PG_TRY();
@@ -626,9 +626,9 @@ AtStart_Memory(void)
    /*
     * If this is the first time through, create a private context for
     * AbortTransaction to work in.  By reserving some space now, we can
-    * insulate AbortTransaction from out-of-memory scenarios.  Like
-    * ErrorContext, we set it up with slow growth rate and a nonzero
-    * minimum size, so that space will be reserved immediately.
+    * insulate AbortTransaction from out-of-memory scenarios.  Like
+    * ErrorContext, we set it up with slow growth rate and a nonzero minimum
+    * size, so that space will be reserved immediately.
     */
    if (TransactionAbortContext == NULL)
        TransactionAbortContext =
@@ -749,7 +749,7 @@ AtSubStart_ResourceOwner(void)
  * RecordTransactionCommit
  *
  * Returns latest XID among xact and its children, or InvalidTransactionId
- * if the xact has no XID.  (We compute that here just because it's easier.)
+ * if the xact has no XID. (We compute that here just because it's easier.)
  *
  * This is exported only to support an ugly hack in VACUUM FULL.
  */
@@ -757,7 +757,7 @@ TransactionId
 RecordTransactionCommit(void)
 {
    TransactionId xid = GetTopTransactionIdIfAny();
-   bool        markXidCommitted = TransactionIdIsValid(xid);
+   bool        markXidCommitted = TransactionIdIsValid(xid);
    TransactionId latestXid = InvalidTransactionId;
    int         nrels;
    RelFileNode *rels;
@@ -770,29 +770,29 @@ RecordTransactionCommit(void)
    nchildren = xactGetCommittedChildren(&children);
 
    /*
-    * If we haven't been assigned an XID yet, we neither can, nor do we
-    * want to write a COMMIT record.
+    * If we haven't been assigned an XID yet, we neither can, nor do we want
+    * to write a COMMIT record.
     */
    if (!markXidCommitted)
    {
        /*
         * We expect that every smgrscheduleunlink is followed by a catalog
-        * update, and hence XID assignment, so we shouldn't get here with
-        * any pending deletes.  Use a real test not just an Assert to check
-        * this, since it's a bit fragile.
+        * update, and hence XID assignment, so we shouldn't get here with any
+        * pending deletes.  Use a real test not just an Assert to check this,
+        * since it's a bit fragile.
         */
        if (nrels != 0)
            elog(ERROR, "cannot commit a transaction that deleted files but has no xid");
 
        /* Can't have child XIDs either; AssignTransactionId enforces this */
        Assert(nchildren == 0);
-       
+
        /*
         * If we didn't create XLOG entries, we're done here; otherwise we
-        * should flush those entries the same as a commit record.  (An
+        * should flush those entries the same as a commit record.  (An
         * example of a possible record that wouldn't cause an XID to be
-        * assigned is a sequence advance record due to nextval() --- we
-        * want to flush that to disk before reporting commit.)
+        * assigned is a sequence advance record due to nextval() --- we want
+        * to flush that to disk before reporting commit.)
         */
        if (XactLastRecEnd.xrecoff == 0)
            goto cleanup;
@@ -802,30 +802,29 @@ RecordTransactionCommit(void)
        /*
         * Begin commit critical section and insert the commit XLOG record.
         */
-       XLogRecData     rdata[3];
-       int             lastrdata = 0;
-       xl_xact_commit  xlrec;
+       XLogRecData rdata[3];
+       int         lastrdata = 0;
+       xl_xact_commit xlrec;
 
        /* Tell bufmgr and smgr to prepare for commit */
        BufmgrCommit();
 
        /*
-        * Mark ourselves as within our "commit critical section".  This
+        * Mark ourselves as within our "commit critical section".  This
         * forces any concurrent checkpoint to wait until we've updated
-        * pg_clog.  Without this, it is possible for the checkpoint to
-        * set REDO after the XLOG record but fail to flush the pg_clog
-        * update to disk, leading to loss of the transaction commit if
-        * the system crashes a little later.
+        * pg_clog.  Without this, it is possible for the checkpoint to set
+        * REDO after the XLOG record but fail to flush the pg_clog update to
+        * disk, leading to loss of the transaction commit if the system
+        * crashes a little later.
         *
         * Note: we could, but don't bother to, set this flag in
-        * RecordTransactionAbort.  That's because loss of a transaction
-        * abort is noncritical; the presumption would be that it aborted,
-        * anyway.
+        * RecordTransactionAbort.  That's because loss of a transaction abort
+        * is noncritical; the presumption would be that it aborted, anyway.
         *
-        * It's safe to change the inCommit flag of our own backend
-        * without holding the ProcArrayLock, since we're the only one
-        * modifying it.  This makes checkpoint's determination of which
-        * xacts are inCommit a bit fuzzy, but it doesn't matter.
+        * It's safe to change the inCommit flag of our own backend without
+        * holding the ProcArrayLock, since we're the only one modifying it.
+        * This makes checkpoint's determination of which xacts are inCommit a
+        * bit fuzzy, but it doesn't matter.
         */
        START_CRIT_SECTION();
        MyProc->inCommit = true;
@@ -864,7 +863,7 @@ RecordTransactionCommit(void)
     * Check if we want to commit asynchronously.  If the user has set
     * synchronous_commit = off, and we're not doing cleanup of any non-temp
     * rels nor committing any command that wanted to force sync commit, then
-    * we can defer flushing XLOG.  (We must not allow asynchronous commit if
+    * we can defer flushing XLOG.  (We must not allow asynchronous commit if
     * there are any non-temp tables to be deleted, because we might delete
     * the files before the COMMIT record is flushed to disk.  We do allow
     * asynchronous commit if all to-be-deleted tables are temporary though,
@@ -875,15 +874,14 @@ RecordTransactionCommit(void)
        /*
         * Synchronous commit case.
         *
-        * Sleep before flush! So we can flush more than one commit
-        * records per single fsync.  (The idea is some other backend
-        * may do the XLogFlush while we're sleeping.  This needs work
-        * still, because on most Unixen, the minimum select() delay
-        * is 10msec or more, which is way too long.)
+        * Sleep before flush! So we can flush more than one commit records
+        * per single fsync.  (The idea is some other backend may do the
+        * XLogFlush while we're sleeping.  This needs work still, because on
+        * most Unixen, the minimum select() delay is 10msec or more, which is
+        * way too long.)
         *
-        * We do not sleep if enableFsync is not turned on, nor if
-        * there are fewer than CommitSiblings other backends with
-        * active transactions.
+        * We do not sleep if enableFsync is not turned on, nor if there are
+        * fewer than CommitSiblings other backends with active transactions.
         */
        if (CommitDelay > 0 && enableFsync &&
            CountActiveBackends() >= CommitSiblings)
@@ -906,15 +904,15 @@ RecordTransactionCommit(void)
        /*
         * Asynchronous commit case.
         *
-        * Report the latest async commit LSN, so that
-        * the WAL writer knows to flush this commit.
+        * Report the latest async commit LSN, so that the WAL writer knows to
+        * flush this commit.
         */
        XLogSetAsyncCommitLSN(XactLastRecEnd);
 
        /*
-        * We must not immediately update the CLOG, since we didn't
-        * flush the XLOG. Instead, we store the LSN up to which
-        * the XLOG must be flushed before the CLOG may be updated.
+        * We must not immediately update the CLOG, since we didn't flush the
+        * XLOG. Instead, we store the LSN up to which the XLOG must be
+        * flushed before the CLOG may be updated.
         */
        if (markXidCommitted)
        {
@@ -925,8 +923,8 @@ RecordTransactionCommit(void)
    }
 
    /*
-    * If we entered a commit critical section, leave it now, and
-    * let checkpoints proceed.
+    * If we entered a commit critical section, leave it now, and let
+    * checkpoints proceed.
     */
    if (markXidCommitted)
    {
@@ -1068,11 +1066,11 @@ RecordSubTransactionCommit(void)
     * We do not log the subcommit in XLOG; it doesn't matter until the
     * top-level transaction commits.
     *
-    * We must mark the subtransaction subcommitted in the CLOG if
-    * it had a valid XID assigned.  If it did not, nobody else will
-    * ever know about the existence of this subxact.  We don't
-    * have to deal with deletions scheduled for on-commit here, since
-    * they'll be reassigned to our parent (who might still abort).
+    * We must mark the subtransaction subcommitted in the CLOG if it had a
+    * valid XID assigned.  If it did not, nobody else will ever know about
+    * the existence of this subxact.  We don't have to deal with deletions
+    * scheduled for on-commit here, since they'll be reassigned to our parent
+    * (who might still abort).
     */
    if (TransactionIdIsValid(xid))
    {
@@ -1095,7 +1093,7 @@ RecordSubTransactionCommit(void)
  * RecordTransactionAbort
  *
  * Returns latest XID among xact and its children, or InvalidTransactionId
- * if the xact has no XID.  (We compute that here just because it's easier.)
+ * if the xact has no XID. (We compute that here just because it's easier.)
  */
 static TransactionId
 RecordTransactionAbort(bool isSubXact)
@@ -1106,15 +1104,15 @@ RecordTransactionAbort(bool isSubXact)
    RelFileNode *rels;
    int         nchildren;
    TransactionId *children;
-   XLogRecData     rdata[3];
-   int             lastrdata = 0;
-   xl_xact_abort   xlrec;
+   XLogRecData rdata[3];
+   int         lastrdata = 0;
+   xl_xact_abort xlrec;
 
    /*
-    * If we haven't been assigned an XID, nobody will care whether we
-    * aborted or not.  Hence, we're done in that case.  It does not matter
-    * if we have rels to delete (note that this routine is not responsible
-    * for actually deleting 'em).  We cannot have any child XIDs, either.
+    * If we haven't been assigned an XID, nobody will care whether we aborted
+    * or not.  Hence, we're done in that case.  It does not matter if we have
+    * rels to delete (note that this routine is not responsible for actually
+    * deleting 'em).  We cannot have any child XIDs, either.
     */
    if (!TransactionIdIsValid(xid))
    {
@@ -1128,7 +1126,7 @@ RecordTransactionAbort(bool isSubXact)
     * We have a valid XID, so we should write an ABORT record for it.
     *
     * We do not flush XLOG to disk here, since the default assumption after a
-    * crash would be that we aborted, anyway.  For the same reason, we don't
+    * crash would be that we aborted, anyway.  For the same reason, we don't
     * need to worry about interlocking against checkpoint start.
     */
 
@@ -1189,10 +1187,10 @@ RecordTransactionAbort(bool isSubXact)
     * having flushed the ABORT record to disk, because in event of a crash
     * we'd be assumed to have aborted anyway.
     *
-    * The ordering here isn't critical but it seems best to mark the
-    * parent first.  This assures an atomic transition of all the
-    * subtransactions to aborted state from the point of view of
-    * concurrent TransactionIdDidAbort calls.
+    * The ordering here isn't critical but it seems best to mark the parent
+    * first.  This assures an atomic transition of all the subtransactions to
+    * aborted state from the point of view of concurrent
+    * TransactionIdDidAbort calls.
     */
    TransactionIdAbort(xid);
    TransactionIdAbortTree(nchildren, children);
@@ -1231,9 +1229,9 @@ static void
 AtAbort_Memory(void)
 {
    /*
-    * Switch into TransactionAbortContext, which should have some free
-    * space even if nothing else does.  We'll work in this context until
-    * we've finished cleaning up.
+    * Switch into TransactionAbortContext, which should have some free space
+    * even if nothing else does.  We'll work in this context until we've
+    * finished cleaning up.
     *
     * It is barely possible to get here when we've not been able to create
     * TransactionAbortContext yet; if so use TopMemoryContext.
@@ -1438,7 +1436,7 @@ StartTransaction(void)
    VirtualXactLockTableInsert(vxid);
 
    /*
-    * Advertise it in the proc array.  We assume assignment of
+    * Advertise it in the proc array.  We assume assignment of
     * LocalTransactionID is atomic, and the backendId should be set already.
     */
    Assert(MyProc->backendId == vxid.backendId);
@@ -1449,8 +1447,8 @@ StartTransaction(void)
    /*
     * set transaction_timestamp() (a/k/a now()).  We want this to be the same
     * as the first command's statement_timestamp(), so don't do a fresh
-    * GetCurrentTimestamp() call (which'd be expensive anyway).  Also,
-    * mark xactStopTimestamp as unset.
+    * GetCurrentTimestamp() call (which'd be expensive anyway).  Also, mark
+    * xactStopTimestamp as unset.
     */
    xactStartTimestamp = stmtStartTimestamp;
    xactStopTimestamp = 0;
@@ -1576,8 +1574,8 @@ CommitTransaction(void)
    PG_TRACE1(transaction__commit, MyProc->lxid);
 
    /*
-    * Let others know about no transaction in progress by me. Note that
-    * this must be done _before_ releasing locks we hold and _after_
+    * Let others know about no transaction in progress by me. Note that this
+    * must be done _before_ releasing locks we hold and _after_
     * RecordTransactionCommit.
     */
    ProcArrayEndTransaction(MyProc, latestXid);
@@ -2503,7 +2501,7 @@ AbortCurrentTransaction(void)
  * inside a function or multi-query querystring.  (We will always fail if
  * this is false, but it's convenient to centralize the check here instead of
  * making callers do it.)
- *  stmtType: statement type name, for error messages.
+ * stmtType: statement type name, for error messages.
  */
 void
 PreventTransactionChain(bool isTopLevel, const char *stmtType)
index 36adc20848e98e7759f28099e8dc9baf564f3436..3218c134e5209e417a6ab59b87bbbbd42e33c4ce 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.287 2007/11/15 20:36:40 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.288 2007/11/15 21:14:32 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -80,7 +80,7 @@ bool      XLOG_DEBUG = false;
  * future XLOG segment as long as there aren't already XLOGfileslop future
  * segments; else we'll delete it.  This could be made a separate GUC
  * variable, but at present I think it's sufficient to hardwire it as
- * 2*CheckPointSegments+1.  Under normal conditions, a checkpoint will free
+ * 2*CheckPointSegments+1. Under normal conditions, a checkpoint will free
  * no more than 2*CheckPointSegments log segments, and we want to recycle all
  * of them; the +1 allows boundary cases to happen without wasting a
  * delete/create-segment cycle.
@@ -287,7 +287,7 @@ typedef struct XLogCtlData
    XLogwrtResult LogwrtResult;
    uint32      ckptXidEpoch;   /* nextXID & epoch of latest checkpoint */
    TransactionId ckptXid;
-   XLogRecPtr  asyncCommitLSN; /* LSN of newest async commit */
+   XLogRecPtr  asyncCommitLSN; /* LSN of newest async commit */
 
    /* Protected by WALWriteLock: */
    XLogCtlWrite Write;
@@ -737,8 +737,8 @@ begin:;
     * full-block records into the non-full-block format.
     *
     * Note: we could just set the flag whenever !forcePageWrites, but
-    * defining it like this leaves the info bit free for some potential
-    * other use in records without any backup blocks.
+    * defining it like this leaves the info bit free for some potential other
+    * use in records without any backup blocks.
     */
    if ((info & XLR_BKP_BLOCK_MASK) && !Insert->forcePageWrites)
        info |= XLR_BKP_REMOVABLE;
@@ -1345,10 +1345,10 @@ static bool
 XLogCheckpointNeeded(void)
 {
    /*
-    * A straight computation of segment number could overflow 32
-    * bits.  Rather than assuming we have working 64-bit
-    * arithmetic, we compare the highest-order bits separately,
-    * and force a checkpoint immediately when they change.
+    * A straight computation of segment number could overflow 32 bits.
+    * Rather than assuming we have working 64-bit arithmetic, we compare the
+    * highest-order bits separately, and force a checkpoint immediately when
+    * they change.
     */
    uint32      old_segno,
                new_segno;
@@ -1361,7 +1361,7 @@ XLogCheckpointNeeded(void)
    new_segno = (openLogId % XLogSegSize) * XLogSegsPerFile + openLogSeg;
    new_highbits = openLogId / XLogSegSize;
    if (new_highbits != old_highbits ||
-       new_segno >= old_segno + (uint32) (CheckPointSegments-1))
+       new_segno >= old_segno + (uint32) (CheckPointSegments - 1))
        return true;
    return false;
 }
@@ -1558,9 +1558,9 @@ XLogWrite(XLogwrtRqst WriteRqst, bool flexible, bool xlog_switch)
                /*
                 * Signal bgwriter to start a checkpoint if we've consumed too
                 * much xlog since the last one.  For speed, we first check
-                * using the local copy of RedoRecPtr, which might be
-                * out of date; if it looks like a checkpoint is needed,
-                * forcibly update RedoRecPtr and recheck.
+                * using the local copy of RedoRecPtr, which might be out of
+                * date; if it looks like a checkpoint is needed, forcibly
+                * update RedoRecPtr and recheck.
                 */
                if (IsUnderPostmaster &&
                    XLogCheckpointNeeded())
@@ -1779,9 +1779,9 @@ XLogFlush(XLogRecPtr record)
  * We normally flush only completed blocks; but if there is nothing to do on
  * that basis, we check for unflushed async commits in the current incomplete
  * block, and flush through the latest one of those.  Thus, if async commits
- * are not being used, we will flush complete blocks only.  We can guarantee
+ * are not being used, we will flush complete blocks only. We can guarantee
  * that async commits reach disk after at most three cycles; normally only
- * one or two.  (We allow XLogWrite to write "flexibly", meaning it can stop
+ * one or two. (We allow XLogWrite to write "flexibly", meaning it can stop
  * at the end of the buffer ring; this makes a difference only with very high
  * load or long wal_writer_delay, but imposes one extra cycle for the worst
  * case for async commits.)
@@ -1861,6 +1861,7 @@ void
 XLogAsyncCommitFlush(void)
 {
    XLogRecPtr  WriteRqstPtr;
+
    /* use volatile pointer to prevent code rearrangement */
    volatile XLogCtlData *xlogctl = XLogCtl;
 
@@ -2252,7 +2253,7 @@ InstallXLogFileSegment(uint32 *log, uint32 *seg, char *tmppath,
                LWLockRelease(ControlFileLock);
            return false;
        }
-#endif /* WIN32 */
+#endif   /* WIN32 */
 
        ereport(ERROR,
                (errcode_for_file_access(),
@@ -2432,8 +2433,8 @@ RestoreArchivedFile(char *path, const char *xlogfname,
    int         rc;
    bool        signaled;
    struct stat stat_buf;
-   uint32      restartLog;
-   uint32      restartSeg;
+   uint32      restartLog;
+   uint32      restartSeg;
 
    /*
     * When doing archive recovery, we always prefer an archived log file even
@@ -2511,8 +2512,8 @@ RestoreArchivedFile(char *path, const char *xlogfname,
                    sp++;
                    XLByteToSeg(ControlFile->checkPointCopy.redo,
                                restartLog, restartSeg);
-                   XLogFileName(lastRestartPointFname, 
-                                ControlFile->checkPointCopy.ThisTimeLineID, 
+                   XLogFileName(lastRestartPointFname,
+                                ControlFile->checkPointCopy.ThisTimeLineID,
                                 restartLog, restartSeg);
                    StrNCpy(dp, lastRestartPointFname, endp - dp);
                    dp += strlen(dp);
@@ -2594,17 +2595,17 @@ RestoreArchivedFile(char *path, const char *xlogfname,
     * incorrectly.  We have to assume the former.
     *
     * However, if the failure was due to any sort of signal, it's best to
-    * punt and abort recovery.  (If we "return false" here, upper levels
-    * will assume that recovery is complete and start up the database!)
-    * It's essential to abort on child SIGINT and SIGQUIT, because per spec
+    * punt and abort recovery.  (If we "return false" here, upper levels will
+    * assume that recovery is complete and start up the database!) It's
+    * essential to abort on child SIGINT and SIGQUIT, because per spec
     * system() ignores SIGINT and SIGQUIT while waiting; if we see one of
     * those it's a good bet we should have gotten it too.  Aborting on other
     * signals such as SIGTERM seems a good idea as well.
     *
-    * Per the Single Unix Spec, shells report exit status > 128 when
-    * a called command died on a signal.  Also, 126 and 127 are used to
-    * report problems such as an unfindable command; treat those as fatal
-    * errors too.
+    * Per the Single Unix Spec, shells report exit status > 128 when a called
+    * command died on a signal.  Also, 126 and 127 are used to report
+    * problems such as an unfindable command; treat those as fatal errors
+    * too.
     */
    signaled = WIFSIGNALED(rc) || WEXITSTATUS(rc) > 125;
 
@@ -3981,8 +3982,8 @@ ReadControlFile(void)
        ereport(FATAL,
                (errmsg("database files are incompatible with server"),
                 errdetail("The database cluster was initialized with TOAST_MAX_CHUNK_SIZE %d,"
-                          " but the server was compiled with TOAST_MAX_CHUNK_SIZE %d.",
-                          ControlFile->toast_max_chunk_size, (int) TOAST_MAX_CHUNK_SIZE),
+               " but the server was compiled with TOAST_MAX_CHUNK_SIZE %d.",
+             ControlFile->toast_max_chunk_size, (int) TOAST_MAX_CHUNK_SIZE),
                 errhint("It looks like you need to recompile or initdb.")));
 
 #ifdef HAVE_INT64_TIMESTAMP
@@ -4430,7 +4431,7 @@ readRecoveryCommandFile(void)
             */
            recoveryTargetTime =
                DatumGetTimestampTz(DirectFunctionCall3(timestamptz_in,
-                                                  CStringGetDatum(tok2),
+                                                       CStringGetDatum(tok2),
                                                ObjectIdGetDatum(InvalidOid),
                                                        Int32GetDatum(-1)));
            ereport(LOG,
@@ -4629,7 +4630,7 @@ recoveryStopsHere(XLogRecord *record, bool *includeThis)
 {
    bool        stopsHere;
    uint8       record_info;
-   TimestampTz recordXtime;
+   TimestampTz recordXtime;
 
    /* We only consider stopping at COMMIT or ABORT records */
    if (record->xl_rmid != RM_XACT_ID)
@@ -4781,11 +4782,11 @@ StartupXLOG(void)
                (errmsg("database system was interrupted while in recovery at log time %s",
                        str_time(ControlFile->checkPointCopy.time)),
                 errhint("If this has occurred more than once some data might be corrupted"
-               " and you might need to choose an earlier recovery target.")));
+             " and you might need to choose an earlier recovery target.")));
    else if (ControlFile->state == DB_IN_PRODUCTION)
        ereport(LOG,
-               (errmsg("database system was interrupted; last known up at %s",
-                       str_time(ControlFile->time))));
+             (errmsg("database system was interrupted; last known up at %s",
+                     str_time(ControlFile->time))));
 
    /* This is just to allow attaching to startup process with a debugger */
 #ifdef XLOG_REPLAY_DELAY
@@ -4879,9 +4880,9 @@ StartupXLOG(void)
    wasShutdown = (record->xl_info == XLOG_CHECKPOINT_SHUTDOWN);
 
    ereport(DEBUG1,
-    (errmsg("redo record is at %X/%X; shutdown %s",
-            checkPoint.redo.xlogid, checkPoint.redo.xrecoff,
-            wasShutdown ? "TRUE" : "FALSE")));
+           (errmsg("redo record is at %X/%X; shutdown %s",
+                   checkPoint.redo.xlogid, checkPoint.redo.xrecoff,
+                   wasShutdown ? "TRUE" : "FALSE")));
    ereport(DEBUG1,
            (errmsg("next transaction ID: %u/%u; next OID: %u",
                    checkPoint.nextXidEpoch, checkPoint.nextXid,
@@ -4920,7 +4921,7 @@ StartupXLOG(void)
    {
        if (wasShutdown)
            ereport(PANIC,
-               (errmsg("invalid redo record in shutdown checkpoint")));
+                   (errmsg("invalid redo record in shutdown checkpoint")));
        InRecovery = true;
    }
    else if (ControlFile->state != DB_SHUTDOWNED)
@@ -5045,7 +5046,7 @@ StartupXLOG(void)
                 */
                if (recoveryStopsHere(record, &recoveryApply))
                {
-                   reachedStopPoint = true;        /* see below */
+                   reachedStopPoint = true;    /* see below */
                    recoveryContinue = false;
                    if (!recoveryApply)
                        break;
@@ -5087,8 +5088,8 @@ StartupXLOG(void)
                            ReadRecPtr.xlogid, ReadRecPtr.xrecoff)));
            if (recoveryLastXTime)
                ereport(LOG,
-                       (errmsg("last completed transaction was at log time %s",
-                               timestamptz_to_str(recoveryLastXTime))));
+                    (errmsg("last completed transaction was at log time %s",
+                            timestamptz_to_str(recoveryLastXTime))));
            InRedo = false;
        }
        else
@@ -5116,7 +5117,7 @@ StartupXLOG(void)
        if (reachedStopPoint)   /* stopped because of stop request */
            ereport(FATAL,
                    (errmsg("requested recovery stop point is before end time of backup dump")));
-       else                    /* ran off end of WAL */
+       else    /* ran off end of WAL */
            ereport(FATAL,
                    (errmsg("WAL ends before end time of backup dump")));
    }
@@ -5124,12 +5125,12 @@ StartupXLOG(void)
    /*
     * Consider whether we need to assign a new timeline ID.
     *
-    * If we are doing an archive recovery, we always assign a new ID.  This
-    * handles a couple of issues.  If we stopped short of the end of WAL
+    * If we are doing an archive recovery, we always assign a new ID.  This
+    * handles a couple of issues.  If we stopped short of the end of WAL
     * during recovery, then we are clearly generating a new timeline and must
     * assign it a unique new ID.  Even if we ran to the end, modifying the
-    * current last segment is problematic because it may result in trying
-    * to overwrite an already-archived copy of that segment, and we encourage
+    * current last segment is problematic because it may result in trying to
+    * overwrite an already-archived copy of that segment, and we encourage
     * DBAs to make their archive_commands reject that.  We can dodge the
     * problem by making the new active segment have a new timeline ID.
     *
@@ -5472,7 +5473,7 @@ GetInsertRecPtr(void)
 {
    /* use volatile pointer to prevent code rearrangement */
    volatile XLogCtlData *xlogctl = XLogCtl;
-   XLogRecPtr recptr;
+   XLogRecPtr  recptr;
 
    SpinLockAcquire(&xlogctl->info_lck);
    recptr = xlogctl->LogwrtRqst.Write;
@@ -5576,8 +5577,12 @@ LogCheckpointStart(int flags)
 static void
 LogCheckpointEnd(void)
 {
-   long    write_secs, sync_secs, total_secs;
-   int     write_usecs, sync_usecs, total_usecs;
+   long        write_secs,
+               sync_secs,
+               total_secs;
+   int         write_usecs,
+               sync_usecs,
+               total_usecs;
 
    CheckpointStats.ckpt_end_t = GetCurrentTimestamp();
 
@@ -5601,9 +5606,9 @@ LogCheckpointEnd(void)
         CheckpointStats.ckpt_segs_added,
         CheckpointStats.ckpt_segs_removed,
         CheckpointStats.ckpt_segs_recycled,
-        write_secs, write_usecs/1000,
-        sync_secs, sync_usecs/1000,
-        total_secs, total_usecs/1000);
+        write_secs, write_usecs / 1000,
+        sync_secs, sync_usecs / 1000,
+        total_secs, total_usecs / 1000);
 }
 
 /*
@@ -5665,9 +5670,9 @@ CreateCheckPoint(int flags)
    }
 
    /*
-    * Let smgr prepare for checkpoint; this has to happen before we
-    * determine the REDO pointer.  Note that smgr must not do anything
-    * that'd have to be undone if we decide no checkpoint is needed.
+    * Let smgr prepare for checkpoint; this has to happen before we determine
+    * the REDO pointer.  Note that smgr must not do anything that'd have to
+    * be undone if we decide no checkpoint is needed.
     */
    smgrpreckpt();
 
@@ -5761,8 +5766,8 @@ CreateCheckPoint(int flags)
    LWLockRelease(WALInsertLock);
 
    /*
-    * If enabled, log checkpoint start.  We postpone this until now
-    * so as not to log anything if we decided to skip the checkpoint.
+    * If enabled, log checkpoint start.  We postpone this until now so as not
+    * to log anything if we decided to skip the checkpoint.
     */
    if (log_checkpoints)
        LogCheckpointStart(flags);
@@ -5782,11 +5787,11 @@ CreateCheckPoint(int flags)
     * checkpoint take a bit longer than to hold locks longer than necessary.
     * (In fact, the whole reason we have this issue is that xact.c does
     * commit record XLOG insertion and clog update as two separate steps
-    * protected by different locks, but again that seems best on grounds
-    * of minimizing lock contention.)
+    * protected by different locks, but again that seems best on grounds of
+    * minimizing lock contention.)
     *
-    * A transaction that has not yet set inCommit when we look cannot be
-    * at risk, since he's not inserted his commit record yet; and one that's
+    * A transaction that has not yet set inCommit when we look cannot be at
+    * risk, since he's not inserted his commit record yet; and one that's
     * already cleared it is not at risk either, since he's done fixing clog
     * and we will correctly flush the update below.  So we cannot miss any
     * xacts we need to wait for.
@@ -5794,8 +5799,9 @@ CreateCheckPoint(int flags)
    nInCommit = GetTransactionsInCommit(&inCommitXids);
    if (nInCommit > 0)
    {
-       do {
-           pg_usleep(10000L);              /* wait for 10 msec */
+       do
+       {
+           pg_usleep(10000L);  /* wait for 10 msec */
        } while (HaveTransactionsInCommit(inCommitXids, nInCommit));
    }
    pfree(inCommitXids);
@@ -5946,7 +5952,7 @@ CheckPointGuts(XLogRecPtr checkPointRedo, int flags)
    CheckPointCLOG();
    CheckPointSUBTRANS();
    CheckPointMultiXact();
-   CheckPointBuffers(flags);       /* performs all required fsyncs */
+   CheckPointBuffers(flags);   /* performs all required fsyncs */
    /* We deliberately delay 2PC checkpointing as long as possible */
    CheckPointTwoPhase(checkPointRedo);
 }
@@ -6046,14 +6052,14 @@ XLogPutNextOid(Oid nextOid)
     * does.
     *
     * Note, however, that the above statement only covers state "within" the
-    * database.  When we use a generated OID as a file or directory name,
-    * we are in a sense violating the basic WAL rule, because that filesystem
+    * database.  When we use a generated OID as a file or directory name, we
+    * are in a sense violating the basic WAL rule, because that filesystem
     * change may reach disk before the NEXTOID WAL record does.  The impact
-    * of this is that if a database crash occurs immediately afterward,
-    * we might after restart re-generate the same OID and find that it
-    * conflicts with the leftover file or directory.  But since for safety's
-    * sake we always loop until finding a nonconflicting filename, this poses
-    * no real problem in practice. See pgsql-hackers discussion 27-Sep-2006.
+    * of this is that if a database crash occurs immediately afterward, we
+    * might after restart re-generate the same OID and find that it conflicts
+    * with the leftover file or directory.  But since for safety's sake we
+    * always loop until finding a nonconflicting filename, this poses no real
+    * problem in practice. See pgsql-hackers discussion 27-Sep-2006.
     */
 }
 
@@ -6673,7 +6679,7 @@ pg_switch_xlog(PG_FUNCTION_ARGS)
    if (!superuser())
        ereport(ERROR,
                (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-                (errmsg("must be superuser to switch transaction log files"))));
+            (errmsg("must be superuser to switch transaction log files"))));
 
    switchpoint = RequestXLogSwitch();
 
index c142085637559733860808a1b417241d04e979be..83b5ee878ce23544ae96290a4c063ee71e0324b7 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/bootstrap/bootstrap.c,v 1.236 2007/08/02 23:39:44 adunstan Exp $
+ *   $PostgreSQL: pgsql/src/backend/bootstrap/bootstrap.c,v 1.237 2007/11/15 21:14:32 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -205,7 +205,7 @@ AuxiliaryProcessMain(int argc, char *argv[])
 {
    char       *progname = argv[0];
    int         flag;
-   AuxProcType auxType = CheckerProcess;
+   AuxProcType auxType = CheckerProcess;
    char       *userDoption = NULL;
 
    /*
@@ -431,7 +431,7 @@ AuxiliaryProcessMain(int argc, char *argv[])
            InitXLOGAccess();
            WalWriterMain();
            proc_exit(1);       /* should never return */
-           
+
        default:
            elog(PANIC, "unrecognized process type: %d", auxType);
            proc_exit(1);
@@ -568,7 +568,7 @@ bootstrap_signals(void)
 }
 
 /*
- * Begin shutdown of an auxiliary process.  This is approximately the equivalent
+ * Begin shutdown of an auxiliary process. This is approximately the equivalent
  * of ShutdownPostgres() in postinit.c.  We can't run transactions in an
  * auxiliary process, so most of the work of AbortTransaction() is not needed,
  * but we do need to make sure we've released any LWLocks we are holding.
index 622901a69d5265e9d819560dfb7529e3ea5bd542..e8c9ea296fa258dd36cfb1335b5cf75ec888171e 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.141 2007/10/12 18:55:11 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.142 2007/11/15 21:14:32 momjian Exp $
  *
  * NOTES
  *   See acl.h.
@@ -2348,8 +2348,8 @@ pg_ts_config_ownercheck(Oid cfg_oid, Oid roleid)
    if (!HeapTupleIsValid(tuple))
        ereport(ERROR,
                (errcode(ERRCODE_UNDEFINED_OBJECT),
-                errmsg("text search configuration with OID %u does not exist",
-                       cfg_oid)));
+              errmsg("text search configuration with OID %u does not exist",
+                     cfg_oid)));
 
    ownerId = ((Form_pg_ts_config) GETSTRUCT(tuple))->cfgowner;
 
index 51bb4ba17f4a3813cba7badf0dd8ef109d8e0e7a..c562223ddbaf2133b825f1275a0704797083d298 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/dependency.c,v 1.67 2007/08/21 01:11:13 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/dependency.c,v 1.68 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -85,29 +85,29 @@ typedef struct
  * See also getObjectClass().
  */
 static const Oid object_classes[MAX_OCLASS] = {
-   RelationRelationId,                 /* OCLASS_CLASS */
-   ProcedureRelationId,                /* OCLASS_PROC */
-   TypeRelationId,                     /* OCLASS_TYPE */
-   CastRelationId,                     /* OCLASS_CAST */
-   ConstraintRelationId,               /* OCLASS_CONSTRAINT */
-   ConversionRelationId,               /* OCLASS_CONVERSION */
-   AttrDefaultRelationId,              /* OCLASS_DEFAULT */
-   LanguageRelationId,                 /* OCLASS_LANGUAGE */
-   OperatorRelationId,                 /* OCLASS_OPERATOR */
-   OperatorClassRelationId,            /* OCLASS_OPCLASS */
-   OperatorFamilyRelationId,           /* OCLASS_OPFAMILY */
+   RelationRelationId,         /* OCLASS_CLASS */
+   ProcedureRelationId,        /* OCLASS_PROC */
+   TypeRelationId,             /* OCLASS_TYPE */
+   CastRelationId,             /* OCLASS_CAST */
+   ConstraintRelationId,       /* OCLASS_CONSTRAINT */
+   ConversionRelationId,       /* OCLASS_CONVERSION */
+   AttrDefaultRelationId,      /* OCLASS_DEFAULT */
+   LanguageRelationId,         /* OCLASS_LANGUAGE */
+   OperatorRelationId,         /* OCLASS_OPERATOR */
+   OperatorClassRelationId,    /* OCLASS_OPCLASS */
+   OperatorFamilyRelationId,   /* OCLASS_OPFAMILY */
    AccessMethodOperatorRelationId,     /* OCLASS_AMOP */
    AccessMethodProcedureRelationId,    /* OCLASS_AMPROC */
-   RewriteRelationId,                  /* OCLASS_REWRITE */
-   TriggerRelationId,                  /* OCLASS_TRIGGER */
-   NamespaceRelationId,                /* OCLASS_SCHEMA */
-   TSParserRelationId,                 /* OCLASS_TSPARSER */
-   TSDictionaryRelationId,             /* OCLASS_TSDICT */
-   TSTemplateRelationId,               /* OCLASS_TSTEMPLATE */
-   TSConfigRelationId,                 /* OCLASS_TSCONFIG */
-   AuthIdRelationId,                   /* OCLASS_ROLE */
-   DatabaseRelationId,                 /* OCLASS_DATABASE */
-   TableSpaceRelationId                /* OCLASS_TBLSPACE */
+   RewriteRelationId,          /* OCLASS_REWRITE */
+   TriggerRelationId,          /* OCLASS_TRIGGER */
+   NamespaceRelationId,        /* OCLASS_SCHEMA */
+   TSParserRelationId,         /* OCLASS_TSPARSER */
+   TSDictionaryRelationId,     /* OCLASS_TSDICT */
+   TSTemplateRelationId,       /* OCLASS_TSTEMPLATE */
+   TSConfigRelationId,         /* OCLASS_TSCONFIG */
+   AuthIdRelationId,           /* OCLASS_ROLE */
+   DatabaseRelationId,         /* OCLASS_DATABASE */
+   TableSpaceRelationId        /* OCLASS_TBLSPACE */
 };
 
 
@@ -1012,7 +1012,7 @@ doDeletion(const ObjectAddress *object)
            RemoveTSConfigurationById(object->objectId);
            break;
 
-       /* OCLASS_ROLE, OCLASS_DATABASE, OCLASS_TBLSPACE not handled */
+           /* OCLASS_ROLE, OCLASS_DATABASE, OCLASS_TBLSPACE not handled */
 
        default:
            elog(ERROR, "unrecognized object class: %u",
@@ -2162,7 +2162,7 @@ getObjectDescription(const ObjectAddress *object)
                    elog(ERROR, "cache lookup failed for text search parser %u",
                         object->objectId);
                appendStringInfo(&buffer, _("text search parser %s"),
-                   NameStr(((Form_pg_ts_parser) GETSTRUCT(tup))->prsname));
+                    NameStr(((Form_pg_ts_parser) GETSTRUCT(tup))->prsname));
                ReleaseSysCache(tup);
                break;
            }
@@ -2178,7 +2178,7 @@ getObjectDescription(const ObjectAddress *object)
                    elog(ERROR, "cache lookup failed for text search dictionary %u",
                         object->objectId);
                appendStringInfo(&buffer, _("text search dictionary %s"),
-                   NameStr(((Form_pg_ts_dict) GETSTRUCT(tup))->dictname));
+                     NameStr(((Form_pg_ts_dict) GETSTRUCT(tup))->dictname));
                ReleaseSysCache(tup);
                break;
            }
@@ -2194,7 +2194,7 @@ getObjectDescription(const ObjectAddress *object)
                    elog(ERROR, "cache lookup failed for text search template %u",
                         object->objectId);
                appendStringInfo(&buffer, _("text search template %s"),
-                   NameStr(((Form_pg_ts_template) GETSTRUCT(tup))->tmplname));
+                 NameStr(((Form_pg_ts_template) GETSTRUCT(tup))->tmplname));
                ReleaseSysCache(tup);
                break;
            }
@@ -2210,7 +2210,7 @@ getObjectDescription(const ObjectAddress *object)
                    elog(ERROR, "cache lookup failed for text search configuration %u",
                         object->objectId);
                appendStringInfo(&buffer, _("text search configuration %s"),
-                   NameStr(((Form_pg_ts_config) GETSTRUCT(tup))->cfgname));
+                    NameStr(((Form_pg_ts_config) GETSTRUCT(tup))->cfgname));
                ReleaseSysCache(tup);
                break;
            }
index d22bb77a50c60389144b61f40961a28649ab37f0..d436760b9798a85d69baedd7d14fd82f92918c2a 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/heap.c,v 1.325 2007/10/29 19:40:39 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/heap.c,v 1.326 2007/11/15 21:14:33 momjian Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -408,7 +408,7 @@ CheckAttributeType(const char *attname, Oid atttypid)
    {
        /*
         * Warn user, but don't fail, if column to be created has UNKNOWN type
-        *    (usually as a result of a 'retrieve into' - jolly)
+        * (usually as a result of a 'retrieve into' - jolly)
         */
        ereport(WARNING,
                (errcode(ERRCODE_INVALID_TABLE_DEFINITION),
@@ -418,8 +418,8 @@ CheckAttributeType(const char *attname, Oid atttypid)
    else if (att_typtype == TYPTYPE_PSEUDO)
    {
        /*
-        * Refuse any attempt to create a pseudo-type column, except for 
-        * special hack for pg_statistic: allow ANYARRAY during initdb
+        * Refuse any attempt to create a pseudo-type column, except for a
+        * special hack for pg_statistic: allow ANYARRAY during initdb
         */
        if (atttypid != ANYARRAYOID || IsUnderPostmaster)
            ereport(ERROR,
@@ -430,13 +430,13 @@ CheckAttributeType(const char *attname, Oid atttypid)
    else if (att_typtype == TYPTYPE_COMPOSITE)
    {
        /*
-        * For a composite type, recurse into its attributes.  You might
-        * think this isn't necessary, but since we allow system catalogs
-        * to break the rule, we have to guard against the case.
+        * For a composite type, recurse into its attributes.  You might think
+        * this isn't necessary, but since we allow system catalogs to break
+        * the rule, we have to guard against the case.
         */
-       Relation relation;
-       TupleDesc tupdesc;
-       int i;
+       Relation    relation;
+       TupleDesc   tupdesc;
+       int         i;
 
        relation = relation_open(get_typ_typrelid(atttypid), AccessShareLock);
 
@@ -702,17 +702,17 @@ AddNewRelationTuple(Relation pg_class_desc,
    {
        /*
         * Initialize to the minimum XID that could put tuples in the table.
-        * We know that no xacts older than RecentXmin are still running,
-        * so that will do.
+        * We know that no xacts older than RecentXmin are still running, so
+        * that will do.
         */
        new_rel_reltup->relfrozenxid = RecentXmin;
    }
    else
    {
        /*
-        * Other relation types will not contain XIDs, so set relfrozenxid
-        * to InvalidTransactionId.  (Note: a sequence does contain a tuple,
-        * but we force its xmin to be FrozenTransactionId always; see
+        * Other relation types will not contain XIDs, so set relfrozenxid to
+        * InvalidTransactionId.  (Note: a sequence does contain a tuple, but
+        * we force its xmin to be FrozenTransactionId always; see
         * commands/sequence.c.)
         */
        new_rel_reltup->relfrozenxid = InvalidTransactionId;
@@ -740,7 +740,7 @@ AddNewRelationType(const char *typeName,
                   Oid typeNamespace,
                   Oid new_rel_oid,
                   char new_rel_kind,
-                  Oid new_array_type)
+                  Oid new_array_type)
 {
    return
        TypeCreate(InvalidOid,  /* no predetermined OID */
@@ -760,7 +760,7 @@ AddNewRelationType(const char *typeName,
                   InvalidOid,  /* analyze procedure - default */
                   InvalidOid,  /* array element type - irrelevant */
                   false,       /* this is not an array type */
-                  new_array_type,  /* array type if any */
+                  new_array_type,      /* array type if any */
                   InvalidOid,  /* domain base type - irrelevant */
                   NULL,        /* default value - none */
                   NULL,        /* default binary representation */
@@ -797,7 +797,7 @@ heap_create_with_catalog(const char *relname,
    Relation    new_rel_desc;
    Oid         old_type_oid;
    Oid         new_type_oid;
-   Oid         new_array_oid = InvalidOid;
+   Oid         new_array_oid = InvalidOid;
 
    pg_class_desc = heap_open(RelationRelationId, RowExclusiveLock);
 
@@ -815,9 +815,9 @@ heap_create_with_catalog(const char *relname,
 
    /*
     * Since we are going to create a rowtype as well, also check for
-    * collision with an existing type name.  If there is one and it's
-    * an autogenerated array, we can rename it out of the way; otherwise
-    * we can at least give a good error message.
+    * collision with an existing type name.  If there is one and it's an
+    * autogenerated array, we can rename it out of the way; otherwise we can
+    * at least give a good error message.
     */
    old_type_oid = GetSysCacheOid(TYPENAMENSP,
                                  CStringGetDatum(relname),
@@ -829,9 +829,9 @@ heap_create_with_catalog(const char *relname,
            ereport(ERROR,
                    (errcode(ERRCODE_DUPLICATE_OBJECT),
                     errmsg("type \"%s\" already exists", relname),
-                    errhint("A relation has an associated type of the same name, "
-                            "so you must use a name that doesn't conflict "
-                            "with any existing type.")));
+              errhint("A relation has an associated type of the same name, "
+                      "so you must use a name that doesn't conflict "
+                      "with any existing type.")));
    }
 
    /*
@@ -880,9 +880,9 @@ heap_create_with_catalog(const char *relname,
    Assert(relid == RelationGetRelid(new_rel_desc));
 
    /*
-    * Decide whether to create an array type over the relation's rowtype.
-    * We do not create any array types for system catalogs (ie, those made
-    * during initdb).  We create array types for regular relations, views,
+    * Decide whether to create an array type over the relation's rowtype. We
+    * do not create any array types for system catalogs (ie, those made
+    * during initdb).  We create array types for regular relations, views,
     * and composite types ... but not, eg, for toast tables or sequences.
     */
    if (IsUnderPostmaster && (relkind == RELKIND_RELATION ||
@@ -890,7 +890,7 @@ heap_create_with_catalog(const char *relname,
                              relkind == RELKIND_COMPOSITE_TYPE))
    {
        /* OK, so pre-assign a type OID for the array type */
-       Relation pg_type = heap_open(TypeRelationId, AccessShareLock);  
+       Relation    pg_type = heap_open(TypeRelationId, AccessShareLock);
 
        new_array_oid = GetNewOid(pg_type);
        heap_close(pg_type, AccessShareLock);
@@ -901,14 +901,15 @@ heap_create_with_catalog(const char *relname,
     * system type corresponding to the new relation.
     *
     * NOTE: we could get a unique-index failure here, in case someone else is
-    * creating the same type name in parallel but hadn't committed yet
-    * when we checked for a duplicate name above.
+    * creating the same type name in parallel but hadn't committed yet when
+    * we checked for a duplicate name above.
     */
    new_type_oid = AddNewRelationType(relname,
                                      relnamespace,
                                      relid,
                                      relkind,
-                                     new_array_oid);
+                                     new_array_oid);
+
    /*
     * Now make the array type if wanted.
     */
@@ -919,32 +920,32 @@ heap_create_with_catalog(const char *relname,
        relarrayname = makeArrayTypeName(relname, relnamespace);
 
        TypeCreate(new_array_oid,       /* force the type's OID to this */
-                  relarrayname,        /* Array type name */
-                  relnamespace,        /* Same namespace as parent */
-                  InvalidOid,          /* Not composite, no relationOid */
-                  0,                   /* relkind, also N/A here */
-                  -1,                  /* Internal size (varlena) */
-                  TYPTYPE_BASE,        /* Not composite - typelem is */
+                  relarrayname,    /* Array type name */
+                  relnamespace,    /* Same namespace as parent */
+                  InvalidOid,  /* Not composite, no relationOid */
+                  0,           /* relkind, also N/A here */
+                  -1,          /* Internal size (varlena) */
+                  TYPTYPE_BASE,    /* Not composite - typelem is */
                   DEFAULT_TYPDELIM,    /* default array delimiter */
-                  F_ARRAY_IN,          /* array input proc */
-                  F_ARRAY_OUT,         /* array output proc */
-                  F_ARRAY_RECV,        /* array recv (bin) proc */
-                  F_ARRAY_SEND,        /* array send (bin) proc */
-                  InvalidOid,          /* typmodin procedure - none */
-                  InvalidOid,          /* typmodout procedure - none */
-                  InvalidOid,          /* analyze procedure - default */
-                  new_type_oid,        /* array element type - the rowtype */
-                  true,                /* yes, this is an array type */
-                  InvalidOid,          /* this has no array type */
-                  InvalidOid,          /* domain base type - irrelevant */
-                  NULL,                /* default value - none */
-                  NULL,                /* default binary representation */
-                  false,               /* passed by reference */
-                  'd',                 /* alignment - must be the largest! */
-                  'x',                 /* fully TOASTable */
-                  -1,                  /* typmod */
-                  0,                   /* array dimensions for typBaseType */
-                  false);              /* Type NOT NULL */
+                  F_ARRAY_IN,  /* array input proc */
+                  F_ARRAY_OUT, /* array output proc */
+                  F_ARRAY_RECV,    /* array recv (bin) proc */
+                  F_ARRAY_SEND,    /* array send (bin) proc */
+                  InvalidOid,  /* typmodin procedure - none */
+                  InvalidOid,  /* typmodout procedure - none */
+                  InvalidOid,  /* analyze procedure - default */
+                  new_type_oid,    /* array element type - the rowtype */
+                  true,        /* yes, this is an array type */
+                  InvalidOid,  /* this has no array type */
+                  InvalidOid,  /* domain base type - irrelevant */
+                  NULL,        /* default value - none */
+                  NULL,        /* default binary representation */
+                  false,       /* passed by reference */
+                  'd',         /* alignment - must be the largest! */
+                  'x',         /* fully TOASTable */
+                  -1,          /* typmod */
+                  0,           /* array dimensions for typBaseType */
+                  false);      /* Type NOT NULL */
 
        pfree(relarrayname);
    }
@@ -1723,9 +1724,9 @@ AddRelationRawConstraints(Relation rel,
                           NameStr(atp->attname));
 
        /*
-        * If the expression is just a NULL constant, we do not bother
-        * to make an explicit pg_attrdef entry, since the default behavior
-        * is equivalent.
+        * If the expression is just a NULL constant, we do not bother to make
+        * an explicit pg_attrdef entry, since the default behavior is
+        * equivalent.
         *
         * Note a nonobvious property of this test: if the column is of a
         * domain type, what we'll get is not a bare null Const but a
@@ -1734,7 +1735,7 @@ AddRelationRawConstraints(Relation rel,
         * override any default that the domain might have.
         */
        if (expr == NULL ||
-           (IsA(expr, Const) && ((Const *) expr)->constisnull))
+           (IsA(expr, Const) &&((Const *) expr)->constisnull))
            continue;
 
        StoreAttrDefault(rel, colDef->attnum, nodeToString(expr));
index 7f2bad8c0f636bbbe746798d8254a1bbd103e192..28caf71595481deb58b4352d64e00da3c4839a1d 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/index.c,v 1.287 2007/11/08 23:22:54 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/index.c,v 1.288 2007/11/15 21:14:33 momjian Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -724,7 +724,7 @@ index_create(Oid heapRelationId,
        }
        else
        {
-           bool    have_simple_col = false;
+           bool        have_simple_col = false;
 
            /* Create auto dependencies on simply-referenced columns */
            for (i = 0; i < indexInfo->ii_NumIndexAttrs; i++)
@@ -742,15 +742,15 @@ index_create(Oid heapRelationId,
            }
 
            /*
-            * It's possible for an index to not depend on any columns of
-            * the table at all, in which case we need to give it a dependency
-            * on the table as a whole; else it won't get dropped when the
-            * table is dropped.  This edge case is not totally useless;
-            * for example, a unique index on a constant expression can serve
-            * to prevent a table from containing more than one row.
+            * It's possible for an index to not depend on any columns of the
+            * table at all, in which case we need to give it a dependency on
+            * the table as a whole; else it won't get dropped when the table
+            * is dropped.  This edge case is not totally useless; for
+            * example, a unique index on a constant expression can serve to
+            * prevent a table from containing more than one row.
             */
            if (!have_simple_col &&
-               !contain_vars_of_level((Node *) indexInfo->ii_Expressions, 0) &&
+            !contain_vars_of_level((Node *) indexInfo->ii_Expressions, 0) &&
                !contain_vars_of_level((Node *) indexInfo->ii_Predicate, 0))
            {
                referenced.classId = RelationRelationId;
@@ -1360,15 +1360,15 @@ index_build(Relation heapRelation,
    Assert(PointerIsValid(stats));
 
    /*
-    * If we found any potentially broken HOT chains, mark the index as
-    * not being usable until the current transaction is below the event
-    * horizon.  See src/backend/access/heap/README.HOT for discussion.
+    * If we found any potentially broken HOT chains, mark the index as not
+    * being usable until the current transaction is below the event horizon.
+    * See src/backend/access/heap/README.HOT for discussion.
     */
    if (indexInfo->ii_BrokenHotChain)
    {
-       Oid indexId = RelationGetRelid(indexRelation);
-       Relation pg_index;
-       HeapTuple indexTuple;
+       Oid         indexId = RelationGetRelid(indexRelation);
+       Relation    pg_index;
+       HeapTuple   indexTuple;
        Form_pg_index indexForm;
 
        pg_index = heap_open(IndexRelationId, RowExclusiveLock);
@@ -1515,19 +1515,19 @@ IndexBuildHeapScan(Relation heapRelation,
        CHECK_FOR_INTERRUPTS();
 
        /*
-        * When dealing with a HOT-chain of updated tuples, we want to
-        * index the values of the live tuple (if any), but index it
-        * under the TID of the chain's root tuple.  This approach is
-        * necessary to preserve the HOT-chain structure in the heap.
-        * So we need to be able to find the root item offset for every
-        * tuple that's in a HOT-chain.  When first reaching a new page
-        * of the relation, call heap_get_root_tuples() to build a map
-        * of root item offsets on the page.
+        * When dealing with a HOT-chain of updated tuples, we want to index
+        * the values of the live tuple (if any), but index it under the TID
+        * of the chain's root tuple.  This approach is necessary to preserve
+        * the HOT-chain structure in the heap. So we need to be able to find
+        * the root item offset for every tuple that's in a HOT-chain.  When
+        * first reaching a new page of the relation, call
+        * heap_get_root_tuples() to build a map of root item offsets on the
+        * page.
         *
         * It might look unsafe to use this information across buffer
         * lock/unlock.  However, we hold ShareLock on the table so no
-        * ordinary insert/update/delete should occur; and we hold pin on
-        * the buffer continuously while visiting the page, so no pruning
+        * ordinary insert/update/delete should occur; and we hold pin on the
+        * buffer continuously while visiting the page, so no pruning
         * operation can occur either.
         *
         * Note the implied assumption that there is no more than one live
@@ -1535,7 +1535,7 @@ IndexBuildHeapScan(Relation heapRelation,
         */
        if (scan->rs_cblock != root_blkno)
        {
-           Page page = BufferGetPage(scan->rs_cbuf);
+           Page        page = BufferGetPage(scan->rs_cbuf);
 
            LockBuffer(scan->rs_cbuf, BUFFER_LOCK_SHARE);
            heap_get_root_tuples(page, root_offsets);
@@ -1549,12 +1549,13 @@ IndexBuildHeapScan(Relation heapRelation,
            /* do our own time qual check */
            bool        indexIt;
 
-       recheck:
+   recheck:
+
            /*
             * We could possibly get away with not locking the buffer here,
             * since caller should hold ShareLock on the relation, but let's
-            * be conservative about it.  (This remark is still correct
-            * even with HOT-pruning: our pin on the buffer prevents pruning.)
+            * be conservative about it.  (This remark is still correct even
+            * with HOT-pruning: our pin on the buffer prevents pruning.)
             */
            LockBuffer(scan->rs_cbuf, BUFFER_LOCK_SHARE);
 
@@ -1580,9 +1581,9 @@ IndexBuildHeapScan(Relation heapRelation,
                     * building it, and may need to see such tuples.)
                     *
                     * However, if it was HOT-updated then we must only index
-                    * the live tuple at the end of the HOT-chain.  Since this
-                    * breaks semantics for pre-existing snapshots, mark
-                    * the index as unusable for them.
+                    * the live tuple at the end of the HOT-chain.  Since this
+                    * breaks semantics for pre-existing snapshots, mark the
+                    * index as unusable for them.
                     *
                     * If we've already decided that the index will be unsafe
                     * for old snapshots, we may as well stop indexing
@@ -1611,13 +1612,13 @@ IndexBuildHeapScan(Relation heapRelation,
                     * followed by CREATE INDEX within a transaction.)  An
                     * exception occurs when reindexing a system catalog,
                     * because we often release lock on system catalogs before
-                    * committing.  In that case we wait for the inserting
+                    * committing.  In that case we wait for the inserting
                     * transaction to finish and check again.  (We could do
                     * that on user tables too, but since the case is not
                     * expected it seems better to throw an error.)
                     */
                    if (!TransactionIdIsCurrentTransactionId(
-                                  HeapTupleHeaderGetXmin(heapTuple->t_data)))
+                                 HeapTupleHeaderGetXmin(heapTuple->t_data)))
                    {
                        if (!IsSystemRelation(heapRelation))
                            elog(ERROR, "concurrent insert in progress");
@@ -1627,11 +1628,13 @@ IndexBuildHeapScan(Relation heapRelation,
                             * Must drop the lock on the buffer before we wait
                             */
                            TransactionId xwait = HeapTupleHeaderGetXmin(heapTuple->t_data);
+
                            LockBuffer(scan->rs_cbuf, BUFFER_LOCK_UNLOCK);
                            XactLockTableWait(xwait);
                            goto recheck;
                        }
                    }
+
                    /*
                     * We must index such tuples, since if the index build
                     * commits then they're good.
@@ -1648,14 +1651,14 @@ IndexBuildHeapScan(Relation heapRelation,
                     * followed by CREATE INDEX within a transaction.)  An
                     * exception occurs when reindexing a system catalog,
                     * because we often release lock on system catalogs before
-                    * committing.  In that case we wait for the deleting
+                    * committing.  In that case we wait for the deleting
                     * transaction to finish and check again.  (We could do
                     * that on user tables too, but since the case is not
                     * expected it seems better to throw an error.)
                     */
                    Assert(!(heapTuple->t_data->t_infomask & HEAP_XMAX_IS_MULTI));
                    if (!TransactionIdIsCurrentTransactionId(
-                                  HeapTupleHeaderGetXmax(heapTuple->t_data)))
+                                 HeapTupleHeaderGetXmax(heapTuple->t_data)))
                    {
                        if (!IsSystemRelation(heapRelation))
                            elog(ERROR, "concurrent delete in progress");
@@ -1665,11 +1668,13 @@ IndexBuildHeapScan(Relation heapRelation,
                             * Must drop the lock on the buffer before we wait
                             */
                            TransactionId xwait = HeapTupleHeaderGetXmax(heapTuple->t_data);
+
                            LockBuffer(scan->rs_cbuf, BUFFER_LOCK_UNLOCK);
                            XactLockTableWait(xwait);
                            goto recheck;
                        }
                    }
+
                    /*
                     * Otherwise, we have to treat these tuples just like
                     * RECENTLY_DELETED ones.
@@ -1689,7 +1694,7 @@ IndexBuildHeapScan(Relation heapRelation,
                    break;
                default:
                    elog(ERROR, "unexpected HeapTupleSatisfiesVacuum result");
-                   indexIt = tupleIsAlive = false; /* keep compiler quiet */
+                   indexIt = tupleIsAlive = false;     /* keep compiler quiet */
                    break;
            }
 
@@ -1741,11 +1746,11 @@ IndexBuildHeapScan(Relation heapRelation,
        if (HeapTupleIsHeapOnly(heapTuple))
        {
            /*
-            * For a heap-only tuple, pretend its TID is that of the root.
-            * See src/backend/access/heap/README.HOT for discussion.
+            * For a heap-only tuple, pretend its TID is that of the root. See
+            * src/backend/access/heap/README.HOT for discussion.
             */
-           HeapTupleData   rootTuple;
-           OffsetNumber    offnum;
+           HeapTupleData rootTuple;
+           OffsetNumber offnum;
 
            rootTuple = *heapTuple;
            offnum = ItemPointerGetOffsetNumber(&heapTuple->t_self);
@@ -1787,11 +1792,11 @@ IndexBuildHeapScan(Relation heapRelation,
  * We do a concurrent index build by first inserting the catalog entry for the
  * index via index_create(), marking it not indisready and not indisvalid.
  * Then we commit our transaction and start a new one, then we wait for all
- * transactions that could have been modifying the table to terminate.  Now
+ * transactions that could have been modifying the table to terminate. Now
  * we know that any subsequently-started transactions will see the index and
  * honor its constraints on HOT updates; so while existing HOT-chains might
  * be broken with respect to the index, no currently live tuple will have an
- * incompatible HOT update done to it.  We now build the index normally via
+ * incompatible HOT update done to it. We now build the index normally via
  * index_build(), while holding a weak lock that allows concurrent
  * insert/update/delete.  Also, we index only tuples that are valid
  * as of the start of the scan (see IndexBuildHeapScan), whereas a normal
@@ -1805,7 +1810,7 @@ IndexBuildHeapScan(Relation heapRelation,
  *
  * Next, we mark the index "indisready" (but still not "indisvalid") and
  * commit the second transaction and start a third.  Again we wait for all
- * transactions that could have been modifying the table to terminate.  Now
+ * transactions that could have been modifying the table to terminate. Now
  * we know that any subsequently-started transactions will see the index and
  * insert their new tuples into it.  We then take a new reference snapshot
  * which is passed to validate_index().  Any tuples that are valid according
@@ -1945,8 +1950,8 @@ validate_index_heapscan(Relation heapRelation,
    EState     *estate;
    ExprContext *econtext;
    BlockNumber root_blkno = InvalidBlockNumber;
-   OffsetNumber    root_offsets[MaxHeapTuplesPerPage];
-   bool            in_index[MaxHeapTuplesPerPage];
+   OffsetNumber root_offsets[MaxHeapTuplesPerPage];
+   bool        in_index[MaxHeapTuplesPerPage];
 
    /* state variables for the merge */
    ItemPointer indexcursor = NULL;
@@ -1989,29 +1994,29 @@ validate_index_heapscan(Relation heapRelation,
    {
        ItemPointer heapcursor = &heapTuple->t_self;
        ItemPointerData rootTuple;
-       OffsetNumber    root_offnum;
+       OffsetNumber root_offnum;
 
        CHECK_FOR_INTERRUPTS();
 
        state->htups += 1;
 
        /*
-        * As commented in IndexBuildHeapScan, we should index heap-only tuples
-        * under the TIDs of their root tuples; so when we advance onto a new
-        * heap page, build a map of root item offsets on the page.
+        * As commented in IndexBuildHeapScan, we should index heap-only
+        * tuples under the TIDs of their root tuples; so when we advance onto
+        * a new heap page, build a map of root item offsets on the page.
         *
         * This complicates merging against the tuplesort output: we will
         * visit the live tuples in order by their offsets, but the root
-        * offsets that we need to compare against the index contents might
-        * be ordered differently.  So we might have to "look back" within
-        * the tuplesort output, but only within the current page.  We handle
-        * that by keeping a bool array in_index[] showing all the
-        * already-passed-over tuplesort output TIDs of the current page.
-        * We clear that array here, when advancing onto a new heap page.
+        * offsets that we need to compare against the index contents might be
+        * ordered differently.  So we might have to "look back" within the
+        * tuplesort output, but only within the current page.  We handle that
+        * by keeping a bool array in_index[] showing all the
+        * already-passed-over tuplesort output TIDs of the current page. We
+        * clear that array here, when advancing onto a new heap page.
         */
        if (scan->rs_cblock != root_blkno)
        {
-           Page page = BufferGetPage(scan->rs_cbuf);
+           Page        page = BufferGetPage(scan->rs_cbuf);
 
            LockBuffer(scan->rs_cbuf, BUFFER_LOCK_SHARE);
            heap_get_root_tuples(page, root_offsets);
@@ -2102,14 +2107,14 @@ validate_index_heapscan(Relation heapRelation,
 
            /*
             * If the tuple is already committed dead, you might think we
-            * could suppress uniqueness checking, but this is no longer
-            * true in the presence of HOT, because the insert is actually
-            * a proxy for a uniqueness check on the whole HOT-chain.  That
-            * is, the tuple we have here could be dead because it was already
+            * could suppress uniqueness checking, but this is no longer true
+            * in the presence of HOT, because the insert is actually a proxy
+            * for a uniqueness check on the whole HOT-chain.  That is, the
+            * tuple we have here could be dead because it was already
             * HOT-updated, and if so the updating transaction will not have
-            * thought it should insert index entries.  The index AM will
-            * check the whole HOT-chain and correctly detect a conflict
-            * if there is one.
+            * thought it should insert index entries.  The index AM will
+            * check the whole HOT-chain and correctly detect a conflict if
+            * there is one.
             */
 
            index_insert(indexRelation,
index 46e0312b992b27b6869c7e06f8298f3cae635a79..4e2bb1de5afda903373a0e7a5f42e0ed85715945 100644 (file)
@@ -13,7 +13,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/namespace.c,v 1.99 2007/08/27 03:36:08 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/namespace.c,v 1.100 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
  *
  * The textual specification of search_path can include "$user" to refer to
  * the namespace named the same as the current user, if any.  (This is just
- * ignored if there is no such namespace.)  Also, it can include "pg_temp"
+ * ignored if there is no such namespace.) Also, it can include "pg_temp"
  * to refer to the current backend's temp namespace.  This is usually also
  * ignorable if the temp namespace hasn't been set up, but there's a special
  * case: if "pg_temp" appears first then it should be the default creation
- * target.  We kluge this case a little bit so that the temp namespace isn't
+ * target. We kluge this case a little bit so that the temp namespace isn't
  * set up until the first attempt to create something in it.  (The reason for
  * klugery is that we can't create the temp namespace outside a transaction,
  * but initial GUC processing of search_path happens outside a transaction.)
@@ -144,10 +144,10 @@ static bool baseSearchPathValid = true;
 
 typedef struct
 {
-   List       *searchPath;             /* the desired search path */
+   List       *searchPath;     /* the desired search path */
    Oid         creationNamespace;      /* the desired creation namespace */
-   int         nestLevel;              /* subtransaction nesting level */
-} OverrideStackEntry;
+   int         nestLevel;      /* subtransaction nesting level */
+}  OverrideStackEntry;
 
 static List *overrideStack = NIL;
 
@@ -157,7 +157,7 @@ static List *overrideStack = NIL;
  * command is first executed). Thereafter it's the OID of the temp namespace.
  *
  * myTempToastNamespace is the OID of the namespace for my temp tables' toast
- * tables.  It is set when myTempNamespace is, and is InvalidOid before that.
+ * tables. It is set when myTempNamespace is, and is InvalidOid before that.
  *
  * myTempNamespaceSubID shows whether we've created the TEMP namespace in the
  * current subtransaction. The flag propagates up the subtransaction tree,
@@ -241,10 +241,10 @@ RangeVarGetRelid(const RangeVar *relation, bool failOK)
        if (relation->schemaname)
            ereport(ERROR,
                    (errcode(ERRCODE_INVALID_TABLE_DEFINITION),
-                    errmsg("temporary tables cannot specify a schema name")));
+                  errmsg("temporary tables cannot specify a schema name")));
        if (OidIsValid(myTempNamespace))
            relId = get_relname_relid(relation->relname, myTempNamespace);
-       else                    /* this probably can't happen? */
+       else    /* this probably can't happen? */
            relId = InvalidOid;
    }
    else if (relation->schemaname)
@@ -308,7 +308,7 @@ RangeVarGetCreationNamespace(const RangeVar *newRelation)
        if (newRelation->schemaname)
            ereport(ERROR,
                    (errcode(ERRCODE_INVALID_TABLE_DEFINITION),
-                 errmsg("temporary tables cannot specify a schema name")));
+                  errmsg("temporary tables cannot specify a schema name")));
        /* Initialize temp namespace if first time through */
        if (!OidIsValid(myTempNamespace))
            InitTempTableNamespace();
@@ -619,8 +619,8 @@ FuncnameGetCandidates(List *names, int nargs)
        else
        {
            /*
-            * Consider only procs that are in the search path and are not
-            * in the temp namespace.
+            * Consider only procs that are in the search path and are not in
+            * the temp namespace.
             */
            ListCell   *nsp;
 
@@ -949,8 +949,8 @@ OpernameGetCandidates(List *names, char oprkind)
        else
        {
            /*
-            * Consider only opers that are in the search path and are not
-            * in the temp namespace.
+            * Consider only opers that are in the search path and are not in
+            * the temp namespace.
             */
            ListCell   *nsp;
 
@@ -1377,7 +1377,7 @@ TSParserGetPrsid(List *names, bool failOK)
            namespaceId = lfirst_oid(l);
 
            if (namespaceId == myTempNamespace)
-               continue;           /* do not look in temp namespace */
+               continue;       /* do not look in temp namespace */
 
            prsoid = GetSysCacheOid(TSPARSERNAMENSP,
                                    PointerGetDatum(parser_name),
@@ -1433,8 +1433,8 @@ TSParserIsVisible(Oid prsId)
    {
        /*
         * If it is in the path, it might still not be visible; it could be
-        * hidden by another parser of the same name earlier in the path. So we
-        * must do a slow check for conflicting parsers.
+        * hidden by another parser of the same name earlier in the path. So
+        * we must do a slow check for conflicting parsers.
         */
        char       *name = NameStr(form->prsname);
        ListCell   *l;
@@ -1445,7 +1445,7 @@ TSParserIsVisible(Oid prsId)
            Oid         namespaceId = lfirst_oid(l);
 
            if (namespaceId == myTempNamespace)
-               continue;           /* do not look in temp namespace */
+               continue;       /* do not look in temp namespace */
 
            if (namespaceId == namespace)
            {
@@ -1505,7 +1505,7 @@ TSDictionaryGetDictid(List *names, bool failOK)
            namespaceId = lfirst_oid(l);
 
            if (namespaceId == myTempNamespace)
-               continue;           /* do not look in temp namespace */
+               continue;       /* do not look in temp namespace */
 
            dictoid = GetSysCacheOid(TSDICTNAMENSP,
                                     PointerGetDatum(dict_name),
@@ -1562,8 +1562,8 @@ TSDictionaryIsVisible(Oid dictId)
    {
        /*
         * If it is in the path, it might still not be visible; it could be
-        * hidden by another dictionary of the same name earlier in the
-        * path. So we must do a slow check for conflicting dictionaries.
+        * hidden by another dictionary of the same name earlier in the path.
+        * So we must do a slow check for conflicting dictionaries.
         */
        char       *name = NameStr(form->dictname);
        ListCell   *l;
@@ -1574,7 +1574,7 @@ TSDictionaryIsVisible(Oid dictId)
            Oid         namespaceId = lfirst_oid(l);
 
            if (namespaceId == myTempNamespace)
-               continue;           /* do not look in temp namespace */
+               continue;       /* do not look in temp namespace */
 
            if (namespaceId == namespace)
            {
@@ -1634,7 +1634,7 @@ TSTemplateGetTmplid(List *names, bool failOK)
            namespaceId = lfirst_oid(l);
 
            if (namespaceId == myTempNamespace)
-               continue;           /* do not look in temp namespace */
+               continue;       /* do not look in temp namespace */
 
            tmploid = GetSysCacheOid(TSTEMPLATENAMENSP,
                                     PointerGetDatum(template_name),
@@ -1690,8 +1690,8 @@ TSTemplateIsVisible(Oid tmplId)
    {
        /*
         * If it is in the path, it might still not be visible; it could be
-        * hidden by another template of the same name earlier in the path.
-        * So we must do a slow check for conflicting templates.
+        * hidden by another template of the same name earlier in the path. So
+        * we must do a slow check for conflicting templates.
         */
        char       *name = NameStr(form->tmplname);
        ListCell   *l;
@@ -1702,7 +1702,7 @@ TSTemplateIsVisible(Oid tmplId)
            Oid         namespaceId = lfirst_oid(l);
 
            if (namespaceId == myTempNamespace)
-               continue;           /* do not look in temp namespace */
+               continue;       /* do not look in temp namespace */
 
            if (namespaceId == namespace)
            {
@@ -1762,7 +1762,7 @@ TSConfigGetCfgid(List *names, bool failOK)
            namespaceId = lfirst_oid(l);
 
            if (namespaceId == myTempNamespace)
-               continue;           /* do not look in temp namespace */
+               continue;       /* do not look in temp namespace */
 
            cfgoid = GetSysCacheOid(TSCONFIGNAMENSP,
                                    PointerGetDatum(config_name),
@@ -1785,7 +1785,7 @@ TSConfigGetCfgid(List *names, bool failOK)
 /*
  * TSConfigIsVisible
  *     Determine whether a text search configuration (identified by OID)
- *     is visible in the current search path.  Visible means "would be found
+ *     is visible in the current search path.  Visible means "would be found
  *     by searching for the unqualified text search configuration name".
  */
 bool
@@ -1831,7 +1831,7 @@ TSConfigIsVisible(Oid cfgid)
            Oid         namespaceId = lfirst_oid(l);
 
            if (namespaceId == myTempNamespace)
-               continue;           /* do not look in temp namespace */
+               continue;       /* do not look in temp namespace */
 
            if (namespaceId == namespace)
            {
@@ -1925,11 +1925,12 @@ LookupExplicitNamespace(const char *nspname)
    {
        if (OidIsValid(myTempNamespace))
            return myTempNamespace;
+
        /*
-        * Since this is used only for looking up existing objects, there
-        * is no point in trying to initialize the temp namespace here;
-        * and doing so might create problems for some callers.
-        * Just fall through and give the "does not exist" error.
+        * Since this is used only for looking up existing objects, there is
+        * no point in trying to initialize the temp namespace here; and doing
+        * so might create problems for some callers. Just fall through and
+        * give the "does not exist" error.
         */
    }
 
@@ -2166,7 +2167,7 @@ bool
 isTempOrToastNamespace(Oid namespaceId)
 {
    if (OidIsValid(myTempNamespace) &&
-       (myTempNamespace == namespaceId || myTempToastNamespace == namespaceId))
+    (myTempNamespace == namespaceId || myTempToastNamespace == namespaceId))
        return true;
    return false;
 }
@@ -2208,7 +2209,7 @@ isOtherTempNamespace(Oid namespaceId)
 
 /*
  * GetTempToastNamespace - get the OID of my temporary-toast-table namespace,
- * which must already be assigned.  (This is only used when creating a toast
+ * which must already be assigned. (This is only used when creating a toast
  * table for a temp table, so we must have already done InitTempTableNamespace)
  */
 Oid
@@ -2265,7 +2266,7 @@ GetOverrideSearchPath(MemoryContext context)
  * search_path variable is ignored while an override is active.
  */
 void
-PushOverrideSearchPath(OverrideSearchPath *newpath)
+PushOverrideSearchPath(OverrideSearchPath * newpath)
 {
    OverrideStackEntry *entry;
    List       *oidlist;
@@ -2315,7 +2316,7 @@ PushOverrideSearchPath(OverrideSearchPath *newpath)
    /* And make it active. */
    activeSearchPath = entry->searchPath;
    activeCreationNamespace = entry->creationNamespace;
-   activeTempCreationPending = false;          /* XXX is this OK? */
+   activeTempCreationPending = false;  /* XXX is this OK? */
 
    MemoryContextSwitchTo(oldcxt);
 }
@@ -2349,7 +2350,7 @@ PopOverrideSearchPath(void)
        entry = (OverrideStackEntry *) linitial(overrideStack);
        activeSearchPath = entry->searchPath;
        activeCreationNamespace = entry->creationNamespace;
-       activeTempCreationPending = false;          /* XXX is this OK? */
+       activeTempCreationPending = false;      /* XXX is this OK? */
    }
    else
    {
@@ -2392,7 +2393,7 @@ FindConversionByName(List *name)
            namespaceId = lfirst_oid(l);
 
            if (namespaceId == myTempNamespace)
-               continue;           /* do not look in temp namespace */
+               continue;       /* do not look in temp namespace */
 
            conoid = FindConversion(conversion_name, namespaceId);
            if (OidIsValid(conoid))
@@ -2533,7 +2534,7 @@ recomputeNamespacePath(void)
    }
 
    /*
-    * Remember the first member of the explicit list.  (Note: this is
+    * Remember the first member of the explicit list.  (Note: this is
     * nominally wrong if temp_missing, but we need it anyway to distinguish
     * explicit from implicit mention of pg_catalog.)
     */
@@ -2696,7 +2697,7 @@ AtEOXact_Namespace(bool isCommit)
        {
            myTempNamespace = InvalidOid;
            myTempToastNamespace = InvalidOid;
-           baseSearchPathValid = false;    /* need to rebuild list */
+           baseSearchPathValid = false;        /* need to rebuild list */
        }
        myTempNamespaceSubID = InvalidSubTransactionId;
    }
@@ -2748,7 +2749,7 @@ AtEOSubXact_Namespace(bool isCommit, SubTransactionId mySubid,
            /* TEMP namespace creation failed, so reset state */
            myTempNamespace = InvalidOid;
            myTempToastNamespace = InvalidOid;
-           baseSearchPathValid = false;    /* need to rebuild list */
+           baseSearchPathValid = false;        /* need to rebuild list */
        }
    }
 
@@ -2773,7 +2774,7 @@ AtEOSubXact_Namespace(bool isCommit, SubTransactionId mySubid,
        entry = (OverrideStackEntry *) linitial(overrideStack);
        activeSearchPath = entry->searchPath;
        activeCreationNamespace = entry->creationNamespace;
-       activeTempCreationPending = false;          /* XXX is this OK? */
+       activeTempCreationPending = false;      /* XXX is this OK? */
    }
    else
    {
@@ -2983,9 +2984,9 @@ fetch_search_path(bool includeImplicit)
    recomputeNamespacePath();
 
    /*
-    * If the temp namespace should be first, force it to exist.  This is
-    * so that callers can trust the result to reflect the actual default
-    * creation namespace.  It's a bit bogus to do this here, since
+    * If the temp namespace should be first, force it to exist.  This is so
+    * that callers can trust the result to reflect the actual default
+    * creation namespace.  It's a bit bogus to do this here, since
     * current_schema() is supposedly a stable function without side-effects,
     * but the alternatives seem worse.
     */
index 3c161ba51200634b44d09a746395ded25eeadcda..d43823f2876f8ebb941f3ffd980f9817a340022d 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/pg_aggregate.c,v 1.87 2007/09/03 00:39:14 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/pg_aggregate.c,v 1.88 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -172,8 +172,8 @@ AggregateCreate(const char *aggName,
        ereport(ERROR,
                (errcode(ERRCODE_DATATYPE_MISMATCH),
                 errmsg("cannot determine result data type"),
-          errdetail("An aggregate returning a polymorphic type "
-                    "must have at least one polymorphic argument.")));
+                errdetail("An aggregate returning a polymorphic type "
+                          "must have at least one polymorphic argument.")));
 
    /* handle sortop, if supplied */
    if (aggsortopName)
@@ -213,8 +213,8 @@ AggregateCreate(const char *aggName,
                              PointerGetDatum(NULL),    /* parameterModes */
                              PointerGetDatum(NULL),    /* parameterNames */
                              PointerGetDatum(NULL),    /* proconfig */
-                             1,                /* procost */
-                             0);               /* prorows */
+                             1,    /* procost */
+                             0);       /* prorows */
 
    /*
     * Okay to create the pg_aggregate entry.
index ede6607b851daed50cc1160f70f1c38af5cc0474..2e10b11e719561ab15a6cf0ce8c8d8f46d0b8b2f 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/pg_constraint.c,v 1.35 2007/02/14 01:58:56 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/pg_constraint.c,v 1.36 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -286,10 +286,10 @@ CreateConstraintEntry(const char *constraintName,
    if (foreignNKeys > 0)
    {
        /*
-        * Register normal dependencies on the equality operators that
-        * support a foreign-key constraint.  If the PK and FK types
-        * are the same then all three operators for a column are the
-        * same; otherwise they are different.
+        * Register normal dependencies on the equality operators that support
+        * a foreign-key constraint.  If the PK and FK types are the same then
+        * all three operators for a column are the same; otherwise they are
+        * different.
         */
        ObjectAddress oprobject;
 
index e9c75ebdb604f2f091c93abd74efba99f0c5cf18..22292e00f2b3583d50c639d488fe823968c496e4 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/pg_conversion.c,v 1.38 2007/09/24 01:29:28 adunstan Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/pg_conversion.c,v 1.39 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -275,4 +275,3 @@ FindConversion(const char *conname, Oid connamespace)
 
    return conoid;
 }
-
index 6a09886435133edd36da650088be5c8bb132e665..c82b3aff3f0407fb4b41fa6bafad76f19630cc00 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/pg_enum.c,v 1.2 2007/04/02 22:14:17 adunstan Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/pg_enum.c,v 1.3 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -37,32 +37,33 @@ EnumValuesCreate(Oid enumTypeOid, List *vals)
    TupleDesc   tupDesc;
    NameData    enumlabel;
    Oid        *oids;
-   int         i, n;
+   int         i,
+               n;
    Datum       values[Natts_pg_enum];
    char        nulls[Natts_pg_enum];
    ListCell   *lc;
-   HeapTuple tup;
+   HeapTuple   tup;
 
    n = list_length(vals);
 
    /*
-    * XXX we do not bother to check the list of values for duplicates ---
-    * if you have any, you'll get a less-than-friendly unique-index
-    * violation.  Is it worth trying harder?
+    * XXX we do not bother to check the list of values for duplicates --- if
+    * you have any, you'll get a less-than-friendly unique-index violation.
+    * Is it worth trying harder?
     */
 
    pg_enum = heap_open(EnumRelationId, RowExclusiveLock);
    tupDesc = pg_enum->rd_att;
 
    /*
-    * Allocate oids.  While this method does not absolutely guarantee
-    * that we generate no duplicate oids (since we haven't entered each
-    * oid into the table before allocating the next), trouble could only
-    * occur if the oid counter wraps all the way around before we finish.
-    * Which seems unlikely.
+    * Allocate oids.  While this method does not absolutely guarantee that we
+    * generate no duplicate oids (since we haven't entered each oid into the
+    * table before allocating the next), trouble could only occur if the oid
+    * counter wraps all the way around before we finish. Which seems
+    * unlikely.
     */
    oids = (Oid *) palloc(n * sizeof(Oid));
-   for(i = 0; i < n; i++)
+   for (i = 0; i < n; i++)
    {
        oids[i] = GetNewOid(pg_enum);
    }
@@ -76,9 +77,9 @@ EnumValuesCreate(Oid enumTypeOid, List *vals)
    i = 0;
    foreach(lc, vals)
    {
-       char *lab = strVal(lfirst(lc));
+       char       *lab = strVal(lfirst(lc));
 
-       /* 
+       /*
         * labels are stored in a name field, for easier syscache lookup, so
         * check the length to make sure it's within range.
         */
@@ -86,9 +87,9 @@ EnumValuesCreate(Oid enumTypeOid, List *vals)
        if (strlen(lab) > (NAMEDATALEN - 1))
            ereport(ERROR,
                    (errcode(ERRCODE_INVALID_NAME),
-                    errmsg("invalid enum label \"%s\", must be %d characters or less",
-                           lab,
-                           NAMEDATALEN - 1)));
+           errmsg("invalid enum label \"%s\", must be %d characters or less",
+                  lab,
+                  NAMEDATALEN - 1)));
 
 
        values[Anum_pg_enum_enumtypid - 1] = ObjectIdGetDatum(enumTypeOid);
@@ -148,8 +149,8 @@ EnumValuesDelete(Oid enumTypeOid)
 static int
 oid_cmp(const void *p1, const void *p2)
 {
-   Oid     v1 = *((const Oid *) p1);
-   Oid     v2 = *((const Oid *) p2);
+   Oid         v1 = *((const Oid *) p1);
+   Oid         v2 = *((const Oid *) p2);
 
    if (v1 < v2)
        return -1;
index 55a0cc0839b6a9423cec21c25988a39fa2d920b8..99a595925275f5a233ea686e437468c3ad822ebb 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/pg_operator.c,v 1.101 2007/11/07 12:24:24 petere Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/pg_operator.c,v 1.102 2007/11/15 21:14:33 momjian Exp $
  *
  * NOTES
  *   these routines moved here from commands/define.c and somewhat cleaned up.
@@ -868,7 +868,7 @@ makeOperatorDependencies(HeapTuple tuple)
     * operators oprcom and oprnegate. We would not want to delete this
     * operator if those go away, but only reset the link fields; which is not
     * a function that the dependency code can presently handle.  (Something
-    * could perhaps be done with objectSubId though.)  For now, it's okay to
+    * could perhaps be done with objectSubId though.)  For now, it's okay to
     * let those links dangle if a referenced operator is removed.
     */
 
index 6b5a7d0fd94154434b4bbad0ebbfa31ba5186a53..9487b66dde09f39f59578dc3411d8a0927ec57de 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/pg_proc.c,v 1.146 2007/09/03 00:39:14 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/pg_proc.c,v 1.147 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -139,7 +139,7 @@ ProcedureCreate(const char *procedureName,
 
    /*
     * Do not allow polymorphic return type unless at least one input argument
-    * is polymorphic.  Also, do not allow return type INTERNAL unless at
+    * is polymorphic.  Also, do not allow return type INTERNAL unless at
     * least one input argument is INTERNAL.
     */
    for (i = 0; i < parameterCount; i++)
index ef1a83b4e4974685752c544486d6d9666c43bb90..5272edfe191055e5505a614bab768500506d08b3 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/pg_shdepend.c,v 1.20 2007/05/14 20:07:01 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/pg_shdepend.c,v 1.21 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -487,7 +487,7 @@ checkSharedDependencies(Oid classId, Oid objectId)
    /*
     * We limit the number of dependencies reported to the client to
     * MAX_REPORTED_DEPS, since client software may not deal well with
-    * enormous error strings.  The server log always gets a full report,
+    * enormous error strings.  The server log always gets a full report,
     * which is collected in a separate StringInfo if and only if we detect
     * that the client report is going to be truncated.
     */
@@ -662,7 +662,7 @@ checkSharedDependencies(Oid classId, Oid objectId)
 
    if (numNotReportedDeps > 0 || numNotReportedDbs > 0)
    {
-       ObjectAddress   obj;
+       ObjectAddress obj;
 
        obj.classId = classId;
        obj.objectId = objectId;
index 7419b36338696a2c2b842935d046ee1aefbde8ef..bcfc14195f707be0e9b42f0a4294b86bf957baa4 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/pg_type.c,v 1.113 2007/05/12 00:54:59 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/pg_type.c,v 1.114 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -88,7 +88,7 @@ TypeShellMake(const char *typeName, Oid typeNamespace)
    values[i++] = ObjectIdGetDatum(GetUserId());        /* typowner */
    values[i++] = Int16GetDatum(sizeof(int4));  /* typlen */
    values[i++] = BoolGetDatum(true);   /* typbyval */
-   values[i++] = CharGetDatum(TYPTYPE_PSEUDO); /* typtype */
+   values[i++] = CharGetDatum(TYPTYPE_PSEUDO); /* typtype */
    values[i++] = BoolGetDatum(false);  /* typisdefined */
    values[i++] = CharGetDatum(DEFAULT_TYPDELIM);       /* typdelim */
    values[i++] = ObjectIdGetDatum(InvalidOid); /* typrelid */
@@ -255,13 +255,13 @@ TypeCreate(Oid newTypeOid,
    values[i++] = CharGetDatum(typDelim);       /* typdelim */
    values[i++] = ObjectIdGetDatum(relationOid);        /* typrelid */
    values[i++] = ObjectIdGetDatum(elementType);        /* typelem */
-   values[i++] = ObjectIdGetDatum(arrayType);          /* typarray */
+   values[i++] = ObjectIdGetDatum(arrayType);  /* typarray */
    values[i++] = ObjectIdGetDatum(inputProcedure);     /* typinput */
    values[i++] = ObjectIdGetDatum(outputProcedure);    /* typoutput */
    values[i++] = ObjectIdGetDatum(receiveProcedure);   /* typreceive */
    values[i++] = ObjectIdGetDatum(sendProcedure);      /* typsend */
    values[i++] = ObjectIdGetDatum(typmodinProcedure);  /* typmodin */
-   values[i++] = ObjectIdGetDatum(typmodoutProcedure); /* typmodout */
+   values[i++] = ObjectIdGetDatum(typmodoutProcedure); /* typmodout */
    values[i++] = ObjectIdGetDatum(analyzeProcedure);   /* typanalyze */
    values[i++] = CharGetDatum(alignment);      /* typalign */
    values[i++] = CharGetDatum(storage);        /* typstorage */
@@ -397,8 +397,8 @@ TypeCreate(Oid newTypeOid,
 void
 GenerateTypeDependencies(Oid typeNamespace,
                         Oid typeObjectId,
-                        Oid relationOid,   /* only for relation rowtypes */
-                        char relationKind, /* ditto */
+                        Oid relationOid,       /* only for relation rowtypes */
+                        char relationKind,     /* ditto */
                         Oid owner,
                         Oid inputProcedure,
                         Oid outputProcedure,
@@ -534,7 +534,7 @@ GenerateTypeDependencies(Oid typeNamespace,
        referenced.objectId = elementType;
        referenced.objectSubId = 0;
        recordDependencyOn(&myself, &referenced,
-                   isImplicitArray ? DEPENDENCY_INTERNAL : DEPENDENCY_NORMAL);
+                 isImplicitArray ? DEPENDENCY_INTERNAL : DEPENDENCY_NORMAL);
    }
 
    /* Normal dependency from a domain to its base type. */
@@ -604,7 +604,7 @@ TypeRename(Oid typeOid, const char *newTypeName, Oid typeNamespace)
    /* If the type has an array type, recurse to handle that */
    if (OidIsValid(arrayOid))
    {
-       char   *arrname = makeArrayTypeName(newTypeName, typeNamespace);
+       char       *arrname = makeArrayTypeName(newTypeName, typeNamespace);
 
        TypeRename(arrayOid, arrname, typeNamespace);
        pfree(arrname);
@@ -622,12 +622,12 @@ char *
 makeArrayTypeName(const char *typeName, Oid typeNamespace)
 {
    char       *arr;
-   int        i;
+   int         i;
    Relation    pg_type_desc;
 
    /*
-    * The idea is to prepend underscores as needed until we make a name
-    * that doesn't collide with anything...
+    * The idea is to prepend underscores as needed until we make a name that
+    * doesn't collide with anything...
     */
    arr = palloc(NAMEDATALEN);
 
@@ -647,10 +647,10 @@ makeArrayTypeName(const char *typeName, Oid typeNamespace)
 
    heap_close(pg_type_desc, AccessShareLock);
 
-   if (i >= NAMEDATALEN-1)
+   if (i >= NAMEDATALEN - 1)
        ereport(ERROR,
                (errcode(ERRCODE_DUPLICATE_OBJECT),
-                errmsg("could not form array type name for type \"%s\"", 
+                errmsg("could not form array type name for type \"%s\"",
                        typeName)));
 
    return arr;
@@ -698,10 +698,10 @@ moveArrayTypeName(Oid typeOid, const char *typeName, Oid typeNamespace)
        return false;
 
    /*
-    * OK, use makeArrayTypeName to pick an unused modification of the
-    * name.  Note that since makeArrayTypeName is an iterative process,
-    * this will produce a name that it might have produced the first time,
-    * had the conflicting type we are about to create already existed.
+    * OK, use makeArrayTypeName to pick an unused modification of the name.
+    * Note that since makeArrayTypeName is an iterative process, this will
+    * produce a name that it might have produced the first time, had the
+    * conflicting type we are about to create already existed.
     */
    newname = makeArrayTypeName(typeName, typeNamespace);
 
index 51944c54c2801d96041f270a3ce20495068637de..20ece6d6eb03ac070d53498b991fd97f1afe8593 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/analyze.c,v 1.110 2007/10/24 20:55:36 alvherre Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/analyze.c,v 1.111 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -118,7 +118,7 @@ analyze_rel(Oid relid, VacuumStmt *vacstmt,
                totaldeadrows;
    HeapTuple  *rows;
    PGRUsage    ru0;
-   TimestampTz starttime = 0;
+   TimestampTz starttime = 0;
 
    if (vacstmt->verbose)
        elevel = INFO;
@@ -1346,7 +1346,7 @@ typedef struct
    FmgrInfo   *cmpFn;
    int         cmpFlags;
    int        *tupnoLink;
-} CompareScalarsContext;
+}  CompareScalarsContext;
 
 
 static void compute_minimal_stats(VacAttrStatsP stats,
index 736e74882deafb44336bc58b235425357d87aaf4..0789d1a1e5ecf8035f20a169d439af088e9efca6 100644 (file)
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/cluster.c,v 1.164 2007/09/29 18:05:20 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/cluster.c,v 1.165 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -80,7 +80,7 @@ static List *get_tables_to_cluster(MemoryContext cluster_context);
  *
  * The single-relation case does not have any such overhead.
  *
- * We also allow a relation to be specified without index.  In that case,
+ * We also allow a relation to be specified without index. In that case,
  * the indisclustered bit will be looked up, and an ERROR will be thrown
  * if there is no index with the bit set.
  *---------------------------------------------------------------------------
@@ -107,13 +107,13 @@ cluster(ClusterStmt *stmt, bool isTopLevel)
                           RelationGetRelationName(rel));
 
        /*
-        * Reject clustering a remote temp table ... their local buffer manager
-        * is not going to cope.
+        * Reject clustering a remote temp table ... their local buffer
+        * manager is not going to cope.
         */
        if (isOtherTempNamespace(RelationGetNamespace(rel)))
            ereport(ERROR,
                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                    errmsg("cannot cluster temporary tables of other sessions")));
+              errmsg("cannot cluster temporary tables of other sessions")));
 
        if (stmt->indexname == NULL)
        {
@@ -289,7 +289,7 @@ cluster_rel(RelToCluster *rvtc, bool recheck)
         * check in the "recheck" case is appropriate (which currently means
         * somebody is executing a database-wide CLUSTER), because there is
         * another check in cluster() which will stop any attempt to cluster
-        * remote temp tables by name.  There is another check in
+        * remote temp tables by name.  There is another check in
         * check_index_is_clusterable which is redundant, but we leave it for
         * extra safety.
         */
@@ -733,8 +733,8 @@ copy_heap_data(Oid OIDNewHeap, Oid OIDOldHeap, Oid OIDOldIndex)
 
    /*
     * compute xids used to freeze and weed out dead tuples.  We use -1
-    * freeze_min_age to avoid having CLUSTER freeze tuples earlier than
-    * plain VACUUM would.
+    * freeze_min_age to avoid having CLUSTER freeze tuples earlier than a
+    * plain VACUUM would.
     */
    vacuum_set_xid_limits(-1, OldHeap->rd_rel->relisshared,
                          &OldestXmin, &FreezeXid);
@@ -745,8 +745,8 @@ copy_heap_data(Oid OIDNewHeap, Oid OIDOldHeap, Oid OIDOldIndex)
    /*
     * Scan through the OldHeap in OldIndex order and copy each tuple into the
     * NewHeap.  To ensure we see recently-dead tuples that still need to be
-    * copied, we scan with SnapshotAny and use HeapTupleSatisfiesVacuum
-    * for the visibility test.
+    * copied, we scan with SnapshotAny and use HeapTupleSatisfiesVacuum for
+    * the visibility test.
     */
    scan = index_beginscan(OldHeap, OldIndex,
                           SnapshotAny, 0, (ScanKey) NULL);
@@ -774,31 +774,33 @@ copy_heap_data(Oid OIDNewHeap, Oid OIDOldHeap, Oid OIDOldIndex)
                isdead = false;
                break;
            case HEAPTUPLE_INSERT_IN_PROGRESS:
+
                /*
-                * We should not see this unless it's been inserted earlier
-                * in our own transaction.
+                * We should not see this unless it's been inserted earlier in
+                * our own transaction.
                 */
                if (!TransactionIdIsCurrentTransactionId(
-                   HeapTupleHeaderGetXmin(tuple->t_data)))
+                                     HeapTupleHeaderGetXmin(tuple->t_data)))
                    elog(ERROR, "concurrent insert in progress");
                /* treat as live */
                isdead = false;
                break;
            case HEAPTUPLE_DELETE_IN_PROGRESS:
+
                /*
-                * We should not see this unless it's been deleted earlier
-                * in our own transaction.
+                * We should not see this unless it's been deleted earlier in
+                * our own transaction.
                 */
                Assert(!(tuple->t_data->t_infomask & HEAP_XMAX_IS_MULTI));
                if (!TransactionIdIsCurrentTransactionId(
-                   HeapTupleHeaderGetXmax(tuple->t_data)))
+                                     HeapTupleHeaderGetXmax(tuple->t_data)))
                    elog(ERROR, "concurrent delete in progress");
                /* treat as recently dead */
                isdead = false;
                break;
            default:
                elog(ERROR, "unexpected HeapTupleSatisfiesVacuum result");
-               isdead = false;     /* keep compiler quiet */
+               isdead = false; /* keep compiler quiet */
                break;
        }
 
index c175523c36b91239fe058f8b455917eacb530752..38c9b7c9a5ac54c8af311dd56b2d736de1b8055c 100644 (file)
@@ -7,7 +7,7 @@
  * Copyright (c) 1996-2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/comment.c,v 1.98 2007/11/11 19:22:48 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/comment.c,v 1.99 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1493,7 +1493,7 @@ CommentTSParser(List *qualname, char *comment)
    if (!superuser())
        ereport(ERROR,
                (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-                errmsg("must be superuser to comment on text search parser")));
+             errmsg("must be superuser to comment on text search parser")));
 
    CreateComments(prsId, TSParserRelationId, 0, comment);
 }
@@ -1522,7 +1522,7 @@ CommentTSTemplate(List *qualname, char *comment)
    if (!superuser())
        ereport(ERROR,
                (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-                errmsg("must be superuser to comment on text search template")));
+           errmsg("must be superuser to comment on text search template")));
 
    CreateComments(tmplId, TSTemplateRelationId, 0, comment);
 }
index fdfe5ea965fdfbcb18d5a16ef663180bbbd33955..ef7e04ca286cf62378e56a5b47a4f8e01ef32cbc 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.287 2007/09/12 20:49:27 adunstan Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.288 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -997,7 +997,7 @@ DoCopy(const CopyStmt *stmt, const char *queryString)
                     errmsg("COPY (SELECT) WITH OIDS is not supported")));
 
        /*
-        * Run parse analysis and rewrite.  Note this also acquires sufficient
+        * Run parse analysis and rewrite.  Note this also acquires sufficient
         * locks on the source table(s).
         *
         * Because the parser and planner tend to scribble on their input, we
@@ -1638,8 +1638,8 @@ CopyFrom(CopyState cstate)
    MemoryContext oldcontext = CurrentMemoryContext;
    ErrorContextCallback errcontext;
    CommandId   mycid = GetCurrentCommandId();
-   bool        use_wal = true;     /* by default, use WAL logging */
-   bool        use_fsm = true;     /* by default, use FSM for free space */
+   bool        use_wal = true; /* by default, use WAL logging */
+   bool        use_fsm = true; /* by default, use FSM for free space */
 
    Assert(cstate->rel);
 
@@ -2148,7 +2148,7 @@ CopyFrom(CopyState cstate)
                            cstate->filename)));
    }
 
-   /* 
+   /*
     * If we skipped writing WAL, then we need to sync the heap (but not
     * indexes since those use WAL anyway)
     */
@@ -2685,7 +2685,7 @@ CopyReadAttributesText(CopyState cstate, int maxfields, char **fieldvals)
        char       *start_ptr;
        char       *end_ptr;
        int         input_len;
-       bool        saw_high_bit = false;
+       bool        saw_high_bit = false;
 
        /* Make sure space remains in fieldvals[] */
        if (fieldno >= maxfields)
@@ -2776,7 +2776,7 @@ CopyReadAttributesText(CopyState cstate, int maxfields, char **fieldvals)
                                }
                                c = val & 0xff;
                                if (IS_HIGHBIT_SET(c))
-                                   saw_high_bit = true;                            
+                                   saw_high_bit = true;
                            }
                        }
                        break;
@@ -2804,7 +2804,7 @@ CopyReadAttributesText(CopyState cstate, int maxfields, char **fieldvals)
                         * literally
                         */
                }
-           }           
+           }
 
            /* Add c to output string */
            *output_ptr++ = c;
@@ -2813,13 +2813,15 @@ CopyReadAttributesText(CopyState cstate, int maxfields, char **fieldvals)
        /* Terminate attribute value in output area */
        *output_ptr++ = '\0';
 
-       /* If we de-escaped a char with the high bit set, make sure
-        * we still have valid data for the db encoding. Avoid calling strlen 
-        * here for the sake of efficiency.
+       /*
+        * If we de-escaped a char with the high bit set, make sure we still
+        * have valid data for the db encoding. Avoid calling strlen here for
+        * the sake of efficiency.
         */
        if (saw_high_bit)
        {
-           char *fld = fieldvals[fieldno];
+           char       *fld = fieldvals[fieldno];
+
            pg_verifymbstr(fld, output_ptr - (fld + 1), false);
        }
 
@@ -3077,15 +3079,15 @@ CopyAttributeOutText(CopyState cstate, char *string)
     * We have to grovel through the string searching for control characters
     * and instances of the delimiter character.  In most cases, though, these
     * are infrequent.  To avoid overhead from calling CopySendData once per
-    * character, we dump out all characters between escaped characters in
-    * a single call.  The loop invariant is that the data from "start" to
-    * "ptr" can be sent literally, but hasn't yet been.
+    * character, we dump out all characters between escaped characters in a
+    * single call.  The loop invariant is that the data from "start" to "ptr"
+    * can be sent literally, but hasn't yet been.
     *
     * We can skip pg_encoding_mblen() overhead when encoding is safe, because
     * in valid backend encodings, extra bytes of a multibyte character never
     * look like ASCII.  This loop is sufficiently performance-critical that
-    * it's worth making two copies of it to get the IS_HIGHBIT_SET() test
-    * out of the normal safe-encoding path.
+    * it's worth making two copies of it to get the IS_HIGHBIT_SET() test out
+    * of the normal safe-encoding path.
     */
    if (cstate->encoding_embeds_ascii)
    {
@@ -3096,13 +3098,16 @@ CopyAttributeOutText(CopyState cstate, char *string)
            {
                DUMPSOFAR();
                CopySendChar(cstate, '\\');
-               start = ptr++;      /* we include char in next run */
+               start = ptr++;  /* we include char in next run */
            }
            else if ((unsigned char) c < (unsigned char) 0x20)
            {
                switch (c)
                {
-                   /* \r and \n must be escaped, the others are traditional */
+                       /*
+                        * \r and \n must be escaped, the others are
+                        * traditional
+                        */
                    case '\b':
                    case '\f':
                    case '\n':
@@ -3134,13 +3139,16 @@ CopyAttributeOutText(CopyState cstate, char *string)
            {
                DUMPSOFAR();
                CopySendChar(cstate, '\\');
-               start = ptr++;      /* we include char in next run */
+               start = ptr++;  /* we include char in next run */
            }
            else if ((unsigned char) c < (unsigned char) 0x20)
            {
                switch (c)
                {
-                   /* \r and \n must be escaped, the others are traditional */
+                       /*
+                        * \r and \n must be escaped, the others are
+                        * traditional
+                        */
                    case '\b':
                    case '\f':
                    case '\n':
index 3090ae0af4365ddf39967caaf27bee3f97c4c990..2d455ed31fc1edfa08d3f185c580617a476bfcb1 100644 (file)
@@ -13,7 +13,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.202 2007/10/16 11:30:16 mha Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.203 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -260,17 +260,17 @@ createdb(const CreatedbStmt *stmt)
     * Check whether encoding matches server locale settings.  We allow
     * mismatch in three cases:
     *
-    * 1. ctype_encoding = SQL_ASCII, which means either that the locale
-    * is C/POSIX which works with any encoding, or that we couldn't determine
+    * 1. ctype_encoding = SQL_ASCII, which means either that the locale is
+    * C/POSIX which works with any encoding, or that we couldn't determine
     * the locale's encoding and have to trust the user to get it right.
     *
-    * 2. selected encoding is SQL_ASCII, but only if you're a superuser.
-    * This is risky but we have historically allowed it --- notably, the
+    * 2. selected encoding is SQL_ASCII, but only if you're a superuser. This
+    * is risky but we have historically allowed it --- notably, the
     * regression tests require it.
     *
     * 3. selected encoding is UTF8 and platform is win32. This is because
-    * UTF8 is a pseudo codepage that is supported in all locales since
-    * it's converted to UTF16 before being used.
+    * UTF8 is a pseudo codepage that is supported in all locales since it's
+    * converted to UTF16 before being used.
     *
     * Note: if you change this policy, fix initdb to match.
     */
@@ -286,8 +286,8 @@ createdb(const CreatedbStmt *stmt)
                (errmsg("encoding %s does not match server's locale %s",
                        pg_encoding_to_char(encoding),
                        setlocale(LC_CTYPE, NULL)),
-                errdetail("The server's LC_CTYPE setting requires encoding %s.",
-                          pg_encoding_to_char(ctype_encoding))));
+            errdetail("The server's LC_CTYPE setting requires encoding %s.",
+                      pg_encoding_to_char(ctype_encoding))));
 
    /* Resolve default tablespace for new database */
    if (dtablespacename && dtablespacename->arg)
@@ -313,7 +313,7 @@ createdb(const CreatedbStmt *stmt)
        if (dst_deftablespace == GLOBALTABLESPACE_OID)
            ereport(ERROR,
                    (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                    errmsg("pg_global cannot be used as default tablespace")));
+                 errmsg("pg_global cannot be used as default tablespace")));
 
        /*
         * If we are trying to change the default tablespace of the template,
@@ -375,12 +375,12 @@ createdb(const CreatedbStmt *stmt)
    if (CheckOtherDBBackends(src_dboid))
        ereport(ERROR,
                (errcode(ERRCODE_OBJECT_IN_USE),
-                errmsg("source database \"%s\" is being accessed by other users",
-                       dbtemplate)));
+           errmsg("source database \"%s\" is being accessed by other users",
+                  dbtemplate)));
 
    /*
-    * Select an OID for the new database, checking that it doesn't have
-    * filename conflict with anything already existing in the tablespace
+    * Select an OID for the new database, checking that it doesn't have a
+    * filename conflict with anything already existing in the tablespace
     * directories.
     */
    pg_database_rel = heap_open(DatabaseRelationId, RowExclusiveLock);
@@ -558,9 +558,9 @@ createdb(const CreatedbStmt *stmt)
        /*
         * Set flag to update flat database file at commit.  Note: this also
         * forces synchronous commit, which minimizes the window between
-        * creation of the database files and commital of the transaction.
-        * If we crash before committing, we'll have a DB that's taking up
-        * disk space but is not in pg_database, which is not good.
+        * creation of the database files and commital of the transaction. If
+        * we crash before committing, we'll have a DB that's taking up disk
+        * space but is not in pg_database, which is not good.
         */
        database_file_update_needed();
    }
@@ -721,10 +721,10 @@ dropdb(const char *dbname, bool missing_ok)
 
    /*
     * Set flag to update flat database file at commit.  Note: this also
-    * forces synchronous commit, which minimizes the window between
-    * removal of the database files and commital of the transaction.
-    * If we crash before committing, we'll have a DB that's gone on disk
-    * but still there according to pg_database, which is not good.
+    * forces synchronous commit, which minimizes the window between removal
+    * of the database files and commital of the transaction. If we crash
+    * before committing, we'll have a DB that's gone on disk but still there
+    * according to pg_database, which is not good.
     */
    database_file_update_needed();
 }
index d2ae6defd0426eebad07b2b40cab9166a88d7171..7af6ce0122f7c5bca66bf36c410c316acee229bf 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/discard.c,v 1.1 2007/04/26 16:13:10 neilc Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/discard.c,v 1.2 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -28,7 +28,7 @@ static void DiscardAll(bool isTopLevel);
  * DISCARD { ALL | TEMP | PLANS }
  */
 void
-DiscardCommand(DiscardStmt *stmt, bool isTopLevel)
+DiscardCommand(DiscardStmt * stmt, bool isTopLevel)
 {
    switch (stmt->target)
    {
@@ -54,10 +54,10 @@ DiscardAll(bool isTopLevel)
 {
    /*
     * Disallow DISCARD ALL in a transaction block. This is arguably
-    * inconsistent (we don't make a similar check in the command
-    * sequence that DISCARD ALL is equivalent to), but the idea is
-    * to catch mistakes: DISCARD ALL inside a transaction block
-    * would leave the transaction still uncommitted.
+    * inconsistent (we don't make a similar check in the command sequence
+    * that DISCARD ALL is equivalent to), but the idea is to catch mistakes:
+    * DISCARD ALL inside a transaction block would leave the transaction
+    * still uncommitted.
     */
    PreventTransactionChain(isTopLevel, "DISCARD ALL");
 
index c9d454bc4975b948b8b0032a7f46727aaea5ced5..c385d952d269da461334854389d87010684c421b 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994-5, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/explain.c,v 1.165 2007/08/15 21:39:50 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/explain.c,v 1.166 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -35,6 +35,7 @@
 
 /* Hook for plugins to get control in ExplainOneQuery() */
 ExplainOneQuery_hook_type ExplainOneQuery_hook = NULL;
+
 /* Hook for plugins to get control in explain_get_index_name() */
 explain_get_index_name_hook_type explain_get_index_name_hook = NULL;
 
@@ -50,10 +51,10 @@ typedef struct ExplainState
 } ExplainState;
 
 static void ExplainOneQuery(Query *query, ExplainStmt *stmt,
-                           const char *queryString,
-                           ParamListInfo params, TupOutputState *tstate);
+               const char *queryString,
+               ParamListInfo params, TupOutputState *tstate);
 static void report_triggers(ResultRelInfo *rInfo, bool show_relname,
-                           StringInfo buf);
+               StringInfo buf);
 static double elapsed_time(instr_time *starttime);
 static void explain_outNode(StringInfo str,
                Plan *plan, PlanState *planstate,
@@ -90,14 +91,14 @@ ExplainQuery(ExplainStmt *stmt, const char *queryString,
    getParamListTypes(params, &param_types, &num_params);
 
    /*
-    * Run parse analysis and rewrite.  Note this also acquires sufficient
+    * Run parse analysis and rewrite.  Note this also acquires sufficient
     * locks on the source table(s).
     *
-    * Because the parser and planner tend to scribble on their input, we
-    * make a preliminary copy of the source querytree.  This prevents
-    * problems in the case that the EXPLAIN is in a portal or plpgsql
-    * function and is executed repeatedly.  (See also the same hack in
-    * DECLARE CURSOR and PREPARE.)  XXX FIXME someday.
+    * Because the parser and planner tend to scribble on their input, we make
+    * a preliminary copy of the source querytree.  This prevents problems in
+    * the case that the EXPLAIN is in a portal or plpgsql function and is
+    * executed repeatedly.  (See also the same hack in DECLARE CURSOR and
+    * PREPARE.)  XXX FIXME someday.
     */
    rewritten = pg_analyze_and_rewrite((Node *) copyObject(stmt->query),
                                       queryString, param_types, num_params);
@@ -215,7 +216,7 @@ ExplainOneUtility(Node *utilityStmt, ExplainStmt *stmt,
  * to call it.
  */
 void
-ExplainOnePlan(PlannedStmt *plannedstmt, ParamListInfo params,
+ExplainOnePlan(PlannedStmt * plannedstmt, ParamListInfo params,
               ExplainStmt *stmt, TupOutputState *tstate)
 {
    QueryDesc  *queryDesc;
@@ -376,8 +377,8 @@ report_triggers(ResultRelInfo *rInfo, bool show_relname, StringInfo buf)
        InstrEndLoop(instr);
 
        /*
-        * We ignore triggers that were never invoked; they likely
-        * aren't relevant to the current query type.
+        * We ignore triggers that were never invoked; they likely aren't
+        * relevant to the current query type.
         */
        if (instr->ntuples == 0)
            continue;
@@ -624,7 +625,7 @@ explain_outNode(StringInfo str,
            if (ScanDirectionIsBackward(((IndexScan *) plan)->indexorderdir))
                appendStringInfoString(str, " Backward");
            appendStringInfo(str, " using %s",
-                   explain_get_index_name(((IndexScan *) plan)->indexid));
+                     explain_get_index_name(((IndexScan *) plan)->indexid));
            /* FALL THRU */
        case T_SeqScan:
        case T_BitmapHeapScan:
@@ -1137,7 +1138,7 @@ show_sort_keys(Plan *sortplan, int nkeys, AttrNumber *keycols,
 
    /* Set up deparsing context */
    context = deparse_context_for_plan((Node *) outerPlan(sortplan),
-                                      NULL,        /* Sort has no innerPlan */
+                                      NULL,    /* Sort has no innerPlan */
                                       es->rtable);
    useprefix = list_length(es->rtable) > 1;
 
@@ -1192,7 +1193,7 @@ show_sort_info(SortState *sortstate,
 static const char *
 explain_get_index_name(Oid indexId)
 {
-   const char   *result;
+   const char *result;
 
    if (explain_get_index_name_hook)
        result = (*explain_get_index_name_hook) (indexId);
index 3a5566150269bc35d44257ed72042b288345e2b4..892bd7c9f30eac909cbd62aa24eeacd3ee43835d 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/functioncmds.c,v 1.86 2007/11/11 19:22:48 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/functioncmds.c,v 1.87 2007/11/15 21:14:33 momjian Exp $
  *
  * DESCRIPTION
  *   These routines take the parse tree and pick out the
@@ -56,7 +56,7 @@
 
 
 static void AlterFunctionOwner_internal(Relation rel, HeapTuple tup,
-                                       Oid newOwnerId);
+                           Oid newOwnerId);
 
 
 /*
@@ -121,8 +121,8 @@ compute_return_type(TypeName *returnType, Oid languageOid,
        if (returnType->typmods != NIL)
            ereport(ERROR,
                    (errcode(ERRCODE_SYNTAX_ERROR),
-                    errmsg("type modifier cannot be specified for shell type \"%s\"",
-                           typnam)));
+           errmsg("type modifier cannot be specified for shell type \"%s\"",
+                  typnam)));
 
        /* Otherwise, go ahead and make a shell type */
        ereport(NOTICE,
@@ -285,7 +285,7 @@ examine_parameter_list(List *parameters, Oid languageOid,
  * FUNCTION and ALTER FUNCTION and return it via one of the out
  * parameters. Returns true if the passed option was recognized. If
  * the out parameter we were going to assign to points to non-NULL,
- * raise a duplicate-clause error.  (We don't try to detect duplicate
+ * raise a duplicate-clause error. (We don't try to detect duplicate
  * SET parameters though --- if you're redundant, the last one wins.)
  */
 static bool
@@ -390,7 +390,7 @@ update_proconfig_value(ArrayType *a, List *set_items)
 
            if (valuestr)
                a = GUCArrayAdd(a, sstmt->name, valuestr);
-           else                /* RESET */
+           else    /* RESET */
                a = GUCArrayDelete(a, sstmt->name);
        }
    }
@@ -1598,9 +1598,9 @@ DropCast(DropCastStmt *stmt)
                            TypeNameToString(stmt->targettype))));
        else
            ereport(NOTICE,
-                   (errmsg("cast from type %s to type %s does not exist, skipping",
-                           TypeNameToString(stmt->sourcetype),
-                           TypeNameToString(stmt->targettype))));
+            (errmsg("cast from type %s to type %s does not exist, skipping",
+                    TypeNameToString(stmt->sourcetype),
+                    TypeNameToString(stmt->targettype))));
 
        return;
    }
index 943978e589a0ecec95b6bd121213a2a9aec3ffb8..dc53546a05f3b2243750c724a958251359c4d3c6 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/indexcmds.c,v 1.166 2007/09/20 17:56:31 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/indexcmds.c,v 1.167 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -396,10 +396,9 @@ DefineIndex(RangeVar *heapRelation,
    }
 
    /*
-    * Parse AM-specific options, convert to text array form,
-    * validate.  The src_options introduced due to using indexes
-    * via the "CREATE LIKE INCLUDING INDEXES" statement also need to
-    * be merged here
+    * Parse AM-specific options, convert to text array form, validate.  The
+    * src_options introduced due to using indexes via the "CREATE LIKE
+    * INCLUDING INDEXES" statement also need to be merged here
     */
    if (src_options)
        reloptions = unflatten_reloptions(src_options);
@@ -452,7 +451,7 @@ DefineIndex(RangeVar *heapRelation,
    {
        indexRelationId =
            index_create(relationId, indexRelationName, indexRelationId,
-                        indexInfo, accessMethodId, tablespaceId, classObjectId,
+                     indexInfo, accessMethodId, tablespaceId, classObjectId,
                         coloptions, reloptions, primary, isconstraint,
                         allowSystemTableMods, skip_build, concurrent);
 
@@ -461,18 +460,18 @@ DefineIndex(RangeVar *heapRelation,
 
    /*
     * For a concurrent build, we next insert the catalog entry and add
-    * constraints.  We don't build the index just yet; we must first make
-    * the catalog entry so that the new index is visible to updating
+    * constraints.  We don't build the index just yet; we must first make the
+    * catalog entry so that the new index is visible to updating
     * transactions.  That will prevent them from making incompatible HOT
     * updates.  The new index will be marked not indisready and not
     * indisvalid, so that no one else tries to either insert into it or use
-    * it for queries.  We pass skip_build = true to prevent the build.
+    * it for queries.  We pass skip_build = true to prevent the build.
     */
    indexRelationId =
        index_create(relationId, indexRelationName, indexRelationId,
                     indexInfo, accessMethodId, tablespaceId, classObjectId,
                     coloptions, reloptions, primary, isconstraint,
-                    allowSystemTableMods, true, concurrent);
+                    allowSystemTableMods, true, concurrent);
 
    /*
     * We must commit our current transaction so that the index becomes
@@ -506,15 +505,15 @@ DefineIndex(RangeVar *heapRelation,
     * xacts that open the table for writing after this point; they will see
     * the new index when they open it.
     *
-    * Note: the reason we use actual lock acquisition here, rather than
-    * just checking the ProcArray and sleeping, is that deadlock is possible
-    * if one of the transactions in question is blocked trying to acquire
-    * an exclusive lock on our table.  The lock code will detect deadlock
-    * and error out properly.
+    * Note: the reason we use actual lock acquisition here, rather than just
+    * checking the ProcArray and sleeping, is that deadlock is possible if
+    * one of the transactions in question is blocked trying to acquire an
+    * exclusive lock on our table.  The lock code will detect deadlock and
+    * error out properly.
     *
     * Note: GetLockConflicts() never reports our own xid, hence we need not
-    * check for that.  Also, prepared xacts are not reported, which is
-    * fine since they certainly aren't going to do anything more.
+    * check for that.  Also, prepared xacts are not reported, which is fine
+    * since they certainly aren't going to do anything more.
     */
    old_lockholders = GetLockConflicts(&heaplocktag, ShareLock);
 
@@ -530,15 +529,15 @@ DefineIndex(RangeVar *heapRelation,
     * indexes.  We have waited out all the existing transactions and any new
     * transaction will have the new index in its list, but the index is still
     * marked as "not-ready-for-inserts".  The index is consulted while
-    * deciding HOT-safety though.  This arrangement ensures that no new HOT
+    * deciding HOT-safety though.  This arrangement ensures that no new HOT
     * chains can be created where the new tuple and the old tuple in the
     * chain have different index keys.
     *
     * We now take a new snapshot, and build the index using all tuples that
-    * are visible in this snapshot.  We can be sure that any HOT updates
-    * to these tuples will be compatible with the index, since any updates
-    * made by transactions that didn't know about the index are now committed
-    * or rolled back.  Thus, each visible tuple is either the end of its
+    * are visible in this snapshot.  We can be sure that any HOT updates to
+    * these tuples will be compatible with the index, since any updates made
+    * by transactions that didn't know about the index are now committed or
+    * rolled back.  Thus, each visible tuple is either the end of its
     * HOT-chain or the extension of the chain is HOT-safe for this index.
     */
 
@@ -565,10 +564,9 @@ DefineIndex(RangeVar *heapRelation,
    index_close(indexRelation, NoLock);
 
    /*
-    * Update the pg_index row to mark the index as ready for inserts.
-    * Once we commit this transaction, any new transactions that
-    * open the table must insert new entries into the index for insertions
-    * and non-HOT updates.
+    * Update the pg_index row to mark the index as ready for inserts. Once we
+    * commit this transaction, any new transactions that open the table must
+    * insert new entries into the index for insertions and non-HOT updates.
     */
    pg_index = heap_open(IndexRelationId, RowExclusiveLock);
 
@@ -611,8 +609,8 @@ DefineIndex(RangeVar *heapRelation,
 
    /*
     * Now take the "reference snapshot" that will be used by validate_index()
-    * to filter candidate tuples.  Beware!  There might still be snapshots
-    * in use that treat some transaction as in-progress that our reference
+    * to filter candidate tuples.  Beware!  There might still be snapshots in
+    * use that treat some transaction as in-progress that our reference
     * snapshot treats as committed.  If such a recently-committed transaction
     * deleted tuples in the table, we will not include them in the index; yet
     * those transactions which see the deleting one as still-in-progress will
@@ -636,15 +634,15 @@ DefineIndex(RangeVar *heapRelation,
     * The index is now valid in the sense that it contains all currently
     * interesting tuples.  But since it might not contain tuples deleted just
     * before the reference snap was taken, we have to wait out any
-    * transactions that might have older snapshots.  Obtain a list of
-    * VXIDs of such transactions, and wait for them individually.
+    * transactions that might have older snapshots.  Obtain a list of VXIDs
+    * of such transactions, and wait for them individually.
     *
     * We can exclude any running transactions that have xmin >= the xmax of
     * our reference snapshot, since they are clearly not interested in any
     * missing older tuples.  Transactions in other DBs aren't a problem
-    * either, since they'll never even be able to see this index.
-    * Also, GetCurrentVirtualXIDs never reports our own vxid, so we
-    * need not check for that.
+    * either, since they'll never even be able to see this index. Also,
+    * GetCurrentVirtualXIDs never reports our own vxid, so we need not check
+    * for that.
     */
    old_snapshots = GetCurrentVirtualXIDs(ActiveSnapshot->xmax, false);
 
@@ -681,8 +679,8 @@ DefineIndex(RangeVar *heapRelation,
     * relcache entries for the index itself, but we should also send a
     * relcache inval on the parent table to force replanning of cached plans.
     * Otherwise existing sessions might fail to use the new index where it
-    * would be useful.  (Note that our earlier commits did not create
-    * reasons to replan; relcache flush on the index itself was sufficient.)
+    * would be useful.  (Note that our earlier commits did not create reasons
+    * to replan; relcache flush on the index itself was sufficient.)
     */
    CacheInvalidateRelcacheByRelid(heaprelid.relId);
 
@@ -837,9 +835,9 @@ ComputeIndexAttrs(IndexInfo *indexInfo,
                                          accessMethodId);
 
        /*
-        * Set up the per-column options (indoption field).  For now, this
-        * is zero for any un-ordered index, while ordered indexes have DESC
-        * and NULLS FIRST/LAST options.
+        * Set up the per-column options (indoption field).  For now, this is
+        * zero for any un-ordered index, while ordered indexes have DESC and
+        * NULLS FIRST/LAST options.
         */
        colOptionP[attn] = 0;
        if (amcanorder)
index cc15e2b2cdb7ba261132f0597184d0037df40ae7..05b94d6283ab8053478ca927a317ffea2bd2ec6b 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/opclasscmds.c,v 1.55 2007/11/11 19:22:48 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/opclasscmds.c,v 1.56 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -52,33 +52,33 @@ typedef struct
    Oid         lefttype;       /* lefttype */
    Oid         righttype;      /* righttype */
    bool        recheck;        /* oper recheck flag (unused for proc) */
-} OpFamilyMember;
+}  OpFamilyMember;
 
 
 static void AlterOpFamilyAdd(List *opfamilyname, Oid amoid, Oid opfamilyoid,
                 int maxOpNumber, int maxProcNumber,
                 List *items);
 static void AlterOpFamilyDrop(List *opfamilyname, Oid amoid, Oid opfamilyoid,
-                int maxOpNumber, int maxProcNumber,
-                List *items);
+                 int maxOpNumber, int maxProcNumber,
+                 List *items);
 static void processTypesSpec(List *args, Oid *lefttype, Oid *righttype);
-static void assignOperTypes(OpFamilyMember *member, Oid amoid, Oid typeoid);
-static void assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid);
-static void addFamilyMember(List **list, OpFamilyMember *member, bool isProc);
+static void assignOperTypes(OpFamilyMember * member, Oid amoid, Oid typeoid);
+static void assignProcTypes(OpFamilyMember * member, Oid amoid, Oid typeoid);
+static void addFamilyMember(List **list, OpFamilyMember * member, bool isProc);
 static void storeOperators(List *opfamilyname, Oid amoid,
-                          Oid opfamilyoid, Oid opclassoid,
-                          List *operators, bool isAdd);
+              Oid opfamilyoid, Oid opclassoid,
+              List *operators, bool isAdd);
 static void storeProcedures(List *opfamilyname, Oid amoid,
-                           Oid opfamilyoid, Oid opclassoid,
-                           List *procedures, bool isAdd);
+               Oid opfamilyoid, Oid opclassoid,
+               List *procedures, bool isAdd);
 static void dropOperators(List *opfamilyname, Oid amoid, Oid opfamilyoid,
-                         List *operators);
+             List *operators);
 static void dropProcedures(List *opfamilyname, Oid amoid, Oid opfamilyoid,
-                          List *procedures);
+              List *procedures);
 static void AlterOpClassOwner_internal(Relation rel, HeapTuple tuple,
                           Oid newOwnerId);
 static void AlterOpFamilyOwner_internal(Relation rel, HeapTuple tuple,
-                          Oid newOwnerId);
+                           Oid newOwnerId);
 
 
 /*
@@ -111,7 +111,7 @@ OpFamilyCacheLookup(Oid amID, List *opfamilyname)
    else
    {
        /* Unqualified opfamily name, so search the search path */
-       Oid     opfID = OpfamilynameGetOpfid(amID, opfname);
+       Oid         opfID = OpfamilynameGetOpfid(amID, opfname);
 
        if (!OidIsValid(opfID))
            return NULL;
@@ -151,7 +151,7 @@ OpClassCacheLookup(Oid amID, List *opclassname)
    else
    {
        /* Unqualified opclass name, so search the search path */
-       Oid     opcID = OpclassnameGetOpcid(amID, opcname);
+       Oid         opcID = OpclassnameGetOpcid(amID, opcname);
 
        if (!OidIsValid(opcID))
            return NULL;
@@ -348,8 +348,9 @@ DefineOpClass(CreateOpClassStmt *stmt)
            ereport(ERROR,
                    (errcode(ERRCODE_UNDEFINED_OBJECT),
                     errmsg("operator family \"%s\" does not exist for access method \"%s\"",
-                           NameListToString(stmt->opfamilyname), stmt->amname)));
+                      NameListToString(stmt->opfamilyname), stmt->amname)));
        opfamilyoid = HeapTupleGetOid(tup);
+
        /*
         * XXX given the superuser check above, there's no need for an
         * ownership check here
@@ -367,6 +368,7 @@ DefineOpClass(CreateOpClassStmt *stmt)
        if (HeapTupleIsValid(tup))
        {
            opfamilyoid = HeapTupleGetOid(tup);
+
            /*
             * XXX given the superuser check above, there's no need for an
             * ownership check here
@@ -597,7 +599,7 @@ DefineOpClass(CreateOpClassStmt *stmt)
                    opclassoid, procedures, false);
 
    /*
-    * Create dependencies for the opclass proper.  Note: we do not create a
+    * Create dependencies for the opclass proper.  Note: we do not create a
     * dependency link to the AM, because we don't currently support DROP
     * ACCESS METHOD.
     */
@@ -644,7 +646,7 @@ DefineOpClass(CreateOpClassStmt *stmt)
  *     Define a new index operator family.
  */
 void
-DefineOpFamily(CreateOpFamilyStmt *stmt)
+DefineOpFamily(CreateOpFamilyStmt * stmt)
 {
    char       *opfname;        /* name of opfamily we're creating */
    Oid         amoid,          /* our AM's oid */
@@ -686,8 +688,8 @@ DefineOpFamily(CreateOpFamilyStmt *stmt)
    ReleaseSysCache(tup);
 
    /*
-    * Currently, we require superuser privileges to create an opfamily.
-    * See comments in DefineOpClass.
+    * Currently, we require superuser privileges to create an opfamily. See
+    * comments in DefineOpClass.
     *
     * XXX re-enable NOT_USED code sections below if you remove this test.
     */
@@ -763,7 +765,7 @@ DefineOpFamily(CreateOpFamilyStmt *stmt)
  * different code paths.
  */
 void
-AlterOpFamily(AlterOpFamilyStmt *stmt)
+AlterOpFamily(AlterOpFamilyStmt * stmt)
 {
    Oid         amoid,          /* our AM's oid */
                opfamilyoid;    /* oid of opfamily */
@@ -876,7 +878,7 @@ AlterOpFamilyAdd(List *opfamilyname, Oid amoid, Oid opfamilyoid,
                    ereport(ERROR,
                            (errcode(ERRCODE_SYNTAX_ERROR),
                             errmsg("operator argument types must be specified in ALTER OPERATOR FAMILY")));
-                   operOid = InvalidOid; /* keep compiler quiet */
+                   operOid = InvalidOid;       /* keep compiler quiet */
                }
 
 #ifdef NOT_USED
@@ -932,7 +934,7 @@ AlterOpFamilyAdd(List *opfamilyname, Oid amoid, Oid opfamilyoid,
            case OPCLASS_ITEM_STORAGETYPE:
                ereport(ERROR,
                        (errcode(ERRCODE_SYNTAX_ERROR),
-                          errmsg("STORAGE cannot be specified in ALTER OPERATOR FAMILY")));
+                        errmsg("STORAGE cannot be specified in ALTER OPERATOR FAMILY")));
                break;
            default:
                elog(ERROR, "unrecognized item type: %d", item->itemtype);
@@ -1057,7 +1059,7 @@ processTypesSpec(List *args, Oid *lefttype, Oid *righttype)
  * and do any validity checking we can manage.
  */
 static void
-assignOperTypes(OpFamilyMember *member, Oid amoid, Oid typeoid)
+assignOperTypes(OpFamilyMember * member, Oid amoid, Oid typeoid)
 {
    Operator    optup;
    Form_pg_operator opform;
@@ -1098,7 +1100,7 @@ assignOperTypes(OpFamilyMember *member, Oid amoid, Oid typeoid)
  * and do any validity checking we can manage.
  */
 static void
-assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid)
+assignProcTypes(OpFamilyMember * member, Oid amoid, Oid typeoid)
 {
    HeapTuple   proctup;
    Form_pg_proc procform;
@@ -1156,10 +1158,10 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid)
    else
    {
        /*
-        * The default for GiST and GIN in CREATE OPERATOR CLASS is to use
-        * the class' opcintype as lefttype and righttype.  In CREATE or
-        * ALTER OPERATOR FAMILY, opcintype isn't available, so make the
-        * user specify the types.
+        * The default for GiST and GIN in CREATE OPERATOR CLASS is to use the
+        * class' opcintype as lefttype and righttype.  In CREATE or ALTER
+        * OPERATOR FAMILY, opcintype isn't available, so make the user
+        * specify the types.
         */
        if (!OidIsValid(member->lefttype))
            member->lefttype = typeoid;
@@ -1179,7 +1181,7 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid)
  * duplicated strategy or proc number.
  */
 static void
-addFamilyMember(List **list, OpFamilyMember *member, bool isProc)
+addFamilyMember(List **list, OpFamilyMember * member, bool isProc)
 {
    ListCell   *l;
 
@@ -1560,7 +1562,7 @@ RemoveOpClass(RemoveOpClassStmt *stmt)
  *     Deletes an opfamily.
  */
 void
-RemoveOpFamily(RemoveOpFamilyStmt *stmt)
+RemoveOpFamily(RemoveOpFamilyStmt * stmt)
 {
    Oid         amID,
                opfID;
@@ -1589,11 +1591,11 @@ RemoveOpFamily(RemoveOpFamilyStmt *stmt)
            ereport(ERROR,
                    (errcode(ERRCODE_UNDEFINED_OBJECT),
                     errmsg("operator family \"%s\" does not exist for access method \"%s\"",
-                       NameListToString(stmt->opfamilyname), stmt->amname)));
+                      NameListToString(stmt->opfamilyname), stmt->amname)));
        else
            ereport(NOTICE,
                    (errmsg("operator family \"%s\" does not exist for access method \"%s\"",
-                       NameListToString(stmt->opfamilyname), stmt->amname)));
+                      NameListToString(stmt->opfamilyname), stmt->amname)));
        return;
    }
 
@@ -2120,7 +2122,7 @@ AlterOpFamilyOwner(List *name, const char *access_method, Oid newOwnerId)
 }
 
 /*
- * The first parameter is pg_opfamily, opened and suitably locked.  The second
+ * The first parameter is pg_opfamily, opened and suitably locked. The second
  * parameter is a copy of the tuple from pg_opfamily we want to modify.
  */
 static void
index 8de6b4bebfd3eaad66e1532b1e6f37d83817c75b..1ae9d5186b1675620c5e158975a857e99d0b0504 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/operatorcmds.c,v 1.37 2007/11/11 19:22:48 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/operatorcmds.c,v 1.38 2007/11/15 21:14:33 momjian Exp $
  *
  * DESCRIPTION
  *   The "DefineFoo" routines take the parse tree and pick out the
@@ -65,7 +65,7 @@ DefineOperator(List *names, List *parameters)
    Oid         oprNamespace;
    AclResult   aclresult;
    bool        canMerge = false;       /* operator merges */
-   bool        canHash = false;        /* operator hashes */
+   bool        canHash = false;    /* operator hashes */
    List       *functionName = NIL;     /* function for operator */
    TypeName   *typeName1 = NULL;       /* first type name */
    TypeName   *typeName2 = NULL;       /* second type name */
index e8f21d4f0836027cd1074c58fc3cc316ba082f54..ba9e9a2320fec9aa9241104273db11c5ac287972 100644 (file)
@@ -14,7 +14,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/portalcmds.c,v 1.66 2007/10/24 23:27:08 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/portalcmds.c,v 1.67 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -39,7 +39,7 @@
  * utilityStmt field is set.
  */
 void
-PerformCursorOpen(PlannedStmt *stmt, ParamListInfo params,
+PerformCursorOpen(PlannedStmt * stmt, ParamListInfo params,
                  const char *queryString, bool isTopLevel)
 {
    DeclareCursorStmt *cstmt = (DeclareCursorStmt *) stmt->utilityStmt;
@@ -102,7 +102,7 @@ PerformCursorOpen(PlannedStmt *stmt, ParamListInfo params,
     *
     * If the user didn't specify a SCROLL type, allow or disallow scrolling
     * based on whether it would require any additional runtime overhead to do
-    * so.  Also, we disallow scrolling for FOR UPDATE cursors.
+    * so.  Also, we disallow scrolling for FOR UPDATE cursors.
     */
    portal->cursorOptions = cstmt->options;
    if (!(portal->cursorOptions & (CURSOR_OPT_SCROLL | CURSOR_OPT_NO_SCROLL)))
@@ -369,8 +369,8 @@ PersistHoldablePortal(Portal portal)
         * to be at, but the tuplestore API doesn't support that. So we start
         * at the beginning of the tuplestore and iterate through it until we
         * reach where we need to be.  FIXME someday?  (Fortunately, the
-        * typical case is that we're supposed to be at or near the start
-        * of the result set, so this isn't as bad as it sounds.)
+        * typical case is that we're supposed to be at or near the start of
+        * the result set, so this isn't as bad as it sounds.)
         */
        MemoryContextSwitchTo(portal->holdContext);
 
@@ -378,7 +378,7 @@ PersistHoldablePortal(Portal portal)
        {
            /* we can handle this case even if posOverflow */
            while (tuplestore_advance(portal->holdStore, true))
-               /* continue */ ;
+                /* continue */ ;
        }
        else
        {
index 0a7f5653167c758e635bc75c4c01abb5824ff551..4e86b7eebf317a9344b5536ae34b649b06fe68c6 100644 (file)
@@ -10,7 +10,7 @@
  * Copyright (c) 2002-2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/prepare.c,v 1.78 2007/11/11 19:22:48 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/prepare.c,v 1.79 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -44,7 +44,7 @@ static HTAB *prepared_queries = NULL;
 
 static void InitQueryHashTable(void);
 static ParamListInfo EvaluateParams(PreparedStatement *pstmt, List *params,
-                                   const char *queryString, EState *estate);
+              const char *queryString, EState *estate);
 static Datum build_regtype_array(Oid *param_types, int num_params);
 
 /*
@@ -101,8 +101,8 @@ PrepareQuery(PrepareStmt *stmt, const char *queryString)
     * passed in from above us will not be visible to it), allowing
     * information about unknown parameters to be deduced from context.
     *
-    * Because parse analysis scribbles on the raw querytree, we must make
-    * copy to ensure we have a pristine raw tree to cache.  FIXME someday.
+    * Because parse analysis scribbles on the raw querytree, we must make a
+    * copy to ensure we have a pristine raw tree to cache.  FIXME someday.
     */
    query = parse_analyze_varparams((Node *) copyObject(stmt->query),
                                    queryString,
@@ -155,7 +155,7 @@ PrepareQuery(PrepareStmt *stmt, const char *queryString)
                           CreateCommandTag((Node *) query),
                           argtypes,
                           nargs,
-                          0,               /* default cursor options */
+                          0,   /* default cursor options */
                           plan_list,
                           true);
 }
@@ -299,8 +299,8 @@ EvaluateParams(PreparedStatement *pstmt, List *params,
    if (nparams != num_params)
        ereport(ERROR,
                (errcode(ERRCODE_SYNTAX_ERROR),
-                errmsg("wrong number of parameters for prepared statement \"%s\"",
-                       pstmt->stmt_name),
+          errmsg("wrong number of parameters for prepared statement \"%s\"",
+                 pstmt->stmt_name),
                 errdetail("Expected %d parameters but got %d.",
                           num_params, nparams)));
 
@@ -309,8 +309,8 @@ EvaluateParams(PreparedStatement *pstmt, List *params,
        return NULL;
 
    /*
-    * We have to run parse analysis for the expressions.  Since the
-    * parser is not cool about scribbling on its input, copy first.
+    * We have to run parse analysis for the expressions.  Since the parser is
+    * not cool about scribbling on its input, copy first.
     */
    params = (List *) copyObject(params);
 
@@ -334,7 +334,7 @@ EvaluateParams(PreparedStatement *pstmt, List *params,
        if (pstate->p_hasAggs)
            ereport(ERROR,
                    (errcode(ERRCODE_GROUPING_ERROR),
-                    errmsg("cannot use aggregate function in EXECUTE parameter")));
+             errmsg("cannot use aggregate function in EXECUTE parameter")));
 
        given_type_id = exprType(expr);
 
@@ -350,7 +350,7 @@ EvaluateParams(PreparedStatement *pstmt, List *params,
                            i + 1,
                            format_type_be(given_type_id),
                            format_type_be(expected_type_id)),
-                    errhint("You will need to rewrite or cast the expression.")));
+              errhint("You will need to rewrite or cast the expression.")));
 
        lfirst(l) = expr;
        i++;
@@ -734,8 +734,8 @@ pg_prepared_statement(PG_FUNCTION_ARGS)
    oldcontext = MemoryContextSwitchTo(per_query_ctx);
 
    /*
-    * build tupdesc for result tuples. This must match the definition of
-    * the pg_prepared_statements view in system_views.sql
+    * build tupdesc for result tuples. This must match the definition of the
+    * pg_prepared_statements view in system_views.sql
     */
    tupdesc = CreateTemplateTupleDesc(5, false);
    TupleDescInitEntry(tupdesc, (AttrNumber) 1, "name",
@@ -780,11 +780,11 @@ pg_prepared_statement(PG_FUNCTION_ARGS)
                nulls[1] = true;
            else
                values[1] = DirectFunctionCall1(textin,
-                       CStringGetDatum(prep_stmt->plansource->query_string));
+                      CStringGetDatum(prep_stmt->plansource->query_string));
 
            values[2] = TimestampTzGetDatum(prep_stmt->prepare_time);
            values[3] = build_regtype_array(prep_stmt->plansource->param_types,
-                                           prep_stmt->plansource->num_params);
+                                         prep_stmt->plansource->num_params);
            values[4] = BoolGetDatum(prep_stmt->from_sql);
 
            tuple = heap_form_tuple(tupdesc, values, nulls);
index b103667935f6e31155893496d28e6e0ea72cd6bd..80e5d3d7dc3ba24f7f9858f949906e94486e20aa 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/schemacmds.c,v 1.46 2007/06/23 22:12:50 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/schemacmds.c,v 1.47 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -111,17 +111,17 @@ CreateSchemaCommand(CreateSchemaStmt *stmt, const char *queryString)
    /*
     * Examine the list of commands embedded in the CREATE SCHEMA command, and
     * reorganize them into a sequentially executable order with no forward
-    * references.  Note that the result is still a list of raw parsetrees
-    * --- we cannot, in general, run parse analysis on one statement until
-    * we have actually executed the prior ones.
+    * references.  Note that the result is still a list of raw parsetrees ---
+    * we cannot, in general, run parse analysis on one statement until we
+    * have actually executed the prior ones.
     */
    parsetree_list = transformCreateSchemaStmt(stmt);
 
    /*
-    * Execute each command contained in the CREATE SCHEMA.  Since the
-    * grammar allows only utility commands in CREATE SCHEMA, there is
-    * no need to pass them through parse_analyze() or the rewriter;
-    * we can just hand them straight to ProcessUtility.
+    * Execute each command contained in the CREATE SCHEMA.  Since the grammar
+    * allows only utility commands in CREATE SCHEMA, there is no need to pass
+    * them through parse_analyze() or the rewriter; we can just hand them
+    * straight to ProcessUtility.
     */
    foreach(parsetree_item, parsetree_list)
    {
@@ -131,7 +131,7 @@ CreateSchemaCommand(CreateSchemaStmt *stmt, const char *queryString)
        ProcessUtility(stmt,
                       queryString,
                       NULL,
-                      false,               /* not top level */
+                      false,   /* not top level */
                       None_Receiver,
                       NULL);
        /* make sure later steps can see the object created here */
index 619e289206be722610c124161c8f334361107657..54799447c4c9232c98d6f9606954235576a09fa0 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/sequence.c,v 1.147 2007/10/25 18:54:03 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/sequence.c,v 1.148 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1145,8 +1145,8 @@ init_params(List *options, bool isInit,
        snprintf(bufm, sizeof(bufm), INT64_FORMAT, new->max_value);
        ereport(ERROR,
                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-              errmsg("START value (%s) cannot be greater than MAXVALUE (%s)",
-                     bufs, bufm)));
+             errmsg("START value (%s) cannot be greater than MAXVALUE (%s)",
+                    bufs, bufm)));
    }
 
    /* CACHE */
@@ -1221,7 +1221,7 @@ process_owned_by(Relation seqrel, List *owned_by)
        if (seqrel->rd_rel->relowner != tablerel->rd_rel->relowner)
            ereport(ERROR,
                    (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
-           errmsg("sequence must have same owner as table it is linked to")));
+                    errmsg("sequence must have same owner as table it is linked to")));
        if (RelationGetNamespace(seqrel) != RelationGetNamespace(tablerel))
            ereport(ERROR,
                    (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
index 23f3619369018f4e58c0a2178648d36dedf19cac..285bc23496708da17f739d94dc021c8c051f415b 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.235 2007/11/11 19:22:48 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.236 2007/11/15 21:14:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -169,7 +169,7 @@ static List *MergeAttributes(List *schema, List *supers, bool istemp,
 static void MergeConstraintsIntoExisting(Relation child_rel, Relation parent_rel);
 static void MergeAttributesIntoExisting(Relation child_rel, Relation parent_rel);
 static void add_nonduplicate_constraint(Constraint *cdef,
-                                       ConstrCheck *check, int *ncheck);
+                           ConstrCheck *check, int *ncheck);
 static bool change_varattnos_walker(Node *node, const AttrNumber *newattno);
 static void StoreCatalogInheritance(Oid relationId, List *supers);
 static void StoreCatalogInheritance1(Oid relationId, Oid parentOid,
@@ -256,7 +256,7 @@ static void ATExecSetRelOptions(Relation rel, List *defList, bool isReset);
 static void ATExecEnableDisableTrigger(Relation rel, char *trigname,
                           char fires_when, bool skip_system);
 static void ATExecEnableDisableRule(Relation rel, char *rulename,
-                          char fires_when);
+                       char fires_when);
 static void ATExecAddInherit(Relation rel, RangeVar *parent);
 static void ATExecDropInherit(Relation rel, RangeVar *parent);
 static void copy_relation_data(Relation rel, SMgrRelation dst);
@@ -395,6 +395,7 @@ DefineRelation(CreateStmt *stmt, char relkind)
            if (cdef->contype == CONSTR_CHECK)
                add_nonduplicate_constraint(cdef, check, &ncheck);
        }
+
        /*
         * parse_utilcmd.c might have passed some precooked constraints too,
         * due to LIKE tab INCLUDING CONSTRAINTS
@@ -841,8 +842,8 @@ MergeAttributes(List *schema, List *supers, bool istemp,
        if (list_member_oid(parentOids, RelationGetRelid(relation)))
            ereport(ERROR,
                    (errcode(ERRCODE_DUPLICATE_TABLE),
-                    errmsg("relation \"%s\" would be inherited from more than once",
-                           parent->relname)));
+            errmsg("relation \"%s\" would be inherited from more than once",
+                   parent->relname)));
 
        parentOids = lappend_oid(parentOids, RelationGetRelid(relation));
 
@@ -888,8 +889,8 @@ MergeAttributes(List *schema, List *supers, bool istemp,
            exist_attno = findAttrByName(attributeName, inhSchema);
            if (exist_attno > 0)
            {
-               Oid     defTypeId;
-               int32   deftypmod;
+               Oid         defTypeId;
+               int32       deftypmod;
 
                /*
                 * Yes, try to merge the two column definitions. They must
@@ -1032,8 +1033,10 @@ MergeAttributes(List *schema, List *supers, bool istemp,
            if (exist_attno > 0)
            {
                ColumnDef  *def;
-               Oid defTypeId, newTypeId;
-               int32 deftypmod, newtypmod;
+               Oid         defTypeId,
+                           newTypeId;
+               int32       deftypmod,
+                           newtypmod;
 
                /*
                 * Yes, try to merge the two column definitions. They must
@@ -1632,8 +1635,8 @@ renamerel(Oid myrelid, const char *newrelname, ObjectType reltype)
    bool        relhastriggers;
 
    /*
-    * Grab an exclusive lock on the target table, index, sequence or
-    * view, which we will NOT release until end of transaction.
+    * Grab an exclusive lock on the target table, index, sequence or view,
+    * which we will NOT release until end of transaction.
     */
    targetrelation = relation_open(myrelid, AccessExclusiveLock);
 
@@ -1647,9 +1650,8 @@ renamerel(Oid myrelid, const char *newrelname, ObjectType reltype)
                        RelationGetRelationName(targetrelation))));
 
    /*
-    * For compatibility with prior releases, we don't complain if
-    * ALTER TABLE or ALTER INDEX is used to rename a sequence or
-    * view.
+    * For compatibility with prior releases, we don't complain if ALTER TABLE
+    * or ALTER INDEX is used to rename a sequence or view.
     */
    relkind = targetrelation->rd_rel->relkind;
    if (reltype == OBJECT_SEQUENCE && relkind != 'S')
@@ -1746,19 +1748,19 @@ renamerel(Oid myrelid, const char *newrelname, ObjectType reltype)
 void
 AlterTable(AlterTableStmt *stmt)
 {
-   Relation rel = relation_openrv(stmt->relation, AccessExclusiveLock);
+   Relation    rel = relation_openrv(stmt->relation, AccessExclusiveLock);
    int         expected_refcnt;
 
    /*
-    * Disallow ALTER TABLE when the current backend has any open reference
-    * to it besides the one we just got (such as an open cursor or active
-    * plan); our AccessExclusiveLock doesn't protect us against stomping on
-    * our own foot, only other people's feet!
+    * Disallow ALTER TABLE when the current backend has any open reference to
+    * it besides the one we just got (such as an open cursor or active plan);
+    * our AccessExclusiveLock doesn't protect us against stomping on our own
+    * foot, only other people's feet!
     *
-    * Note: the only case known to cause serious trouble is ALTER COLUMN TYPE,
-    * and some changes are obviously pretty benign, so this could possibly
-    * be relaxed to only error out for certain types of alterations.  But
-    * the use-case for allowing any of these things is not obvious, so we
+    * Note: the only case known to cause serious trouble is ALTER COLUMN
+    * TYPE, and some changes are obviously pretty benign, so this could
+    * possibly be relaxed to only error out for certain types of alterations.
+    * But the use-case for allowing any of these things is not obvious, so we
     * won't work hard at it for now.
     */
    expected_refcnt = rel->rd_isnailed ? 2 : 1;
@@ -1784,7 +1786,7 @@ AlterTable(AlterTableStmt *stmt)
 void
 AlterTableInternal(Oid relid, List *cmds, bool recurse)
 {
-   Relation rel = relation_open(relid, AccessExclusiveLock);
+   Relation    rel = relation_open(relid, AccessExclusiveLock);
 
    ATController(rel, cmds, recurse);
 }
@@ -2153,54 +2155,54 @@ ATExecCmd(AlteredTableInfo *tab, Relation rel, AlterTableCmd *cmd)
            ATExecSetRelOptions(rel, (List *) cmd->def, true);
            break;
 
-       case AT_EnableTrig:         /* ENABLE TRIGGER name */
-           ATExecEnableDisableTrigger(rel, cmd->name, 
-                   TRIGGER_FIRES_ON_ORIGIN, false);
+       case AT_EnableTrig:     /* ENABLE TRIGGER name */
+           ATExecEnableDisableTrigger(rel, cmd->name,
+                                      TRIGGER_FIRES_ON_ORIGIN, false);
            break;
-       case AT_EnableAlwaysTrig:   /* ENABLE ALWAYS TRIGGER name */
-           ATExecEnableDisableTrigger(rel, cmd->name, 
-                   TRIGGER_FIRES_ALWAYS, false);
+       case AT_EnableAlwaysTrig:       /* ENABLE ALWAYS TRIGGER name */
+           ATExecEnableDisableTrigger(rel, cmd->name,
+                                      TRIGGER_FIRES_ALWAYS, false);
            break;
-       case AT_EnableReplicaTrig:  /* ENABLE REPLICA TRIGGER name */
-           ATExecEnableDisableTrigger(rel, cmd->name, 
-                   TRIGGER_FIRES_ON_REPLICA, false);
+       case AT_EnableReplicaTrig:      /* ENABLE REPLICA TRIGGER name */
+           ATExecEnableDisableTrigger(rel, cmd->name,
+                                      TRIGGER_FIRES_ON_REPLICA, false);
            break;
        case AT_DisableTrig:    /* DISABLE TRIGGER name */
-           ATExecEnableDisableTrigger(rel, cmd->name, 
-                   TRIGGER_DISABLED, false);
+           ATExecEnableDisableTrigger(rel, cmd->name,
+                                      TRIGGER_DISABLED, false);
            break;
        case AT_EnableTrigAll:  /* ENABLE TRIGGER ALL */
-           ATExecEnableDisableTrigger(rel, NULL, 
-                   TRIGGER_FIRES_ON_ORIGIN, false);
+           ATExecEnableDisableTrigger(rel, NULL,
+                                      TRIGGER_FIRES_ON_ORIGIN, false);
            break;
        case AT_DisableTrigAll: /* DISABLE TRIGGER ALL */
-           ATExecEnableDisableTrigger(rel, NULL, 
-                   TRIGGER_DISABLED, false);
+           ATExecEnableDisableTrigger(rel, NULL,
+                                      TRIGGER_DISABLED, false);
            break;
        case AT_EnableTrigUser: /* ENABLE TRIGGER USER */
-           ATExecEnableDisableTrigger(rel, NULL, 
-                   TRIGGER_FIRES_ON_ORIGIN, true);
+           ATExecEnableDisableTrigger(rel, NULL,
+                                      TRIGGER_FIRES_ON_ORIGIN, true);
            break;
        case AT_DisableTrigUser:        /* DISABLE TRIGGER USER */
-           ATExecEnableDisableTrigger(rel, NULL, 
-                   TRIGGER_DISABLED, true);
+           ATExecEnableDisableTrigger(rel, NULL,
+                                      TRIGGER_DISABLED, true);
            break;
 
-       case AT_EnableRule:         /* ENABLE RULE name */
-           ATExecEnableDisableRule(rel, cmd->name, 
-                   RULE_FIRES_ON_ORIGIN);
+       case AT_EnableRule:     /* ENABLE RULE name */
+           ATExecEnableDisableRule(rel, cmd->name,
+                                   RULE_FIRES_ON_ORIGIN);
            break;
-       case AT_EnableAlwaysRule:   /* ENABLE ALWAYS RULE name */
-           ATExecEnableDisableRule(rel, cmd->name, 
-                   RULE_FIRES_ALWAYS);
+       case AT_EnableAlwaysRule:       /* ENABLE ALWAYS RULE name */
+           ATExecEnableDisableRule(rel, cmd->name,
+                                   RULE_FIRES_ALWAYS);
            break;
-       case AT_EnableReplicaRule:  /* ENABLE REPLICA RULE name */
-           ATExecEnableDisableRule(rel, cmd->name, 
-                   RULE_FIRES_ON_REPLICA);
+       case AT_EnableReplicaRule:      /* ENABLE REPLICA RULE name */
+           ATExecEnableDisableRule(rel, cmd->name,
+                                   RULE_FIRES_ON_REPLICA);
            break;
        case AT_DisableRule:    /* DISABLE RULE name */
-           ATExecEnableDisableRule(rel, cmd->name, 
-                   RULE_DISABLED);
+           ATExecEnableDisableRule(rel, cmd->name,
+                                   RULE_DISABLED);
            break;
 
        case AT_AddInherit:
@@ -2303,8 +2305,8 @@ ATRewriteTables(List **wqueue)
 
            /*
             * Swap the physical files of the old and new heaps.  Since we are
-            * generating a new heap, we can use RecentXmin for the table's new
-            * relfrozenxid because we rewrote all the tuples on
+            * generating a new heap, we can use RecentXmin for the table's
+            * new relfrozenxid because we rewrote all the tuples on
             * ATRewriteTable, so no older Xid remains on the table.
             */
            swap_relation_files(tab->relid, OIDNewHeap, RecentXmin);
@@ -3011,8 +3013,8 @@ ATExecAddColumn(AlteredTableInfo *tab, Relation rel,
        if (HeapTupleIsValid(tuple))
        {
            Form_pg_attribute childatt = (Form_pg_attribute) GETSTRUCT(tuple);
-           Oid     ctypeId;
-           int32   ctypmod;
+           Oid         ctypeId;
+           int32       ctypmod;
 
            /* Okay if child matches by type */
            ctypeId = typenameTypeId(NULL, colDef->typename, &ctypmod);
@@ -3819,8 +3821,8 @@ ATExecAddConstraint(AlteredTableInfo *tab, Relation rel, Node *newConstraint)
                /*
                 * Currently, we only expect to see CONSTR_CHECK nodes
                 * arriving here (see the preprocessing done in
-                * parse_utilcmd.c).  Use a switch anyway to make it easier
-                * to add more code later.
+                * parse_utilcmd.c).  Use a switch anyway to make it easier to
+                * add more code later.
                 */
                switch (constr->contype)
                {
@@ -4030,7 +4032,7 @@ ATAddForeignKeyConstraint(AlteredTableInfo *tab, Relation rel,
     *
     * Note that we have to be careful about the difference between the actual
     * PK column type and the opclass' declared input type, which might be
-    * only binary-compatible with it.  The declared opcintype is the right
+    * only binary-compatible with it.  The declared opcintype is the right
     * thing to probe pg_amop with.
     */
    if (numfks != numpks)
@@ -4067,10 +4069,10 @@ ATAddForeignKeyConstraint(AlteredTableInfo *tab, Relation rel,
 
        /*
         * Check it's a btree; currently this can never fail since no other
-        * index AMs support unique indexes.  If we ever did have other
-        * types of unique indexes, we'd need a way to determine which
-        * operator strategy number is equality.  (Is it reasonable to
-        * insist that every such index AM use btree's number for equality?)
+        * index AMs support unique indexes.  If we ever did have other types
+        * of unique indexes, we'd need a way to determine which operator
+        * strategy number is equality.  (Is it reasonable to insist that
+        * every such index AM use btree's number for equality?)
         */
        if (amid != BTREE_AM_OID)
            elog(ERROR, "only b-tree indexes are supported for foreign keys");
@@ -4088,8 +4090,8 @@ ATAddForeignKeyConstraint(AlteredTableInfo *tab, Relation rel,
                 eqstrategy, opcintype, opcintype, opfamily);
 
        /*
-        * Are there equality operators that take exactly the FK type?
-        * Assume we should look through any domain here.
+        * Are there equality operators that take exactly the FK type? Assume
+        * we should look through any domain here.
         */
        fktyped = getBaseType(fktype);
 
@@ -4099,21 +4101,21 @@ ATAddForeignKeyConstraint(AlteredTableInfo *tab, Relation rel,
            ffeqop = get_opfamily_member(opfamily, fktyped, fktyped,
                                         eqstrategy);
        else
-           ffeqop = InvalidOid;                /* keep compiler quiet */
+           ffeqop = InvalidOid;    /* keep compiler quiet */
 
        if (!(OidIsValid(pfeqop) && OidIsValid(ffeqop)))
        {
            /*
-            * Otherwise, look for an implicit cast from the FK type to
-            * the opcintype, and if found, use the primary equality operator.
+            * Otherwise, look for an implicit cast from the FK type to the
+            * opcintype, and if found, use the primary equality operator.
             * This is a bit tricky because opcintype might be a generic type
             * such as ANYARRAY, and so what we have to test is whether the
             * two actual column types can be concurrently cast to that type.
             * (Otherwise, we'd fail to reject combinations such as int[] and
             * point[].)
             */
-           Oid     input_typeids[2];
-           Oid     target_typeids[2];
+           Oid         input_typeids[2];
+           Oid         target_typeids[2];
 
            input_typeids[0] = pktype;
            input_typeids[1] = fktype;
@@ -5255,10 +5257,10 @@ ATPostAlterTypeParse(char *cmd, List **wqueue)
    ListCell   *list_item;
 
    /*
-    * We expect that we will get only ALTER TABLE and CREATE INDEX statements.
-    * Hence, there is no need to pass them through parse_analyze() or the
-    * rewriter, but instead we need to pass them through parse_utilcmd.c
-    * to make them ready for execution.
+    * We expect that we will get only ALTER TABLE and CREATE INDEX
+    * statements. Hence, there is no need to pass them through
+    * parse_analyze() or the rewriter, but instead we need to pass them
+    * through parse_utilcmd.c to make them ready for execution.
     */
    raw_parsetree_list = raw_parser(cmd);
    querytree_list = NIL;
@@ -5272,8 +5274,8 @@ ATPostAlterTypeParse(char *cmd, List **wqueue)
                                                        cmd));
        else if (IsA(stmt, AlterTableStmt))
            querytree_list = list_concat(querytree_list,
-                           transformAlterTableStmt((AlterTableStmt *) stmt,
-                                                   cmd));
+                            transformAlterTableStmt((AlterTableStmt *) stmt,
+                                                    cmd));
        else
            querytree_list = lappend(querytree_list, stmt);
    }
@@ -5528,7 +5530,7 @@ ATExecChangeOwner(Oid relationOid, Oid newOwnerId, bool recursing)
         */
        if (tuple_class->relkind != RELKIND_INDEX)
            AlterTypeOwnerInternal(tuple_class->reltype, newOwnerId,
-                           tuple_class->relkind == RELKIND_COMPOSITE_TYPE);
+                            tuple_class->relkind == RELKIND_COMPOSITE_TYPE);
 
        /*
         * If we are operating on a table, also change the ownership of any
@@ -5983,7 +5985,7 @@ ATExecEnableDisableTrigger(Relation rel, char *trigname,
  */
 static void
 ATExecEnableDisableRule(Relation rel, char *trigname,
-                          char fires_when)
+                       char fires_when)
 {
    EnableDisableRule(rel, trigname, fires_when);
 }
@@ -6051,8 +6053,8 @@ ATExecAddInherit(Relation child_rel, RangeVar *parent)
        if (inh->inhparent == RelationGetRelid(parent_rel))
            ereport(ERROR,
                    (errcode(ERRCODE_DUPLICATE_TABLE),
-                    errmsg("relation \"%s\" would be inherited from more than once",
-                           RelationGetRelationName(parent_rel))));
+            errmsg("relation \"%s\" would be inherited from more than once",
+                   RelationGetRelationName(parent_rel))));
        if (inh->inhseqno > inhseqno)
            inhseqno = inh->inhseqno;
    }
@@ -6063,12 +6065,12 @@ ATExecAddInherit(Relation child_rel, RangeVar *parent)
     * (In particular, this disallows making a rel inherit from itself.)
     *
     * This is not completely bulletproof because of race conditions: in
-    * multi-level inheritance trees, someone else could concurrently
-    * be making another inheritance link that closes the loop but does
-    * not join either of the rels we have locked.  Preventing that seems
-    * to require exclusive locks on the entire inheritance tree, which is
-    * a cure worse than the disease.  find_all_inheritors() will cope with
-    * circularity anyway, so don't sweat it too much.
+    * multi-level inheritance trees, someone else could concurrently be
+    * making another inheritance link that closes the loop but does not join
+    * either of the rels we have locked.  Preventing that seems to require
+    * exclusive locks on the entire inheritance tree, which is a cure worse
+    * than the disease.  find_all_inheritors() will cope with circularity
+    * anyway, so don't sweat it too much.
     */
    children = find_all_inheritors(RelationGetRelid(child_rel));
 
@@ -6095,7 +6097,7 @@ ATExecAddInherit(Relation child_rel, RangeVar *parent)
    MergeConstraintsIntoExisting(child_rel, parent_rel);
 
    /*
-    * OK, it looks valid.  Make the catalog entries that show inheritance.
+    * OK, it looks valid.  Make the catalog entries that show inheritance.
     */
    StoreCatalogInheritance1(RelationGetRelid(child_rel),
                             RelationGetRelid(parent_rel),
@@ -6189,8 +6191,8 @@ MergeAttributesIntoExisting(Relation child_rel, Relation parent_rel)
            if (attribute->attnotnull && !childatt->attnotnull)
                ereport(ERROR,
                        (errcode(ERRCODE_DATATYPE_MISMATCH),
-                     errmsg("column \"%s\" in child table must be marked NOT NULL",
-                            attributeName)));
+               errmsg("column \"%s\" in child table must be marked NOT NULL",
+                      attributeName)));
 
            /*
             * OK, bump the child column's inheritance count.  (If we fail
@@ -6345,20 +6347,20 @@ ATExecDropInherit(Relation rel, RangeVar *parent)
    bool        found = false;
 
    /*
-    * AccessShareLock on the parent is probably enough, seeing that DROP TABLE
-    * doesn't lock parent tables at all.  We need some lock since we'll be
-    * inspecting the parent's schema.
+    * AccessShareLock on the parent is probably enough, seeing that DROP
+    * TABLE doesn't lock parent tables at all.  We need some lock since we'll
+    * be inspecting the parent's schema.
     */
    parent_rel = heap_openrv(parent, AccessShareLock);
 
    /*
-    * We don't bother to check ownership of the parent table --- ownership
-    * of the child is presumed enough rights.
+    * We don't bother to check ownership of the parent table --- ownership of
+    * the child is presumed enough rights.
     */
 
    /*
-    * Find and destroy the pg_inherits entry linking the two, or error out
-    * if there is none.
+    * Find and destroy the pg_inherits entry linking the two, or error out if
+    * there is none.
     */
    catalogRelation = heap_open(InheritsRelationId, RowExclusiveLock);
    ScanKeyInit(&key[0],
@@ -6508,9 +6510,9 @@ AlterTableNamespace(RangeVar *relation, const char *newschema)
                    ereport(ERROR,
                            (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
                             errmsg("cannot move an owned sequence into another schema"),
-                            errdetail("Sequence \"%s\" is linked to table \"%s\".",
-                                      RelationGetRelationName(rel),
-                                      get_rel_name(tableId))));
+                     errdetail("Sequence \"%s\" is linked to table \"%s\".",
+                               RelationGetRelationName(rel),
+                               get_rel_name(tableId))));
            }
            break;
        case RELKIND_COMPOSITE_TYPE:
index 305da59da000af2844e9f7897ea0910704a8aea0..b212fe0823e400fd454b21ef8db7cb1a7d7a9a28 100644 (file)
@@ -37,7 +37,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/tablespace.c,v 1.50 2007/11/15 20:36:40 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/tablespace.c,v 1.51 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -223,7 +223,7 @@ CreateTableSpace(CreateTableSpaceStmt *stmt)
    if (strchr(location, '\''))
        ereport(ERROR,
                (errcode(ERRCODE_INVALID_NAME),
-              errmsg("tablespace location cannot contain single quotes")));
+                errmsg("tablespace location cannot contain single quotes")));
 
    /*
     * Allowing relative paths seems risky
@@ -356,10 +356,10 @@ CreateTableSpace(CreateTableSpaceStmt *stmt)
    }
 
    /*
-    * Force synchronous commit, to minimize the window between creating
-    * the symlink on-disk and marking the transaction committed.  It's
-    * not great that there is any window at all, but definitely we don't
-    * want to make it larger than necessary.
+    * Force synchronous commit, to minimize the window between creating the
+    * symlink on-disk and marking the transaction committed.  It's not great
+    * that there is any window at all, but definitely we don't want to make
+    * it larger than necessary.
     */
    ForceSyncCommit();
 
@@ -461,7 +461,7 @@ DropTableSpace(DropTableSpaceStmt *stmt)
    LWLockAcquire(TablespaceCreateLock, LW_EXCLUSIVE);
 
    /*
-    * Try to remove the physical infrastructure. 
+    * Try to remove the physical infrastructure.
     */
    if (!remove_tablespace_directories(tablespaceoid, false))
    {
@@ -469,7 +469,7 @@ DropTableSpace(DropTableSpaceStmt *stmt)
         * Not all files deleted?  However, there can be lingering empty files
         * in the directories, left behind by for example DROP TABLE, that
         * have been scheduled for deletion at next checkpoint (see comments
-        * in mdunlink() for details).  We could just delete them immediately,
+        * in mdunlink() for details).  We could just delete them immediately,
         * but we can't tell them apart from important data files that we
         * mustn't delete.  So instead, we force a checkpoint which will clean
         * out any lingering files, and try again.
@@ -506,10 +506,10 @@ DropTableSpace(DropTableSpaceStmt *stmt)
     */
 
    /*
-    * Force synchronous commit, to minimize the window between removing
-    * the files on-disk and marking the transaction committed.  It's
-    * not great that there is any window at all, but definitely we don't
-    * want to make it larger than necessary.
+    * Force synchronous commit, to minimize the window between removing the
+    * files on-disk and marking the transaction committed.  It's not great
+    * that there is any window at all, but definitely we don't want to make
+    * it larger than necessary.
     */
    ForceSyncCommit();
 
@@ -561,7 +561,7 @@ remove_tablespace_directories(Oid tablespaceoid, bool redo)
     *
     * If redo is true then ENOENT is a likely outcome here, and we allow it
     * to pass without comment.  In normal operation we still allow it, but
-    * with a warning.  This is because even though ProcessUtility disallows
+    * with a warning.  This is because even though ProcessUtility disallows
     * DROP TABLESPACE in a transaction block, it's possible that a previous
     * DROP failed and rolled back after removing the tablespace directories
     * and symlink.  We want to allow a new DROP attempt to succeed at
@@ -1019,12 +1019,12 @@ assign_temp_tablespaces(const char *newval, bool doit, GucSource source)
         * transaction, we'll leak a bit of TopTransactionContext memory.
         * Doesn't seem worth worrying about.
         */
-       Oid    *tblSpcs;
-       int     numSpcs;
+       Oid        *tblSpcs;
+       int         numSpcs;
        ListCell   *l;
 
        tblSpcs = (Oid *) MemoryContextAlloc(TopTransactionContext,
-                                   list_length(namelist) * sizeof(Oid));
+                                       list_length(namelist) * sizeof(Oid));
        numSpcs = 0;
        foreach(l, namelist)
        {
@@ -1112,10 +1112,10 @@ PrepareTempTablespaces(void)
        return;
 
    /*
-    * Can't do catalog access unless within a transaction.  This is just
-    * safety check in case this function is called by low-level code that
-    * could conceivably execute outside a transaction.  Note that in such
-    * scenario, fd.c will fall back to using the current database's default
+    * Can't do catalog access unless within a transaction.  This is just a
+    * safety check in case this function is called by low-level code that
+    * could conceivably execute outside a transaction.  Note that in such a
+    * scenario, fd.c will fall back to using the current database's default
     * tablespace, which should always be OK.
     */
    if (!IsTransactionState())
@@ -1136,7 +1136,7 @@ PrepareTempTablespaces(void)
 
    /* Store tablespace OIDs in an array in TopTransactionContext */
    tblSpcs = (Oid *) MemoryContextAlloc(TopTransactionContext,
-                                   list_length(namelist) * sizeof(Oid));
+                                        list_length(namelist) * sizeof(Oid));
    numSpcs = 0;
    foreach(l, namelist)
    {
@@ -1160,8 +1160,8 @@ PrepareTempTablespaces(void)
        }
 
        /*
-        * Allow explicit specification of database's default tablespace
-        * in temp_tablespaces without triggering permissions checks.
+        * Allow explicit specification of database's default tablespace in
+        * temp_tablespaces without triggering permissions checks.
         */
        if (curoid == MyDatabaseTableSpace)
        {
@@ -1241,8 +1241,8 @@ get_tablespace_name(Oid spc_oid)
 
    /*
     * Search pg_tablespace.  We use a heapscan here even though there is an
-    * index on oid, on the theory that pg_tablespace will usually have just
-    * few entries and so an indexed lookup is a waste of effort.
+    * index on oid, on the theory that pg_tablespace will usually have just a
+    * few entries and so an indexed lookup is a waste of effort.
     */
    rel = heap_open(TableSpaceRelationId, AccessShareLock);
 
index ca3b2ec2cef424638b81946187832b463ea6d03a..608293cac3b756b82b8969f66e09cf203cc5dd47 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/tsearchcmds.c,v 1.5 2007/08/22 22:30:20 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/tsearchcmds.c,v 1.6 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "utils/syscache.h"
 
 
-static void MakeConfigurationMapping(AlterTSConfigurationStmt *stmt,
-                                    HeapTuple tup, Relation relMap);
-static void DropConfigurationMapping(AlterTSConfigurationStmt *stmt,
-                                    HeapTuple tup, Relation relMap);
+static void MakeConfigurationMapping(AlterTSConfigurationStmt * stmt,
+                        HeapTuple tup, Relation relMap);
+static void DropConfigurationMapping(AlterTSConfigurationStmt * stmt,
+                        HeapTuple tup, Relation relMap);
 
 
 /* --------------------- TS Parser commands ------------------------ */
@@ -220,8 +220,8 @@ DefineTSParser(List *names, List *parameters)
        else
            ereport(ERROR,
                    (errcode(ERRCODE_SYNTAX_ERROR),
-                    errmsg("text search parser parameter \"%s\" not recognized",
-                           defel->defname)));
+                errmsg("text search parser parameter \"%s\" not recognized",
+                       defel->defname)));
    }
 
    /*
@@ -366,7 +366,7 @@ RenameTSParser(List *oldname, const char *newname)
        ereport(ERROR,
                (errcode(ERRCODE_DUPLICATE_OBJECT),
                 errmsg("text search parser \"%s\" already exists",
-                newname)));
+                       newname)));
 
    namestrcpy(&(((Form_pg_ts_parser) GETSTRUCT(tup))->prsname), newname);
    simple_heap_update(rel, &tup->t_self, tup);
@@ -421,10 +421,9 @@ verify_dictoptions(Oid tmplId, List *dictoptions)
    /*
     * Suppress this test when running in a standalone backend.  This is a
     * hack to allow initdb to create prefab dictionaries that might not
-    * actually be usable in template1's encoding (due to using external
-    * files that can't be translated into template1's encoding).  We want
-    * to create them anyway, since they might be usable later in other
-    * databases.
+    * actually be usable in template1's encoding (due to using external files
+    * that can't be translated into template1's encoding).  We want to create
+    * them anyway, since they might be usable later in other databases.
     */
    if (!IsUnderPostmaster)
        return;
@@ -445,14 +444,14 @@ verify_dictoptions(Oid tmplId, List *dictoptions)
        if (dictoptions)
            ereport(ERROR,
                    (errcode(ERRCODE_SYNTAX_ERROR),
-                    errmsg("text search template \"%s\" does not accept options",
-                           NameStr(tform->tmplname))));
+               errmsg("text search template \"%s\" does not accept options",
+                      NameStr(tform->tmplname))));
    }
    else
    {
        /*
-        * Copy the options just in case init method thinks it can scribble
-        * on them ...
+        * Copy the options just in case init method thinks it can scribble on
+        * them ...
         */
        dictoptions = copyObject(dictoptions);
 
@@ -793,8 +792,8 @@ AlterTSDictionary(AlterTSDictionaryStmt * stmt)
 
    /*
     * NOTE: because we only support altering the options, not the template,
-    * there is no need to update dependencies.  This might have to change
-    * if the options ever reference inside-the-database objects.
+    * there is no need to update dependencies.  This might have to change if
+    * the options ever reference inside-the-database objects.
     */
 
    heap_freetuple(newtup);
@@ -966,7 +965,7 @@ DefineTSTemplate(List *names, List *parameters)
    if (!superuser())
        ereport(ERROR,
                (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-                errmsg("must be superuser to create text search templates")));
+              errmsg("must be superuser to create text search templates")));
 
    /* Convert list of names to a name and namespace */
    namespaceoid = QualifiedNameGetCreationNamespace(names, &tmplname);
@@ -1048,7 +1047,7 @@ RenameTSTemplate(List *oldname, const char *newname)
    if (!superuser())
        ereport(ERROR,
                (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-                errmsg("must be superuser to rename text search templates")));
+              errmsg("must be superuser to rename text search templates")));
 
    rel = heap_open(TSTemplateRelationId, RowExclusiveLock);
 
@@ -1633,7 +1632,7 @@ AlterTSConfigurationOwner(List *name, Oid newOwnerId)
  * ALTER TEXT SEARCH CONFIGURATION - main entry point
  */
 void
-AlterTSConfiguration(AlterTSConfigurationStmt *stmt)
+AlterTSConfiguration(AlterTSConfigurationStmt * stmt)
 {
    HeapTuple   tup;
    Relation    relMap;
@@ -1727,7 +1726,7 @@ getTokenTypes(Oid prsId, List *tokennames)
  * ALTER TEXT SEARCH CONFIGURATION ADD/ALTER MAPPING
  */
 static void
-MakeConfigurationMapping(AlterTSConfigurationStmt *stmt,
+MakeConfigurationMapping(AlterTSConfigurationStmt * stmt,
                         HeapTuple tup, Relation relMap)
 {
    Oid         cfgId = HeapTupleGetOid(tup);
@@ -1889,7 +1888,7 @@ MakeConfigurationMapping(AlterTSConfigurationStmt *stmt,
  * ALTER TEXT SEARCH CONFIGURATION DROP MAPPING
  */
 static void
-DropConfigurationMapping(AlterTSConfigurationStmt *stmt,
+DropConfigurationMapping(AlterTSConfigurationStmt * stmt,
                         HeapTuple tup, Relation relMap)
 {
    Oid         cfgId = HeapTupleGetOid(tup);
@@ -1981,7 +1980,7 @@ serialize_deflist(List *deflist)
        char       *val = defGetString(defel);
 
        appendStringInfo(&buf, "%s = ",
-                    quote_identifier(defel->defname));
+                        quote_identifier(defel->defname));
        /* If backslashes appear, force E syntax to determine their handling */
        if (strchr(val, '\\'))
            appendStringInfoChar(&buf, ESCAPE_STRING_SYNTAX);
@@ -2014,7 +2013,7 @@ serialize_deflist(List *deflist)
 List *
 deserialize_deflist(Datum txt)
 {
-   text       *in = DatumGetTextP(txt); /* in case it's toasted */
+   text       *in = DatumGetTextP(txt);        /* in case it's toasted */
    List       *result = NIL;
    int         len = VARSIZE(in) - VARHDRSZ;
    char       *ptr,
@@ -2022,7 +2021,8 @@ deserialize_deflist(Datum txt)
               *workspace,
               *wsptr = NULL,
               *startvalue = NULL;
-   typedef enum {
+   typedef enum
+   {
        CS_WAITKEY,
        CS_INKEY,
        CS_INQKEY,
@@ -2031,7 +2031,7 @@ deserialize_deflist(Datum txt)
        CS_INSQVALUE,
        CS_INDQVALUE,
        CS_INWVALUE
-   } ds_state;
+   }           ds_state;
    ds_state    state = CS_WAITKEY;
 
    workspace = (char *) palloc(len + 1);       /* certainly enough room */
@@ -2075,7 +2075,7 @@ deserialize_deflist(Datum txt)
            case CS_INQKEY:
                if (*ptr == '"')
                {
-                   if (ptr+1 < endptr && ptr[1] == '"')
+                   if (ptr + 1 < endptr && ptr[1] == '"')
                    {
                        /* copy only one of the two quotes */
                        *wsptr++ = *ptr++;
@@ -2106,7 +2106,7 @@ deserialize_deflist(Datum txt)
                    startvalue = wsptr;
                    state = CS_INSQVALUE;
                }
-               else if (*ptr == 'E' && ptr+1 < endptr && ptr[1] == '\'')
+               else if (*ptr == 'E' && ptr + 1 < endptr && ptr[1] == '\'')
                {
                    ptr++;
                    startvalue = wsptr;
@@ -2127,7 +2127,7 @@ deserialize_deflist(Datum txt)
            case CS_INSQVALUE:
                if (*ptr == '\'')
                {
-                   if (ptr+1 < endptr && ptr[1] == '\'')
+                   if (ptr + 1 < endptr && ptr[1] == '\'')
                    {
                        /* copy only one of the two quotes */
                        *wsptr++ = *ptr++;
@@ -2137,13 +2137,13 @@ deserialize_deflist(Datum txt)
                        *wsptr++ = '\0';
                        result = lappend(result,
                                         makeDefElem(pstrdup(workspace),
-                                                    (Node *) makeString(pstrdup(startvalue))));
+                                 (Node *) makeString(pstrdup(startvalue))));
                        state = CS_WAITKEY;
                    }
                }
                else if (*ptr == '\\')
                {
-                   if (ptr+1 < endptr && ptr[1] == '\\')
+                   if (ptr + 1 < endptr && ptr[1] == '\\')
                    {
                        /* copy only one of the two backslashes */
                        *wsptr++ = *ptr++;
@@ -2159,7 +2159,7 @@ deserialize_deflist(Datum txt)
            case CS_INDQVALUE:
                if (*ptr == '"')
                {
-                   if (ptr+1 < endptr && ptr[1] == '"')
+                   if (ptr + 1 < endptr && ptr[1] == '"')
                    {
                        /* copy only one of the two quotes */
                        *wsptr++ = *ptr++;
@@ -2169,7 +2169,7 @@ deserialize_deflist(Datum txt)
                        *wsptr++ = '\0';
                        result = lappend(result,
                                         makeDefElem(pstrdup(workspace),
-                                                    (Node *) makeString(pstrdup(startvalue))));
+                                 (Node *) makeString(pstrdup(startvalue))));
                        state = CS_WAITKEY;
                    }
                }
@@ -2184,7 +2184,7 @@ deserialize_deflist(Datum txt)
                    *wsptr++ = '\0';
                    result = lappend(result,
                                     makeDefElem(pstrdup(workspace),
-                                                (Node *) makeString(pstrdup(startvalue))));
+                                 (Node *) makeString(pstrdup(startvalue))));
                    state = CS_WAITKEY;
                }
                else
@@ -2203,7 +2203,7 @@ deserialize_deflist(Datum txt)
        *wsptr++ = '\0';
        result = lappend(result,
                         makeDefElem(pstrdup(workspace),
-                                    (Node *) makeString(pstrdup(startvalue))));
+                                 (Node *) makeString(pstrdup(startvalue))));
    }
    else if (state != CS_WAITKEY)
        ereport(ERROR,
index 230004c59bb7c24cafc320db8b98c211e94c6814..e93f3b9a4f5dd87b004aa3b65eec550198d1c68a 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/typecmds.c,v 1.110 2007/11/11 19:22:48 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/typecmds.c,v 1.111 2007/11/15 21:14:34 momjian Exp $
  *
  * DESCRIPTION
  *   The "DefineFoo" routines take the parse tree and pick out the
@@ -120,11 +120,11 @@ DefineType(List *names, List *parameters)
    Oid         typmodoutOid = InvalidOid;
    Oid         analyzeOid = InvalidOid;
    char       *array_type;
-   Oid         array_oid;
+   Oid         array_oid;
    ListCell   *pl;
    Oid         typoid;
    Oid         resulttype;
-   Relation    pg_type;
+   Relation    pg_type;
 
    /* Convert list of names to a name and namespace */
    typeNamespace = QualifiedNameGetCreationNamespace(names, &typeName);
@@ -145,8 +145,8 @@ DefineType(List *names, List *parameters)
                            0, 0);
 
    /*
-    * If it's not a shell, see if it's an autogenerated array type,
-    * and if so rename it out of the way.
+    * If it's not a shell, see if it's an autogenerated array type, and if so
+    * rename it out of the way.
     */
    if (OidIsValid(typoid) && get_typisdefined(typoid))
    {
@@ -155,8 +155,8 @@ DefineType(List *names, List *parameters)
    }
 
    /*
-    * If it doesn't exist, create it as a shell, so that the OID is known
-    * for use in the I/O function definitions.
+    * If it doesn't exist, create it as a shell, so that the OID is known for
+    * use in the I/O function definitions.
     */
    if (!OidIsValid(typoid))
    {
@@ -404,7 +404,7 @@ DefineType(List *names, List *parameters)
                       NameListToString(analyzeName));
 
    /* Preassign array type OID so we can insert it in pg_type.typarray */
-   pg_type = heap_open(TypeRelationId, AccessShareLock);   
+   pg_type = heap_open(TypeRelationId, AccessShareLock);
    array_oid = GetNewOid(pg_type);
    heap_close(pg_type, AccessShareLock);
 
@@ -418,14 +418,14 @@ DefineType(List *names, List *parameters)
                   InvalidOid,  /* relation oid (n/a here) */
                   0,           /* relation kind (ditto) */
                   internalLength,      /* internal size */
-                  TYPTYPE_BASE,        /* type-type (base type) */
+                  TYPTYPE_BASE,    /* type-type (base type) */
                   delimiter,   /* array element delimiter */
                   inputOid,    /* input procedure */
                   outputOid,   /* output procedure */
                   receiveOid,  /* receive procedure */
                   sendOid,     /* send procedure */
                   typmodinOid, /* typmodin procedure */
-                  typmodoutOid,/* typmodout procedure */
+                  typmodoutOid,    /* typmodout procedure */
                   analyzeOid,  /* analyze procedure */
                   elemType,    /* element type ID */
                   false,       /* this is not an array type */
@@ -517,7 +517,7 @@ RemoveType(List *names, DropBehavior behavior, bool missing_ok)
        return;
    }
 
-   typeoid = typeTypeId(tup); 
+   typeoid = typeTypeId(tup);
    typ = (Form_pg_type) GETSTRUCT(tup);
 
    /* Permission check: must own type or its namespace */
@@ -564,9 +564,9 @@ RemoveTypeById(Oid typeOid)
    simple_heap_delete(relation, &tup->t_self);
 
    /*
-    * If it is an enum, delete the pg_enum entries too; we don't bother
-    * with making dependency entries for those, so it has to be done
-    * "by hand" here.
+    * If it is an enum, delete the pg_enum entries too; we don't bother with
+    * making dependency entries for those, so it has to be done "by hand"
+    * here.
     */
    if (((Form_pg_type) GETSTRUCT(tup))->typtype == TYPTYPE_ENUM)
        EnumValuesDelete(typeOid);
@@ -628,7 +628,7 @@ DefineDomain(CreateDomainStmt *stmt)
                       get_namespace_name(domainNamespace));
 
    /*
-    * Check for collision with an existing type name.  If there is one and
+    * Check for collision with an existing type name.  If there is one and
     * it's an autogenerated array, we can rename it out of the way.
     */
    old_type_oid = GetSysCacheOid(TYPENAMENSP,
@@ -651,10 +651,9 @@ DefineDomain(CreateDomainStmt *stmt)
    basetypeoid = HeapTupleGetOid(typeTup);
 
    /*
-    * Base type must be a plain base type, another domain or an enum.
-    * Domains over pseudotypes would create a security hole.  Domains
-    * over composite types might be made to work in the future, but not
-    * today.
+    * Base type must be a plain base type, another domain or an enum. Domains
+    * over pseudotypes would create a security hole.  Domains over composite
+    * types might be made to work in the future, but not today.
     */
    typtype = baseType->typtype;
    if (typtype != TYPTYPE_BASE &&
@@ -751,8 +750,8 @@ DefineDomain(CreateDomainStmt *stmt)
                    pstate = make_parsestate(NULL);
 
                    /*
-                    * Cook the constr->raw_expr into an expression.
-                    * Note: name is strictly for error message
+                    * Cook the constr->raw_expr into an expression. Note:
+                    * name is strictly for error message
                     */
                    defaultExpr = cookDefault(pstate, constr->raw_expr,
                                              basetypeoid,
@@ -760,8 +759,8 @@ DefineDomain(CreateDomainStmt *stmt)
                                              domainName);
 
                    /*
-                    * If the expression is just a NULL constant, we treat
-                    * it like not having a default.
+                    * If the expression is just a NULL constant, we treat it
+                    * like not having a default.
                     *
                     * Note that if the basetype is another domain, we'll see
                     * a CoerceToDomain expr here and not discard the default.
@@ -786,7 +785,7 @@ DefineDomain(CreateDomainStmt *stmt)
                        defaultValue =
                            deparse_expression(defaultExpr,
                                               deparse_context_for(domainName,
-                                                                  InvalidOid),
+                                                                InvalidOid),
                                               false, false);
                        defaultValueBin = nodeToString(defaultExpr);
                    }
@@ -872,8 +871,8 @@ DefineDomain(CreateDomainStmt *stmt)
                   outputProcedure,     /* output procedure */
                   receiveProcedure,    /* receive procedure */
                   sendProcedure,       /* send procedure */
-                  InvalidOid,          /* typmodin procedure - none */
-                  InvalidOid,          /* typmodout procedure - none */
+                  InvalidOid,  /* typmodin procedure - none */
+                  InvalidOid,  /* typmodout procedure - none */
                   analyzeProcedure,    /* analyze procedure */
                   typelem,     /* element type ID */
                   false,       /* this isn't an array */
@@ -961,7 +960,7 @@ RemoveDomain(List *names, DropBehavior behavior, bool missing_ok)
        return;
    }
 
-   typeoid = typeTypeId(tup); 
+   typeoid = typeTypeId(tup);
 
    /* Permission check: must own type or its namespace */
    if (!pg_type_ownercheck(typeoid, GetUserId()) &&
@@ -996,16 +995,16 @@ RemoveDomain(List *names, DropBehavior behavior, bool missing_ok)
  *     Registers a new enum.
  */
 void
-DefineEnum(CreateEnumStmt *stmt)
+DefineEnum(CreateEnumStmt * stmt)
 {
-   char   *enumName;
-   char   *enumArrayName;
-   Oid     enumNamespace;
-   Oid     enumTypeOid;
+   char       *enumName;
+   char       *enumArrayName;
+   Oid         enumNamespace;
+   Oid         enumTypeOid;
    AclResult   aclresult;
-   Oid     old_type_oid;
-   Oid     enumArrayOid;
-   Relation pg_type;
+   Oid         old_type_oid;
+   Oid         enumArrayOid;
+   Relation    pg_type;
 
    /* Convert list of names to a name and namespace */
    enumNamespace = QualifiedNameGetCreationNamespace(stmt->typename,
@@ -1018,7 +1017,7 @@ DefineEnum(CreateEnumStmt *stmt)
                       get_namespace_name(enumNamespace));
 
    /*
-    * Check for collision with an existing type name.  If there is one and
+    * Check for collision with an existing type name.  If there is one and
     * it's an autogenerated array, we can rename it out of the way.
     */
    old_type_oid = GetSysCacheOid(TYPENAMENSP,
@@ -1034,39 +1033,39 @@ DefineEnum(CreateEnumStmt *stmt)
    }
 
    /* Preassign array type OID so we can insert it in pg_type.typarray */
-   pg_type = heap_open(TypeRelationId, AccessShareLock);   
+   pg_type = heap_open(TypeRelationId, AccessShareLock);
    enumArrayOid = GetNewOid(pg_type);
    heap_close(pg_type, AccessShareLock);
 
    /* Create the pg_type entry */
-   enumTypeOid = 
-       TypeCreate(InvalidOid,      /* no predetermined type OID */
-                  enumName,        /* type name */
-                  enumNamespace,   /* namespace */
-                  InvalidOid,      /* relation oid (n/a here) */
-                  0,               /* relation kind (ditto) */
-                  sizeof(Oid),     /* internal size */
+   enumTypeOid =
+       TypeCreate(InvalidOid,  /* no predetermined type OID */
+                  enumName,    /* type name */
+                  enumNamespace,       /* namespace */
+                  InvalidOid,  /* relation oid (n/a here) */
+                  0,           /* relation kind (ditto) */
+                  sizeof(Oid), /* internal size */
                   TYPTYPE_ENUM,    /* type-type (enum type) */
                   DEFAULT_TYPDELIM,    /* array element delimiter */
-                  F_ENUM_IN,       /* input procedure */
-                  F_ENUM_OUT,      /* output procedure */
-                  F_ENUM_RECV,     /* receive procedure */
-                  F_ENUM_SEND,     /* send procedure */
-                  InvalidOid,      /* typmodin procedure - none */
-                  InvalidOid,      /* typmodout procedure - none */
-                  InvalidOid,      /* analyze procedure - default */
-                  InvalidOid,      /* element type ID */
-                  false,           /* this is not an array type */
+                  F_ENUM_IN,   /* input procedure */
+                  F_ENUM_OUT,  /* output procedure */
+                  F_ENUM_RECV, /* receive procedure */
+                  F_ENUM_SEND, /* send procedure */
+                  InvalidOid,  /* typmodin procedure - none */
+                  InvalidOid,  /* typmodout procedure - none */
+                  InvalidOid,  /* analyze procedure - default */
+                  InvalidOid,  /* element type ID */
+                  false,       /* this is not an array type */
                   enumArrayOid,    /* array type we are about to create */
-                  InvalidOid,      /* base type ID (only for domains) */
-                  NULL,            /* never a default type value */
-                  NULL,            /* binary default isn't sent either */
-                  true,            /* always passed by value */
-                  'i',             /* int alignment */
-                  'p',             /* TOAST strategy always plain */
-                  -1,              /* typMod (Domains only) */
-                  0,               /* Array dimensions of typbasetype */
-                  false);          /* Type NOT NULL */
+                  InvalidOid,  /* base type ID (only for domains) */
+                  NULL,        /* never a default type value */
+                  NULL,        /* binary default isn't sent either */
+                  true,        /* always passed by value */
+                  'i',         /* int alignment */
+                  'p',         /* TOAST strategy always plain */
+                  -1,          /* typMod (Domains only) */
+                  0,           /* Array dimensions of typbasetype */
+                  false);      /* Type NOT NULL */
 
    /* Enter the enum's values into pg_enum */
    EnumValuesCreate(enumTypeOid, stmt->vals);
@@ -1077,31 +1076,31 @@ DefineEnum(CreateEnumStmt *stmt)
    enumArrayName = makeArrayTypeName(enumName, enumNamespace);
 
    TypeCreate(enumArrayOid,    /* force assignment of this type OID */
-              enumArrayName,   /* type name */
-              enumNamespace,   /* namespace */
-              InvalidOid,      /* relation oid (n/a here) */
-              0,               /* relation kind (ditto) */
-              -1,              /* internal size (always varlena) */
+              enumArrayName,   /* type name */
+              enumNamespace,   /* namespace */
+              InvalidOid,      /* relation oid (n/a here) */
+              0,               /* relation kind (ditto) */
+              -1,              /* internal size (always varlena) */
               TYPTYPE_BASE,    /* type-type (base type) */
-              DEFAULT_TYPDELIM,    /* array element delimiter */
-              F_ARRAY_IN,      /* input procedure */
-              F_ARRAY_OUT,     /* output procedure */
-              F_ARRAY_RECV,    /* receive procedure */
-              F_ARRAY_SEND,    /* send procedure */
+              DEFAULT_TYPDELIM,    /* array element delimiter */
+              F_ARRAY_IN,      /* input procedure */
+              F_ARRAY_OUT,     /* output procedure */
+              F_ARRAY_RECV,    /* receive procedure */
+              F_ARRAY_SEND,    /* send procedure */
               InvalidOid,      /* typmodin procedure - none */
               InvalidOid,      /* typmodout procedure - none */
-              InvalidOid,      /* analyze procedure - default */
-              enumTypeOid,     /* element type ID */
+              InvalidOid,      /* analyze procedure - default */
+              enumTypeOid,     /* element type ID */
               true,            /* yes this is an array type */
               InvalidOid,      /* no further array type */
-              InvalidOid,      /* base type ID */
-              NULL,            /* never a default type value */
-              NULL,            /* binary default isn't sent either */
-              false,           /* never passed by value */
-              'i',             /* enums have align i, so do their arrays */
-              'x',             /* ARRAY is always toastable */
-              -1,              /* typMod (Domains only) */
-               0,               /* Array dimensions of typbasetype */
+              InvalidOid,      /* base type ID */
+              NULL,            /* never a default type value */
+              NULL,            /* binary default isn't sent either */
+              false,           /* never passed by value */
+              'i',             /* enums have align i, so do their arrays */
+              'x',             /* ARRAY is always toastable */
+              -1,              /* typMod (Domains only) */
+              0,               /* Array dimensions of typbasetype */
               false);          /* Type NOT NULL */
 
    pfree(enumArrayName);
@@ -1475,7 +1474,7 @@ AlterDomainDefault(List *names, Node *defaultRaw)
         * DefineDomain.)
         */
        if (defaultExpr == NULL ||
-           (IsA(defaultExpr, Const) && ((Const *) defaultExpr)->constisnull))
+           (IsA(defaultExpr, Const) &&((Const *) defaultExpr)->constisnull))
        {
            /* Default is NULL, drop it */
            new_record_nulls[Anum_pg_type_typdefaultbin - 1] = 'n';
@@ -1493,13 +1492,13 @@ AlterDomainDefault(List *names, Node *defaultRaw)
            defaultValue = deparse_expression(defaultExpr,
                                deparse_context_for(NameStr(typTup->typname),
                                                    InvalidOid),
-                                         false, false);
+                                             false, false);
 
            /*
             * Form an updated tuple with the new default and write it back.
             */
            new_record[Anum_pg_type_typdefaultbin - 1] = DirectFunctionCall1(textin,
-                               CStringGetDatum(nodeToString(defaultExpr)));
+                                CStringGetDatum(nodeToString(defaultExpr)));
 
            new_record_repl[Anum_pg_type_typdefaultbin - 1] = 'r';
            new_record[Anum_pg_type_typdefault - 1] = DirectFunctionCall1(textin,
@@ -1527,7 +1526,7 @@ AlterDomainDefault(List *names, Node *defaultRaw)
    /* Rebuild dependencies */
    GenerateTypeDependencies(typTup->typnamespace,
                             domainoid,
-                            InvalidOid, /* typrelid is n/a */
+                            InvalidOid,        /* typrelid is n/a */
                             0, /* relation kind is n/a */
                             typTup->typowner,
                             typTup->typinput,
@@ -1956,9 +1955,10 @@ get_rels_with_domain(Oid domainOid, LOCKMODE lockmode)
        if (pg_depend->classid == TypeRelationId)
        {
            Assert(get_typtype(pg_depend->objid) == TYPTYPE_DOMAIN);
+
            /*
-            * Recursively add dependent columns to the output list.  This
-            * is a bit inefficient since we may fail to combine RelToCheck
+            * Recursively add dependent columns to the output list.  This is
+            * a bit inefficient since we may fail to combine RelToCheck
             * entries when attributes of the same rel have different derived
             * domain types, but it's probably not worth improving.
             */
@@ -2365,7 +2365,7 @@ AlterTypeOwner(List *names, Oid newOwnerId)
                (errcode(ERRCODE_UNDEFINED_OBJECT),
                 errmsg("type \"%s\" does not exist",
                        TypeNameToString(typename))));
-   typeOid = typeTypeId(tup); 
+   typeOid = typeTypeId(tup);
 
    /* Copy the syscache entry so we can scribble on it below */
    newtup = heap_copytuple(tup);
@@ -2375,8 +2375,8 @@ AlterTypeOwner(List *names, Oid newOwnerId)
 
    /*
     * If it's a composite type, we need to check that it really is a
-    * free-standing composite type, and not a table's rowtype. We
-    * want people to use ALTER TABLE not ALTER TYPE for that case.
+    * free-standing composite type, and not a table's rowtype. We want people
+    * to use ALTER TABLE not ALTER TYPE for that case.
     */
    if (typTup->typtype == TYPTYPE_COMPOSITE &&
        get_rel_relkind(typTup->typrelid) != RELKIND_COMPOSITE_TYPE)
@@ -2423,8 +2423,8 @@ AlterTypeOwner(List *names, Oid newOwnerId)
        }
 
        /*
-        * If it's a composite type, invoke ATExecChangeOwner so that we
-        * fix up the pg_class entry properly.  That will call back to
+        * If it's a composite type, invoke ATExecChangeOwner so that we fix
+        * up the pg_class entry properly.  That will call back to
         * AlterTypeOwnerInternal to take care of the pg_type entry(s).
         */
        if (typTup->typtype == TYPTYPE_COMPOSITE)
@@ -2458,7 +2458,7 @@ AlterTypeOwner(List *names, Oid newOwnerId)
 /*
  * AlterTypeOwnerInternal - change type owner unconditionally
  *
- * This is currently only used to propagate ALTER TABLE/TYPE OWNER to a 
+ * This is currently only used to propagate ALTER TABLE/TYPE OWNER to a
  * table's rowtype or an array type, and to implement REASSIGN OWNED BY.
  * It assumes the caller has done all needed checks.  The function will
  * automatically recurse to an array type if the type has one.
@@ -2547,7 +2547,7 @@ AlterTypeNamespace(List *names, const char *newschema)
  * Caller must have already checked privileges.
  *
  * The function automatically recurses to process the type's array type,
- * if any.  isImplicitArray should be TRUE only when doing this internal
+ * if any. isImplicitArray should be TRUE only when doing this internal
  * recursion (outside callers must never try to move an array type directly).
  *
  * If errorOnTableType is TRUE, the function errors out if the type is
index 55ce0dbade908797cc6a054a5c2c20d1892779cc..c0d58d33ea89e7bd3cd7171ed12e64e6a6d9aed8 100644 (file)
@@ -13,7 +13,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/vacuum.c,v 1.360 2007/10/24 20:55:36 alvherre Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/vacuum.c,v 1.361 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -592,19 +592,19 @@ vacuum_set_xid_limits(int freeze_min_age, bool sharedRel,
    /*
     * We can always ignore processes running lazy vacuum.  This is because we
     * use these values only for deciding which tuples we must keep in the
-    * tables.  Since lazy vacuum doesn't write its XID anywhere, it's
-    * safe to ignore it.  In theory it could be problematic to ignore lazy
-    * vacuums on a full vacuum, but keep in mind that only one vacuum process
-    * can be working on a particular table at any time, and that each vacuum
-    * is always an independent transaction.
+    * tables.  Since lazy vacuum doesn't write its XID anywhere, it's safe to
+    * ignore it.  In theory it could be problematic to ignore lazy vacuums on
+    * a full vacuum, but keep in mind that only one vacuum process can be
+    * working on a particular table at any time, and that each vacuum is
+    * always an independent transaction.
     */
    *oldestXmin = GetOldestXmin(sharedRel, true);
 
    Assert(TransactionIdIsNormal(*oldestXmin));
 
    /*
-    * Determine the minimum freeze age to use: as specified by the caller,
-    * or vacuum_freeze_min_age, but in any case not more than half
+    * Determine the minimum freeze age to use: as specified by the caller, or
+    * vacuum_freeze_min_age, but in any case not more than half
     * autovacuum_freeze_max_age, so that autovacuums to prevent XID
     * wraparound won't occur too frequently.
     */
@@ -623,8 +623,8 @@ vacuum_set_xid_limits(int freeze_min_age, bool sharedRel,
 
    /*
     * If oldestXmin is very far back (in practice, more than
-    * autovacuum_freeze_max_age / 2 XIDs old), complain and force a
-    * minimum freeze age of zero.
+    * autovacuum_freeze_max_age / 2 XIDs old), complain and force a minimum
+    * freeze age of zero.
     */
    safeLimit = ReadNewTransactionId() - autovacuum_freeze_max_age;
    if (!TransactionIdIsNormal(safeLimit))
@@ -758,7 +758,7 @@ vac_update_relstats(Oid relid, BlockNumber num_pages, double num_tuples,
  *     advance pg_database.datfrozenxid, also try to truncate pg_clog.
  *
  *     We violate transaction semantics here by overwriting the database's
- *     existing pg_database tuple with the new value.  This is reasonably
+ *     existing pg_database tuple with the new value.  This is reasonably
  *     safe since the new value is correct whether or not this transaction
  *     commits.  As with vac_update_relstats, this avoids leaving dead tuples
  *     behind after a VACUUM.
@@ -777,7 +777,7 @@ vac_update_datfrozenxid(void)
    bool        dirty = false;
 
    /*
-    * Initialize the "min" calculation with RecentGlobalXmin.  Any
+    * Initialize the "min" calculation with RecentGlobalXmin.  Any
     * not-yet-committed pg_class entries for new tables must have
     * relfrozenxid at least this high, because any other open xact must have
     * RecentXmin >= its PGPROC.xmin >= our RecentGlobalXmin; see
@@ -848,8 +848,7 @@ vac_update_datfrozenxid(void)
 
    /*
     * If we were able to advance datfrozenxid, mark the flat-file copy of
-    * pg_database for update at commit, and see if we can truncate
-    * pg_clog.
+    * pg_database for update at commit, and see if we can truncate pg_clog.
     */
    if (dirty)
    {
@@ -893,10 +892,10 @@ vac_truncate_clog(TransactionId frozenXID)
     * inserted by CREATE DATABASE.  Any such entry will have a copy of some
     * existing DB's datfrozenxid, and that source DB cannot be ours because
     * of the interlock against copying a DB containing an active backend.
-    * Hence the new entry will not reduce the minimum.  Also, if two
-    * VACUUMs concurrently modify the datfrozenxid's of different databases,
-    * the worst possible outcome is that pg_clog is not truncated as
-    * aggressively as it could be.
+    * Hence the new entry will not reduce the minimum.  Also, if two VACUUMs
+    * concurrently modify the datfrozenxid's of different databases, the
+    * worst possible outcome is that pg_clog is not truncated as aggressively
+    * as it could be.
     */
    relation = heap_open(DatabaseRelationId, AccessShareLock);
 
@@ -989,13 +988,13 @@ vacuum_rel(Oid relid, VacuumStmt *vacstmt, char expected_relkind)
         *
         * We can furthermore set the PROC_IN_VACUUM flag, which lets other
         * concurrent VACUUMs know that they can ignore this one while
-        * determining their OldestXmin.  (The reason we don't set it
-        * during a full VACUUM is exactly that we may have to run user-
-        * defined functions for functional indexes, and we want to make sure
-        * that if they use the snapshot set above, any tuples it requires
-        * can't get removed from other tables.  An index function that
-        * depends on the contents of other tables is arguably broken, but we
-        * won't break it here by violating transaction semantics.)
+        * determining their OldestXmin.  (The reason we don't set it during a
+        * full VACUUM is exactly that we may have to run user- defined
+        * functions for functional indexes, and we want to make sure that if
+        * they use the snapshot set above, any tuples it requires can't get
+        * removed from other tables.  An index function that depends on the
+        * contents of other tables is arguably broken, but we won't break it
+        * here by violating transaction semantics.)
         *
         * Note: this flag remains set until CommitTransaction or
         * AbortTransaction.  We don't want to clear it until we reset
@@ -1168,8 +1167,8 @@ full_vacuum_rel(Relation onerel, VacuumStmt *vacstmt)
 
    /*
     * Flush any previous async-commit transactions.  This does not guarantee
-    * that we will be able to set hint bits for tuples they inserted, but
-    * it improves the probability, especially in simple sequential-commands
+    * that we will be able to set hint bits for tuples they inserted, but it
+    * improves the probability, especially in simple sequential-commands
     * cases.  See scan_heap() and repair_frag() for more about this.
     */
    XLogAsyncCommitFlush();
@@ -1319,10 +1318,11 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
         * dirty.  To ensure that invalid data doesn't get written to disk, we
         * must take exclusive buffer lock wherever we potentially modify
         * pages.  In fact, we insist on cleanup lock so that we can safely
-        * call heap_page_prune().  (This might be overkill, since the bgwriter
-        * pays no attention to individual tuples, but on the other hand it's
-        * unlikely that the bgwriter has this particular page pinned at this
-        * instant.  So violating the coding rule would buy us little anyway.)
+        * call heap_page_prune().  (This might be overkill, since the
+        * bgwriter pays no attention to individual tuples, but on the other
+        * hand it's unlikely that the bgwriter has this particular page
+        * pinned at this instant.  So violating the coding rule would buy us
+        * little anyway.)
         */
        LockBufferForCleanup(buf);
 
@@ -1365,7 +1365,7 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
            continue;
        }
 
-       /* 
+       /*
         * Prune all HOT-update chains in this page.
         *
         * We use the redirect_move option so that redirecting line pointers
@@ -1377,8 +1377,8 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
                                         true, false);
 
        /*
-        * Now scan the page to collect vacuumable items and check for
-        * tuples requiring freezing.
+        * Now scan the page to collect vacuumable items and check for tuples
+        * requiring freezing.
         */
        nfrozen = 0;
        notup = true;
@@ -1393,9 +1393,9 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
 
            /*
             * Collect un-used items too - it's possible to have indexes
-            * pointing here after crash.  (That's an ancient comment and
-            * is likely obsolete with WAL, but we might as well continue
-            * to check for such problems.)
+            * pointing here after crash.  (That's an ancient comment and is
+            * likely obsolete with WAL, but we might as well continue to
+            * check for such problems.)
             */
            if (!ItemIdIsUsed(itemid))
            {
@@ -1406,9 +1406,9 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
 
            /*
             * DEAD item pointers are to be vacuumed normally; but we don't
-            * count them in tups_vacuumed, else we'd be double-counting
-            * (at least in the common case where heap_page_prune() just
-            * freed up a non-HOT tuple).
+            * count them in tups_vacuumed, else we'd be double-counting (at
+            * least in the common case where heap_page_prune() just freed up
+            * a non-HOT tuple).
             */
            if (ItemIdIsDead(itemid))
            {
@@ -1433,12 +1433,13 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
                        !OidIsValid(HeapTupleGetOid(&tuple)))
                        elog(WARNING, "relation \"%s\" TID %u/%u: OID is invalid",
                             relname, blkno, offnum);
+
                    /*
                     * The shrinkage phase of VACUUM FULL requires that all
                     * live tuples have XMIN_COMMITTED set --- see comments in
                     * repair_frag()'s walk-along-page loop.  Use of async
                     * commit may prevent HeapTupleSatisfiesVacuum from
-                    * setting the bit for a recently committed tuple.  Rather
+                    * setting the bit for a recently committed tuple.  Rather
                     * than trying to handle this corner case, we just give up
                     * and don't shrink.
                     */
@@ -1448,30 +1449,31 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
                        ereport(LOG,
                                (errmsg("relation \"%s\" TID %u/%u: XMIN_COMMITTED not set for transaction %u --- cannot shrink relation",
                                        relname, blkno, offnum,
-                                       HeapTupleHeaderGetXmin(tuple.t_data))));
+                                    HeapTupleHeaderGetXmin(tuple.t_data))));
                        do_shrinking = false;
                    }
                    break;
                case HEAPTUPLE_DEAD:
+
                    /*
                     * Ordinarily, DEAD tuples would have been removed by
                     * heap_page_prune(), but it's possible that the tuple
                     * state changed since heap_page_prune() looked.  In
                     * particular an INSERT_IN_PROGRESS tuple could have
                     * changed to DEAD if the inserter aborted.  So this
-                    * cannot be considered an error condition, though it
-                    * does suggest that someone released a lock early.
+                    * cannot be considered an error condition, though it does
+                    * suggest that someone released a lock early.
                     *
                     * If the tuple is HOT-updated then it must only be
                     * removed by a prune operation; so we keep it as if it
                     * were RECENTLY_DEAD, and abandon shrinking. (XXX is it
-                    * worth trying to make the shrinking code smart enough
-                    * to handle this?  It's an unusual corner case.)
+                    * worth trying to make the shrinking code smart enough to
+                    * handle this?  It's an unusual corner case.)
                     *
                     * DEAD heap-only tuples can safely be removed if they
                     * aren't themselves HOT-updated, although this is a bit
-                    * inefficient since we'll uselessly try to remove
-                    * index entries for them.
+                    * inefficient since we'll uselessly try to remove index
+                    * entries for them.
                     */
                    if (HeapTupleIsHotUpdated(&tuple))
                    {
@@ -1484,7 +1486,8 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
                    }
                    else
                    {
-                       tupgone = true;     /* we can delete the tuple */
+                       tupgone = true; /* we can delete the tuple */
+
                        /*
                         * We need not require XMIN_COMMITTED or
                         * XMAX_COMMITTED to be set, since we will remove the
@@ -1502,8 +1505,8 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
                    nkeep += 1;
 
                    /*
-                    * As with the LIVE case, shrinkage requires XMIN_COMMITTED
-                    * to be set.
+                    * As with the LIVE case, shrinkage requires
+                    * XMIN_COMMITTED to be set.
                     */
                    if (do_shrinking &&
                        !(tuple.t_data->t_infomask & HEAP_XMIN_COMMITTED))
@@ -1511,7 +1514,7 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
                        ereport(LOG,
                                (errmsg("relation \"%s\" TID %u/%u: XMIN_COMMITTED not set for transaction %u --- cannot shrink relation",
                                        relname, blkno, offnum,
-                                       HeapTupleHeaderGetXmin(tuple.t_data))));
+                                    HeapTupleHeaderGetXmin(tuple.t_data))));
                        do_shrinking = false;
                    }
 
@@ -1542,15 +1545,15 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
                     * This should not happen, since we hold exclusive lock on
                     * the relation; shouldn't we raise an error?  (Actually,
                     * it can happen in system catalogs, since we tend to
-                    * release write lock before commit there.)  As above,
-                    * we can't apply repair_frag() if the tuple state is
+                    * release write lock before commit there.)  As above, we
+                    * can't apply repair_frag() if the tuple state is
                     * uncertain.
                     */
                    if (do_shrinking)
                        ereport(LOG,
                                (errmsg("relation \"%s\" TID %u/%u: InsertTransactionInProgress %u --- cannot shrink relation",
                                        relname, blkno, offnum,
-                                       HeapTupleHeaderGetXmin(tuple.t_data))));
+                                    HeapTupleHeaderGetXmin(tuple.t_data))));
                    do_shrinking = false;
                    break;
                case HEAPTUPLE_DELETE_IN_PROGRESS:
@@ -1559,15 +1562,15 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
                     * This should not happen, since we hold exclusive lock on
                     * the relation; shouldn't we raise an error?  (Actually,
                     * it can happen in system catalogs, since we tend to
-                    * release write lock before commit there.)  As above,
-                    * we can't apply repair_frag() if the tuple state is
+                    * release write lock before commit there.)  As above, we
+                    * can't apply repair_frag() if the tuple state is
                     * uncertain.
                     */
                    if (do_shrinking)
                        ereport(LOG,
                                (errmsg("relation \"%s\" TID %u/%u: DeleteTransactionInProgress %u --- cannot shrink relation",
                                        relname, blkno, offnum,
-                                       HeapTupleHeaderGetXmax(tuple.t_data))));
+                                    HeapTupleHeaderGetXmax(tuple.t_data))));
                    do_shrinking = false;
                    break;
                default:
@@ -1615,8 +1618,8 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
                    max_tlen = tuple.t_len;
 
                /*
-                * Each non-removable tuple must be checked to see if it
-                * needs freezing.
+                * Each non-removable tuple must be checked to see if it needs
+                * freezing.
                 */
                if (heap_freeze_tuple(tuple.t_data, FreezeLimit,
                                      InvalidBuffer))
@@ -1996,11 +1999,12 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
                    if (i >= vacpage->offsets_free)     /* not found */
                    {
                        vacpage->offsets[vacpage->offsets_free++] = offnum;
+
                        /*
                         * If this is not a heap-only tuple, there must be an
                         * index entry for this item which will be removed in
-                        * the index cleanup. Decrement the keep_indexed_tuples
-                        * count to remember this.
+                        * the index cleanup. Decrement the
+                        * keep_indexed_tuples count to remember this.
                         */
                        if (!HeapTupleHeaderIsHeapOnly(tuple.t_data))
                            keep_indexed_tuples--;
@@ -2010,11 +2014,12 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
                else
                {
                    vacpage->offsets[vacpage->offsets_free++] = offnum;
+
                    /*
                     * If this is not a heap-only tuple, there must be an
-                    * index entry for this item which will be removed in
-                    * the index cleanup. Decrement the keep_indexed_tuples
-                    * count to remember this.
+                    * index entry for this item which will be removed in the
+                    * index cleanup. Decrement the keep_indexed_tuples count
+                    * to remember this.
                     */
                    if (!HeapTupleHeaderIsHeapOnly(tuple.t_data))
                        keep_indexed_tuples--;
@@ -2051,10 +2056,10 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
             * Also, because we distinguish DEAD and RECENTLY_DEAD tuples
             * using OldestXmin, which is a rather coarse test, it is quite
             * possible to have an update chain in which a tuple we think is
-            * RECENTLY_DEAD links forward to one that is definitely DEAD.
-            * In such a case the RECENTLY_DEAD tuple must actually be dead,
-            * but it seems too complicated to try to make VACUUM remove it.
-            * We treat each contiguous set of RECENTLY_DEAD tuples as a
+            * RECENTLY_DEAD links forward to one that is definitely DEAD. In
+            * such a case the RECENTLY_DEAD tuple must actually be dead, but
+            * it seems too complicated to try to make VACUUM remove it. We
+            * treat each contiguous set of RECENTLY_DEAD tuples as a
             * separately movable chain, ignoring any intervening DEAD ones.
             */
            if (((tuple.t_data->t_infomask & HEAP_UPDATED) &&
@@ -2096,11 +2101,11 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
                 * If this tuple is in the begin/middle of the chain then we
                 * have to move to the end of chain.  As with any t_ctid
                 * chase, we have to verify that each new tuple is really the
-                * descendant of the tuple we came from; however, here we
-                * need even more than the normal amount of paranoia.
-                * If t_ctid links forward to a tuple determined to be DEAD,
-                * then depending on where that tuple is, it might already
-                * have been removed, and perhaps even replaced by a MOVED_IN
+                * descendant of the tuple we came from; however, here we need
+                * even more than the normal amount of paranoia. If t_ctid
+                * links forward to a tuple determined to be DEAD, then
+                * depending on where that tuple is, it might already have
+                * been removed, and perhaps even replaced by a MOVED_IN
                 * tuple.  We don't want to include any DEAD tuples in the
                 * chain, so we have to recheck HeapTupleSatisfiesVacuum.
                 */
@@ -2116,7 +2121,7 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
                    OffsetNumber nextOffnum;
                    ItemId      nextItemid;
                    HeapTupleHeader nextTdata;
-                   HTSV_Result nextTstatus;
+                   HTSV_Result nextTstatus;
 
                    nextTid = tp.t_data->t_ctid;
                    priorXmax = HeapTupleHeaderGetXmax(tp.t_data);
@@ -2148,10 +2153,11 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
                        ReleaseBuffer(nextBuf);
                        break;
                    }
+
                    /*
-                    * Must check for DEAD or MOVED_IN tuple, too.  This
-                    * could potentially update hint bits, so we'd better
-                    * hold the buffer content lock.
+                    * Must check for DEAD or MOVED_IN tuple, too.  This could
+                    * potentially update hint bits, so we'd better hold the
+                    * buffer content lock.
                     */
                    LockBuffer(nextBuf, BUFFER_LOCK_SHARE);
                    nextTstatus = HeapTupleSatisfiesVacuum(nextTdata,
@@ -2266,7 +2272,7 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
                    }
                    tp.t_self = vtlp->this_tid;
                    Pbuf = ReadBufferWithStrategy(onerel,
-                                   ItemPointerGetBlockNumber(&(tp.t_self)),
+                                    ItemPointerGetBlockNumber(&(tp.t_self)),
                                                  vac_strategy);
                    Ppage = BufferGetPage(Pbuf);
                    Pitemid = PageGetItemId(Ppage,
@@ -2350,7 +2356,7 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
                    /* Get page to move from */
                    tuple.t_self = vtmove[ti].tid;
                    Cbuf = ReadBufferWithStrategy(onerel,
-                                ItemPointerGetBlockNumber(&(tuple.t_self)),
+                                 ItemPointerGetBlockNumber(&(tuple.t_self)),
                                                  vac_strategy);
 
                    /* Get page to move to */
@@ -2375,10 +2381,10 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
                                     &ec, &Ctid, vtmove[ti].cleanVpd);
 
                    /*
-                    * If the tuple we are moving is a heap-only tuple,
-                    * this move will generate an additional index entry,
-                    * so increment the rel_indexed_tuples count.
-                    */ 
+                    * If the tuple we are moving is a heap-only tuple, this
+                    * move will generate an additional index entry, so
+                    * increment the rel_indexed_tuples count.
+                    */
                    if (HeapTupleHeaderIsHeapOnly(tuple.t_data))
                        vacrelstats->rel_indexed_tuples++;
 
@@ -2398,22 +2404,22 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
                        /*
                         * When we move tuple chains, we may need to move
                         * tuples from a block that we haven't yet scanned in
-                        * the outer walk-along-the-relation loop. Note that we
-                        * can't be moving a tuple from a block that we have
-                        * already scanned because if such a tuple exists, then
-                        * we must have moved the chain along with that tuple
-                        * when we scanned that block. IOW the test of
-                        * (Cbuf != buf) guarantees that the tuple we are
-                        * looking at right now is in a block which is yet to
-                        * be scanned.
+                        * the outer walk-along-the-relation loop. Note that
+                        * we can't be moving a tuple from a block that we
+                        * have already scanned because if such a tuple
+                        * exists, then we must have moved the chain along
+                        * with that tuple when we scanned that block. IOW the
+                        * test of (Cbuf != buf) guarantees that the tuple we
+                        * are looking at right now is in a block which is yet
+                        * to be scanned.
                         *
                         * We maintain two counters to correctly count the
                         * moved-off tuples from blocks that are not yet
                         * scanned (keep_tuples) and how many of them have
                         * index pointers (keep_indexed_tuples).  The main
-                        * reason to track the latter is to help verify
-                        * that indexes have the expected number of entries
-                        * when all the dust settles.
+                        * reason to track the latter is to help verify that
+                        * indexes have the expected number of entries when
+                        * all the dust settles.
                         */
                        if (!HeapTupleHeaderIsHeapOnly(tuple.t_data))
                            keep_indexed_tuples++;
@@ -2467,9 +2473,9 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
                             dst_buffer, dst_page, dst_vacpage, &ec);
 
            /*
-            * If the tuple we are moving is a heap-only tuple,
-            * this move will generate an additional index entry,
-            * so increment the rel_indexed_tuples count.
+            * If the tuple we are moving is a heap-only tuple, this move will
+            * generate an additional index entry, so increment the
+            * rel_indexed_tuples count.
             */
            if (HeapTupleHeaderIsHeapOnly(tuple.t_data))
                vacrelstats->rel_indexed_tuples++;
@@ -2538,11 +2544,12 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
                    {
                        vacpage->offsets[vacpage->offsets_free++] = off;
                        Assert(keep_tuples > 0);
+
                        /*
                         * If this is not a heap-only tuple, there must be an
                         * index entry for this item which will be removed in
-                        * the index cleanup. Decrement the keep_indexed_tuples
-                        * count to remember this.
+                        * the index cleanup. Decrement the
+                        * keep_indexed_tuples count to remember this.
                         */
                        if (!HeapTupleHeaderIsHeapOnly(htup))
                            keep_indexed_tuples--;
@@ -2594,14 +2601,14 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
         * exclusive access to the relation.  However, that would require a
         * lot of extra code to close and re-open the relation, indexes, etc.
         * For now, a quick hack: record status of current transaction as
-        * committed, and continue.  We force the commit to be synchronous
-        * so that it's down to disk before we truncate.  (Note: tqual.c
-        * knows that VACUUM FULL always uses sync commit, too.)  The
-        * transaction continues to be shown as running in the ProcArray.
+        * committed, and continue.  We force the commit to be synchronous so
+        * that it's down to disk before we truncate.  (Note: tqual.c knows
+        * that VACUUM FULL always uses sync commit, too.)  The transaction
+        * continues to be shown as running in the ProcArray.
         *
-        * XXX This desperately needs to be revisited.  Any failure after
-        * this point will result in a PANIC "cannot abort transaction nnn,
-        * it was already committed"!
+        * XXX This desperately needs to be revisited.  Any failure after this
+        * point will result in a PANIC "cannot abort transaction nnn, it was
+        * already committed"!
         */
        ForceSyncCommit();
        (void) RecordTransactionCommit();
index d3aa277ce83b064c5508c41f479cc7ace864d785..3f7032fbcdcd70d3210df04a2124ee603b606375 100644 (file)
@@ -13,7 +13,7 @@
  * We are willing to use at most maintenance_work_mem memory space to keep
  * track of dead tuples.  We initially allocate an array of TIDs of that size,
  * with an upper limit that depends on table size (this limit ensures we don't
- * allocate a huge area uselessly for vacuuming small tables).  If the array
+ * allocate a huge area uselessly for vacuuming small tables). If the array
  * threatens to overflow, we suspend the heap scan phase and perform a pass of
  * index cleanup and page compaction, then resume the heap scan with an empty
  * TID array.
@@ -38,7 +38,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.101 2007/09/26 20:16:28 alvherre Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.102 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -157,7 +157,7 @@ lazy_vacuum_rel(Relation onerel, VacuumStmt *vacstmt,
    int         nindexes;
    BlockNumber possibly_freeable;
    PGRUsage    ru0;
-   TimestampTz starttime = 0;
+   TimestampTz starttime = 0;
 
    pg_rusage_init(&ru0);
 
@@ -212,10 +212,10 @@ lazy_vacuum_rel(Relation onerel, VacuumStmt *vacstmt,
                (errmsg("relation \"%s.%s\" contains more than \"max_fsm_pages\" pages with useful free space",
                        get_namespace_name(RelationGetNamespace(onerel)),
                        RelationGetRelationName(onerel)),
-                errhint((vacrelstats->tot_free_pages > vacrelstats->rel_pages * 0.20 ?
-                           /* Only suggest VACUUM FULL if 20% free */
-                           "Consider using VACUUM FULL on this relation or increasing the configuration parameter \"max_fsm_pages\"." :
-                           "Consider increasing the configuration parameter \"max_fsm_pages\"."))));
+       errhint((vacrelstats->tot_free_pages > vacrelstats->rel_pages * 0.20 ?
+       /* Only suggest VACUUM FULL if 20% free */
+                "Consider using VACUUM FULL on this relation or increasing the configuration parameter \"max_fsm_pages\"." :
+                "Consider increasing the configuration parameter \"max_fsm_pages\"."))));
 
    /* Update statistics in pg_class */
    vac_update_relstats(RelationGetRelid(onerel),
@@ -243,8 +243,8 @@ lazy_vacuum_rel(Relation onerel, VacuumStmt *vacstmt,
                            get_namespace_name(RelationGetNamespace(onerel)),
                            RelationGetRelationName(onerel),
                            vacrelstats->num_index_scans,
-                           vacrelstats->pages_removed, vacrelstats->rel_pages,
-                           vacrelstats->tuples_deleted, vacrelstats->rel_tuples, 
+                         vacrelstats->pages_removed, vacrelstats->rel_pages,
+                       vacrelstats->tuples_deleted, vacrelstats->rel_tuples,
                            pg_rusage_show(&ru0))));
    }
 }
@@ -350,9 +350,9 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
             * page that someone has just added to the relation and not yet
             * been able to initialize (see RelationGetBufferForTuple). To
             * protect against that, release the buffer lock, grab the
-            * relation extension lock momentarily, and re-lock the buffer.
-            * If the page is still uninitialized by then, it must be left
-            * over from a crashed backend, and we can initialize it.
+            * relation extension lock momentarily, and re-lock the buffer. If
+            * the page is still uninitialized by then, it must be left over
+            * from a crashed backend, and we can initialize it.
             *
             * We don't really need the relation lock when this is a new or
             * temp relation, but it's probably not worth the code space to
@@ -389,7 +389,7 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
            continue;
        }
 
-       /* 
+       /*
         * Prune all HOT-update chains in this page.
         *
         * We count tuples removed by the pruning step as removed by VACUUM.
@@ -398,8 +398,8 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
                                         false, false);
 
        /*
-        * Now scan the page to collect vacuumable items and check for
-        * tuples requiring freezing.
+        * Now scan the page to collect vacuumable items and check for tuples
+        * requiring freezing.
         */
        nfrozen = 0;
        hastup = false;
@@ -421,19 +421,19 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
            }
 
            /* Redirect items mustn't be touched */
-           if (ItemIdIsRedirected(itemid))
-           {
+           if (ItemIdIsRedirected(itemid))
+           {
                hastup = true;  /* this page won't be truncatable */
-               continue;
-           }
+               continue;
+           }
 
-           ItemPointerSet(&(tuple.t_self), blkno, offnum);
+           ItemPointerSet(&(tuple.t_self), blkno, offnum);
 
            /*
             * DEAD item pointers are to be vacuumed normally; but we don't
-            * count them in tups_vacuumed, else we'd be double-counting
-            * (at least in the common case where heap_page_prune() just
-            * freed up a non-HOT tuple).
+            * count them in tups_vacuumed, else we'd be double-counting (at
+            * least in the common case where heap_page_prune() just freed up
+            * a non-HOT tuple).
             */
            if (ItemIdIsDead(itemid))
            {
@@ -451,6 +451,7 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
            switch (HeapTupleSatisfiesVacuum(tuple.t_data, OldestXmin, buf))
            {
                case HEAPTUPLE_DEAD:
+
                    /*
                     * Ordinarily, DEAD tuples would have been removed by
                     * heap_page_prune(), but it's possible that the tuple
@@ -460,17 +461,17 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
                     * cannot be considered an error condition.
                     *
                     * If the tuple is HOT-updated then it must only be
-                    * removed by a prune operation; so we keep it just as
-                    * if it were RECENTLY_DEAD.  Also, if it's a heap-only
-                    * tuple, we choose to keep it, because it'll be a
-                    * lot cheaper to get rid of it in the next pruning pass
-                    * than to treat it like an indexed tuple.
+                    * removed by a prune operation; so we keep it just as if
+                    * it were RECENTLY_DEAD.  Also, if it's a heap-only
+                    * tuple, we choose to keep it, because it'll be a lot
+                    * cheaper to get rid of it in the next pruning pass than
+                    * to treat it like an indexed tuple.
                     */
                    if (HeapTupleIsHotUpdated(&tuple) ||
                        HeapTupleIsHeapOnly(&tuple))
                        nkeep += 1;
                    else
-                       tupgone = true;     /* we can delete the tuple */
+                       tupgone = true; /* we can delete the tuple */
                    break;
                case HEAPTUPLE_LIVE:
                    /* Tuple is good --- but let's do some validity checks */
@@ -509,8 +510,8 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
                hastup = true;
 
                /*
-                * Each non-removable tuple must be checked to see if it
-                * needs freezing.  Note we already have exclusive buffer lock.
+                * Each non-removable tuple must be checked to see if it needs
+                * freezing.  Note we already have exclusive buffer lock.
                 */
                if (heap_freeze_tuple(tuple.t_data, FreezeLimit,
                                      InvalidBuffer))
@@ -864,11 +865,11 @@ lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats)
    RelationTruncate(onerel, new_rel_pages);
 
    /*
-    * Note: once we have truncated, we *must* keep the exclusive lock
-    * until commit.  The sinval message that will be sent at commit
-    * (as a result of vac_update_relstats()) must be received by other
-    * backends, to cause them to reset their rd_targblock values, before
-    * they can safely access the table again.
+    * Note: once we have truncated, we *must* keep the exclusive lock until
+    * commit.  The sinval message that will be sent at commit (as a result of
+    * vac_update_relstats()) must be received by other backends, to cause
+    * them to reset their rd_targblock values, before they can safely access
+    * the table again.
     */
 
    /*
@@ -933,9 +934,8 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 
        /*
         * We don't insert a vacuum delay point here, because we have an
-        * exclusive lock on the table which we want to hold for as short
-        * a time as possible.  We still need to check for interrupts
-        * however.
+        * exclusive lock on the table which we want to hold for as short a
+        * time as possible.  We still need to check for interrupts however.
         */
        CHECK_FOR_INTERRUPTS();
 
index 8a04a975ca14a833d41e43f9240a3cd92c77c99d..e4ea35ab53b8bec409891107bcfbd5e1b0dd0b31 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/variable.c,v 1.121 2007/08/04 01:26:53 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/variable.c,v 1.122 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -463,16 +463,16 @@ assign_log_timezone(const char *value, bool doit, GucSource source)
    {
        /*
         * UNKNOWN is the value shown as the "default" for log_timezone in
-        * guc.c.  We interpret it as being a complete no-op; we don't
-        * change the timezone setting.  Note that if there is a known
-        * timezone setting, we will return that name rather than UNKNOWN
-        * as the canonical spelling.
+        * guc.c.  We interpret it as being a complete no-op; we don't change
+        * the timezone setting.  Note that if there is a known timezone
+        * setting, we will return that name rather than UNKNOWN as the
+        * canonical spelling.
         *
-        * During GUC initialization, since the timezone library isn't set
-        * up yet, pg_get_timezone_name will return NULL and we will leave
-        * the setting as UNKNOWN.  If this isn't overridden from the
-        * config file then pg_timezone_initialize() will eventually
-        * select a default value from the environment.
+        * During GUC initialization, since the timezone library isn't set up
+        * yet, pg_get_timezone_name will return NULL and we will leave the
+        * setting as UNKNOWN.  If this isn't overridden from the config file
+        * then pg_timezone_initialize() will eventually select a default
+        * value from the environment.
         */
        if (doit)
        {
index a6ef94dcefeb8ed8115ce2939d1d8cfbf48e9e43..810d70b37f900635738028b248f7b2ace3878bd7 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/view.c,v 1.102 2007/08/27 03:36:08 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/view.c,v 1.103 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -273,6 +273,7 @@ DefineViewRules(Oid viewOid, Query *viewParse, bool replace)
                       true,
                       replace,
                       list_make1(viewParse));
+
    /*
     * Someday: automatic ON INSERT, etc
     */
@@ -356,8 +357,8 @@ DefineView(ViewStmt *stmt, const char *queryString)
    RangeVar   *view;
 
    /*
-    * Run parse analysis to convert the raw parse tree to a Query.  Note
-    * this also acquires sufficient locks on the source table(s).
+    * Run parse analysis to convert the raw parse tree to a Query.  Note this
+    * also acquires sufficient locks on the source table(s).
     *
     * Since parse analysis scribbles on its input, copy the raw parse tree;
     * this ensures we don't corrupt a prepared statement, for example.
@@ -404,14 +405,14 @@ DefineView(ViewStmt *stmt, const char *queryString)
 
    /*
     * If the user didn't explicitly ask for a temporary view, check whether
-    * we need one implicitly.  We allow TEMP to be inserted automatically
-    * as long as the CREATE command is consistent with that --- no explicit
+    * we need one implicitly.  We allow TEMP to be inserted automatically as
+    * long as the CREATE command is consistent with that --- no explicit
     * schema name.
     */
    view = stmt->view;
    if (!view->istemp && isViewOnTempTable(viewParse))
    {
-       view = copyObject(view); /* don't corrupt original command */
+       view = copyObject(view);    /* don't corrupt original command */
        view->istemp = true;
        ereport(NOTICE,
                (errmsg("view \"%s\" will be a temporary view",
index 3b48a5cf18bd7aceeea742d61dd6338fcf56f334..9c96d67efd841a0bdd9ad9cecf1320f705e53175 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/executor/execAmi.c,v 1.92 2007/02/19 02:23:11 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/execAmi.c,v 1.93 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -337,12 +337,13 @@ ExecSupportsMarkRestore(NodeTag plantype)
            return true;
 
        case T_Result:
+
            /*
-            * T_Result only supports mark/restore if it has a child plan
-            * that does, so we do not have enough information to give a
-            * really correct answer.  However, for current uses it's
-            * enough to always say "false", because this routine is not
-            * asked about gating Result plans, only base-case Results.
+            * T_Result only supports mark/restore if it has a child plan that
+            * does, so we do not have enough information to give a really
+            * correct answer.  However, for current uses it's enough to
+            * always say "false", because this routine is not asked about
+            * gating Result plans, only base-case Results.
             */
            return false;
 
index 72bccd4438e2ec343ad25146ff3891f0088fa75e..9f63d99d65981ded0d6e919306117fc45c165f8a 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/executor/execCurrent.c,v 1.2 2007/06/11 22:22:40 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/execCurrent.c,v 1.3 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -36,7 +36,7 @@ static ScanState *search_plan_tree(PlanState *node, Oid table_oid);
  * valid updatable scan of the specified table.
  */
 bool
-execCurrentOf(CurrentOfExpr *cexpr,
+execCurrentOf(CurrentOfExpr * cexpr,
              ExprContext *econtext,
              Oid table_oid,
              ItemPointer current_tid)
@@ -44,10 +44,10 @@ execCurrentOf(CurrentOfExpr *cexpr,
    char       *cursor_name;
    char       *table_name;
    Portal      portal;
-   QueryDesc *queryDesc;
+   QueryDesc  *queryDesc;
    ScanState  *scanstate;
-   bool    lisnull;
-   Oid     tuple_tableoid;
+   bool        lisnull;
+   Oid         tuple_tableoid;
    ItemPointer tuple_tid;
 
    /* Get the cursor name --- may have to look up a parameter reference */
@@ -85,24 +85,23 @@ execCurrentOf(CurrentOfExpr *cexpr,
                        cursor_name)));
 
    /*
-    * Dig through the cursor's plan to find the scan node.  Fail if it's
-    * not there or buried underneath aggregation.
+    * Dig through the cursor's plan to find the scan node.  Fail if it's not
+    * there or buried underneath aggregation.
     */
    scanstate = search_plan_tree(ExecGetActivePlanTree(queryDesc),
                                 table_oid);
    if (!scanstate)
        ereport(ERROR,
                (errcode(ERRCODE_INVALID_CURSOR_STATE),
-                errmsg("cursor \"%s\" is not a simply updatable scan of table \"%s\"",
-                       cursor_name, table_name)));
+       errmsg("cursor \"%s\" is not a simply updatable scan of table \"%s\"",
+              cursor_name, table_name)));
 
    /*
-    * The cursor must have a current result row: per the SQL spec, it's
-    * an error if not.  We test this at the top level, rather than at
-    * the scan node level, because in inheritance cases any one table
-    * scan could easily not be on a row.  We want to return false, not
-    * raise error, if the passed-in table OID is for one of the inactive
-    * scans.
+    * The cursor must have a current result row: per the SQL spec, it's an
+    * error if not.  We test this at the top level, rather than at the scan
+    * node level, because in inheritance cases any one table scan could
+    * easily not be on a row.  We want to return false, not raise error, if
+    * the passed-in table OID is for one of the inactive scans.
     */
    if (portal->atStart || portal->atEnd)
        ereport(ERROR,
@@ -182,37 +181,37 @@ search_plan_tree(PlanState *node, Oid table_oid)
        case T_IndexScanState:
        case T_BitmapHeapScanState:
        case T_TidScanState:
-       {
-           ScanState *sstate = (ScanState *) node;
+           {
+               ScanState  *sstate = (ScanState *) node;
 
-           if (RelationGetRelid(sstate->ss_currentRelation) == table_oid)
-               return sstate;
-           break;
-       }
+               if (RelationGetRelid(sstate->ss_currentRelation) == table_oid)
+                   return sstate;
+               break;
+           }
 
            /*
             * For Append, we must look through the members; watch out for
             * multiple matches (possible if it was from UNION ALL)
             */
        case T_AppendState:
-       {
-           AppendState *astate = (AppendState *) node;
-           ScanState *result = NULL;
-           int     i;
-
-           for (i = 0; i < astate->as_nplans; i++)
            {
-               ScanState *elem = search_plan_tree(astate->appendplans[i],
-                                                  table_oid);
-
-               if (!elem)
-                   continue;
-               if (result)
-                   return NULL;                /* multiple matches */
-               result = elem;
+               AppendState *astate = (AppendState *) node;
+               ScanState  *result = NULL;
+               int         i;
+
+               for (i = 0; i < astate->as_nplans; i++)
+               {
+                   ScanState  *elem = search_plan_tree(astate->appendplans[i],
+                                                       table_oid);
+
+                   if (!elem)
+                       continue;
+                   if (result)
+                       return NULL;    /* multiple matches */
+                   result = elem;
+               }
+               return result;
            }
-           return result;
-       }
 
            /*
             * Result and Limit can be descended through (these are safe
index 485f6ddc1eed8b9bf6ddca68f98670071d778a4a..90136981fb5c7ba2e4126f4281c1e756be893053 100644 (file)
@@ -26,7 +26,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/execMain.c,v 1.298 2007/09/20 17:56:31 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/execMain.c,v 1.299 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -95,7 +95,7 @@ static TupleTableSlot *EvalPlanQualNext(EState *estate);
 static void EndEvalPlanQual(EState *estate);
 static void ExecCheckRTPerms(List *rangeTable);
 static void ExecCheckRTEPerms(RangeTblEntry *rte);
-static void ExecCheckXactReadOnly(PlannedStmt *plannedstmt);
+static void ExecCheckXactReadOnly(PlannedStmt * plannedstmt);
 static void EvalPlanQualStart(evalPlanQual *epq, EState *estate,
                  evalPlanQual *priorepq);
 static void EvalPlanQualStop(evalPlanQual *epq);
@@ -411,7 +411,7 @@ ExecCheckRTEPerms(RangeTblEntry *rte)
  * Check that the query does not imply any writes to non-temp tables.
  */
 static void
-ExecCheckXactReadOnly(PlannedStmt *plannedstmt)
+ExecCheckXactReadOnly(PlannedStmt * plannedstmt)
 {
    ListCell   *l;
 
@@ -536,8 +536,8 @@ InitPlan(QueryDesc *queryDesc, int eflags)
 
    /*
     * Have to lock relations selected FOR UPDATE/FOR SHARE before we
-    * initialize the plan tree, else we'd be doing a lock upgrade.
-    * While we are at it, build the ExecRowMark list.
+    * initialize the plan tree, else we'd be doing a lock upgrade. While we
+    * are at it, build the ExecRowMark list.
     */
    estate->es_rowMarks = NIL;
    foreach(l, plannedstmt->rowMarks)
@@ -573,7 +573,7 @@ InitPlan(QueryDesc *queryDesc, int eflags)
        /* Add slots for subplans and initplans */
        foreach(l, plannedstmt->subplans)
        {
-           Plan   *subplan = (Plan *) lfirst(l);
+           Plan       *subplan = (Plan *) lfirst(l);
 
            nSlots += ExecCountSlotsNode(subplan);
        }
@@ -602,23 +602,22 @@ InitPlan(QueryDesc *queryDesc, int eflags)
    estate->es_useEvalPlan = false;
 
    /*
-    * Initialize private state information for each SubPlan.  We must do
-    * this before running ExecInitNode on the main query tree, since
+    * Initialize private state information for each SubPlan.  We must do this
+    * before running ExecInitNode on the main query tree, since
     * ExecInitSubPlan expects to be able to find these entries.
     */
    Assert(estate->es_subplanstates == NIL);
    i = 1;                      /* subplan indices count from 1 */
    foreach(l, plannedstmt->subplans)
    {
-       Plan   *subplan = (Plan *) lfirst(l);
-       PlanState *subplanstate;
-       int     sp_eflags;
+       Plan       *subplan = (Plan *) lfirst(l);
+       PlanState  *subplanstate;
+       int         sp_eflags;
 
        /*
-        * A subplan will never need to do BACKWARD scan nor MARK/RESTORE.
-        * If it is a parameterless subplan (not initplan), we suggest that it
-        * be prepared to handle REWIND efficiently; otherwise there is no
-        * need.
+        * A subplan will never need to do BACKWARD scan nor MARK/RESTORE. If
+        * it is a parameterless subplan (not initplan), we suggest that it be
+        * prepared to handle REWIND efficiently; otherwise there is no need.
         */
        sp_eflags = eflags & EXEC_FLAG_EXPLAIN_ONLY;
        if (bms_is_member(i, plannedstmt->rewindPlanIDs))
@@ -714,11 +713,12 @@ InitPlan(QueryDesc *queryDesc, int eflags)
                    j = ExecInitJunkFilter(subplan->plan->targetlist,
                            resultRelInfo->ri_RelationDesc->rd_att->tdhasoid,
                                  ExecAllocTableSlot(estate->es_tupleTable));
+
                    /*
-                    * Since it must be UPDATE/DELETE, there had better be
-                    * "ctid" junk attribute in the tlist ... but ctid could
-                    * be at a different resno for each result relation.
-                    * We look up the ctid resnos now and save them in the
+                    * Since it must be UPDATE/DELETE, there had better be a
+                    * "ctid" junk attribute in the tlist ... but ctid could
+                    * be at a different resno for each result relation. We
+                    * look up the ctid resnos now and save them in the
                     * junkfilters.
                     */
                    j->jf_junkAttNo = ExecFindJunkAttribute(j, "ctid");
@@ -813,7 +813,7 @@ InitPlan(QueryDesc *queryDesc, int eflags)
            rliststate = (List *) ExecInitExpr((Expr *) rlist, planstate);
            resultRelInfo->ri_projectReturning =
                ExecBuildProjectionInfo(rliststate, econtext, slot,
-                                      resultRelInfo->ri_RelationDesc->rd_att);
+                                    resultRelInfo->ri_RelationDesc->rd_att);
            resultRelInfo++;
        }
    }
@@ -843,8 +843,8 @@ initResultRelInfo(ResultRelInfo *resultRelInfo,
                  bool doInstrument)
 {
    /*
-    * Check valid relkind ... parser and/or planner should have noticed
-    * this already, but let's make sure.
+    * Check valid relkind ... parser and/or planner should have noticed this
+    * already, but let's make sure.
     */
    switch (resultRelationDesc->rd_rel->relkind)
    {
@@ -928,7 +928,7 @@ initResultRelInfo(ResultRelInfo *resultRelInfo,
  * if so it doesn't matter which one we pick.)  However, it is sometimes
  * necessary to fire triggers on other relations; this happens mainly when an
  * RI update trigger queues additional triggers on other relations, which will
- * be processed in the context of the outer query.  For efficiency's sake,
+ * be processed in the context of the outer query. For efficiency's sake,
  * we want to have a ResultRelInfo for those triggers too; that can avoid
  * repeated re-opening of the relation.  (It also provides a way for EXPLAIN
  * ANALYZE to report the runtimes of such triggers.)  So we make additional
@@ -964,15 +964,15 @@ ExecGetTriggerResultRel(EState *estate, Oid relid)
 
    /*
     * Open the target relation's relcache entry.  We assume that an
-    * appropriate lock is still held by the backend from whenever the
-    * trigger event got queued, so we need take no new lock here.
+    * appropriate lock is still held by the backend from whenever the trigger
+    * event got queued, so we need take no new lock here.
     */
    rel = heap_open(relid, NoLock);
 
    /*
-    * Make the new entry in the right context.  Currently, we don't need
-    * any index information in ResultRelInfos used only for triggers,
-    * so tell initResultRelInfo it's a DELETE.
+    * Make the new entry in the right context.  Currently, we don't need any
+    * index information in ResultRelInfos used only for triggers, so tell
+    * initResultRelInfo it's a DELETE.
     */
    oldcontext = MemoryContextSwitchTo(estate->es_query_cxt);
    rInfo = makeNode(ResultRelInfo);
@@ -1080,7 +1080,7 @@ ExecEndPlan(PlanState *planstate, EState *estate)
     */
    foreach(l, estate->es_subplanstates)
    {
-       PlanState *subplanstate = (PlanState *) lfirst(l);
+       PlanState  *subplanstate = (PlanState *) lfirst(l);
 
        ExecEndNode(subplanstate);
    }
@@ -2398,15 +2398,15 @@ EvalPlanQualStart(evalPlanQual *epq, EState *estate, evalPlanQual *priorepq)
        ExecCreateTupleTable(estate->es_tupleTable->size);
 
    /*
-    * Initialize private state information for each SubPlan.  We must do
-    * this before running ExecInitNode on the main query tree, since
+    * Initialize private state information for each SubPlan.  We must do this
+    * before running ExecInitNode on the main query tree, since
     * ExecInitSubPlan expects to be able to find these entries.
     */
    Assert(epqstate->es_subplanstates == NIL);
    foreach(l, estate->es_plannedstmt->subplans)
    {
-       Plan   *subplan = (Plan *) lfirst(l);
-       PlanState *subplanstate;
+       Plan       *subplan = (Plan *) lfirst(l);
+       PlanState  *subplanstate;
 
        subplanstate = ExecInitNode(subplan, epqstate, 0);
 
@@ -2429,7 +2429,7 @@ EvalPlanQualStart(evalPlanQual *epq, EState *estate, evalPlanQual *priorepq)
  *
  * This is a cut-down version of ExecutorEnd(); basically we want to do most
  * of the normal cleanup, but *not* close result relations (which we are
- * just sharing from the outer query).  We do, however, have to close any
+ * just sharing from the outer query). We do, however, have to close any
  * trigger target relations that got opened, since those are not shared.
  */
 static void
@@ -2445,7 +2445,7 @@ EvalPlanQualStop(evalPlanQual *epq)
 
    foreach(l, epqstate->es_subplanstates)
    {
-       PlanState *subplanstate = (PlanState *) lfirst(l);
+       PlanState  *subplanstate = (PlanState *) lfirst(l);
 
        ExecEndNode(subplanstate);
    }
index 53ddc6581975d2768a10e8f0294c2eafadf2c85c..8c917c8418978b8406557192c1262348d56507a2 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/execQual.c,v 1.223 2007/10/24 18:37:08 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/execQual.c,v 1.224 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -65,11 +65,11 @@ static Datum ExecEvalAggref(AggrefExprState *aggref,
 static Datum ExecEvalVar(ExprState *exprstate, ExprContext *econtext,
            bool *isNull, ExprDoneCond *isDone);
 static Datum ExecEvalScalarVar(ExprState *exprstate, ExprContext *econtext,
-           bool *isNull, ExprDoneCond *isDone);
+                 bool *isNull, ExprDoneCond *isDone);
 static Datum ExecEvalWholeRowVar(ExprState *exprstate, ExprContext *econtext,
                    bool *isNull, ExprDoneCond *isDone);
 static Datum ExecEvalWholeRowSlow(ExprState *exprstate, ExprContext *econtext,
-                   bool *isNull, ExprDoneCond *isDone);
+                    bool *isNull, ExprDoneCond *isDone);
 static Datum ExecEvalConst(ExprState *exprstate, ExprContext *econtext,
              bool *isNull, ExprDoneCond *isDone);
 static Datum ExecEvalParam(ExprState *exprstate, ExprContext *econtext,
@@ -121,8 +121,8 @@ static Datum ExecEvalCoalesce(CoalesceExprState *coalesceExpr,
 static Datum ExecEvalMinMax(MinMaxExprState *minmaxExpr,
               ExprContext *econtext,
               bool *isNull, ExprDoneCond *isDone);
-static Datum ExecEvalXml(XmlExprState *xmlExpr, ExprContext *econtext,
-                        bool *isNull, ExprDoneCond *isDone);
+static Datum ExecEvalXml(XmlExprState * xmlExpr, ExprContext *econtext,
+           bool *isNull, ExprDoneCond *isDone);
 static Datum ExecEvalNullIf(FuncExprState *nullIfExpr,
               ExprContext *econtext,
               bool *isNull, ExprDoneCond *isDone);
@@ -147,14 +147,14 @@ static Datum ExecEvalFieldStore(FieldStoreState *fstate,
 static Datum ExecEvalRelabelType(GenericExprState *exprstate,
                    ExprContext *econtext,
                    bool *isNull, ExprDoneCond *isDone);
-static Datum ExecEvalCoerceViaIO(CoerceViaIOState *iostate,
-                                ExprContext *econtext,
-                                bool *isNull, ExprDoneCond *isDone);
-static Datum ExecEvalArrayCoerceExpr(ArrayCoerceExprState *astate,
-                                    ExprContext *econtext,
-                                    bool *isNull, ExprDoneCond *isDone);
+static Datum ExecEvalCoerceViaIO(CoerceViaIOState * iostate,
+                   ExprContext *econtext,
+                   bool *isNull, ExprDoneCond *isDone);
+static Datum ExecEvalArrayCoerceExpr(ArrayCoerceExprState * astate,
+                       ExprContext *econtext,
+                       bool *isNull, ExprDoneCond *isDone);
 static Datum ExecEvalCurrentOfExpr(ExprState *exprstate, ExprContext *econtext,
-           bool *isNull, ExprDoneCond *isDone);
+                     bool *isNull, ExprDoneCond *isDone);
 
 
 /* ----------------------------------------------------------------
@@ -489,21 +489,21 @@ ExecEvalVar(ExprState *exprstate, ExprContext *econtext,
         * Scalar variable case.
         *
         * If it's a user attribute, check validity (bogus system attnums will
-        * be caught inside slot_getattr).  What we have to check for here
-        * is the possibility of an attribute having been changed in type
-        * since the plan tree was created.  Ideally the plan would get
-        * invalidated and not re-used, but until that day arrives, we need
-        * defenses.  Fortunately it's sufficient to check once on the first
-        * time through.
+        * be caught inside slot_getattr).  What we have to check for here is
+        * the possibility of an attribute having been changed in type since
+        * the plan tree was created.  Ideally the plan would get invalidated
+        * and not re-used, but until that day arrives, we need defenses.
+        * Fortunately it's sufficient to check once on the first time
+        * through.
         *
         * Note: we allow a reference to a dropped attribute.  slot_getattr
         * will force a NULL result in such cases.
         *
         * Note: ideally we'd check typmod as well as typid, but that seems
-        * impractical at the moment: in many cases the tupdesc will have
-        * been generated by ExecTypeFromTL(), and that can't guarantee to
-        * generate an accurate typmod in all cases, because some expression
-        * node types don't carry typmod.
+        * impractical at the moment: in many cases the tupdesc will have been
+        * generated by ExecTypeFromTL(), and that can't guarantee to generate
+        * an accurate typmod in all cases, because some expression node types
+        * don't carry typmod.
         */
        if (attnum > 0)
        {
@@ -522,9 +522,9 @@ ExecEvalVar(ExprState *exprstate, ExprContext *econtext,
                if (variable->vartype != attr->atttypid)
                    ereport(ERROR,
                            (errmsg("attribute %d has wrong type", attnum),
-                            errdetail("Table has type %s, but query expects %s.",
-                                      format_type_be(attr->atttypid),
-                                      format_type_be(variable->vartype))));
+                       errdetail("Table has type %s, but query expects %s.",
+                                 format_type_be(attr->atttypid),
+                                 format_type_be(variable->vartype))));
            }
        }
 
@@ -570,10 +570,10 @@ ExecEvalVar(ExprState *exprstate, ExprContext *econtext,
             * looking at the output of a subplan that includes resjunk
             * columns.  (XXX it would be nice to verify that the extra
             * columns are all marked resjunk, but we haven't got access to
-            * the subplan targetlist here...)  Resjunk columns should always
+            * the subplan targetlist here...)  Resjunk columns should always
             * be at the end of a targetlist, so it's sufficient to ignore
-            * them here; but we need to use ExecEvalWholeRowSlow to get
-            * rid of them in the eventual output tuples.
+            * them here; but we need to use ExecEvalWholeRowSlow to get rid
+            * of them in the eventual output tuples.
             */
            var_tupdesc = lookup_rowtype_tupdesc(variable->vartype, -1);
 
@@ -592,7 +592,7 @@ ExecEvalVar(ExprState *exprstate, ExprContext *econtext,
                Form_pg_attribute sattr = slot_tupdesc->attrs[i];
 
                if (vattr->atttypid == sattr->atttypid)
-                   continue;           /* no worries */
+                   continue;   /* no worries */
                if (!vattr->attisdropped)
                    ereport(ERROR,
                            (errcode(ERRCODE_DATATYPE_MISMATCH),
@@ -737,12 +737,12 @@ ExecEvalWholeRowSlow(ExprState *exprstate, ExprContext *econtext,
    *isNull = false;
 
    /*
-    * Currently, the only case handled here is stripping of trailing
-    * resjunk fields, which we do in a slightly chintzy way by just
-    * adjusting the tuple's natts header field.  Possibly there will someday
-    * be a need for more-extensive rearrangements, in which case it'd
-    * be worth disassembling and reassembling the tuple (perhaps use a
-    * JunkFilter for that?)
+    * Currently, the only case handled here is stripping of trailing resjunk
+    * fields, which we do in a slightly chintzy way by just adjusting the
+    * tuple's natts header field.  Possibly there will someday be a need for
+    * more-extensive rearrangements, in which case it'd be worth
+    * disassembling and reassembling the tuple (perhaps use a JunkFilter for
+    * that?)
     */
    Assert(variable->vartype != RECORDOID);
    var_tupdesc = lookup_rowtype_tupdesc(variable->vartype, -1);
@@ -2577,9 +2577,9 @@ ExecEvalArray(ArrayExprState *astate, ExprContext *econtext,
 
        /*
         * If all items were null or empty arrays, return an empty array;
-        * otherwise, if some were and some weren't, raise error.  (Note:
-        * we must special-case this somehow to avoid trying to generate
-        * a 1-D array formed from empty arrays.  It's not ideal...)
+        * otherwise, if some were and some weren't, raise error.  (Note: we
+        * must special-case this somehow to avoid trying to generate a 1-D
+        * array formed from empty arrays.  It's not ideal...)
         */
        if (haveempty)
        {
@@ -2844,17 +2844,17 @@ ExecEvalMinMax(MinMaxExprState *minmaxExpr, ExprContext *econtext,
  * ----------------------------------------------------------------
  */
 static Datum
-ExecEvalXml(XmlExprState *xmlExpr, ExprContext *econtext,
+ExecEvalXml(XmlExprState * xmlExpr, ExprContext *econtext,
            bool *isNull, ExprDoneCond *isDone)
 {
-   XmlExpr        *xexpr = (XmlExpr *) xmlExpr->xprstate.expr;
-   text           *result;
-   StringInfoData  buf;
-   Datum           value;
-   bool            isnull;
-   ListCell       *arg;
+   XmlExpr    *xexpr = (XmlExpr *) xmlExpr->xprstate.expr;
+   text       *result;
+   StringInfoData buf;
+   Datum       value;
+   bool        isnull;
+   ListCell   *arg;
    ListCell   *narg;
-   int             i;
+   int         i;
 
    if (isDone)
        *isDone = ExprSingleResult;
@@ -2864,11 +2864,11 @@ ExecEvalXml(XmlExprState *xmlExpr, ExprContext *econtext,
    {
        case IS_XMLCONCAT:
            {
-               List *values = NIL;
+               List       *values = NIL;
 
                foreach(arg, xmlExpr->args)
                {
-                   ExprState   *e = (ExprState *) lfirst(arg);
+                   ExprState  *e = (ExprState *) lfirst(arg);
 
                    value = ExecEvalExpr(e, econtext, &isnull, NULL);
                    if (!isnull)
@@ -2888,8 +2888,8 @@ ExecEvalXml(XmlExprState *xmlExpr, ExprContext *econtext,
            i = 0;
            forboth(arg, xmlExpr->named_args, narg, xexpr->arg_names)
            {
-               ExprState   *e = (ExprState *) lfirst(arg);
-               char    *argname = strVal(lfirst(narg));
+               ExprState  *e = (ExprState *) lfirst(arg);
+               char       *argname = strVal(lfirst(narg));
 
                value = ExecEvalExpr(e, econtext, &isnull, NULL);
                if (!isnull)
@@ -2912,8 +2912,8 @@ ExecEvalXml(XmlExprState *xmlExpr, ExprContext *econtext,
 
        case IS_XMLPARSE:
            {
-               ExprState   *e;
-               text        *data;
+               ExprState  *e;
+               text       *data;
                bool        preserve_whitespace;
 
                /* arguments are known to be text, bool */
@@ -2941,8 +2941,8 @@ ExecEvalXml(XmlExprState *xmlExpr, ExprContext *econtext,
 
        case IS_XMLPI:
            {
-               ExprState   *e;
-               text        *arg;
+               ExprState  *e;
+               text       *arg;
 
                /* optional argument is known to be text */
                Assert(list_length(xmlExpr->args) <= 1);
@@ -2968,9 +2968,9 @@ ExecEvalXml(XmlExprState *xmlExpr, ExprContext *econtext,
 
        case IS_XMLROOT:
            {
-               ExprState   *e;
-               xmltype     *data;
-               text        *version;
+               ExprState  *e;
+               xmltype    *data;
+               text       *version;
                int         standalone;
 
                /* arguments are known to be xml, text, int */
@@ -3003,7 +3003,7 @@ ExecEvalXml(XmlExprState *xmlExpr, ExprContext *econtext,
 
        case IS_XMLSERIALIZE:
            {
-               ExprState   *e;
+               ExprState  *e;
 
                /* argument type is known to be xml */
                Assert(list_length(xmlExpr->args) == 1);
@@ -3021,7 +3021,7 @@ ExecEvalXml(XmlExprState *xmlExpr, ExprContext *econtext,
 
        case IS_DOCUMENT:
            {
-               ExprState   *e;
+               ExprState  *e;
 
                /* optional argument is known to be xml */
                Assert(list_length(xmlExpr->args) == 1);
@@ -3043,7 +3043,7 @@ ExecEvalXml(XmlExprState *xmlExpr, ExprContext *econtext,
        result = NULL;
    else
    {
-       int     len = buf.len + VARHDRSZ;
+       int         len = buf.len + VARHDRSZ;
 
        result = palloc(len);
        SET_VARSIZE(result, len);
@@ -3431,9 +3431,9 @@ ExecEvalFieldSelect(FieldSelectState *fstate,
 
    /* Check for dropped column, and force a NULL result if so */
    if (fieldnum <= 0 ||
-       fieldnum > tupDesc->natts)  /* should never happen */
-               elog(ERROR, "attribute number %d exceeds number of columns %d",
-                    fieldnum, tupDesc->natts);
+       fieldnum > tupDesc->natts)      /* should never happen */
+       elog(ERROR, "attribute number %d exceeds number of columns %d",
+            fieldnum, tupDesc->natts);
    attr = tupDesc->attrs[fieldnum - 1];
    if (attr->attisdropped)
    {
@@ -3587,7 +3587,7 @@ ExecEvalRelabelType(GenericExprState *exprstate,
  * ----------------------------------------------------------------
  */
 static Datum
-ExecEvalCoerceViaIO(CoerceViaIOState *iostate,
+ExecEvalCoerceViaIO(CoerceViaIOState * iostate,
                    ExprContext *econtext,
                    bool *isNull, ExprDoneCond *isDone)
 {
@@ -3621,7 +3621,7 @@ ExecEvalCoerceViaIO(CoerceViaIOState *iostate,
  * ----------------------------------------------------------------
  */
 static Datum
-ExecEvalArrayCoerceExpr(ArrayCoerceExprState *astate,
+ExecEvalArrayCoerceExpr(ArrayCoerceExprState * astate,
                        ExprContext *econtext,
                        bool *isNull, ExprDoneCond *isDone)
 {
@@ -3820,7 +3820,7 @@ ExecInitExpr(Expr *node, PlanState *parent)
                    if (naggs != aggstate->numaggs)
                        ereport(ERROR,
                                (errcode(ERRCODE_GROUPING_ERROR),
-                                errmsg("aggregate function calls cannot be nested")));
+                       errmsg("aggregate function calls cannot be nested")));
                }
                else
                {
@@ -3980,8 +3980,8 @@ ExecInitExpr(Expr *node, PlanState *parent)
            {
                CoerceViaIO *iocoerce = (CoerceViaIO *) node;
                CoerceViaIOState *iostate = makeNode(CoerceViaIOState);
-               Oid     iofunc;
-               bool    typisvarlena;
+               Oid         iofunc;
+               bool        typisvarlena;
 
                iostate->xprstate.evalfunc = (ExprStateEvalFunc) ExecEvalCoerceViaIO;
                iostate->arg = ExecInitExpr(iocoerce->arg, parent);
@@ -4268,11 +4268,11 @@ ExecInitExpr(Expr *node, PlanState *parent)
            break;
        case T_XmlExpr:
            {
-               XmlExpr         *xexpr = (XmlExpr *) node;
-               XmlExprState    *xstate = makeNode(XmlExprState);
-               List            *outlist;
-               ListCell        *arg;
-               int             i;
+               XmlExpr    *xexpr = (XmlExpr *) node;
+               XmlExprState *xstate = makeNode(XmlExprState);
+               List       *outlist;
+               ListCell   *arg;
+               int         i;
 
                xstate->xprstate.evalfunc = (ExprStateEvalFunc) ExecEvalXml;
                xstate->named_outfuncs = (FmgrInfo *)
@@ -4281,8 +4281,8 @@ ExecInitExpr(Expr *node, PlanState *parent)
                i = 0;
                foreach(arg, xexpr->named_args)
                {
-                   Expr        *e = (Expr *) lfirst(arg);
-                   ExprState   *estate;
+                   Expr       *e = (Expr *) lfirst(arg);
+                   ExprState  *estate;
                    Oid         typOutFunc;
                    bool        typIsVarlena;
 
@@ -4299,8 +4299,8 @@ ExecInitExpr(Expr *node, PlanState *parent)
                outlist = NIL;
                foreach(arg, xexpr->args)
                {
-                   Expr        *e = (Expr *) lfirst(arg);
-                   ExprState   *estate;
+                   Expr       *e = (Expr *) lfirst(arg);
+                   ExprState  *estate;
 
                    estate = ExecInitExpr(e, parent);
                    outlist = lappend(outlist, estate);
index 7ee4dc3841c98e9daf93ff458963665e13076476..c0fddcec22925743f20e565e7d08eb1b2dab795e 100644 (file)
@@ -12,7 +12,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/execScan.c,v 1.41 2007/02/02 00:07:03 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/execScan.c,v 1.42 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -217,13 +217,14 @@ tlist_matches_tupdesc(PlanState *ps, List *tlist, Index varno, TupleDesc tupdesc
            return false;       /* out of order */
        if (att_tup->attisdropped)
            return false;       /* table contains dropped columns */
+
        /*
-        * Note: usually the Var's type should match the tupdesc exactly,
-        * but in situations involving unions of columns that have different
+        * Note: usually the Var's type should match the tupdesc exactly, but
+        * in situations involving unions of columns that have different
         * typmods, the Var may have come from above the union and hence have
         * typmod -1.  This is a legitimate situation since the Var still
-        * describes the column, just not as exactly as the tupdesc does.
-        * We could change the planner to prevent it, but it'd then insert
+        * describes the column, just not as exactly as the tupdesc does. We
+        * could change the planner to prevent it, but it'd then insert
         * projection steps just to convert from specific typmod to typmod -1,
         * which is pretty silly.
         */
index 790a9dccc10cc90cc11a4c787c00f99bbe42586e..230d5c919f2a556d952b786a3214f9144e1eb686 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/execUtils.c,v 1.151 2007/09/20 17:56:31 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/execUtils.c,v 1.152 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -546,7 +546,7 @@ ExecGetResultType(PlanState *planstate)
  * the given tlist should be a list of ExprState nodes, not Expr nodes.
  *
  * inputDesc can be NULL, but if it is not, we check to see whether simple
- * Vars in the tlist match the descriptor.  It is important to provide
+ * Vars in the tlist match the descriptor. It is important to provide
  * inputDesc for relation-scan plan nodes, as a cross check that the relation
  * hasn't been changed since the plan was made.  At higher levels of a plan,
  * there is no need to recheck.
@@ -573,7 +573,7 @@ ExecBuildProjectionInfo(List *targetList,
     * Determine whether the target list consists entirely of simple Var
     * references (ie, references to non-system attributes) that match the
     * input.  If so, we can use the simpler ExecVariableList instead of
-    * ExecTargetList.  (Note: if there is a type mismatch then ExecEvalVar
+    * ExecTargetList.  (Note: if there is a type mismatch then ExecEvalVar
     * will probably throw an error at runtime, but we leave that to it.)
     */
    isVarList = true;
index d5ff4c12139d5fbecc33ed3c0ac929c2533f5bfb..c03232ff0f49282526f46cf6be190cc15a690ef1 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/functions.c,v 1.118 2007/06/17 18:57:29 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/functions.c,v 1.119 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -85,7 +85,7 @@ static execution_state *init_execution_state(List *queryTree_list,
 static void init_sql_fcache(FmgrInfo *finfo);
 static void postquel_start(execution_state *es, SQLFunctionCachePtr fcache);
 static TupleTableSlot *postquel_getnext(execution_state *es,
-                                       SQLFunctionCachePtr fcache);
+                SQLFunctionCachePtr fcache);
 static void postquel_end(execution_state *es);
 static void postquel_sub_params(SQLFunctionCachePtr fcache,
                    FunctionCallInfo fcinfo);
@@ -251,16 +251,16 @@ init_sql_fcache(FmgrInfo *finfo)
    queryTree_list = pg_parse_and_rewrite(fcache->src, argOidVect, nargs);
 
    /*
-    * Check that the function returns the type it claims to.  Although
-    * in simple cases this was already done when the function was defined,
-    * we have to recheck because database objects used in the function's
-    * queries might have changed type.  We'd have to do it anyway if the
-    * function had any polymorphic arguments.
+    * Check that the function returns the type it claims to.  Although in
+    * simple cases this was already done when the function was defined, we
+    * have to recheck because database objects used in the function's queries
+    * might have changed type.  We'd have to do it anyway if the function had
+    * any polymorphic arguments.
     *
-    * Note: we set fcache->returnsTuple according to whether we are
-    * returning the whole tuple result or just a single column.  In the
-    * latter case we clear returnsTuple because we need not act different
-    * from the scalar result case, even if it's a rowtype column.
+    * Note: we set fcache->returnsTuple according to whether we are returning
+    * the whole tuple result or just a single column.  In the latter case we
+    * clear returnsTuple because we need not act different from the scalar
+    * result case, even if it's a rowtype column.
     *
     * In the returnsTuple case, check_sql_fn_retval will also construct a
     * JunkFilter we can use to coerce the returned rowtype to the desired
@@ -320,8 +320,8 @@ postquel_start(execution_state *es, SQLFunctionCachePtr fcache)
    if (es->qd->utilitystmt == NULL)
    {
        /*
-        * Only set up to collect queued triggers if it's not a SELECT.
-        * This isn't just an optimization, but is necessary in case a SELECT
+        * Only set up to collect queued triggers if it's not a SELECT. This
+        * isn't just an optimization, but is necessary in case a SELECT
         * returns multiple rows to caller --- we mustn't exit from the
         * function execution with a stacked AfterTrigger level still active.
         */
@@ -354,7 +354,7 @@ postquel_getnext(execution_state *es, SQLFunctionCachePtr fcache)
                            es->qd->utilitystmt),
                           fcache->src,
                           es->qd->params,
-                          false,               /* not top level */
+                          false,       /* not top level */
                           es->qd->dest,
                           NULL);
            result = NULL;
@@ -907,7 +907,7 @@ check_sql_fn_retval(Oid func_id, Oid rettype, List *queryTreeList,
    /*
     * If the last query isn't a SELECT, the return type must be VOID.
     *
-    * Note: eventually replace this test with QueryReturnsTuples?  We'd need
+    * Note: eventually replace this test with QueryReturnsTuples?  We'd need
     * a more general method of determining the output type, though.
     */
    if (!(parse->commandType == CMD_SELECT &&
@@ -926,10 +926,9 @@ check_sql_fn_retval(Oid func_id, Oid rettype, List *queryTreeList,
    /*
     * OK, it's a SELECT, so it must return something matching the declared
     * type.  (We used to insist that the declared type not be VOID in this
-    * case, but that makes it hard to write a void function that exits
-    * after calling another void function.  Instead, we insist that the
-    * SELECT return void ... so void is treated as if it were a scalar type
-    * below.)
+    * case, but that makes it hard to write a void function that exits after
+    * calling another void function.  Instead, we insist that the SELECT
+    * return void ... so void is treated as if it were a scalar type below.)
     */
 
    /*
index 644268b6350a56ed9dfbd6f2030e9e9fc216751b..e86b44c9146f37a28fe091275137f6f8fd36f976 100644 (file)
@@ -61,7 +61,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/nodeAgg.c,v 1.153 2007/08/08 18:07:05 neilc Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/nodeAgg.c,v 1.154 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1363,8 +1363,8 @@ ExecInitAgg(Agg *node, EState *estate, int eflags)
 
        /*
         * Get actual datatypes of the inputs.  These could be different from
-        * the agg's declared input types, when the agg accepts ANY or
-        * polymorphic type.
+        * the agg's declared input types, when the agg accepts ANY or a
+        * polymorphic type.
         */
        i = 0;
        foreach(lc, aggref->args)
@@ -1647,9 +1647,9 @@ ExecReScanAgg(AggState *node, ExprContext *exprCtxt)
    MemSet(econtext->ecxt_aggnulls, 0, sizeof(bool) * node->numaggs);
 
    /*
-    * Release all temp storage. Note that with AGG_HASHED, the hash table
-    * is allocated in a sub-context of the aggcontext. We're going to
-    * rebuild the hash table from scratch, so we need to use
+    * Release all temp storage. Note that with AGG_HASHED, the hash table is
+    * allocated in a sub-context of the aggcontext. We're going to rebuild
+    * the hash table from scratch, so we need to use
     * MemoryContextResetAndDeleteChildren() to avoid leaking the old hash
     * table's memory context header.
     */
index 87e0063a03a6230bdc2c06d702ca9f4de4a56350..779f83de474b482f58f6c35078d337cc53aaa046 100644 (file)
@@ -21,7 +21,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/nodeBitmapHeapscan.c,v 1.20 2007/09/20 17:56:31 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/nodeBitmapHeapscan.c,v 1.21 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -277,7 +277,7 @@ bitgetpage(HeapScanDesc scan, TBMIterateResult *tbmres)
         * tbmres; but we have to follow any HOT chain starting at each such
         * offset.
         */
-       int curslot;
+       int         curslot;
 
        for (curslot = 0; curslot < tbmres->ntuples; curslot++)
        {
index 6c14b8a41302424a77490a5afbc37197ace7d3c9..3f65d4cd71399dec6e805d6edab3553e949a5e97 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/nodeBitmapIndexscan.c,v 1.23 2007/05/25 17:54:25 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/nodeBitmapIndexscan.c,v 1.24 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -259,9 +259,9 @@ ExecInitBitmapIndexScan(BitmapIndexScan *node, EState *estate, int eflags)
    indexstate->ss.ss_currentScanDesc = NULL;
 
    /*
-    * If we are just doing EXPLAIN (ie, aren't going to run the plan),
-    * stop here.  This allows an index-advisor plugin to EXPLAIN a plan
-    * containing references to nonexistent indexes.
+    * If we are just doing EXPLAIN (ie, aren't going to run the plan), stop
+    * here.  This allows an index-advisor plugin to EXPLAIN a plan containing
+    * references to nonexistent indexes.
     */
    if (eflags & EXEC_FLAG_EXPLAIN_ONLY)
        return indexstate;
index b5cabd81a4f28b33194f6ecaf2e0291f90b46c94..b22295d35fb23f6d5d8aa587ef1027be8331287e 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/nodeHash.c,v 1.114 2007/06/07 19:19:57 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/nodeHash.c,v 1.115 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -271,8 +271,8 @@ ExecHashTableCreate(Hash *node, List *hashOperators)
    hashtable->spaceAllowed = work_mem * 1024L;
 
    /*
-    * Get info about the hash functions to be used for each hash key.
-    * Also remember whether the join operators are strict.
+    * Get info about the hash functions to be used for each hash key. Also
+    * remember whether the join operators are strict.
     */
    nkeys = list_length(hashOperators);
    hashtable->outer_hashfunctions =
@@ -423,8 +423,8 @@ ExecChooseHashTableSize(double ntuples, int tupwidth,
 
    /*
     * Both nbuckets and nbatch must be powers of 2 to make
-    * ExecHashGetBucketAndBatch fast.  We already fixed nbatch; now inflate
-    * nbuckets to the next larger power of 2.  We also force nbuckets to not
+    * ExecHashGetBucketAndBatch fast.  We already fixed nbatch; now inflate
+    * nbuckets to the next larger power of 2.  We also force nbuckets to not
     * be real small, by starting the search at 2^10.
     */
    i = 10;
@@ -718,22 +718,22 @@ ExecHashGetHashValue(HashJoinTable hashtable,
        /*
         * If the attribute is NULL, and the join operator is strict, then
         * this tuple cannot pass the join qual so we can reject it
-        * immediately (unless we're scanning the outside of an outer join,
-        * in which case we must not reject it).  Otherwise we act like the
+        * immediately (unless we're scanning the outside of an outer join, in
+        * which case we must not reject it).  Otherwise we act like the
         * hashcode of NULL is zero (this will support operators that act like
         * IS NOT DISTINCT, though not any more-random behavior).  We treat
         * the hash support function as strict even if the operator is not.
         *
         * Note: currently, all hashjoinable operators must be strict since
-        * the hash index AM assumes that.  However, it takes so little
-        * extra code here to allow non-strict that we may as well do it.
+        * the hash index AM assumes that.  However, it takes so little extra
+        * code here to allow non-strict that we may as well do it.
         */
        if (isNull)
        {
            if (hashtable->hashStrict[i] && !keep_nulls)
            {
                MemoryContextSwitchTo(oldContext);
-               return false;                           /* cannot match */
+               return false;   /* cannot match */
            }
            /* else, leave hashkey unmodified, equivalent to hashcode 0 */
        }
index a07024585e9a857a4c07d2410928045b23b466fe..d986872bff933098f3a2d78483d6a32536799567 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/nodeHashjoin.c,v 1.91 2007/06/07 19:19:57 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/nodeHashjoin.c,v 1.92 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -569,7 +569,7 @@ ExecHashJoinOuterGetTuple(PlanState *outerNode,
            econtext->ecxt_outertuple = slot;
            if (ExecHashGetHashValue(hashtable, econtext,
                                     hjstate->hj_OuterHashKeys,
-                                    true, /* outer tuple */
+                                    true,      /* outer tuple */
                                     (hjstate->js.jointype == JOIN_LEFT),
                                     hashvalue))
            {
@@ -580,8 +580,8 @@ ExecHashJoinOuterGetTuple(PlanState *outerNode,
            }
 
            /*
-            * That tuple couldn't match because of a NULL, so discard it
-            * and continue with the next one.
+            * That tuple couldn't match because of a NULL, so discard it and
+            * continue with the next one.
             */
            slot = ExecProcNode(outerNode);
        }
index a1fb29ad2c182e01ab3f6bb4680f4371853512ae..d1c8dbd544d64eda5e60bb57742a91f5a4e9d0e6 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/nodeIndexscan.c,v 1.123 2007/05/31 20:45:26 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/nodeIndexscan.c,v 1.124 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -529,9 +529,9 @@ ExecInitIndexScan(IndexScan *node, EState *estate, int eflags)
    ExecAssignScanProjectionInfo(&indexstate->ss);
 
    /*
-    * If we are just doing EXPLAIN (ie, aren't going to run the plan),
-    * stop here.  This allows an index-advisor plugin to EXPLAIN a plan
-    * containing references to nonexistent indexes.
+    * If we are just doing EXPLAIN (ie, aren't going to run the plan), stop
+    * here.  This allows an index-advisor plugin to EXPLAIN a plan containing
+    * references to nonexistent indexes.
     */
    if (eflags & EXEC_FLAG_EXPLAIN_ONLY)
        return indexstate;
@@ -981,7 +981,7 @@ ExecIndexBuildScanKeys(PlanState *planstate, Relation index,
            if (leftop && IsA(leftop, RelabelType))
                leftop = ((RelabelType *) leftop)->arg;
 
-            Assert(leftop != NULL);
+           Assert(leftop != NULL);
 
            if (!(IsA(leftop, Var) &&
                  var_is_rel((Var *) leftop)))
@@ -994,8 +994,8 @@ ExecIndexBuildScanKeys(PlanState *planstate, Relation index,
             */
            ScanKeyEntryInitialize(this_scan_key,
                                   SK_ISNULL | SK_SEARCHNULL,
-                                  varattno,    /* attribute number to scan */
-                                  strategy,    /* op's strategy */
+                                  varattno,    /* attribute number to scan */
+                                  strategy,    /* op's strategy */
                                   subtype,     /* strategy subtype */
                                   InvalidOid,  /* no reg proc for this */
                                   (Datum) 0);  /* constant */
index 76296cfd8779005e22484be174fc9aaed6f467e8..b3ed076ada7e6dad38c95b05e888a1de75e8b68f 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/nodeLimit.c,v 1.31 2007/05/17 19:35:08 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/nodeLimit.c,v 1.32 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -57,8 +57,8 @@ ExecLimit(LimitState *node)
            /*
             * First call for this node, so compute limit/offset. (We can't do
             * this any earlier, because parameters from upper nodes will not
-            * be set during ExecInitLimit.)  This also sets position = 0
-            * and changes the state to LIMIT_RESCAN.
+            * be set during ExecInitLimit.)  This also sets position = 0 and
+            * changes the state to LIMIT_RESCAN.
             */
            recompute_limits(node);
 
@@ -295,17 +295,18 @@ recompute_limits(LimitState *node)
     *
     * This is a bit of a kluge, but we don't have any more-abstract way of
     * communicating between the two nodes; and it doesn't seem worth trying
-    * to invent one without some more examples of special communication needs.
+    * to invent one without some more examples of special communication
+    * needs.
     *
     * Note: it is the responsibility of nodeSort.c to react properly to
-    * changes of these parameters.  If we ever do redesign this, it'd be
-    * good idea to integrate this signaling with the parameter-change
+    * changes of these parameters.  If we ever do redesign this, it'd be a
+    * good idea to integrate this signaling with the parameter-change
     * mechanism.
     */
    if (IsA(outerPlanState(node), SortState))
    {
-       SortState *sortState = (SortState *) outerPlanState(node);
-       int64 tuples_needed = node->count + node->offset;
+       SortState  *sortState = (SortState *) outerPlanState(node);
+       int64       tuples_needed = node->count + node->offset;
 
        /* negative test checks for overflow */
        if (node->noCount || tuples_needed < 0)
@@ -412,9 +413,9 @@ void
 ExecReScanLimit(LimitState *node, ExprContext *exprCtxt)
 {
    /*
-    * Recompute limit/offset in case parameters changed, and reset the
-    * state machine.  We must do this before rescanning our child node,
-    * in case it's a Sort that we are passing the parameters down to.
+    * Recompute limit/offset in case parameters changed, and reset the state
+    * machine.  We must do this before rescanning our child node, in case
+    * it's a Sort that we are passing the parameters down to.
     */
    recompute_limits(node);
 
index e216c1f9e955560f09dd6fbe3f6d30ced28049f5..4d19e793e868ab2b80d874df326a662210a082c7 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/nodeMaterial.c,v 1.59 2007/05/21 17:57:33 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/nodeMaterial.c,v 1.60 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -312,10 +312,10 @@ ExecMaterialReScan(MaterialState *node, ExprContext *exprCtxt)
 
        /*
         * If subnode is to be rescanned then we forget previous stored
-        * results; we have to re-read the subplan and re-store.  Also,
-        * if we told tuplestore it needn't support rescan, we lose and
-        * must re-read.  (This last should not happen in common cases;
-        * else our caller lied by not passing EXEC_FLAG_REWIND to us.)
+        * results; we have to re-read the subplan and re-store.  Also, if we
+        * told tuplestore it needn't support rescan, we lose and must
+        * re-read.  (This last should not happen in common cases; else our
+        * caller lied by not passing EXEC_FLAG_REWIND to us.)
         *
         * Otherwise we can just rewind and rescan the stored output. The
         * state of the subnode does not change.
index 794871e5ba44b464c3d8a3d0f3463e579fbba6d7..5f213b20a3aa43901b162cce3d930a7a8dd7c725 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/nodeMergejoin.c,v 1.88 2007/05/21 17:57:33 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/nodeMergejoin.c,v 1.89 2007/11/15 21:14:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -41,7 +41,7 @@
  *
  *     Therefore, rather than directly executing the merge join clauses,
  *     we evaluate the left and right key expressions separately and then
- *     compare the columns one at a time (see MJCompare).  The planner
+ *     compare the columns one at a time (see MJCompare).  The planner
  *     passes us enough information about the sort ordering of the inputs
  *     to allow us to determine how to make the comparison.  We may use the
  *     appropriate btree comparison function, since Postgres' only notion
@@ -152,7 +152,7 @@ typedef struct MergeJoinClauseData
  * sort ordering for each merge key.  The mergejoinable operator is an
  * equality operator in this opfamily, and the two inputs are guaranteed to be
  * ordered in either increasing or decreasing (respectively) order according
- * to this opfamily, with nulls at the indicated end of the range.  This
+ * to this opfamily, with nulls at the indicated end of the range. This
  * allows us to obtain the needed comparison function from the opfamily.
  */
 static MergeJoinClause
@@ -199,7 +199,7 @@ MJExamineQuals(List *mergeclauses,
                                   &op_lefttype,
                                   &op_righttype,
                                   &op_recheck);
-       if (op_strategy != BTEqualStrategyNumber)   /* should not happen */
+       if (op_strategy != BTEqualStrategyNumber)       /* should not happen */
            elog(ERROR, "cannot merge using non-equality operator %u",
                 qual->opno);
        Assert(!op_recheck);    /* never true for btree */
@@ -209,7 +209,7 @@ MJExamineQuals(List *mergeclauses,
                                    op_lefttype,
                                    op_righttype,
                                    BTORDER_PROC);
-       if (!RegProcedureIsValid(cmpproc))          /* should not happen */
+       if (!RegProcedureIsValid(cmpproc))      /* should not happen */
            elog(ERROR, "missing support function %d(%u,%u) in opfamily %u",
                 BTORDER_PROC, op_lefttype, op_righttype, opfamily);
 
@@ -227,7 +227,7 @@ MJExamineQuals(List *mergeclauses,
            clause->reverse = false;
        else if (opstrategy == BTGreaterStrategyNumber)
            clause->reverse = true;
-       else                    /* planner screwed up */
+       else    /* planner screwed up */
            elog(ERROR, "unsupported mergejoin strategy %d", opstrategy);
 
        clause->nulls_first = nulls_first;
@@ -354,21 +354,21 @@ MJCompare(MergeJoinState *mergestate)
        {
            if (clause->risnull)
            {
-               nulleqnull = true;              /* NULL "=" NULL */
+               nulleqnull = true;      /* NULL "=" NULL */
                continue;
            }
            if (clause->nulls_first)
-               result = -1;                    /* NULL "<" NOT_NULL */
+               result = -1;    /* NULL "<" NOT_NULL */
            else
-               result = 1;                     /* NULL ">" NOT_NULL */
+               result = 1;     /* NULL ">" NOT_NULL */
            break;
        }
        if (clause->risnull)
        {
            if (clause->nulls_first)
-               result = 1;                     /* NOT_NULL ">" NULL */
+               result = 1;     /* NOT_NULL ">" NULL */
            else
-               result = -1;                    /* NOT_NULL "<" NULL */
+               result = -1;    /* NOT_NULL "<" NULL */
            break;
        }
 
@@ -384,7 +384,7 @@ MJCompare(MergeJoinState *mergestate)
        fresult = FunctionCallInvoke(&fcinfo);
        if (fcinfo.isnull)
        {
-           nulleqnull = true;                  /* treat like NULL = NULL */
+           nulleqnull = true;  /* treat like NULL = NULL */
            continue;
        }
        result = DatumGetInt32(fresult);
@@ -1447,10 +1447,10 @@ ExecInitMergeJoin(MergeJoin *node, EState *estate, int eflags)
 
    /*
     * For certain types of inner child nodes, it is advantageous to issue
-    * MARK every time we advance past an inner tuple we will never return
-    * to.  For other types, MARK on a tuple we cannot return to is a waste
-    * of cycles.  Detect which case applies and set mj_ExtraMarks if we
-    * want to issue "unnecessary" MARK calls.
+    * MARK every time we advance past an inner tuple we will never return to.
+    * For other types, MARK on a tuple we cannot return to is a waste of
+    * cycles.  Detect which case applies and set mj_ExtraMarks if we want to
+    * issue "unnecessary" MARK calls.
     *
     * Currently, only Material wants the extra MARKs, and it will be helpful
     * only if eflags doesn't specify REWIND.
index 5ea5132dd22ccd49054bda8ac626021ec7b011e4..01046190d21c42580d47563c03a59f862e72c620 100644 (file)
@@ -38,7 +38,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/nodeResult.c,v 1.40 2007/02/22 23:44:25 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/nodeResult.c,v 1.41 2007/11/15 21:14:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -133,8 +133,8 @@ ExecResult(ResultState *node)
                return NULL;
 
            /*
-            * prepare to compute projection expressions, which will expect
-            * to access the input tuples as varno OUTER.
+            * prepare to compute projection expressions, which will expect to
+            * access the input tuples as varno OUTER.
             */
            econtext->ecxt_outertuple = outerTupleSlot;
        }
@@ -308,9 +308,9 @@ ExecReScanResult(ResultState *node, ExprContext *exprCtxt)
 
    /*
     * If chgParam of subnode is not null then plan will be re-scanned by
-    * first ExecProcNode.  However, if caller is passing us an exprCtxt
-    * then forcibly rescan the subnode now, so that we can pass the
-    * exprCtxt down to the subnode (needed for gated indexscan).
+    * first ExecProcNode.  However, if caller is passing us an exprCtxt then
+    * forcibly rescan the subnode now, so that we can pass the exprCtxt down
+    * to the subnode (needed for gated indexscan).
     */
    if (node->ps.lefttree &&
        (node->ps.lefttree->chgParam == NULL || exprCtxt != NULL))
index f12d0143a38237679206276d8a1dc688f122466f..9074f78842ec57b052537da70a7b16b077dfb50c 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/nodeSubplan.c,v 1.90 2007/08/26 21:44:25 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/nodeSubplan.c,v 1.91 2007/11/15 21:14:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -259,14 +259,14 @@ ExecScanSubPlan(SubPlanState *node,
     * ROWCOMPARE_SUBLINK.
     *
     * For EXPR_SUBLINK we require the subplan to produce no more than one
-    * tuple, else an error is raised.  If zero tuples are produced, we return
+    * tuple, else an error is raised.  If zero tuples are produced, we return
     * NULL.  Assuming we get a tuple, we just use its first column (there can
     * be only one non-junk column in this case).
     *
     * For ARRAY_SUBLINK we allow the subplan to produce any number of tuples,
     * and form an array of the first column's values.  Note in particular
-    * that we produce a zero-element array if no tuples are produced (this
-    * is a change from pre-8.3 behavior of returning NULL).
+    * that we produce a zero-element array if no tuples are produced (this is
+    * a change from pre-8.3 behavior of returning NULL).
     */
    result = BoolGetDatum(subLinkType == ALL_SUBLINK);
    *isNull = false;
@@ -859,17 +859,17 @@ ExecInitSubPlan(SubPlan *subplan, PlanState *parent)
        slot = ExecAllocTableSlot(tupTable);
        ExecSetSlotDescriptor(slot, tupDesc);
        sstate->projLeft = ExecBuildProjectionInfo(lefttlist,
-                                                NULL,
-                                                slot,
-                                                NULL);
+                                                  NULL,
+                                                  slot,
+                                                  NULL);
 
        tupDesc = ExecTypeFromTL(rightptlist, false);
        slot = ExecAllocTableSlot(tupTable);
        ExecSetSlotDescriptor(slot, tupDesc);
        sstate->projRight = ExecBuildProjectionInfo(righttlist,
-                                                 sstate->innerecontext,
-                                                 slot,
-                                                 NULL);
+                                                   sstate->innerecontext,
+                                                   slot,
+                                                   NULL);
    }
 
    return sstate;
@@ -910,8 +910,8 @@ ExecSetParamPlan(SubPlanState *node, ExprContext *econtext)
        elog(ERROR, "ANY/ALL subselect unsupported as initplan");
 
    /*
-    * By definition, an initplan has no parameters from our query level,
-    * but it could have some from an outer level.  Rescan it if needed.
+    * By definition, an initplan has no parameters from our query level, but
+    * it could have some from an outer level.  Rescan it if needed.
     */
    if (planstate->chgParam != NULL)
        ExecReScan(planstate, NULL);
index 159ee1b34d767738b186c5b7a7b902cdcfd39441..d81773a67d7bb9c6a862d10b580391de19e7f9e3 100644 (file)
@@ -12,7 +12,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/nodeSubqueryscan.c,v 1.37 2007/02/27 01:11:25 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/nodeSubqueryscan.c,v 1.38 2007/11/15 21:14:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -98,7 +98,7 @@ ExecInitSubqueryScan(SubqueryScan *node, EState *estate, int eflags)
    Assert(!(eflags & EXEC_FLAG_MARK));
 
    /*
-    * SubqueryScan should not have any "normal" children.  Also, if planner
+    * SubqueryScan should not have any "normal" children.  Also, if planner
     * left anything in subrtable, it's fishy.
     */
    Assert(outerPlan(node) == NULL);
index 8c217a442becdcc1ed468e01100648b1e17a8616..d33d92bbb762e5a78ea7666a233bf69cd6c86847 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/nodeTidscan.c,v 1.56 2007/10/24 18:37:08 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/nodeTidscan.c,v 1.57 2007/11/15 21:14:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -155,7 +155,7 @@ TidListCreate(TidScanState *tidstate)
            ItemPointerData cursor_tid;
 
            if (execCurrentOf(cexpr, econtext,
-                         RelationGetRelid(tidstate->ss.ss_currentRelation),
+                          RelationGetRelid(tidstate->ss.ss_currentRelation),
                              &cursor_tid))
            {
                if (numTids >= numAllocTids)
@@ -274,8 +274,8 @@ TidNext(TidScanState *node)
 
        /*
         * XXX shouldn't we check here to make sure tuple matches TID list? In
-        * runtime-key case this is not certain, is it?  However, in the
-        * WHERE CURRENT OF case it might not match anyway ...
+        * runtime-key case this is not certain, is it?  However, in the WHERE
+        * CURRENT OF case it might not match anyway ...
         */
 
        ExecStoreTuple(estate->es_evTuple[scanrelid - 1],
@@ -328,8 +328,8 @@ TidNext(TidScanState *node)
 
        /*
         * For WHERE CURRENT OF, the tuple retrieved from the cursor might
-        * since have been updated; if so, we should fetch the version that
-        * is current according to our snapshot.
+        * since have been updated; if so, we should fetch the version that is
+        * current according to our snapshot.
         */
        if (node->tss_isCurrentOf)
            heap_get_latest_tid(heapRelation, snapshot, &tuple->t_self);
index 0ea017906eb2cb1345c7fe0867e2fb27f72e68f6..3d72fa20a5506b80ba8c11a082ea4373b740a50b 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/spi.c,v 1.183 2007/10/25 13:48:57 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/spi.c,v 1.184 2007/11/15 21:14:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -46,8 +46,8 @@ static int    _SPI_pquery(QueryDesc *queryDesc, bool fire_triggers, long tcount);
 static void _SPI_error_callback(void *arg);
 
 static void _SPI_cursor_operation(Portal portal,
-                                 FetchDirection direction, long count,
-                                 DestReceiver *dest);
+                     FetchDirection direction, long count,
+                     DestReceiver *dest);
 
 static SPIPlanPtr _SPI_copy_plan(SPIPlanPtr plan, MemoryContext parentcxt);
 static SPIPlanPtr _SPI_save_plan(SPIPlanPtr plan);
@@ -910,7 +910,7 @@ SPI_cursor_open(const char *name, SPIPlanPtr plan,
        oldcontext = MemoryContextSwitchTo(PortalGetHeapMemory(portal));
        /* sizeof(ParamListInfoData) includes the first array element */
        paramLI = (ParamListInfo) palloc(sizeof(ParamListInfoData) +
-                             (plan->nargs - 1) *sizeof(ParamExternData));
+                                (plan->nargs - 1) *sizeof(ParamExternData));
        paramLI->numParams = plan->nargs;
 
        for (k = 0; k < plan->nargs; k++)
@@ -967,8 +967,8 @@ SPI_cursor_open(const char *name, SPIPlanPtr plan,
                      cplan);
 
    /*
-    * Set up options for portal.  Default SCROLL type is chosen the same
-    * way as PerformCursorOpen does it.
+    * Set up options for portal.  Default SCROLL type is chosen the same way
+    * as PerformCursorOpen does it.
     */
    portal->cursorOptions = plan->cursor_options;
    if (!(portal->cursorOptions & (CURSOR_OPT_SCROLL | CURSOR_OPT_NO_SCROLL)))
@@ -983,9 +983,9 @@ SPI_cursor_open(const char *name, SPIPlanPtr plan,
    }
 
    /*
-    * Disallow SCROLL with SELECT FOR UPDATE.  This is not redundant with
-    * the check in transformDeclareCursorStmt because the cursor options
-    * might not have come through there.
+    * Disallow SCROLL with SELECT FOR UPDATE.  This is not redundant with the
+    * check in transformDeclareCursorStmt because the cursor options might
+    * not have come through there.
     */
    if (portal->cursorOptions & CURSOR_OPT_SCROLL)
    {
@@ -999,9 +999,9 @@ SPI_cursor_open(const char *name, SPIPlanPtr plan,
    }
 
    /*
-    * If told to be read-only, we'd better check for read-only queries.
-    * This can't be done earlier because we need to look at the finished,
-    * planned queries.  (In particular, we don't want to do it between
+    * If told to be read-only, we'd better check for read-only queries. This
+    * can't be done earlier because we need to look at the finished, planned
+    * queries.  (In particular, we don't want to do it between
     * RevalidateCachedPlan and PortalDefineQuery, because throwing an error
     * between those steps would result in leaking our plancache refcount.)
     */
@@ -1011,14 +1011,14 @@ SPI_cursor_open(const char *name, SPIPlanPtr plan,
 
        foreach(lc, stmt_list)
        {
-           Node   *pstmt = (Node *) lfirst(lc);
+           Node       *pstmt = (Node *) lfirst(lc);
 
            if (!CommandIsReadOnly(pstmt))
                ereport(ERROR,
                        (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                        /* translator: %s is a SQL statement name */
-                        errmsg("%s is not allowed in a non-volatile function",
-                               CreateCommandTag(pstmt))));
+               /* translator: %s is a SQL statement name */
+                      errmsg("%s is not allowed in a non-volatile function",
+                             CreateCommandTag(pstmt))));
        }
    }
 
@@ -1396,8 +1396,8 @@ _SPI_prepare_plan(const char *src, SPIPlanPtr plan)
    raw_parsetree_list = pg_parse_query(src);
 
    /*
-    * Do parse analysis and rule rewrite for each raw parsetree, then
-    * cons up a phony plancache entry for each one.
+    * Do parse analysis and rule rewrite for each raw parsetree, then cons up
+    * a phony plancache entry for each one.
     */
    plancache_list = NIL;
 
@@ -1416,9 +1416,9 @@ _SPI_prepare_plan(const char *src, SPIPlanPtr plan)
        plansource = (CachedPlanSource *) palloc0(sizeof(CachedPlanSource));
        cplan = (CachedPlan *) palloc0(sizeof(CachedPlan));
 
-       plansource->raw_parse_tree = parsetree;
+       plansource->raw_parse_tree = parsetree;
        /* cast-away-const here is a bit ugly, but there's no reason to copy */
-       plansource->query_string = (char *) src;
+       plansource->query_string = (char *) src;
        plansource->commandTag = CreateCommandTag(parsetree);
        plansource->param_types = argtypes;
        plansource->num_params = nargs;
@@ -1621,7 +1621,7 @@ _SPI_execute_plan(SPIPlanPtr plan, Datum *Values, const char *Nulls,
                    ProcessUtility(stmt,
                                   plansource->query_string,
                                   paramLI,
-                                  false,               /* not top level */
+                                  false,       /* not top level */
                                   dest,
                                   NULL);
                    /* Update "processed" if stmt returned tuples */
@@ -1713,7 +1713,7 @@ _SPI_pquery(QueryDesc *queryDesc, bool fire_triggers, long tcount)
    {
        case CMD_SELECT:
            Assert(queryDesc->plannedstmt->utilityStmt == NULL);
-           if (queryDesc->plannedstmt->intoClause) /* select into table? */
+           if (queryDesc->plannedstmt->intoClause)     /* select into table? */
                res = SPI_OK_SELINTO;
            else if (queryDesc->dest->mydest != DestSPI)
            {
@@ -1984,8 +1984,8 @@ _SPI_copy_plan(SPIPlanPtr plan, MemoryContext parentcxt)
        newsource = (CachedPlanSource *) palloc0(sizeof(CachedPlanSource));
        newcplan = (CachedPlan *) palloc0(sizeof(CachedPlan));
 
-       newsource->raw_parse_tree = copyObject(plansource->raw_parse_tree);
-       newsource->query_string = pstrdup(plansource->query_string);
+       newsource->raw_parse_tree = copyObject(plansource->raw_parse_tree);
+       newsource->query_string = pstrdup(plansource->query_string);
        newsource->commandTag = plansource->commandTag;
        newsource->param_types = newplan->argtypes;
        newsource->num_params = newplan->nargs;
index fc403648bc5eadedd8a604cbf2b81f29d94515f6..598570a2677df5ab27060049aea8e70aa7585169 100644 (file)
@@ -9,7 +9,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- *   $PostgreSQL: pgsql/src/backend/lib/stringinfo.c,v 1.47 2007/08/12 20:18:06 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/lib/stringinfo.c,v 1.48 2007/11/15 21:14:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -45,7 +45,7 @@ makeStringInfo(void)
 void
 initStringInfo(StringInfo str)
 {
-   int         size = 1024;        /* initial default buffer size */
+   int         size = 1024;    /* initial default buffer size */
 
    str->data = (char *) palloc(size);
    str->maxlen = size;
@@ -234,7 +234,7 @@ enlargeStringInfo(StringInfo str, int needed)
    int         newlen;
 
    /*
-    * Guard against out-of-range "needed" values.  Without this, we can get
+    * Guard against out-of-range "needed" values.  Without this, we can get
     * an overflow or infinite loop in the following.
     */
    if (needed < 0)             /* should not happen */
index 22a03f3afc250589ef609a3c282174439853cf97..89cb3e9ad488aea3deacc4ba666c57f9dec16fd6 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/libpq/auth.c,v 1.158 2007/11/15 20:04:38 petere Exp $
+ *   $PostgreSQL: pgsql/src/backend/libpq/auth.c,v 1.159 2007/11/15 21:14:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -197,7 +197,7 @@ pg_krb5_recvauth(Port *port)
 
    if (get_role_line(port->user_name) == NULL)
        return STATUS_ERROR;
-   
+
    ret = pg_krb5_init();
    if (ret != STATUS_OK)
        return ret;
@@ -326,7 +326,7 @@ pg_krb5_recvauth(Port *port)
  * from src/athena/auth/krb5/src/lib/gssapi/generic/gssapi_generic.c
  */
 static const gss_OID_desc GSS_C_NT_USER_NAME_desc =
- {10, (void *)"\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x02"};
+{10, (void *) "\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x02"};
 static GSS_DLLIMP gss_OID GSS_C_NT_USER_NAME = &GSS_C_NT_USER_NAME_desc;
 #endif
 
@@ -334,30 +334,33 @@ static GSS_DLLIMP gss_OID GSS_C_NT_USER_NAME = &GSS_C_NT_USER_NAME_desc;
 static void
 pg_GSS_error(int severity, char *errmsg, OM_uint32 maj_stat, OM_uint32 min_stat)
 {
-   gss_buffer_desc gmsg;
-   OM_uint32       lmaj_s, lmin_s, msg_ctx;
-   char            msg_major[128],
-                   msg_minor[128];
+   gss_buffer_desc gmsg;
+   OM_uint32   lmaj_s,
+               lmin_s,
+               msg_ctx;
+   char        msg_major[128],
+               msg_minor[128];
 
    /* Fetch major status message */
    msg_ctx = 0;
    lmaj_s = gss_display_status(&lmin_s, maj_stat, GSS_C_GSS_CODE,
-           GSS_C_NO_OID, &msg_ctx, &gmsg);
+                               GSS_C_NO_OID, &msg_ctx, &gmsg);
    strlcpy(msg_major, gmsg.value, sizeof(msg_major));
    gss_release_buffer(&lmin_s, &gmsg);
 
    if (msg_ctx)
-       /* More than one message available.
-        * XXX: Should we loop and read all messages?
-        * (same below)
+
+       /*
+        * More than one message available. XXX: Should we loop and read all
+        * messages? (same below)
         */
-       ereport(WARNING, 
+       ereport(WARNING,
                (errmsg_internal("incomplete GSS error report")));
 
    /* Fetch mechanism minor status message */
    msg_ctx = 0;
    lmaj_s = gss_display_status(&lmin_s, min_stat, GSS_C_MECH_CODE,
-           GSS_C_NO_OID, &msg_ctx, &gmsg);
+                               GSS_C_NO_OID, &msg_ctx, &gmsg);
    strlcpy(msg_minor, gmsg.value, sizeof(msg_minor));
    gss_release_buffer(&lmin_s, &gmsg);
 
@@ -365,8 +368,10 @@ pg_GSS_error(int severity, char *errmsg, OM_uint32 maj_stat, OM_uint32 min_stat)
        ereport(WARNING,
                (errmsg_internal("incomplete GSS minor error report")));
 
-   /* errmsg_internal, since translation of the first part must be
-    * done before calling this function anyway. */
+   /*
+    * errmsg_internal, since translation of the first part must be done
+    * before calling this function anyway.
+    */
    ereport(severity,
            (errmsg_internal("%s", errmsg),
             errdetail("%s: %s", msg_major, msg_minor)));
@@ -375,36 +380,38 @@ pg_GSS_error(int severity, char *errmsg, OM_uint32 maj_stat, OM_uint32 min_stat)
 static int
 pg_GSS_recvauth(Port *port)
 {
-   OM_uint32       maj_stat, min_stat, lmin_s, gflags;
-   char           *kt_path;
-   int             mtype;
-   int             ret;
-   StringInfoData  buf;
-   gss_buffer_desc gbuf;
+   OM_uint32   maj_stat,
+               min_stat,
+               lmin_s,
+               gflags;
+   char       *kt_path;
+   int         mtype;
+   int         ret;
+   StringInfoData buf;
+   gss_buffer_desc gbuf;
 
    if (pg_krb_server_keyfile && strlen(pg_krb_server_keyfile) > 0)
    {
        /*
         * Set default Kerberos keytab file for the Krb5 mechanism.
         *
-        * setenv("KRB5_KTNAME", pg_krb_server_keyfile, 0);
-        *      except setenv() not always available.
+        * setenv("KRB5_KTNAME", pg_krb_server_keyfile, 0); except setenv()
+        * not always available.
         */
        if (!getenv("KRB5_KTNAME"))
        {
            kt_path = palloc(MAXPGPATH + 13);
            snprintf(kt_path, MAXPGPATH + 13,
-                   "KRB5_KTNAME=%s", pg_krb_server_keyfile);
+                    "KRB5_KTNAME=%s", pg_krb_server_keyfile);
            putenv(kt_path);
        }
    }
 
    /*
-    * We accept any service principal that's present in our
-    * keytab. This increases interoperability between kerberos
-    * implementations that see for example case sensitivity
-    * differently, while not really opening up any vector
-    * of attack.
+    * We accept any service principal that's present in our keytab. This
+    * increases interoperability between kerberos implementations that see
+    * for example case sensitivity differently, while not really opening up
+    * any vector of attack.
     */
    port->gss->cred = GSS_C_NO_CREDENTIAL;
 
@@ -414,12 +421,12 @@ pg_GSS_recvauth(Port *port)
    port->gss->ctx = GSS_C_NO_CONTEXT;
 
    /*
-    * Loop through GSSAPI message exchange. This exchange can consist
-    * of multiple messags sent in both directions. First message is always
-    * from the client. All messages from client to server are password
-    * packets (type 'p').
+    * Loop through GSSAPI message exchange. This exchange can consist of
+    * multiple messags sent in both directions. First message is always from
+    * the client. All messages from client to server are password packets
+    * (type 'p').
     */
-   do 
+   do
    {
        mtype = pq_getbyte();
        if (mtype != 'p')
@@ -429,7 +436,7 @@ pg_GSS_recvauth(Port *port)
                ereport(COMMERROR,
                        (errcode(ERRCODE_PROTOCOL_VIOLATION),
                         errmsg("expected GSS response, got message type %d",
-                            mtype)));
+                               mtype)));
            return STATUS_ERROR;
        }
 
@@ -446,21 +453,21 @@ pg_GSS_recvauth(Port *port)
        gbuf.length = buf.len;
        gbuf.value = buf.data;
 
-       elog(DEBUG4, "Processing received GSS token of length %u", 
+       elog(DEBUG4, "Processing received GSS token of length %u",
             (unsigned int) gbuf.length);
 
        maj_stat = gss_accept_sec_context(
-               &min_stat,
-               &port->gss->ctx,
-               port->gss->cred,
-               &gbuf,
-               GSS_C_NO_CHANNEL_BINDINGS,
-               &port->gss->name,
-               NULL,
-               &port->gss->outbuf,
-               &gflags,
-               NULL,
-               NULL);
+                                         &min_stat,
+                                         &port->gss->ctx,
+                                         port->gss->cred,
+                                         &gbuf,
+                                         GSS_C_NO_CHANNEL_BINDINGS,
+                                         &port->gss->name,
+                                         NULL,
+                                         &port->gss->outbuf,
+                                         &gflags,
+                                         NULL,
+                                         NULL);
 
        /* gbuf no longer used */
        pfree(buf.data);
@@ -488,10 +495,11 @@ pg_GSS_recvauth(Port *port)
        if (maj_stat != GSS_S_COMPLETE && maj_stat != GSS_S_CONTINUE_NEEDED)
        {
            OM_uint32   lmin_s;
+
            gss_delete_sec_context(&lmin_s, &port->gss->ctx, GSS_C_NO_BUFFER);
-           pg_GSS_error(ERROR, 
-                   gettext_noop("accepting GSS security context failed"),
-                   maj_stat, min_stat);
+           pg_GSS_error(ERROR,
+                      gettext_noop("accepting GSS security context failed"),
+                        maj_stat, min_stat);
        }
 
        if (maj_stat == GSS_S_CONTINUE_NEEDED)
@@ -510,8 +518,8 @@ pg_GSS_recvauth(Port *port)
    /*
     * GSS_S_COMPLETE indicates that authentication is now complete.
     *
-    * Get the name of the user that authenticated, and compare it to the
-    * pg username that was specified for the connection.
+    * Get the name of the user that authenticated, and compare it to the pg
+    * username that was specified for the connection.
     */
    maj_stat = gss_display_name(&min_stat, port->gss->name, &gbuf, NULL);
    if (maj_stat != GSS_S_COMPLETE)
@@ -524,7 +532,8 @@ pg_GSS_recvauth(Port *port)
     */
    if (strchr(gbuf.value, '@'))
    {
-       char *cp = strchr(gbuf.value, '@');
+       char       *cp = strchr(gbuf.value, '@');
+
        *cp = '\0';
        cp++;
 
@@ -542,7 +551,7 @@ pg_GSS_recvauth(Port *port)
            {
                /* GSS realm does not match */
                elog(DEBUG2,
-                    "GSSAPI realm (%s) and configured realm (%s) don't match",
+                  "GSSAPI realm (%s) and configured realm (%s) don't match",
                     cp, pg_krb_realm);
                gss_release_buffer(&lmin_s, &gbuf);
                return STATUS_ERROR;
@@ -566,20 +575,19 @@ pg_GSS_recvauth(Port *port)
    if (ret)
    {
        /* GSS name and PGUSER are not equivalent */
-       elog(DEBUG2, 
+       elog(DEBUG2,
             "provided username (%s) and GSSAPI username (%s) don't match",
-            port->user_name, (char *)gbuf.value);
+            port->user_name, (char *) gbuf.value);
 
        gss_release_buffer(&lmin_s, &gbuf);
        return STATUS_ERROR;
    }
-   
+
    gss_release_buffer(&lmin_s, &gbuf);
 
    return STATUS_OK;
 }
-
-#else /* no ENABLE_GSS */
+#else                          /* no ENABLE_GSS */
 static int
 pg_GSS_recvauth(Port *port)
 {
@@ -588,78 +596,78 @@ pg_GSS_recvauth(Port *port)
             errmsg("GSSAPI not implemented on this server")));
    return STATUS_ERROR;
 }
-#endif /* ENABLE_GSS */
+#endif   /* ENABLE_GSS */
 
 #ifdef ENABLE_SSPI
 static void
 pg_SSPI_error(int severity, char *errmsg, SECURITY_STATUS r)
 {
-   char sysmsg[256];
+   char        sysmsg[256];
 
    if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, r, 0, sysmsg, sizeof(sysmsg), NULL) == 0)
        ereport(severity,
-               (errmsg_internal("%s", errmsg),
-               errdetail("sspi error %x", (unsigned int)r)));
+               (errmsg_internal("%s", errmsg),
+                errdetail("sspi error %x", (unsigned int) r)));
    else
        ereport(severity,
-               (errmsg_internal("%s", errmsg),
-               errdetail("%s (%x)", sysmsg, (unsigned int)r)));
+               (errmsg_internal("%s", errmsg),
+                errdetail("%s (%x)", sysmsg, (unsigned int) r)));
 }
 
-typedef SECURITY_STATUS
-(WINAPI * QUERY_SECURITY_CONTEXT_TOKEN_FN)(
-    PCtxtHandle, void **);
+typedef        SECURITY_STATUS
+           (WINAPI * QUERY_SECURITY_CONTEXT_TOKEN_FN) (
+                                                      PCtxtHandle, void **);
 
 static int
 pg_SSPI_recvauth(Port *port)
 {
-   int             mtype;
-   StringInfoData  buf;
+   int         mtype;
+   StringInfoData buf;
    SECURITY_STATUS r;
-   CredHandle      sspicred;
-   CtxtHandle      *sspictx = NULL,
-                   newctx;
-   TimeStamp       expiry;
-   ULONG           contextattr;
-   SecBufferDesc   inbuf;
-   SecBufferDesc   outbuf;
-   SecBuffer       OutBuffers[1];
-   SecBuffer       InBuffers[1];
-   HANDLE          token;
-   TOKEN_USER      *tokenuser;
-   DWORD           retlen;
-   char            accountname[MAXPGPATH];
-   char            domainname[MAXPGPATH];
-   DWORD           accountnamesize = sizeof(accountname);
-   DWORD           domainnamesize = sizeof(domainname);
-   SID_NAME_USE    accountnameuse;
-   HMODULE         secur32;
-   QUERY_SECURITY_CONTEXT_TOKEN_FN _QuerySecurityContextToken;
+   CredHandle  sspicred;
+   CtxtHandle *sspictx = NULL,
+               newctx;
+   TimeStamp   expiry;
+   ULONG       contextattr;
+   SecBufferDesc inbuf;
+   SecBufferDesc outbuf;
+   SecBuffer   OutBuffers[1];
+   SecBuffer   InBuffers[1];
+   HANDLE      token;
+   TOKEN_USER *tokenuser;
+   DWORD       retlen;
+   char        accountname[MAXPGPATH];
+   char        domainname[MAXPGPATH];
+   DWORD       accountnamesize = sizeof(accountname);
+   DWORD       domainnamesize = sizeof(domainname);
+   SID_NAME_USE accountnameuse;
+   HMODULE     secur32;
+   QUERY_SECURITY_CONTEXT_TOKEN_FN _QuerySecurityContextToken;
 
 
    /*
     * Acquire a handle to the server credentials.
     */
    r = AcquireCredentialsHandle(NULL,
-       "negotiate",
-       SECPKG_CRED_INBOUND,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       &sspicred,
-       &expiry);
+                                "negotiate",
+                                SECPKG_CRED_INBOUND,
+                                NULL,
+                                NULL,
+                                NULL,
+                                NULL,
+                                &sspicred,
+                                &expiry);
    if (r != SEC_E_OK)
-       pg_SSPI_error(ERROR, 
-                   gettext_noop("could not acquire SSPI credentials handle"), r);
+       pg_SSPI_error(ERROR,
+              gettext_noop("could not acquire SSPI credentials handle"), r);
 
    /*
-    * Loop through SSPI message exchange. This exchange can consist
-    * of multiple messags sent in both directions. First message is always
-    * from the client. All messages from client to server are password
-    * packets (type 'p').
+    * Loop through SSPI message exchange. This exchange can consist of
+    * multiple messags sent in both directions. First message is always from
+    * the client. All messages from client to server are password packets
+    * (type 'p').
     */
-   do 
+   do
    {
        mtype = pq_getbyte();
        if (mtype != 'p')
@@ -669,7 +677,7 @@ pg_SSPI_recvauth(Port *port)
                ereport(COMMERROR,
                        (errcode(ERRCODE_PROTOCOL_VIOLATION),
                         errmsg("expected SSPI response, got message type %d",
-                            mtype)));
+                               mtype)));
            return STATUS_ERROR;
        }
 
@@ -699,18 +707,18 @@ pg_SSPI_recvauth(Port *port)
        outbuf.ulVersion = SECBUFFER_VERSION;
 
 
-       elog(DEBUG4, "Processing received SSPI token of length %u", 
+       elog(DEBUG4, "Processing received SSPI token of length %u",
             (unsigned int) buf.len);
 
        r = AcceptSecurityContext(&sspicred,
-           sspictx,
-           &inbuf,
-           ASC_REQ_ALLOCATE_MEMORY,
-           SECURITY_NETWORK_DREP,
-           &newctx,
-           &outbuf,
-           &contextattr,
-           NULL);
+                                 sspictx,
+                                 &inbuf,
+                                 ASC_REQ_ALLOCATE_MEMORY,
+                                 SECURITY_NETWORK_DREP,
+                                 &newctx,
+                                 &outbuf,
+                                 &contextattr,
+                                 NULL);
 
        /* input buffer no longer used */
        pfree(buf.data);
@@ -739,8 +747,8 @@ pg_SSPI_recvauth(Port *port)
                free(sspictx);
            }
            FreeCredentialsHandle(&sspicred);
-           pg_SSPI_error(ERROR, 
-                   gettext_noop("could not accept SSPI security context"), r);
+           pg_SSPI_error(ERROR,
+                 gettext_noop("could not accept SSPI security context"), r);
        }
 
        if (sspictx == NULL)
@@ -748,7 +756,7 @@ pg_SSPI_recvauth(Port *port)
            sspictx = malloc(sizeof(CtxtHandle));
            if (sspictx == NULL)
                ereport(ERROR,
-                   (errmsg("out of memory")));
+                       (errmsg("out of memory")));
 
            memcpy(sspictx, &newctx, sizeof(CtxtHandle));
        }
@@ -768,18 +776,18 @@ pg_SSPI_recvauth(Port *port)
    /*
     * SEC_E_OK indicates that authentication is now complete.
     *
-    * Get the name of the user that authenticated, and compare it to the
-    * pg username that was specified for the connection.
+    * Get the name of the user that authenticated, and compare it to the pg
+    * username that was specified for the connection.
     *
-    * MingW is missing the export for QuerySecurityContextToken in
-    * the secur32 library, so we have to load it dynamically.
+    * MingW is missing the export for QuerySecurityContextToken in the
+    * secur32 library, so we have to load it dynamically.
     */
 
    secur32 = LoadLibrary("SECUR32.DLL");
    if (secur32 == NULL)
        ereport(ERROR,
-           (errmsg_internal("could not load secur32.dll: %d",
-           (int)GetLastError())));
+               (errmsg_internal("could not load secur32.dll: %d",
+                                (int) GetLastError())));
 
    _QuerySecurityContextToken = (QUERY_SECURITY_CONTEXT_TOKEN_FN)
        GetProcAddress(secur32, "QuerySecurityContextToken");
@@ -787,16 +795,16 @@ pg_SSPI_recvauth(Port *port)
    {
        FreeLibrary(secur32);
        ereport(ERROR,
-           (errmsg_internal("could not locate QuerySecurityContextToken in secur32.dll: %d",
-           (int)GetLastError())));
+               (errmsg_internal("could not locate QuerySecurityContextToken in secur32.dll: %d",
+                                (int) GetLastError())));
    }
 
-   r = (_QuerySecurityContextToken)(sspictx, &token);
+   r = (_QuerySecurityContextToken) (sspictx, &token);
    if (r != SEC_E_OK)
    {
        FreeLibrary(secur32);
        pg_SSPI_error(ERROR,
-           gettext_noop("could not get security token from context"), r);
+              gettext_noop("could not get security token from context"), r);
    }
 
    FreeLibrary(secur32);
@@ -810,8 +818,8 @@ pg_SSPI_recvauth(Port *port)
 
    if (!GetTokenInformation(token, TokenUser, NULL, 0, &retlen) && GetLastError() != 122)
        ereport(ERROR,
-               (errmsg_internal("could not get token user size: error code %d",
-                   (int) GetLastError())));
+            (errmsg_internal("could not get token user size: error code %d",
+                             (int) GetLastError())));
 
    tokenuser = malloc(retlen);
    if (tokenuser == NULL)
@@ -821,18 +829,19 @@ pg_SSPI_recvauth(Port *port)
    if (!GetTokenInformation(token, TokenUser, tokenuser, retlen, &retlen))
        ereport(ERROR,
                (errmsg_internal("could not get user token: error code %d",
-                   (int) GetLastError())));
+                                (int) GetLastError())));
 
-   if (!LookupAccountSid(NULL, tokenuser->User.Sid, accountname, &accountnamesize, 
-                           domainname, &domainnamesize, &accountnameuse))
+   if (!LookupAccountSid(NULL, tokenuser->User.Sid, accountname, &accountnamesize,
+                         domainname, &domainnamesize, &accountnameuse))
        ereport(ERROR,
-               (errmsg_internal("could not lookup acconut sid: error code %d",
-                   (int) GetLastError())));
+             (errmsg_internal("could not lookup acconut sid: error code %d",
+                              (int) GetLastError())));
 
    free(tokenuser);
 
-   /* 
-    * Compare realm/domain if requested. In SSPI, always compare case insensitive.
+   /*
+    * Compare realm/domain if requested. In SSPI, always compare case
+    * insensitive.
     */
    if (pg_krb_realm && strlen(pg_krb_realm))
    {
@@ -841,28 +850,28 @@ pg_SSPI_recvauth(Port *port)
            elog(DEBUG2,
                 "SSPI domain (%s) and configured domain (%s) don't match",
                 domainname, pg_krb_realm);
-           
+
            return STATUS_ERROR;
        }
    }
 
    /*
-    * We have the username (without domain/realm) in accountname, compare 
-    * to the supplied value. In SSPI, always compare case insensitive.
+    * We have the username (without domain/realm) in accountname, compare to
+    * the supplied value. In SSPI, always compare case insensitive.
     */
    if (pg_strcasecmp(port->user_name, accountname))
    {
        /* GSS name and PGUSER are not equivalent */
-       elog(DEBUG2, 
+       elog(DEBUG2,
             "provided username (%s) and SSPI username (%s) don't match",
             port->user_name, accountname);
 
        return STATUS_ERROR;
    }
-   
+
    return STATUS_OK;
 }
-#else  /* no ENABLE_SSPI */
+#else                          /* no ENABLE_SSPI */
 static int
 pg_SSPI_recvauth(Port *port)
 {
@@ -871,7 +880,7 @@ pg_SSPI_recvauth(Port *port)
             errmsg("SSPI not implemented on this server")));
    return STATUS_ERROR;
 }
-#endif /* ENABLE_SSPI */
+#endif   /* ENABLE_SSPI */
 
 
 /*
@@ -1113,8 +1122,11 @@ sendAuthRequest(Port *port, AuthRequest areq)
        pq_sendbytes(&buf, port->cryptSalt, 2);
 
 #if defined(ENABLE_GSS) || defined(ENABLE_SSPI)
-   /* Add the authentication data for the next step of
-    * the GSSAPI or SSPI negotiation. */
+
+   /*
+    * Add the authentication data for the next step of the GSSAPI or SSPI
+    * negotiation.
+    */
    else if (areq == AUTH_REQ_GSS_CONT)
    {
        if (port->gss->outbuf.length > 0)
@@ -1413,7 +1425,7 @@ CheckLDAPAuth(Port *port)
    {
        ldap_unbind(ldap);
        ereport(LOG,
-               (errmsg("could not set LDAP protocol version: error code %d", r)));
+         (errmsg("could not set LDAP protocol version: error code %d", r)));
        return STATUS_ERROR;
    }
 
@@ -1456,9 +1468,9 @@ CheckLDAPAuth(Port *port)
            }
 
            /*
-            * Leak LDAP handle on purpose, because we need the library to stay
-            * open. This is ok because it will only ever be leaked once per
-            * process and is automatically cleaned up on process exit.
+            * Leak LDAP handle on purpose, because we need the library to
+            * stay open. This is ok because it will only ever be leaked once
+            * per process and is automatically cleaned up on process exit.
             */
        }
        if ((r = _ldap_start_tls_sA(ldap, NULL, NULL, NULL, NULL)) != LDAP_SUCCESS)
@@ -1466,7 +1478,7 @@ CheckLDAPAuth(Port *port)
        {
            ldap_unbind(ldap);
            ereport(LOG,
-                   (errmsg("could not start LDAP TLS session: error code %d", r)));
+            (errmsg("could not start LDAP TLS session: error code %d", r)));
            return STATUS_ERROR;
        }
    }
index efb8ecbb773218570e1351e4ff05991309b8ed48..d7df99e496b75694a82e753bea24a4262d7b60f9 100644 (file)
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/libpq/be-secure.c,v 1.81 2007/11/07 12:24:24 petere Exp $
+ *   $PostgreSQL: pgsql/src/backend/libpq/be-secure.c,v 1.82 2007/11/15 21:14:35 momjian Exp $
  *
  *   Since the server static private key ($DataDir/server.key)
  *   will normally be stored unencrypted so that the database
@@ -95,7 +95,7 @@
 #if SSLEAY_VERSION_NUMBER >= 0x0907000L
 #include <openssl/conf.h>
 #endif
-#endif /* USE_SSL */
+#endif   /* USE_SSL */
 
 #include "libpq/libpq.h"
 #include "tcop/tcopprot.h"
@@ -130,8 +130,7 @@ static const char *SSLerrmessage(void);
 static SSL_CTX *SSL_context = NULL;
 
 /* GUC variable controlling SSL cipher list */
-char *SSLCipherSuites = NULL;
-
+char      *SSLCipherSuites = NULL;
 #endif
 
 /* ------------------------------------------------------------ */
@@ -282,7 +281,7 @@ rloop:
 #ifdef WIN32
                pgwin32_waitforsinglesocket(SSL_get_fd(port->ssl),
                                            (err == SSL_ERROR_WANT_READ) ?
-                                  FD_READ | FD_CLOSE : FD_WRITE | FD_CLOSE,
+                                   FD_READ | FD_CLOSE : FD_WRITE | FD_CLOSE,
                                            INFINITE);
 #endif
                goto rloop;
@@ -376,7 +375,7 @@ wloop:
 #ifdef WIN32
                pgwin32_waitforsinglesocket(SSL_get_fd(port->ssl),
                                            (err == SSL_ERROR_WANT_READ) ?
-                                  FD_READ | FD_CLOSE : FD_WRITE | FD_CLOSE,
+                                   FD_READ | FD_CLOSE : FD_WRITE | FD_CLOSE,
                                            INFINITE);
 #endif
                goto wloop;
@@ -811,9 +810,9 @@ initialize_SSL(void)
                          X509_V_FLAG_CRL_CHECK | X509_V_FLAG_CRL_CHECK_ALL);
 #else
                ereport(LOG,
-                       (errmsg("SSL certificate revocation list file \"%s\" ignored",
-                               ROOT_CRL_FILE),
-                 errdetail("SSL library does not support certificate revocation lists.")));
+               (errmsg("SSL certificate revocation list file \"%s\" ignored",
+                       ROOT_CRL_FILE),
+                errdetail("SSL library does not support certificate revocation lists.")));
 #endif
            else
            {
@@ -821,7 +820,7 @@ initialize_SSL(void)
                ereport(LOG,
                        (errmsg("SSL certificate revocation list file \"%s\" not found, skipping: %s",
                                ROOT_CRL_FILE, SSLerrmessage()),
-                    errdetail("Certificates will not be checked against revocation list.")));
+                        errdetail("Certificates will not be checked against revocation list.")));
            }
        }
 
@@ -889,7 +888,7 @@ aloop:
 #ifdef WIN32
                pgwin32_waitforsinglesocket(SSL_get_fd(port->ssl),
                                            (err == SSL_ERROR_WANT_READ) ?
-                      FD_READ | FD_CLOSE | FD_ACCEPT : FD_WRITE | FD_CLOSE,
+                       FD_READ | FD_CLOSE | FD_ACCEPT : FD_WRITE | FD_CLOSE,
                                            INFINITE);
 #endif
                goto aloop;
index c3cde8cb1bf4f2bd5a8ec5e749ca0da65022ed56..e1be331b792d04b8843ada50a2ca8c48e3b2aa07 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/libpq/hba.c,v 1.162 2007/07/23 10:16:53 mha Exp $
+ *   $PostgreSQL: pgsql/src/backend/libpq/hba.c,v 1.163 2007/11/15 21:14:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1595,7 +1595,7 @@ authident(hbaPort *port)
 
    if (get_role_line(port->user_name) == NULL)
        return STATUS_ERROR;
-   
+
    switch (port->raddr.addr.ss_family)
    {
        case AF_INET:
index 2e9bd9889006b23c0da3778dbc893b60eaf16c93..69c4189e9520638aa670b790ff872e94320e4f38 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/libpq/ip.c,v 1.40 2007/02/10 14:58:54 petere Exp $
+ *   $PostgreSQL: pgsql/src/backend/libpq/ip.c,v 1.41 2007/11/15 21:14:35 momjian Exp $
  *
  * This file and the IPV6 implementation were initially provided by
  * Nigel Kukard <[email protected]>, Linux Based Systems Design
@@ -79,6 +79,7 @@ pg_getaddrinfo_all(const char *hostname, const char *servname,
                     servname, hintp, result);
 
 #ifdef _AIX
+
    /*
     * It seems some versions of AIX's getaddrinfo don't reliably zero
     * sin_port when servname is NULL, so clean up after it.
index ae9d47076a2d30e8171349fb710a67900fef2619..4ed672255790e6e19eabfcaf026b3c2398d01563 100644 (file)
@@ -30,7 +30,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/libpq/pqcomm.c,v 1.196 2007/09/14 15:58:02 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/libpq/pqcomm.c,v 1.197 2007/11/15 21:14:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -183,11 +183,11 @@ pq_close(int code, Datum arg)
 
        if (MyProcPort->gss->cred != GSS_C_NO_CREDENTIAL)
            gss_release_cred(&min_s, &MyProcPort->gss->cred);
-#endif /* ENABLE_GSS */
+#endif   /* ENABLE_GSS */
        /* GSS and SSPI share the port->gss struct */
 
        free(MyProcPort->gss);
-#endif /* ENABLE_GSS || ENABLE_SSPI */
+#endif   /* ENABLE_GSS || ENABLE_SSPI */
 
        /* Cleanly shut down SSL layer */
        secure_close(MyProcPort);
@@ -255,6 +255,7 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber,
    struct addrinfo hint;
    int         listen_index = 0;
    int         added = 0;
+
 #if !defined(WIN32) || defined(IPV6_V6ONLY)
    int         one = 1;
 #endif
@@ -356,14 +357,17 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber,
        }
 
 #ifndef WIN32
+
        /*
-        * Without the SO_REUSEADDR flag, a new postmaster can't be started right away after
-        * a stop or crash, giving "address already in use" error on TCP ports.
+        * Without the SO_REUSEADDR flag, a new postmaster can't be started
+        * right away after a stop or crash, giving "address already in use"
+        * error on TCP ports.
         *
-        * On win32, however, this behavior only happens if the SO_EXLUSIVEADDRUSE is set.
-        * With SO_REUSEADDR, win32 allows multiple servers to listen on the same address,
-        * resulting in unpredictable behavior. With no flags at all, win32 behaves as
-        * Unix with SO_REUSEADDR.
+        * On win32, however, this behavior only happens if the
+        * SO_EXLUSIVEADDRUSE is set. With SO_REUSEADDR, win32 allows multiple
+        * servers to listen on the same address, resulting in unpredictable
+        * behavior. With no flags at all, win32 behaves as Unix with
+        * SO_REUSEADDR.
         */
        if (!IS_AF_UNIX(addr->ai_family))
        {
@@ -577,6 +581,7 @@ StreamConnection(int server_fd, Port *port)
        ereport(LOG,
                (errcode_for_socket_access(),
                 errmsg("could not accept new connection: %m")));
+
        /*
         * If accept() fails then postmaster.c will still see the server
         * socket as read-ready, and will immediately try again.  To avoid
index 606bb14a698a29af0aa0e31b7ca0ab2654fce6be..747e7b6163b7a5bc0d62247a3e2318bd8561fa10 100644 (file)
@@ -24,7 +24,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/libpq/pqformat.c,v 1.45 2007/04/06 05:36:50 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/libpq/pqformat.c,v 1.46 2007/11/15 21:14:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -318,7 +318,7 @@ pq_sendfloat8(StringInfo buf, float8 f)
    appendBinaryStringInfo(buf, (char *) &swap.h[1], 4);
    appendBinaryStringInfo(buf, (char *) &swap.h[0], 4);
 #endif
-#else  /* INT64 works */
+#else                          /* INT64 works */
    union
    {
        float8      f;
@@ -552,7 +552,7 @@ pq_getmsgfloat8(StringInfo msg)
    swap.h[0] = pq_getmsgint(msg, 4);
 #endif
    return swap.f;
-#else  /* INT64 works */
+#else                          /* INT64 works */
    union
    {
        float8      f;
index 65d42e9de57900398388f537db4808a21a8a08b4..0b61a7174bfa0d64f7e21ef47decc68ae5d30ea2 100644 (file)
@@ -13,7 +13,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/main/main.c,v 1.108 2007/03/07 13:35:02 alvherre Exp $
+ *   $PostgreSQL: pgsql/src/backend/main/main.c,v 1.109 2007/11/15 21:14:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -177,7 +177,7 @@ main(int argc, char *argv[])
 #endif
 
    if (argc > 1 && strcmp(argv[1], "--boot") == 0)
-       AuxiliaryProcessMain(argc, argv);   /* does not return */
+       AuxiliaryProcessMain(argc, argv);       /* does not return */
 
    if (argc > 1 && strcmp(argv[1], "--describe-config") == 0)
        exit(GucInfoMain());
index c6393effcd649006f5c3519b58059b08a6767736..d3396a8d0f0207563965f363fd5831e7c664d987 100644 (file)
@@ -15,7 +15,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.383 2007/10/11 18:05:26 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.384 2007/11/15 21:14:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -68,9 +68,9 @@
  * _copyPlannedStmt
  */
 static PlannedStmt *
-_copyPlannedStmt(PlannedStmt *from)
+_copyPlannedStmt(PlannedStmt * from)
 {
-   PlannedStmt    *newnode = makeNode(PlannedStmt);
+   PlannedStmt *newnode = makeNode(PlannedStmt);
 
    COPY_SCALAR_FIELD(commandType);
    COPY_SCALAR_FIELD(canSetTag);
@@ -727,9 +727,9 @@ _copyRangeVar(RangeVar *from)
  * _copyIntoClause
  */
 static IntoClause *
-_copyIntoClause(IntoClause *from)
+_copyIntoClause(IntoClause * from)
 {
-   IntoClause   *newnode = makeNode(IntoClause);
+   IntoClause *newnode = makeNode(IntoClause);
 
    COPY_NODE_FIELD(rel);
    COPY_NODE_FIELD(colNames);
@@ -1026,9 +1026,9 @@ _copyRelabelType(RelabelType *from)
  * _copyCoerceViaIO
  */
 static CoerceViaIO *
-_copyCoerceViaIO(CoerceViaIO *from)
+_copyCoerceViaIO(CoerceViaIO * from)
 {
-   CoerceViaIO   *newnode = makeNode(CoerceViaIO);
+   CoerceViaIO *newnode = makeNode(CoerceViaIO);
 
    COPY_NODE_FIELD(arg);
    COPY_SCALAR_FIELD(resulttype);
@@ -1041,9 +1041,9 @@ _copyCoerceViaIO(CoerceViaIO *from)
  * _copyArrayCoerceExpr
  */
 static ArrayCoerceExpr *
-_copyArrayCoerceExpr(ArrayCoerceExpr *from)
+_copyArrayCoerceExpr(ArrayCoerceExpr * from)
 {
-   ArrayCoerceExpr   *newnode = makeNode(ArrayCoerceExpr);
+   ArrayCoerceExpr *newnode = makeNode(ArrayCoerceExpr);
 
    COPY_NODE_FIELD(arg);
    COPY_SCALAR_FIELD(elemfuncid);
@@ -1195,9 +1195,9 @@ _copyMinMaxExpr(MinMaxExpr *from)
  * _copyXmlExpr
  */
 static XmlExpr *
-_copyXmlExpr(XmlExpr *from)
+_copyXmlExpr(XmlExpr * from)
 {
-   XmlExpr *newnode = makeNode(XmlExpr);
+   XmlExpr    *newnode = makeNode(XmlExpr);
 
    COPY_SCALAR_FIELD(op);
    COPY_STRING_FIELD(name);
@@ -1304,7 +1304,7 @@ _copySetToDefault(SetToDefault *from)
  * _copyCurrentOfExpr
  */
 static CurrentOfExpr *
-_copyCurrentOfExpr(CurrentOfExpr *from)
+_copyCurrentOfExpr(CurrentOfExpr * from)
 {
    CurrentOfExpr *newnode = makeNode(CurrentOfExpr);
 
@@ -1393,9 +1393,9 @@ _copyFromExpr(FromExpr *from)
  * _copyPathKey
  */
 static PathKey *
-_copyPathKey(PathKey *from)
+_copyPathKey(PathKey * from)
 {
-   PathKey *newnode = makeNode(PathKey);
+   PathKey    *newnode = makeNode(PathKey);
 
    /* EquivalenceClasses are never moved, so just shallow-copy the pointer */
    COPY_SCALAR_FIELD(pk_eclass);
@@ -1833,7 +1833,7 @@ _copyLockingClause(LockingClause *from)
 }
 
 static XmlSerialize *
-_copyXmlSerialize(XmlSerialize *from)
+_copyXmlSerialize(XmlSerialize * from)
 {
    XmlSerialize *newnode = makeNode(XmlSerialize);
 
@@ -2271,7 +2271,7 @@ _copyRemoveOpClassStmt(RemoveOpClassStmt *from)
 }
 
 static RemoveOpFamilyStmt *
-_copyRemoveOpFamilyStmt(RemoveOpFamilyStmt *from)
+_copyRemoveOpFamilyStmt(RemoveOpFamilyStmt * from)
 {
    RemoveOpFamilyStmt *newnode = makeNode(RemoveOpFamilyStmt);
 
@@ -2398,7 +2398,7 @@ _copyCompositeTypeStmt(CompositeTypeStmt *from)
 }
 
 static CreateEnumStmt *
-_copyCreateEnumStmt(CreateEnumStmt *from)
+_copyCreateEnumStmt(CreateEnumStmt * from)
 {
    CreateEnumStmt *newnode = makeNode(CreateEnumStmt);
 
@@ -2475,7 +2475,7 @@ _copyCreateOpClassItem(CreateOpClassItem *from)
 }
 
 static CreateOpFamilyStmt *
-_copyCreateOpFamilyStmt(CreateOpFamilyStmt *from)
+_copyCreateOpFamilyStmt(CreateOpFamilyStmt * from)
 {
    CreateOpFamilyStmt *newnode = makeNode(CreateOpFamilyStmt);
 
@@ -2486,7 +2486,7 @@ _copyCreateOpFamilyStmt(CreateOpFamilyStmt *from)
 }
 
 static AlterOpFamilyStmt *
-_copyAlterOpFamilyStmt(AlterOpFamilyStmt *from)
+_copyAlterOpFamilyStmt(AlterOpFamilyStmt * from)
 {
    AlterOpFamilyStmt *newnode = makeNode(AlterOpFamilyStmt);
 
@@ -2616,7 +2616,7 @@ _copyVariableShowStmt(VariableShowStmt *from)
 }
 
 static DiscardStmt *
-_copyDiscardStmt(DiscardStmt *from)
+_copyDiscardStmt(DiscardStmt * from)
 {
    DiscardStmt *newnode = makeNode(DiscardStmt);
 
index a12351ae289581a63929b743f83059c69dca3c33..0a832113b007a27efbbbc9de1ccc9010904ce123 100644 (file)
@@ -18,7 +18,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/nodes/equalfuncs.c,v 1.313 2007/09/03 18:46:30 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/nodes/equalfuncs.c,v 1.314 2007/11/15 21:14:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -103,7 +103,7 @@ _equalRangeVar(RangeVar *a, RangeVar *b)
 }
 
 static bool
-_equalIntoClause(IntoClause *a, IntoClause *b)
+_equalIntoClause(IntoClause * a, IntoClause * b)
 {
    COMPARE_NODE_FIELD(rel);
    COMPARE_NODE_FIELD(colNames);
@@ -360,7 +360,7 @@ _equalRelabelType(RelabelType *a, RelabelType *b)
 }
 
 static bool
-_equalCoerceViaIO(CoerceViaIO *a, CoerceViaIO *b)
+_equalCoerceViaIO(CoerceViaIO * a, CoerceViaIO * b)
 {
    COMPARE_NODE_FIELD(arg);
    COMPARE_SCALAR_FIELD(resulttype);
@@ -378,7 +378,7 @@ _equalCoerceViaIO(CoerceViaIO *a, CoerceViaIO *b)
 }
 
 static bool
-_equalArrayCoerceExpr(ArrayCoerceExpr *a, ArrayCoerceExpr *b)
+_equalArrayCoerceExpr(ArrayCoerceExpr * a, ArrayCoerceExpr * b)
 {
    COMPARE_NODE_FIELD(arg);
    COMPARE_SCALAR_FIELD(elemfuncid);
@@ -506,7 +506,7 @@ _equalMinMaxExpr(MinMaxExpr *a, MinMaxExpr *b)
 }
 
 static bool
-_equalXmlExpr(XmlExpr *a, XmlExpr *b)
+_equalXmlExpr(XmlExpr * a, XmlExpr * b)
 {
    COMPARE_SCALAR_FIELD(op);
    COMPARE_STRING_FIELD(name);
@@ -599,7 +599,7 @@ _equalSetToDefault(SetToDefault *a, SetToDefault *b)
 }
 
 static bool
-_equalCurrentOfExpr(CurrentOfExpr *a, CurrentOfExpr *b)
+_equalCurrentOfExpr(CurrentOfExpr * a, CurrentOfExpr * b)
 {
    COMPARE_SCALAR_FIELD(cvarno);
    COMPARE_STRING_FIELD(cursor_name);
@@ -660,12 +660,12 @@ _equalFromExpr(FromExpr *a, FromExpr *b)
  */
 
 static bool
-_equalPathKey(PathKey *a, PathKey *b)
+_equalPathKey(PathKey * a, PathKey * b)
 {
    /*
-    * This is normally used on non-canonicalized PathKeys, so must chase
-    * up to the topmost merged EquivalenceClass and see if those are the
-    * same (by pointer equality).
+    * This is normally used on non-canonicalized PathKeys, so must chase up
+    * to the topmost merged EquivalenceClass and see if those are the same
+    * (by pointer equality).
     */
    EquivalenceClass *a_eclass;
    EquivalenceClass *b_eclass;
@@ -1112,7 +1112,7 @@ _equalRemoveOpClassStmt(RemoveOpClassStmt *a, RemoveOpClassStmt *b)
 }
 
 static bool
-_equalRemoveOpFamilyStmt(RemoveOpFamilyStmt *a, RemoveOpFamilyStmt *b)
+_equalRemoveOpFamilyStmt(RemoveOpFamilyStmt * a, RemoveOpFamilyStmt * b)
 {
    COMPARE_NODE_FIELD(opfamilyname);
    COMPARE_STRING_FIELD(amname);
@@ -1219,7 +1219,7 @@ _equalCompositeTypeStmt(CompositeTypeStmt *a, CompositeTypeStmt *b)
 }
 
 static bool
-_equalCreateEnumStmt(CreateEnumStmt *a, CreateEnumStmt *b)
+_equalCreateEnumStmt(CreateEnumStmt * a, CreateEnumStmt * b)
 {
    COMPARE_NODE_FIELD(typename);
    COMPARE_NODE_FIELD(vals);
@@ -1284,7 +1284,7 @@ _equalCreateOpClassItem(CreateOpClassItem *a, CreateOpClassItem *b)
 }
 
 static bool
-_equalCreateOpFamilyStmt(CreateOpFamilyStmt *a, CreateOpFamilyStmt *b)
+_equalCreateOpFamilyStmt(CreateOpFamilyStmt * a, CreateOpFamilyStmt * b)
 {
    COMPARE_NODE_FIELD(opfamilyname);
    COMPARE_STRING_FIELD(amname);
@@ -1293,7 +1293,7 @@ _equalCreateOpFamilyStmt(CreateOpFamilyStmt *a, CreateOpFamilyStmt *b)
 }
 
 static bool
-_equalAlterOpFamilyStmt(AlterOpFamilyStmt *a, AlterOpFamilyStmt *b)
+_equalAlterOpFamilyStmt(AlterOpFamilyStmt * a, AlterOpFamilyStmt * b)
 {
    COMPARE_NODE_FIELD(opfamilyname);
    COMPARE_STRING_FIELD(amname);
@@ -1401,7 +1401,7 @@ _equalVariableShowStmt(VariableShowStmt *a, VariableShowStmt *b)
 }
 
 static bool
-_equalDiscardStmt(DiscardStmt *a, DiscardStmt *b)
+_equalDiscardStmt(DiscardStmt * a, DiscardStmt * b)
 {
    COMPARE_SCALAR_FIELD(target);
 
@@ -1893,7 +1893,7 @@ _equalFkConstraint(FkConstraint *a, FkConstraint *b)
 }
 
 static bool
-_equalXmlSerialize(XmlSerialize *a, XmlSerialize *b)
+_equalXmlSerialize(XmlSerialize * a, XmlSerialize * b)
 {
    COMPARE_SCALAR_FIELD(xmloption);
    COMPARE_NODE_FIELD(expr);
index fc4f7d2dacac86307f461ccf438048540d3c7a72..d97e56e4e4a09335019f30db8cce598f2d9076e9 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/nodes/outfuncs.c,v 1.316 2007/11/08 21:49:47 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/nodes/outfuncs.c,v 1.317 2007/11/15 21:14:35 momjian Exp $
  *
  * NOTES
  *   Every node type that can appear in stored rules' parsetrees *must*
@@ -235,7 +235,7 @@ _outDatum(StringInfo str, Datum value, int typlen, bool typbyval)
  */
 
 static void
-_outPlannedStmt(StringInfo str, PlannedStmt *node)
+_outPlannedStmt(StringInfo str, PlannedStmt * node)
 {
    WRITE_NODE_TYPE("PLANNEDSTMT");
 
@@ -656,7 +656,7 @@ _outRangeVar(StringInfo str, RangeVar *node)
 }
 
 static void
-_outIntoClause(StringInfo str, IntoClause *node)
+_outIntoClause(StringInfo str, IntoClause * node)
 {
    WRITE_NODE_TYPE("INTOCLAUSE");
 
@@ -872,7 +872,7 @@ _outRelabelType(StringInfo str, RelabelType *node)
 }
 
 static void
-_outCoerceViaIO(StringInfo str, CoerceViaIO *node)
+_outCoerceViaIO(StringInfo str, CoerceViaIO * node)
 {
    WRITE_NODE_TYPE("COERCEVIAIO");
 
@@ -882,7 +882,7 @@ _outCoerceViaIO(StringInfo str, CoerceViaIO *node)
 }
 
 static void
-_outArrayCoerceExpr(StringInfo str, ArrayCoerceExpr *node)
+_outArrayCoerceExpr(StringInfo str, ArrayCoerceExpr * node)
 {
    WRITE_NODE_TYPE("ARRAYCOERCEEXPR");
 
@@ -986,10 +986,10 @@ _outMinMaxExpr(StringInfo str, MinMaxExpr *node)
 }
 
 static void
-_outXmlExpr(StringInfo str, XmlExpr *node)
+_outXmlExpr(StringInfo str, XmlExpr * node)
 {
    WRITE_NODE_TYPE("XMLEXPR");
-   
+
    WRITE_ENUM_FIELD(op, XmlExprOp);
    WRITE_STRING_FIELD(name);
    WRITE_NODE_FIELD(named_args);
@@ -1060,7 +1060,7 @@ _outSetToDefault(StringInfo str, SetToDefault *node)
 }
 
 static void
-_outCurrentOfExpr(StringInfo str, CurrentOfExpr *node)
+_outCurrentOfExpr(StringInfo str, CurrentOfExpr * node)
 {
    WRITE_NODE_TYPE("CURRENTOFEXPR");
 
@@ -1291,7 +1291,7 @@ _outHashPath(StringInfo str, HashPath *node)
 }
 
 static void
-_outPlannerGlobal(StringInfo str, PlannerGlobal *node)
+_outPlannerGlobal(StringInfo str, PlannerGlobal * node)
 {
    WRITE_NODE_TYPE("PLANNERGLOBAL");
 
@@ -1385,7 +1385,7 @@ _outIndexOptInfo(StringInfo str, IndexOptInfo *node)
 }
 
 static void
-_outEquivalenceClass(StringInfo str, EquivalenceClass *node)
+_outEquivalenceClass(StringInfo str, EquivalenceClass * node)
 {
    /*
     * To simplify reading, we just chase up to the topmost merged EC and
@@ -1409,7 +1409,7 @@ _outEquivalenceClass(StringInfo str, EquivalenceClass *node)
 }
 
 static void
-_outEquivalenceMember(StringInfo str, EquivalenceMember *node)
+_outEquivalenceMember(StringInfo str, EquivalenceMember * node)
 {
    WRITE_NODE_TYPE("EQUIVALENCEMEMBER");
 
@@ -1421,7 +1421,7 @@ _outEquivalenceMember(StringInfo str, EquivalenceMember *node)
 }
 
 static void
-_outPathKey(StringInfo str, PathKey *node)
+_outPathKey(StringInfo str, PathKey * node)
 {
    WRITE_NODE_TYPE("PATHKEY");
 
@@ -1627,7 +1627,7 @@ _outLockingClause(StringInfo str, LockingClause *node)
 }
 
 static void
-_outXmlSerialize(StringInfo str, XmlSerialize *node)
+_outXmlSerialize(StringInfo str, XmlSerialize * node)
 {
    WRITE_NODE_TYPE("XMLSERIALIZE");
 
index c6edfbed8a054d465d55b01c8d35eb4e54a72127..a12b6d5d626866a8af03b387831c0abf5d85c9e8 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/nodes/print.c,v 1.85 2007/02/22 22:00:23 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/nodes/print.c,v 1.86 2007/11/15 21:14:35 momjian Exp $
  *
  * HISTORY
  *   AUTHOR            DATE            MAJOR EVENT
@@ -413,7 +413,7 @@ print_pathkeys(List *pathkeys, List *rtable)
    printf("(");
    foreach(i, pathkeys)
    {
-       PathKey    *pathkey = (PathKey *) lfirst(i);
+       PathKey    *pathkey = (PathKey *) lfirst(i);
        EquivalenceClass *eclass;
        ListCell   *k;
        bool        first = true;
index d528720c3e22ac9423cc207c2063a9b18cc23070..957e86abe28f98408de226fba9f457225514ebb3 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/optimizer/geqo/geqo_eval.c,v 1.85 2007/02/16 00:14:01 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/geqo/geqo_eval.c,v 1.86 2007/11/15 21:14:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -254,8 +254,8 @@ desirable_join(PlannerInfo *root,
               RelOptInfo *outer_rel, RelOptInfo *inner_rel)
 {
    /*
-    * Join if there is an applicable join clause, or if there is a join
-    * order restriction forcing these rels to be joined.
+    * Join if there is an applicable join clause, or if there is a join order
+    * restriction forcing these rels to be joined.
     */
    if (have_relevant_joinclause(root, outer_rel, inner_rel) ||
        have_join_order_restriction(root, outer_rel, inner_rel))
index cc82380dc6d7fc7ed69aa798532ae924a181cd5b..cc36a36964464e1ce7b1812cd4b611616c513e22 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/path/allpaths.c,v 1.165 2007/09/26 18:51:50 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/path/allpaths.c,v 1.166 2007/11/15 21:14:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -43,7 +43,7 @@ join_search_hook_type join_search_hook = NULL;
 
 static void set_base_rel_pathlists(PlannerInfo *root);
 static void set_rel_pathlist(PlannerInfo *root, RelOptInfo *rel,
-                            Index rti, RangeTblEntry *rte);
+                Index rti, RangeTblEntry *rte);
 static void set_plain_rel_pathlist(PlannerInfo *root, RelOptInfo *rel,
                       RangeTblEntry *rte);
 static void set_append_rel_pathlist(PlannerInfo *root, RelOptInfo *rel,
@@ -312,10 +312,10 @@ set_append_rel_pathlist(PlannerInfo *root, RelOptInfo *rel,
 
        /*
         * We have to copy the parent's targetlist and quals to the child,
-        * with appropriate substitution of variables.  However, only the
+        * with appropriate substitution of variables.  However, only the
         * baserestrictinfo quals are needed before we can check for
-        * constraint exclusion; so do that first and then check to see
-        * if we can disregard this child.
+        * constraint exclusion; so do that first and then check to see if we
+        * can disregard this child.
         */
        childrel->baserestrictinfo = (List *)
            adjust_appendrel_attrs((Node *) rel->baserestrictinfo,
@@ -325,8 +325,8 @@ set_append_rel_pathlist(PlannerInfo *root, RelOptInfo *rel,
        {
            /*
             * This child need not be scanned, so we can omit it from the
-            * appendrel.  Mark it with a dummy cheapest-path though, in
-            * case best_appendrel_indexscan() looks at it later.
+            * appendrel.  Mark it with a dummy cheapest-path though, in case
+            * best_appendrel_indexscan() looks at it later.
             */
            set_dummy_rel_pathlist(childrel);
            continue;
@@ -709,7 +709,7 @@ make_rel_from_joinlist(PlannerInfo *root, List *joinlist)
  * needed for these paths need have been instantiated.
  *
  * Note to plugin authors: the functions invoked during standard_join_search()
- * modify root->join_rel_list and root->join_rel_hash.  If you want to do more
+ * modify root->join_rel_list and root->join_rel_hash. If you want to do more
  * than one join-order search, you'll probably need to save and restore the
  * original states of those data structures.  See geqo_eval() for an example.
  */
index c722070abc8bd5d213d3113e269c542e0c8cb2c7..52f6e14bdac25e758408b2012f1de768a3fc685f 100644 (file)
@@ -54,7 +54,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/path/costsize.c,v 1.187 2007/10/24 18:37:08 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/path/costsize.c,v 1.188 2007/11/15 21:14:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -112,12 +112,12 @@ typedef struct
 {
    PlannerInfo *root;
    QualCost    total;
-} cost_qual_eval_context;
+}  cost_qual_eval_context;
 
 static MergeScanSelCache *cached_scansel(PlannerInfo *root,
-                                        RestrictInfo *rinfo,
-                                        PathKey *pathkey);
-static bool cost_qual_eval_walker(Node *node, cost_qual_eval_context *context);
+              RestrictInfo *rinfo,
+              PathKey * pathkey);
+static bool cost_qual_eval_walker(Node *node, cost_qual_eval_context * context);
 static Selectivity approx_selectivity(PlannerInfo *root, List *quals,
                   JoinType jointype);
 static Selectivity join_in_selectivity(JoinPath *path, PlannerInfo *root);
@@ -303,15 +303,14 @@ cost_index(IndexPath *path, PlannerInfo *root,
        max_IO_cost = (pages_fetched * random_page_cost) / num_scans;
 
        /*
-        * In the perfectly correlated case, the number of pages touched
-        * by each scan is selectivity * table_size, and we can use the
-        * Mackert and Lohman formula at the page level to estimate how
-        * much work is saved by caching across scans.  We still assume
-        * all the fetches are random, though, which is an overestimate
-        * that's hard to correct for without double-counting the cache
-        * effects.  (But in most cases where such a plan is actually
-        * interesting, only one page would get fetched per scan anyway,
-        * so it shouldn't matter much.)
+        * In the perfectly correlated case, the number of pages touched by
+        * each scan is selectivity * table_size, and we can use the Mackert
+        * and Lohman formula at the page level to estimate how much work is
+        * saved by caching across scans.  We still assume all the fetches are
+        * random, though, which is an overestimate that's hard to correct for
+        * without double-counting the cache effects.  (But in most cases
+        * where such a plan is actually interesting, only one page would get
+        * fetched per scan anyway, so it shouldn't matter much.)
         */
        pages_fetched = ceil(indexSelectivity * (double) baserel->pages);
 
@@ -344,8 +343,8 @@ cost_index(IndexPath *path, PlannerInfo *root,
    }
 
    /*
-    * Now interpolate based on estimated index order correlation to get
-    * total disk I/O cost for main table accesses.
+    * Now interpolate based on estimated index order correlation to get total
+    * disk I/O cost for main table accesses.
     */
    csquared = indexCorrelation * indexCorrelation;
 
@@ -643,11 +642,12 @@ cost_bitmap_tree_node(Path *path, Cost *cost, Selectivity *selec)
    {
        *cost = ((IndexPath *) path)->indextotalcost;
        *selec = ((IndexPath *) path)->indexselectivity;
+
        /*
         * Charge a small amount per retrieved tuple to reflect the costs of
         * manipulating the bitmap.  This is mostly to make sure that a bitmap
-        * scan doesn't look to be the same cost as an indexscan to retrieve
-        * single tuple.
+        * scan doesn't look to be the same cost as an indexscan to retrieve a
+        * single tuple.
         */
        *cost += 0.1 * cpu_operator_cost * ((IndexPath *) path)->rows;
    }
@@ -806,7 +806,7 @@ cost_tidscan(Path *path, PlannerInfo *root,
 
    /*
     * We must force TID scan for WHERE CURRENT OF, because only nodeTidscan.c
-    * understands how to do it correctly.  Therefore, honor enable_tidscan
+    * understands how to do it correctly.  Therefore, honor enable_tidscan
     * only when CURRENT OF isn't present.  Also note that cost_qual_eval
     * counts a CurrentOfExpr as having startup cost disable_cost, which we
     * subtract off here; that's to prevent other plan types such as seqscan
@@ -1043,10 +1043,10 @@ cost_sort(Path *path, PlannerInfo *root,
    else if (tuples > 2 * output_tuples || input_bytes > work_mem_bytes)
    {
        /*
-        * We'll use a bounded heap-sort keeping just K tuples in memory,
-        * for a total number of tuple comparisons of N log2 K; but the
-        * constant factor is a bit higher than for quicksort.  Tweak it
-        * so that the cost curve is continuous at the crossover point.
+        * We'll use a bounded heap-sort keeping just K tuples in memory, for
+        * a total number of tuple comparisons of N log2 K; but the constant
+        * factor is a bit higher than for quicksort.  Tweak it so that the
+        * cost curve is continuous at the crossover point.
         */
        startup_cost += 2.0 * cpu_operator_cost * tuples * LOG2(2.0 * output_tuples);
    }
@@ -1454,8 +1454,8 @@ cost_mergejoin(MergePath *path, PlannerInfo *root)
        RestrictInfo *firstclause = (RestrictInfo *) linitial(mergeclauses);
        List       *opathkeys;
        List       *ipathkeys;
-       PathKey    *opathkey;
-       PathKey    *ipathkey;
+       PathKey    *opathkey;
+       PathKey    *ipathkey;
        MergeScanSelCache *cache;
 
        /* Get the input pathkeys to determine the sort-order details */
@@ -1593,7 +1593,7 @@ cost_mergejoin(MergePath *path, PlannerInfo *root)
  * run mergejoinscansel() with caching
  */
 static MergeScanSelCache *
-cached_scansel(PlannerInfo *root, RestrictInfo *rinfo, PathKey *pathkey)
+cached_scansel(PlannerInfo *root, RestrictInfo *rinfo, PathKey * pathkey)
 {
    MergeScanSelCache *cache;
    ListCell   *lc;
@@ -1787,8 +1787,8 @@ cost_hashjoin(HashPath *path, PlannerInfo *root)
     * If inner relation is too big then we will need to "batch" the join,
     * which implies writing and reading most of the tuples to disk an extra
     * time.  Charge seq_page_cost per page, since the I/O should be nice and
-    * sequential.  Writing the inner rel counts as startup cost,
-    * all the rest as run cost.
+    * sequential.  Writing the inner rel counts as startup cost, all the rest
+    * as run cost.
     */
    if (numbatches > 1)
    {
@@ -1891,16 +1891,16 @@ cost_qual_eval_node(QualCost *cost, Node *qual, PlannerInfo *root)
 }
 
 static bool
-cost_qual_eval_walker(Node *node, cost_qual_eval_context *context)
+cost_qual_eval_walker(Node *node, cost_qual_eval_context * context)
 {
    if (node == NULL)
        return false;
 
    /*
     * RestrictInfo nodes contain an eval_cost field reserved for this
-    * routine's use, so that it's not necessary to evaluate the qual
-    * clause's cost more than once.  If the clause's cost hasn't been
-    * computed yet, the field's startup value will contain -1.
+    * routine's use, so that it's not necessary to evaluate the qual clause's
+    * cost more than once.  If the clause's cost hasn't been computed yet,
+    * the field's startup value will contain -1.
     */
    if (IsA(node, RestrictInfo))
    {
@@ -1913,14 +1913,16 @@ cost_qual_eval_walker(Node *node, cost_qual_eval_context *context)
            locContext.root = context->root;
            locContext.total.startup = 0;
            locContext.total.per_tuple = 0;
+
            /*
-            * For an OR clause, recurse into the marked-up tree so that
-            * we set the eval_cost for contained RestrictInfos too.
+            * For an OR clause, recurse into the marked-up tree so that we
+            * set the eval_cost for contained RestrictInfos too.
             */
            if (rinfo->orclause)
                cost_qual_eval_walker((Node *) rinfo->orclause, &locContext);
            else
                cost_qual_eval_walker((Node *) rinfo->clause, &locContext);
+
            /*
             * If the RestrictInfo is marked pseudoconstant, it will be tested
             * only once, so treat its cost as all startup cost.
@@ -1941,8 +1943,8 @@ cost_qual_eval_walker(Node *node, cost_qual_eval_context *context)
 
    /*
     * For each operator or function node in the given tree, we charge the
-    * estimated execution cost given by pg_proc.procost (remember to
-    * multiply this by cpu_operator_cost).
+    * estimated execution cost given by pg_proc.procost (remember to multiply
+    * this by cpu_operator_cost).
     *
     * Vars and Consts are charged zero, and so are boolean operators (AND,
     * OR, NOT). Simplistic, but a lot better than no model at all.
@@ -1951,7 +1953,7 @@ cost_qual_eval_walker(Node *node, cost_qual_eval_context *context)
     * evaluation of AND/OR?  Probably *not*, because that would make the
     * results depend on the clause ordering, and we are not in any position
     * to expect that the current ordering of the clauses is the one that's
-    * going to end up being used.  (Is it worth applying order_qual_clauses
+    * going to end up being used.  (Is it worth applying order_qual_clauses
     * much earlier in the planning process to fix this?)
     */
    if (IsA(node, FuncExpr))
@@ -1984,9 +1986,9 @@ cost_qual_eval_walker(Node *node, cost_qual_eval_context *context)
    else if (IsA(node, CoerceViaIO))
    {
        CoerceViaIO *iocoerce = (CoerceViaIO *) node;
-       Oid     iofunc;
-       Oid     typioparam;
-       bool    typisvarlena;
+       Oid         iofunc;
+       Oid         typioparam;
+       bool        typisvarlena;
 
        /* check the result type's input function */
        getTypeInputInfo(iocoerce->resulttype,
@@ -2014,7 +2016,7 @@ cost_qual_eval_walker(Node *node, cost_qual_eval_context *context)
 
        foreach(lc, rcexpr->opnos)
        {
-           Oid     opid = lfirst_oid(lc);
+           Oid         opid = lfirst_oid(lc);
 
            context->total.per_tuple += get_func_cost(get_opcode(opid)) *
                cpu_operator_cost;
@@ -2069,7 +2071,7 @@ cost_qual_eval_walker(Node *node, cost_qual_eval_context *context)
        {
            /*
             * Otherwise we will be rescanning the subplan output on each
-            * evaluation.  We need to estimate how much of the output we will
+            * evaluation.  We need to estimate how much of the output we will
             * actually need to scan.  NOTE: this logic should agree with
             * get_initplan_cost, below, and with the estimates used by
             * make_subplan() in plan/subselect.c.
@@ -2266,9 +2268,9 @@ set_joinrel_size_estimates(PlannerInfo *root, RelOptInfo *rel,
     * double-counting them because they were not considered in estimating the
     * sizes of the component rels.
     *
-    * For an outer join, we have to distinguish the selectivity of the
-    * join's own clauses (JOIN/ON conditions) from any clauses that were
-    * "pushed down".  For inner joins we just count them all as joinclauses.
+    * For an outer join, we have to distinguish the selectivity of the join's
+    * own clauses (JOIN/ON conditions) from any clauses that were "pushed
+    * down".  For inner joins we just count them all as joinclauses.
     */
    if (IS_OUTER_JOIN(jointype))
    {
@@ -2316,7 +2318,7 @@ set_joinrel_size_estimates(PlannerInfo *root, RelOptInfo *rel,
     *
     * If we are doing an outer join, take that into account: the joinqual
     * selectivity has to be clamped using the knowledge that the output must
-    * be at least as large as the non-nullable input.  However, any
+    * be at least as large as the non-nullable input.  However, any
     * pushed-down quals are applied after the outer join, so their
     * selectivity applies fully.
     *
@@ -2515,7 +2517,7 @@ set_rel_width(PlannerInfo *root, RelOptInfo *rel)
    if (rel->relid > 0)
        rel_reloid = getrelid(rel->relid, root->parse->rtable);
    else
-       rel_reloid = InvalidOid;            /* probably can't happen */
+       rel_reloid = InvalidOid;    /* probably can't happen */
 
    foreach(tllist, rel->reltargetlist)
    {
index 18c6ff936864cc24edd453a1fa733211084e57f0..67204728a530d82278c9545ae8a235ae1bcb1ab4 100644 (file)
@@ -10,7 +10,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/path/equivclass.c,v 1.4 2007/11/08 21:49:47 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/path/equivclass.c,v 1.5 2007/11/15 21:14:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "utils/lsyscache.h"
 
 
-static EquivalenceMember *add_eq_member(EquivalenceClass *ec,
-                                       Expr *expr, Relids relids,
-                                       bool is_child, Oid datatype);
+static EquivalenceMember *add_eq_member(EquivalenceClass * ec,
+             Expr *expr, Relids relids,
+             bool is_child, Oid datatype);
 static void generate_base_implied_equalities_const(PlannerInfo *root,
-                                                  EquivalenceClass *ec);
+                                      EquivalenceClass * ec);
 static void generate_base_implied_equalities_no_const(PlannerInfo *root,
-                                                     EquivalenceClass *ec);
+                                         EquivalenceClass * ec);
 static void generate_base_implied_equalities_broken(PlannerInfo *root,
-                                                   EquivalenceClass *ec);
+                                       EquivalenceClass * ec);
 static List *generate_join_implied_equalities_normal(PlannerInfo *root,
-                                       EquivalenceClass *ec,
+                                       EquivalenceClass * ec,
                                        RelOptInfo *joinrel,
                                        RelOptInfo *outer_rel,
                                        RelOptInfo *inner_rel);
 static List *generate_join_implied_equalities_broken(PlannerInfo *root,
-                                       EquivalenceClass *ec,
+                                       EquivalenceClass * ec,
                                        RelOptInfo *joinrel,
                                        RelOptInfo *outer_rel,
                                        RelOptInfo *inner_rel);
-static Oid select_equality_operator(EquivalenceClass *ec,
-                                    Oid lefttype, Oid righttype);
+static Oid select_equality_operator(EquivalenceClass * ec,
+                        Oid lefttype, Oid righttype);
 static RestrictInfo *create_join_clause(PlannerInfo *root,
-                                       EquivalenceClass *ec, Oid opno,
-                                       EquivalenceMember *leftem,
-                                       EquivalenceMember *rightem,
-                                       EquivalenceClass *parent_ec);
+                  EquivalenceClass * ec, Oid opno,
+                  EquivalenceMember * leftem,
+                  EquivalenceMember * rightem,
+                  EquivalenceClass * parent_ec);
 static void reconsider_outer_join_clause(PlannerInfo *root,
-                                        RestrictInfo *rinfo,
-                                        bool outer_on_left);
+                            RestrictInfo *rinfo,
+                            bool outer_on_left);
 static void reconsider_full_join_clause(PlannerInfo *root,
-                                       RestrictInfo *rinfo);
+                           RestrictInfo *rinfo);
 
 
 /*
@@ -70,7 +70,7 @@ static void reconsider_full_join_clause(PlannerInfo *root,
  *
  * If below_outer_join is true, then the clause was found below the nullable
  * side of an outer join, so its sides might validly be both NULL rather than
- * strictly equal.  We can still deduce equalities in such cases, but we take
+ * strictly equal. We can still deduce equalities in such cases, but we take
  * care to mark an EquivalenceClass if it came from any such clauses.  Also,
  * we have to check that both sides are either pseudo-constants or strict
  * functions of Vars, else they might not both go to NULL above the outer
@@ -127,37 +127,37 @@ process_equivalence(PlannerInfo *root, RestrictInfo *restrictinfo,
    }
 
    /*
-    * We use the declared input types of the operator, not exprType() of
-    * the inputs, as the nominal datatypes for opfamily lookup.  This
-    * presumes that btree operators are always registered with amoplefttype
-    * and amoprighttype equal to their declared input types.  We will need
-    * this info anyway to build EquivalenceMember nodes, and by extracting
-    * it now we can use type comparisons to short-circuit some equal() tests.
+    * We use the declared input types of the operator, not exprType() of the
+    * inputs, as the nominal datatypes for opfamily lookup.  This presumes
+    * that btree operators are always registered with amoplefttype and
+    * amoprighttype equal to their declared input types.  We will need this
+    * info anyway to build EquivalenceMember nodes, and by extracting it now
+    * we can use type comparisons to short-circuit some equal() tests.
     */
    op_input_types(opno, &item1_type, &item2_type);
 
    opfamilies = restrictinfo->mergeopfamilies;
 
    /*
-    * Sweep through the existing EquivalenceClasses looking for matches
-    * to item1 and item2.  These are the possible outcomes:
+    * Sweep through the existing EquivalenceClasses looking for matches to
+    * item1 and item2.  These are the possible outcomes:
     *
-    * 1. We find both in the same EC.  The equivalence is already known,
-    * so there's nothing to do.
+    * 1. We find both in the same EC.  The equivalence is already known, so
+    * there's nothing to do.
     *
     * 2. We find both in different ECs.  Merge the two ECs together.
     *
     * 3. We find just one.  Add the other to its EC.
     *
-    * 4. We find neither.  Make a new, two-entry EC.
+    * 4. We find neither.  Make a new, two-entry EC.
     *
     * Note: since all ECs are built through this process, it's impossible
     * that we'd match an item in more than one existing EC.  It is possible
     * to match more than once within an EC, if someone fed us something silly
     * like "WHERE X=X".  (However, we can't simply discard such clauses,
-    * since they should fail when X is null; so we will build a 2-member
-    * EC to ensure the correct restriction clause gets generated.  Hence
-    * there is no shortcut here for item1 and item2 equal.)
+    * since they should fail when X is null; so we will build a 2-member EC
+    * to ensure the correct restriction clause gets generated.  Hence there
+    * is no shortcut here for item1 and item2 equal.)
     */
    ec1 = ec2 = NULL;
    em1 = em2 = NULL;
@@ -182,11 +182,11 @@ process_equivalence(PlannerInfo *root, RestrictInfo *restrictinfo,
        {
            EquivalenceMember *cur_em = (EquivalenceMember *) lfirst(lc2);
 
-           Assert(!cur_em->em_is_child);               /* no children yet */
+           Assert(!cur_em->em_is_child);       /* no children yet */
 
            /*
-            * If below an outer join, don't match constants: they're not
-            * as constant as they look.
+            * If below an outer join, don't match constants: they're not as
+            * constant as they look.
             */
            if ((below_outer_join || cur_ec->ec_below_outer_join) &&
                cur_em->em_is_const)
@@ -234,11 +234,11 @@ process_equivalence(PlannerInfo *root, RestrictInfo *restrictinfo,
        }
 
        /*
-        * Case 2: need to merge ec1 and ec2.  We add ec2's items to ec1,
-        * then set ec2's ec_merged link to point to ec1 and remove ec2
-        * from the eq_classes list.  We cannot simply delete ec2 because
-        * that could leave dangling pointers in existing PathKeys.  We
-        * leave it behind with a link so that the merged EC can be found.
+        * Case 2: need to merge ec1 and ec2.  We add ec2's items to ec1, then
+        * set ec2's ec_merged link to point to ec1 and remove ec2 from the
+        * eq_classes list.  We cannot simply delete ec2 because that could
+        * leave dangling pointers in existing PathKeys.  We leave it behind
+        * with a link so that the merged EC can be found.
         */
        ec1->ec_members = list_concat(ec1->ec_members, ec2->ec_members);
        ec1->ec_sources = list_concat(ec1->ec_sources, ec2->ec_sources);
@@ -313,7 +313,7 @@ process_equivalence(PlannerInfo *root, RestrictInfo *restrictinfo,
  * add_eq_member - build a new EquivalenceMember and add it to an EC
  */
 static EquivalenceMember *
-add_eq_member(EquivalenceClass *ec, Expr *expr, Relids relids,
+add_eq_member(EquivalenceClass * ec, Expr *expr, Relids relids,
              bool is_child, Oid datatype)
 {
    EquivalenceMember *em = makeNode(EquivalenceMember);
@@ -327,10 +327,10 @@ add_eq_member(EquivalenceClass *ec, Expr *expr, Relids relids,
    if (bms_is_empty(relids))
    {
        /*
-        * No Vars, assume it's a pseudoconstant.  This is correct for
-        * entries generated from process_equivalence(), because a WHERE
-        * clause can't contain aggregates or SRFs, and non-volatility was
-        * checked before process_equivalence() ever got called.  But
+        * No Vars, assume it's a pseudoconstant.  This is correct for entries
+        * generated from process_equivalence(), because a WHERE clause can't
+        * contain aggregates or SRFs, and non-volatility was checked before
+        * process_equivalence() ever got called.  But
         * get_eclass_for_sort_expr() has to work harder.  We put the tests
         * there not here to save cycles in the equivalence case.
         */
@@ -399,8 +399,8 @@ get_eclass_for_sort_expr(PlannerInfo *root,
            EquivalenceMember *cur_em = (EquivalenceMember *) lfirst(lc2);
 
            /*
-            * If below an outer join, don't match constants: they're not
-            * as constant as they look.
+            * If below an outer join, don't match constants: they're not as
+            * constant as they look.
             */
            if (cur_ec->ec_below_outer_join &&
                cur_em->em_is_const)
@@ -408,15 +408,15 @@ get_eclass_for_sort_expr(PlannerInfo *root,
 
            if (expr_datatype == cur_em->em_datatype &&
                equal(expr, cur_em->em_expr))
-               return cur_ec;                  /* Match! */
+               return cur_ec;  /* Match! */
        }
    }
 
    /*
     * No match, so build a new single-member EC
     *
-    * Here, we must be sure that we construct the EC in the right context.
-    * We can assume, however, that the passed expr is long-lived.
+    * Here, we must be sure that we construct the EC in the right context. We
+    * can assume, however, that the passed expr is long-lived.
     */
    oldcontext = MemoryContextSwitchTo(root->planner_cxt);
 
@@ -437,8 +437,8 @@ get_eclass_for_sort_expr(PlannerInfo *root,
 
    /*
     * add_eq_member doesn't check for volatile functions, set-returning
-    * functions, or aggregates, but such could appear in sort expressions;
-    * so we have to check whether its const-marking was correct.
+    * functions, or aggregates, but such could appear in sort expressions; so
+    * we have to check whether its const-marking was correct.
     */
    if (newec->ec_has_const)
    {
@@ -466,7 +466,7 @@ get_eclass_for_sort_expr(PlannerInfo *root,
  *
  * When an EC contains pseudoconstants, our strategy is to generate
  * "member = const1" clauses where const1 is the first constant member, for
- * every other member (including other constants).  If we are able to do this
+ * every other member (including other constants). If we are able to do this
  * then we don't need any "var = var" comparisons because we've successfully
  * constrained all the vars at their points of creation.  If we fail to
  * generate any of these clauses due to lack of cross-type operators, we fall
@@ -491,7 +491,7 @@ get_eclass_for_sort_expr(PlannerInfo *root,
  * "WHERE a.x = b.y AND b.y = a.z", the scheme breaks down if we cannot
  * generate "a.x = a.z" as a restriction clause for A.)  In this case we mark
  * the EC "ec_broken" and fall back to regurgitating its original source
- * RestrictInfos at appropriate times.  We do not try to retract any derived
+ * RestrictInfos at appropriate times. We do not try to retract any derived
  * clauses already generated from the broken EC, so the resulting plan could
  * be poor due to bad selectivity estimates caused by redundant clauses.  But
  * the correct solution to that is to fix the opfamilies ...
@@ -517,8 +517,8 @@ generate_base_implied_equalities(PlannerInfo *root)
    {
        EquivalenceClass *ec = (EquivalenceClass *) lfirst(lc);
 
-       Assert(ec->ec_merged == NULL);      /* else shouldn't be in list */
-       Assert(!ec->ec_broken);             /* not yet anyway... */
+       Assert(ec->ec_merged == NULL);  /* else shouldn't be in list */
+       Assert(!ec->ec_broken); /* not yet anyway... */
 
        /* Single-member ECs won't generate any deductions */
        if (list_length(ec->ec_members) <= 1)
@@ -535,9 +535,8 @@ generate_base_implied_equalities(PlannerInfo *root)
    }
 
    /*
-    * This is also a handy place to mark base rels (which should all
-    * exist by now) with flags showing whether they have pending eclass
-    * joins.
+    * This is also a handy place to mark base rels (which should all exist by
+    * now) with flags showing whether they have pending eclass joins.
     */
    for (rti = 1; rti < root->simple_rel_array_size; rti++)
    {
@@ -555,7 +554,7 @@ generate_base_implied_equalities(PlannerInfo *root)
  */
 static void
 generate_base_implied_equalities_const(PlannerInfo *root,
-                                      EquivalenceClass *ec)
+                                      EquivalenceClass * ec)
 {
    EquivalenceMember *const_em = NULL;
    ListCell   *lc;
@@ -579,7 +578,7 @@ generate_base_implied_equalities_const(PlannerInfo *root,
        EquivalenceMember *cur_em = (EquivalenceMember *) lfirst(lc);
        Oid         eq_op;
 
-       Assert(!cur_em->em_is_child);               /* no children yet */
+       Assert(!cur_em->em_is_child);   /* no children yet */
        if (cur_em == const_em)
            continue;
        eq_op = select_equality_operator(ec,
@@ -604,7 +603,7 @@ generate_base_implied_equalities_const(PlannerInfo *root,
  */
 static void
 generate_base_implied_equalities_no_const(PlannerInfo *root,
-                                         EquivalenceClass *ec)
+                                         EquivalenceClass * ec)
 {
    EquivalenceMember **prev_ems;
    ListCell   *lc;
@@ -613,9 +612,10 @@ generate_base_implied_equalities_no_const(PlannerInfo *root,
     * We scan the EC members once and track the last-seen member for each
     * base relation.  When we see another member of the same base relation,
     * we generate "prev_mem = cur_mem".  This results in the minimum number
-    * of derived clauses, but it's possible that it will fail when a different
-    * ordering would succeed.  XXX FIXME: use a UNION-FIND algorithm similar
-    * to the way we build merged ECs.  (Use a list-of-lists for each rel.)
+    * of derived clauses, but it's possible that it will fail when a
+    * different ordering would succeed.  XXX FIXME: use a UNION-FIND
+    * algorithm similar to the way we build merged ECs.  (Use a list-of-lists
+    * for each rel.)
     */
    prev_ems = (EquivalenceMember **)
        palloc0(root->simple_rel_array_size * sizeof(EquivalenceMember *));
@@ -625,7 +625,7 @@ generate_base_implied_equalities_no_const(PlannerInfo *root,
        EquivalenceMember *cur_em = (EquivalenceMember *) lfirst(lc);
        int         relid;
 
-       Assert(!cur_em->em_is_child);               /* no children yet */
+       Assert(!cur_em->em_is_child);   /* no children yet */
        if (bms_membership(cur_em->em_relids) != BMS_SINGLETON)
            continue;
        relid = bms_singleton_member(cur_em->em_relids);
@@ -657,12 +657,12 @@ generate_base_implied_equalities_no_const(PlannerInfo *root,
    pfree(prev_ems);
 
    /*
-    * We also have to make sure that all the Vars used in the member
-    * clauses will be available at any join node we might try to reference
-    * them at.  For the moment we force all the Vars to be available at
-    * all join nodes for this eclass.  Perhaps this could be improved by
-    * doing some pre-analysis of which members we prefer to join, but it's
-    * no worse than what happened in the pre-8.3 code.
+    * We also have to make sure that all the Vars used in the member clauses
+    * will be available at any join node we might try to reference them at.
+    * For the moment we force all the Vars to be available at all join nodes
+    * for this eclass.  Perhaps this could be improved by doing some
+    * pre-analysis of which members we prefer to join, but it's no worse than
+    * what happened in the pre-8.3 code.
     */
    foreach(lc, ec->ec_members)
    {
@@ -685,7 +685,7 @@ generate_base_implied_equalities_no_const(PlannerInfo *root,
  */
 static void
 generate_base_implied_equalities_broken(PlannerInfo *root,
-                                       EquivalenceClass *ec)
+                                       EquivalenceClass * ec)
 {
    ListCell   *lc;
 
@@ -720,7 +720,7 @@ generate_base_implied_equalities_broken(PlannerInfo *root,
  * we consider different join paths, we avoid generating multiple copies:
  * whenever we select a particular pair of EquivalenceMembers to join,
  * we check to see if the pair matches any original clause (in ec_sources)
- * or previously-built clause (in ec_derives).  This saves memory and allows
+ * or previously-built clause (in ec_derives). This saves memory and allows
  * re-use of information cached in RestrictInfos.
  */
 List *
@@ -735,7 +735,7 @@ generate_join_implied_equalities(PlannerInfo *root,
    foreach(lc, root->eq_classes)
    {
        EquivalenceClass *ec = (EquivalenceClass *) lfirst(lc);
-       List   *sublist = NIL;
+       List       *sublist = NIL;
 
        /* ECs containing consts do not need any further enforcement */
        if (ec->ec_has_const)
@@ -775,7 +775,7 @@ generate_join_implied_equalities(PlannerInfo *root,
  */
 static List *
 generate_join_implied_equalities_normal(PlannerInfo *root,
-                                       EquivalenceClass *ec,
+                                       EquivalenceClass * ec,
                                        RelOptInfo *joinrel,
                                        RelOptInfo *outer_rel,
                                        RelOptInfo *inner_rel)
@@ -787,13 +787,13 @@ generate_join_implied_equalities_normal(PlannerInfo *root,
    ListCell   *lc1;
 
    /*
-    * First, scan the EC to identify member values that are computable
-    * at the outer rel, at the inner rel, or at this relation but not in
-    * either input rel.  The outer-rel members should already be enforced
-    * equal, likewise for the inner-rel members.  We'll need to create
-    * clauses to enforce that any newly computable members are all equal
-    * to each other as well as to at least one input member, plus enforce
-    * at least one outer-rel member equal to at least one inner-rel member.
+    * First, scan the EC to identify member values that are computable at the
+    * outer rel, at the inner rel, or at this relation but not in either
+    * input rel.  The outer-rel members should already be enforced equal,
+    * likewise for the inner-rel members.  We'll need to create clauses to
+    * enforce that any newly computable members are all equal to each other
+    * as well as to at least one input member, plus enforce at least one
+    * outer-rel member equal to at least one inner-rel member.
     */
    foreach(lc1, ec->ec_members)
    {
@@ -813,20 +813,20 @@ generate_join_implied_equalities_normal(PlannerInfo *root,
    }
 
    /*
-    * First, select the joinclause if needed.  We can equate any one outer
+    * First, select the joinclause if needed.  We can equate any one outer
     * member to any one inner member, but we have to find a datatype
-    * combination for which an opfamily member operator exists.  If we
-    * have choices, we prefer simple Var members (possibly with RelabelType)
-    * since these are (a) cheapest to compute at runtime and (b) most likely
-    * to have useful statistics.  Also, if enable_hashjoin is on, we prefer
+    * combination for which an opfamily member operator exists.  If we have
+    * choices, we prefer simple Var members (possibly with RelabelType) since
+    * these are (a) cheapest to compute at runtime and (b) most likely to
+    * have useful statistics.  Also, if enable_hashjoin is on, we prefer
     * operators that are also hashjoinable.
     */
    if (outer_members && inner_members)
    {
        EquivalenceMember *best_outer_em = NULL;
        EquivalenceMember *best_inner_em = NULL;
-       Oid     best_eq_op = InvalidOid;
-       int     best_score = -1;
+       Oid         best_eq_op = InvalidOid;
+       int         best_score = -1;
        RestrictInfo *rinfo;
 
        foreach(lc1, outer_members)
@@ -837,8 +837,8 @@ generate_join_implied_equalities_normal(PlannerInfo *root,
            foreach(lc2, inner_members)
            {
                EquivalenceMember *inner_em = (EquivalenceMember *) lfirst(lc2);
-               Oid     eq_op;
-               int     score;
+               Oid         eq_op;
+               int         score;
 
                eq_op = select_equality_operator(ec,
                                                 outer_em->em_datatype,
@@ -863,11 +863,11 @@ generate_join_implied_equalities_normal(PlannerInfo *root,
                    best_eq_op = eq_op;
                    best_score = score;
                    if (best_score == 3)
-                       break;              /* no need to look further */
+                       break;  /* no need to look further */
                }
            }
            if (best_score == 3)
-               break;                      /* no need to look further */
+               break;          /* no need to look further */
        }
        if (best_score < 0)
        {
@@ -892,8 +892,8 @@ generate_join_implied_equalities_normal(PlannerInfo *root,
     * Vars from both sides of the join.  We have to equate all of these to
     * each other as well as to at least one old member (if any).
     *
-    * XXX as in generate_base_implied_equalities_no_const, we could be a
-    * lot smarter here to avoid unnecessary failures in cross-type situations.
+    * XXX as in generate_base_implied_equalities_no_const, we could be a lot
+    * smarter here to avoid unnecessary failures in cross-type situations.
     * For now, use the same left-to-right method used there.
     */
    if (new_members)
@@ -944,7 +944,7 @@ generate_join_implied_equalities_normal(PlannerInfo *root,
  */
 static List *
 generate_join_implied_equalities_broken(PlannerInfo *root,
-                                       EquivalenceClass *ec,
+                                       EquivalenceClass * ec,
                                        RelOptInfo *joinrel,
                                        RelOptInfo *outer_rel,
                                        RelOptInfo *inner_rel)
@@ -957,7 +957,7 @@ generate_join_implied_equalities_broken(PlannerInfo *root,
        RestrictInfo *restrictinfo = (RestrictInfo *) lfirst(lc);
 
        if (bms_is_subset(restrictinfo->required_relids, joinrel->relids) &&
-           !bms_is_subset(restrictinfo->required_relids, outer_rel->relids) &&
+         !bms_is_subset(restrictinfo->required_relids, outer_rel->relids) &&
            !bms_is_subset(restrictinfo->required_relids, inner_rel->relids))
            result = lappend(result, restrictinfo);
    }
@@ -973,14 +973,14 @@ generate_join_implied_equalities_broken(PlannerInfo *root,
  * Returns InvalidOid if no operator can be found for this datatype combination
  */
 static Oid
-select_equality_operator(EquivalenceClass *ec, Oid lefttype, Oid righttype)
+select_equality_operator(EquivalenceClass * ec, Oid lefttype, Oid righttype)
 {
    ListCell   *lc;
 
    foreach(lc, ec->ec_opfamilies)
    {
-       Oid     opfamily = lfirst_oid(lc);
-       Oid     opno;
+       Oid         opfamily = lfirst_oid(lc);
+       Oid         opno;
 
        opno = get_opfamily_member(opfamily, lefttype, righttype,
                                   BTEqualStrategyNumber);
@@ -1003,10 +1003,10 @@ select_equality_operator(EquivalenceClass *ec, Oid lefttype, Oid righttype)
  */
 static RestrictInfo *
 create_join_clause(PlannerInfo *root,
-                  EquivalenceClass *ec, Oid opno,
-                  EquivalenceMember *leftem,
-                  EquivalenceMember *rightem,
-                  EquivalenceClass *parent_ec)
+                  EquivalenceClass * ec, Oid opno,
+                  EquivalenceMember * leftem,
+                  EquivalenceMember * rightem,
+                  EquivalenceClass * parent_ec)
 {
    RestrictInfo *rinfo;
    ListCell   *lc;
@@ -1014,8 +1014,8 @@ create_join_clause(PlannerInfo *root,
 
    /*
     * Search to see if we already built a RestrictInfo for this pair of
-    * EquivalenceMembers.  We can use either original source clauses or
-    * previously-derived clauses.  The check on opno is probably redundant,
+    * EquivalenceMembers.  We can use either original source clauses or
+    * previously-derived clauses.  The check on opno is probably redundant,
     * but be safe ...
     */
    foreach(lc, ec->ec_sources)
@@ -1039,8 +1039,8 @@ create_join_clause(PlannerInfo *root,
    }
 
    /*
-    * Not there, so build it, in planner context so we can re-use it.
-    * (Not important in normal planning, but definitely so in GEQO.)
+    * Not there, so build it, in planner context so we can re-use it. (Not
+    * important in normal planning, but definitely so in GEQO.)
     */
    oldcontext = MemoryContextSwitchTo(root->planner_cxt);
 
@@ -1216,10 +1216,9 @@ reconsider_outer_join_clause(PlannerInfo *root, RestrictInfo *rinfo,
            continue;           /* no match, so ignore this EC */
 
        /*
-        * Yes it does!  Try to generate a clause INNERVAR = CONSTANT for
-        * each CONSTANT in the EC.  Note that we must succeed with at
-        * least one constant before we can decide to throw away the
-        * outer-join clause.
+        * Yes it does!  Try to generate a clause INNERVAR = CONSTANT for each
+        * CONSTANT in the EC.  Note that we must succeed with at least one
+        * constant before we can decide to throw away the outer-join clause.
         */
        match = false;
        foreach(lc2, cur_ec->ec_members)
@@ -1300,15 +1299,15 @@ reconsider_full_join_clause(PlannerInfo *root, RestrictInfo *rinfo)
        /*
         * Does it contain a COALESCE(leftvar, rightvar) construct?
         *
-        * We can assume the COALESCE() inputs are in the same order as
-        * the join clause, since both were automatically generated in the
-        * cases we care about.
+        * We can assume the COALESCE() inputs are in the same order as the
+        * join clause, since both were automatically generated in the cases
+        * we care about.
         *
-        * XXX currently this may fail to match in cross-type cases
-        * because the COALESCE will contain typecast operations while the
-        * join clause may not (if there is a cross-type mergejoin
-        * operator available for the two column types). Is it OK to strip
-        * implicit coercions from the COALESCE arguments?
+        * XXX currently this may fail to match in cross-type cases because
+        * the COALESCE will contain typecast operations while the join clause
+        * may not (if there is a cross-type mergejoin operator available for
+        * the two column types). Is it OK to strip implicit coercions from
+        * the COALESCE arguments?
         */
        match = false;
        foreach(lc2, cur_ec->ec_members)
@@ -1337,9 +1336,9 @@ reconsider_full_join_clause(PlannerInfo *root, RestrictInfo *rinfo)
 
        /*
         * Yes it does!  Try to generate clauses LEFTVAR = CONSTANT and
-        * RIGHTVAR = CONSTANT for each CONSTANT in the EC.  Note that we
-        * must succeed with at least one constant for each var before
-        * we can decide to throw away the outer-join clause.
+        * RIGHTVAR = CONSTANT for each CONSTANT in the EC.  Note that we must
+        * succeed with at least one constant for each var before we can
+        * decide to throw away the outer-join clause.
         */
        matchleft = matchright = false;
        foreach(lc2, cur_ec->ec_members)
@@ -1378,16 +1377,17 @@ reconsider_full_join_clause(PlannerInfo *root, RestrictInfo *rinfo)
 
        /*
         * If we were able to equate both vars to constants, we're done, and
-        * we can throw away the full-join clause as redundant.  Moreover,
-        * we can remove the COALESCE entry from the EC, since the added
-        * restrictions ensure it will always have the expected value.
-        * (We don't bother trying to update ec_relids or ec_sources.)
+        * we can throw away the full-join clause as redundant.  Moreover, we
+        * can remove the COALESCE entry from the EC, since the added
+        * restrictions ensure it will always have the expected value. (We
+        * don't bother trying to update ec_relids or ec_sources.)
         */
        if (matchleft && matchright)
        {
            cur_ec->ec_members = list_delete_ptr(cur_ec->ec_members, coal_em);
            return;
        }
+
        /*
         * Otherwise, fall out of the search loop, since we know the COALESCE
         * appears in at most one EC (XXX might stop being true if we allow
@@ -1489,8 +1489,8 @@ add_child_rel_equivalences(PlannerInfo *root,
            if (bms_equal(cur_em->em_relids, parent_rel->relids))
            {
                /* Yes, generate transformed child version */
-               Expr *child_expr;
-               
+               Expr       *child_expr;
+
                child_expr = (Expr *)
                    adjust_appendrel_attrs((Node *) cur_em->em_expr,
                                           appinfo);
@@ -1528,8 +1528,8 @@ find_eclass_clauses_for_index_join(PlannerInfo *root, RelOptInfo *rel,
            continue;
 
        /*
-        * No point in searching if rel not mentioned in eclass (but we
-        * can't tell that for a child rel).
+        * No point in searching if rel not mentioned in eclass (but we can't
+        * tell that for a child rel).
         */
        if (!is_child_rel &&
            !bms_is_subset(rel->relids, cur_ec->ec_relids))
@@ -1543,7 +1543,7 @@ find_eclass_clauses_for_index_join(PlannerInfo *root, RelOptInfo *rel,
        {
            EquivalenceMember *cur_em = (EquivalenceMember *) lfirst(lc2);
            EquivalenceMember *best_outer_em = NULL;
-           Oid     best_eq_op = InvalidOid;
+           Oid         best_eq_op = InvalidOid;
            ListCell   *lc3;
 
            if (!bms_equal(cur_em->em_relids, rel->relids) ||
@@ -1552,14 +1552,14 @@ find_eclass_clauses_for_index_join(PlannerInfo *root, RelOptInfo *rel,
 
            /*
             * Found one, so try to generate a join clause.  This is like
-            * generate_join_implied_equalities_normal, except simpler
-            * since our only preference item is to pick a Var on the
-            * outer side.  We only need one join clause per index col.
+            * generate_join_implied_equalities_normal, except simpler since
+            * our only preference item is to pick a Var on the outer side.
+            * We only need one join clause per index col.
             */
            foreach(lc3, cur_ec->ec_members)
            {
                EquivalenceMember *outer_em = (EquivalenceMember *) lfirst(lc3);
-               Oid     eq_op;
+               Oid         eq_op;
 
                if (!bms_is_subset(outer_em->em_relids, outer_relids))
                    continue;
@@ -1573,7 +1573,7 @@ find_eclass_clauses_for_index_join(PlannerInfo *root, RelOptInfo *rel,
                if (IsA(outer_em->em_expr, Var) ||
                    (IsA(outer_em->em_expr, RelabelType) &&
                     IsA(((RelabelType *) outer_em->em_expr)->arg, Var)))
-                   break;  /* no need to look further */
+                   break;      /* no need to look further */
            }
 
            if (best_outer_em)
@@ -1587,9 +1587,10 @@ find_eclass_clauses_for_index_join(PlannerInfo *root, RelOptInfo *rel,
                                           cur_ec);
 
                result = lappend(result, rinfo);
+
                /*
-                * Note: we keep scanning here because we want to provide
-                * clause for every possible indexcol.
+                * Note: we keep scanning here because we want to provide a
+                * clause for every possible indexcol.
                 */
            }
        }
@@ -1605,7 +1606,7 @@ find_eclass_clauses_for_index_join(PlannerInfo *root, RelOptInfo *rel,
  *     a joinclause between the two given relations.
  *
  * This is essentially a very cut-down version of
- * generate_join_implied_equalities().  Note it's OK to occasionally say "yes"
+ * generate_join_implied_equalities(). Note it's OK to occasionally say "yes"
  * incorrectly.  Hence we don't bother with details like whether the lack of a
  * cross-type operator might prevent the clause from actually being generated.
  */
@@ -1647,7 +1648,7 @@ have_relevant_eclass_joinclause(PlannerInfo *root,
            EquivalenceMember *cur_em = (EquivalenceMember *) lfirst(lc2);
 
            if (cur_em->em_is_child)
-               continue;           /* ignore children here */
+               continue;       /* ignore children here */
            if (bms_is_subset(cur_em->em_relids, rel1->relids))
            {
                has_rel1 = true;
@@ -1715,7 +1716,7 @@ has_relevant_eclass_joinclause(PlannerInfo *root, RelOptInfo *rel1)
            EquivalenceMember *cur_em = (EquivalenceMember *) lfirst(lc2);
 
            if (cur_em->em_is_child)
-               continue;           /* ignore children here */
+               continue;       /* ignore children here */
            if (bms_is_subset(cur_em->em_relids, rel1->relids))
            {
                has_rel1 = true;
@@ -1744,12 +1745,12 @@ has_relevant_eclass_joinclause(PlannerInfo *root, RelOptInfo *rel1)
  *   against the specified relation.
  *
  * This is just a heuristic test and doesn't have to be exact; it's better
- * to say "yes" incorrectly than "no".  Hence we don't bother with details
+ * to say "yes" incorrectly than "no". Hence we don't bother with details
  * like whether the lack of a cross-type operator might prevent the clause
  * from actually being generated.
  */
 bool
-eclass_useful_for_merging(EquivalenceClass *eclass,
+eclass_useful_for_merging(EquivalenceClass * eclass,
                          RelOptInfo *rel)
 {
    ListCell   *lc;
@@ -1757,16 +1758,16 @@ eclass_useful_for_merging(EquivalenceClass *eclass,
    Assert(!eclass->ec_merged);
 
    /*
-    * Won't generate joinclauses if const or single-member (the latter
-    * test covers the volatile case too)
+    * Won't generate joinclauses if const or single-member (the latter test
+    * covers the volatile case too)
     */
    if (eclass->ec_has_const || list_length(eclass->ec_members) <= 1)
        return false;
 
    /*
-    * Note we don't test ec_broken; if we did, we'd need a separate code
-    * path to look through ec_sources.  Checking the members anyway is OK
-    * as a possibly-overoptimistic heuristic.
+    * Note we don't test ec_broken; if we did, we'd need a separate code path
+    * to look through ec_sources.  Checking the members anyway is OK as a
+    * possibly-overoptimistic heuristic.
     */
 
    /* If rel already includes all members of eclass, no point in searching */
index 47dd3ec55b080d788c143021f6eeb8dd7d508ca2..4bd9392313a08df0754b65785835614240896e59 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/path/indxpath.c,v 1.223 2007/11/07 22:37:24 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/path/indxpath.c,v 1.224 2007/11/15 21:14:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -39,7 +39,7 @@
 /*
  * DoneMatchingIndexKeys() - MACRO
  */
-#define DoneMatchingIndexKeys(families)    (families[0] == InvalidOid)
+#define DoneMatchingIndexKeys(families) (families[0] == InvalidOid)
 
 #define IsBooleanOpfamily(opfamily) \
    ((opfamily) == BOOL_BTREE_FAM_OID || (opfamily) == BOOL_HASH_FAM_OID)
@@ -52,7 +52,7 @@ typedef struct
    List       *quals;          /* the WHERE clauses it uses */
    List       *preds;          /* predicates of its partial index(es) */
    Bitmapset  *clauseids;      /* quals+preds represented as a bitmapset */
-} PathClauseUsage;
+}  PathClauseUsage;
 
 
 static List *find_usable_indexes(PlannerInfo *root, RelOptInfo *rel,
@@ -70,7 +70,7 @@ static Cost bitmap_scan_cost_est(PlannerInfo *root, RelOptInfo *rel,
 static Cost bitmap_and_cost_est(PlannerInfo *root, RelOptInfo *rel,
                    List *paths, RelOptInfo *outer_rel);
 static PathClauseUsage *classify_index_clause_usage(Path *path,
-                                                   List **clauselist);
+                           List **clauselist);
 static void find_indexpath_quals(Path *bitmapqual, List **quals, List **preds);
 static int find_list_position(Node *node, List **nodelist);
 static bool match_clause_to_indexcol(IndexOptInfo *index,
@@ -382,8 +382,8 @@ find_usable_indexes(PlannerInfo *root, RelOptInfo *rel,
        }
 
        /*
-        * 4. If the index is ordered, a backwards scan might be
-        * interesting.  Again, this is only interesting at top level.
+        * 4. If the index is ordered, a backwards scan might be interesting.
+        * Again, this is only interesting at top level.
         */
        if (index_is_ordered && possibly_useful_pathkeys &&
            istoplevel && outer_rel == NULL)
@@ -581,7 +581,8 @@ choose_bitmap_and(PlannerInfo *root, RelOptInfo *rel,
    List       *clauselist;
    List       *bestpaths = NIL;
    Cost        bestcost = 0;
-   int         i, j;
+   int         i,
+               j;
    ListCell   *l;
 
    Assert(npaths > 0);         /* else caller error */
@@ -592,40 +593,39 @@ choose_bitmap_and(PlannerInfo *root, RelOptInfo *rel,
     * In theory we should consider every nonempty subset of the given paths.
     * In practice that seems like overkill, given the crude nature of the
     * estimates, not to mention the possible effects of higher-level AND and
-    * OR clauses.  Moreover, it's completely impractical if there are a large
+    * OR clauses.  Moreover, it's completely impractical if there are a large
     * number of paths, since the work would grow as O(2^N).
     *
-    * As a heuristic, we first check for paths using exactly the same
-    * sets of WHERE clauses + index predicate conditions, and reject all
-    * but the cheapest-to-scan in any such group.  This primarily gets rid
-    * of indexes that include the interesting columns but also irrelevant
-    * columns.  (In situations where the DBA has gone overboard on creating
-    * variant indexes, this can make for a very large reduction in the number
-    * of paths considered further.)
+    * As a heuristic, we first check for paths using exactly the same sets of
+    * WHERE clauses + index predicate conditions, and reject all but the
+    * cheapest-to-scan in any such group.  This primarily gets rid of indexes
+    * that include the interesting columns but also irrelevant columns.  (In
+    * situations where the DBA has gone overboard on creating variant
+    * indexes, this can make for a very large reduction in the number of
+    * paths considered further.)
     *
-    * We then sort the surviving paths with the cheapest-to-scan first,
-    * and for each path, consider using that path alone as the basis for
-    * a bitmap scan.  Then we consider bitmap AND scans formed from that
-    * path plus each subsequent (higher-cost) path, adding on a subsequent
-    * path if it results in a reduction in the estimated total scan cost.
-    * This means we consider about O(N^2) rather than O(2^N) path
-    * combinations, which is quite tolerable, especially given than N is
-    * usually reasonably small because of the prefiltering step.  The
-    * cheapest of these is returned.
+    * We then sort the surviving paths with the cheapest-to-scan first, and
+    * for each path, consider using that path alone as the basis for a bitmap
+    * scan.  Then we consider bitmap AND scans formed from that path plus
+    * each subsequent (higher-cost) path, adding on a subsequent path if it
+    * results in a reduction in the estimated total scan cost. This means we
+    * consider about O(N^2) rather than O(2^N) path combinations, which is
+    * quite tolerable, especially given than N is usually reasonably small
+    * because of the prefiltering step.  The cheapest of these is returned.
     *
-    * We will only consider AND combinations in which no two indexes use
-    * the same WHERE clause.  This is a bit of a kluge: it's needed because
+    * We will only consider AND combinations in which no two indexes use the
+    * same WHERE clause.  This is a bit of a kluge: it's needed because
     * costsize.c and clausesel.c aren't very smart about redundant clauses.
     * They will usually double-count the redundant clauses, producing a
     * too-small selectivity that makes a redundant AND step look like it
-    * reduces the total cost.  Perhaps someday that code will be smarter and
+    * reduces the total cost.  Perhaps someday that code will be smarter and
     * we can remove this limitation.  (But note that this also defends
     * against flat-out duplicate input paths, which can happen because
     * best_inner_indexscan will find the same OR join clauses that
     * create_or_index_quals has pulled OR restriction clauses out of.)
     *
     * For the same reason, we reject AND combinations in which an index
-    * predicate clause duplicates another clause.  Here we find it necessary
+    * predicate clause duplicates another clause.  Here we find it necessary
     * to be even stricter: we'll reject a partial index if any of its
     * predicate clauses are implied by the set of WHERE clauses and predicate
     * clauses used so far.  This covers cases such as a condition "x = 42"
@@ -639,9 +639,9 @@ choose_bitmap_and(PlannerInfo *root, RelOptInfo *rel,
     */
 
    /*
-    * Extract clause usage info and detect any paths that use exactly
-    * the same set of clauses; keep only the cheapest-to-scan of any such
-    * groups.  The surviving paths are put into an array for qsort'ing.
+    * Extract clause usage info and detect any paths that use exactly the
+    * same set of clauses; keep only the cheapest-to-scan of any such groups.
+    * The surviving paths are put into an array for qsort'ing.
     */
    pathinfoarray = (PathClauseUsage **)
        palloc(npaths * sizeof(PathClauseUsage *));
@@ -649,7 +649,7 @@ choose_bitmap_and(PlannerInfo *root, RelOptInfo *rel,
    npaths = 0;
    foreach(l, paths)
    {
-       Path   *ipath = (Path *) lfirst(l);
+       Path       *ipath = (Path *) lfirst(l);
 
        pathinfo = classify_index_clause_usage(ipath, &clauselist);
        for (i = 0; i < npaths; i++)
@@ -686,9 +686,9 @@ choose_bitmap_and(PlannerInfo *root, RelOptInfo *rel,
          path_usage_comparator);
 
    /*
-    * For each surviving index, consider it as an "AND group leader", and
-    * see whether adding on any of the later indexes results in an AND path
-    * with cheaper total cost than before.  Then take the cheapest AND group.
+    * For each surviving index, consider it as an "AND group leader", and see
+    * whether adding on any of the later indexes results in an AND path with
+    * cheaper total cost than before.  Then take the cheapest AND group.
     */
    for (i = 0; i < npaths; i++)
    {
@@ -705,17 +705,17 @@ choose_bitmap_and(PlannerInfo *root, RelOptInfo *rel,
        clauseidsofar = bms_copy(pathinfo->clauseids);
        lastcell = list_head(paths);    /* for quick deletions */
 
-       for (j = i+1; j < npaths; j++)
+       for (j = i + 1; j < npaths; j++)
        {
            Cost        newcost;
 
            pathinfo = pathinfoarray[j];
            /* Check for redundancy */
            if (bms_overlap(pathinfo->clauseids, clauseidsofar))
-               continue;           /* consider it redundant */
+               continue;       /* consider it redundant */
            if (pathinfo->preds)
            {
-               bool    redundant = false;
+               bool        redundant = false;
 
                /* we check each predicate clause separately */
                foreach(l, pathinfo->preds)
@@ -725,7 +725,7 @@ choose_bitmap_and(PlannerInfo *root, RelOptInfo *rel,
                    if (predicate_implied_by(list_make1(np), qualsofar))
                    {
                        redundant = true;
-                       break;      /* out of inner foreach loop */
+                       break;  /* out of inner foreach loop */
                    }
                }
                if (redundant)
@@ -766,7 +766,7 @@ choose_bitmap_and(PlannerInfo *root, RelOptInfo *rel,
    }
 
    if (list_length(bestpaths) == 1)
-       return (Path *) linitial(bestpaths);        /* no need for AND */
+       return (Path *) linitial(bestpaths);    /* no need for AND */
    return (Path *) create_bitmap_and_path(root, rel, bestpaths);
 }
 
@@ -774,8 +774,8 @@ choose_bitmap_and(PlannerInfo *root, RelOptInfo *rel,
 static int
 path_usage_comparator(const void *a, const void *b)
 {
-   PathClauseUsage *pa = *(PathClauseUsage *const *) a;
-   PathClauseUsage *pb = *(PathClauseUsage *const *) b;
+   PathClauseUsage *pa = *(PathClauseUsage * const *) a;
+   PathClauseUsage *pb = *(PathClauseUsage * const *) b;
    Cost        acost;
    Cost        bcost;
    Selectivity aselec;
@@ -872,14 +872,14 @@ classify_index_clause_usage(Path *path, List **clauselist)
    clauseids = NULL;
    foreach(lc, result->quals)
    {
-       Node   *node = (Node *) lfirst(lc);
+       Node       *node = (Node *) lfirst(lc);
 
        clauseids = bms_add_member(clauseids,
                                   find_list_position(node, clauselist));
    }
    foreach(lc, result->preds)
    {
-       Node   *node = (Node *) lfirst(lc);
+       Node       *node = (Node *) lfirst(lc);
 
        clauseids = bms_add_member(clauseids,
                                   find_list_position(node, clauselist));
@@ -944,7 +944,7 @@ find_indexpath_quals(Path *bitmapqual, List **quals, List **preds)
 /*
  * find_list_position
  *     Return the given node's position (counting from 0) in the given
- *     list of nodes.  If it's not equal() to any existing list member,
+ *     list of nodes.  If it's not equal() to any existing list member,
  *     add it at the end, and return that position.
  */
 static int
@@ -956,7 +956,7 @@ find_list_position(Node *node, List **nodelist)
    i = 0;
    foreach(lc, *nodelist)
    {
-       Node   *oldnode = (Node *) lfirst(lc);
+       Node       *oldnode = (Node *) lfirst(lc);
 
        if (equal(node, oldnode))
            return i;
@@ -1218,7 +1218,7 @@ match_clause_to_indexcol(IndexOptInfo *index,
    }
    else if (index->amsearchnulls && IsA(clause, NullTest))
    {
-       NullTest    *nt = (NullTest *) clause;
+       NullTest   *nt = (NullTest *) clause;
 
        if (nt->nulltesttype == IS_NULL &&
            match_index_to_operand((Node *) nt->arg, indexcol, index))
@@ -1315,12 +1315,12 @@ match_rowcompare_to_indexcol(IndexOptInfo *index,
    /*
     * We could do the matching on the basis of insisting that the opfamily
     * shown in the RowCompareExpr be the same as the index column's opfamily,
-    * but that could fail in the presence of reverse-sort opfamilies: it'd
-    * be a matter of chance whether RowCompareExpr had picked the forward
-    * or reverse-sort family.  So look only at the operator, and match
-    * if it is a member of the index's opfamily (after commutation, if the
-    * indexkey is on the right).  We'll worry later about whether any
-    * additional operators are matchable to the index.
+    * but that could fail in the presence of reverse-sort opfamilies: it'd be
+    * a matter of chance whether RowCompareExpr had picked the forward or
+    * reverse-sort family.  So look only at the operator, and match if it is
+    * a member of the index's opfamily (after commutation, if the indexkey is
+    * on the right).  We'll worry later about whether any additional
+    * operators are matchable to the index.
     */
    leftop = (Node *) linitial(clause->largs);
    rightop = (Node *) linitial(clause->rargs);
@@ -1421,8 +1421,8 @@ indexable_outerrelids(PlannerInfo *root, RelOptInfo *rel)
    }
 
    /*
-    * We also have to look through the query's EquivalenceClasses to see
-    * if any of them could generate indexable join conditions for this rel.
+    * We also have to look through the query's EquivalenceClasses to see if
+    * any of them could generate indexable join conditions for this rel.
     */
    if (rel->has_eclass_joins)
    {
@@ -1434,8 +1434,8 @@ indexable_outerrelids(PlannerInfo *root, RelOptInfo *rel)
            ListCell   *lc2;
 
            /*
-            * Won't generate joinclauses if const or single-member (the latter
-            * test covers the volatile case too)
+            * Won't generate joinclauses if const or single-member (the
+            * latter test covers the volatile case too)
             */
            if (cur_ec->ec_has_const || list_length(cur_ec->ec_members) <= 1)
                continue;
@@ -1569,7 +1569,7 @@ matches_any_index(RestrictInfo *rinfo, RelOptInfo *rel, Relids outer_relids)
  * This is also exported for use by find_eclass_clauses_for_index_join.
  */
 bool
-eclass_matches_any_index(EquivalenceClass *ec, EquivalenceMember *em,
+eclass_matches_any_index(EquivalenceClass * ec, EquivalenceMember * em,
                         RelOptInfo *rel)
 {
    ListCell   *l;
@@ -1831,14 +1831,14 @@ find_clauses_for_join(PlannerInfo *root, RelOptInfo *rel,
 
    /*
     * Also check to see if any EquivalenceClasses can produce a relevant
-    * joinclause.  Since all such clauses are effectively pushed-down,
-    * this doesn't apply to outer joins.
+    * joinclause.  Since all such clauses are effectively pushed-down, this
+    * doesn't apply to outer joins.
     */
    if (!isouterjoin && rel->has_eclass_joins)
        clause_list = list_concat(clause_list,
                                  find_eclass_clauses_for_index_join(root,
                                                                     rel,
-                                                              outer_relids));
+                                                             outer_relids));
 
    /* If no join clause was matched then forget it, per comments above */
    if (clause_list == NIL)
@@ -2150,9 +2150,9 @@ match_special_index_operator(Expr *clause, Oid opfamily,
     * want to apply.  (A hash index, for example, will not support ">=".)
     * Currently, only btree supports the operators we need.
     *
-    * We insist on the opfamily being the specific one we expect, else we'd do
-    * the wrong thing if someone were to make a reverse-sort opfamily with the
-    * same operators.
+    * We insist on the opfamily being the specific one we expect, else we'd
+    * do the wrong thing if someone were to make a reverse-sort opfamily with
+    * the same operators.
     */
    switch (expr_op)
    {
@@ -2260,7 +2260,7 @@ expand_indexqual_conditions(IndexOptInfo *index, List *clausegroups)
            {
                resultquals = list_concat(resultquals,
                                          expand_indexqual_opclause(rinfo,
-                                                                 curFamily));
+                                                                curFamily));
            }
            else if (IsA(clause, ScalarArrayOpExpr))
            {
@@ -2602,9 +2602,9 @@ expand_indexqual_rowcompare(RestrictInfo *rinfo,
        righttypes_cell = list_head(righttypes);
        foreach(opfamilies_cell, opfamilies)
        {
-           Oid     opfam = lfirst_oid(opfamilies_cell);
-           Oid     lefttype = lfirst_oid(lefttypes_cell);
-           Oid     righttype = lfirst_oid(righttypes_cell);
+           Oid         opfam = lfirst_oid(opfamilies_cell);
+           Oid         lefttype = lfirst_oid(lefttypes_cell);
+           Oid         righttype = lfirst_oid(righttypes_cell);
 
            expr_op = get_opfamily_member(opfam, lefttype, righttype,
                                          op_strategy);
index 3671d6974cdc95f615a0cb3764f82db7dd07d58e..4282a9912fea8620b12e665572dbb109bc580db1 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/path/joinpath.c,v 1.112 2007/05/22 01:40:33 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/path/joinpath.c,v 1.113 2007/11/15 21:14:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -200,7 +200,7 @@ sort_inner_and_outer(PlannerInfo *root,
     *
     * Actually, it's not quite true that every mergeclause ordering will
     * generate a different path order, because some of the clauses may be
-    * partially redundant (refer to the same EquivalenceClasses).  Therefore,
+    * partially redundant (refer to the same EquivalenceClasses).  Therefore,
     * what we do is convert the mergeclause list to a list of canonical
     * pathkeys, and then consider different orderings of the pathkeys.
     *
@@ -237,7 +237,7 @@ sort_inner_and_outer(PlannerInfo *root,
                              list_delete_ptr(list_copy(all_pathkeys),
                                              front_pathkey));
        else
-           outerkeys = all_pathkeys;       /* no work at first one... */
+           outerkeys = all_pathkeys;   /* no work at first one... */
 
        /* Sort the mergeclauses into the corresponding ordering */
        cur_mergeclauses = find_mergeclauses_for_pathkeys(root,
index 18fa47c02e2b2ba94ea4ed0e0fbaed2befd982e5..4265a29ea45122e075862184af3c0224198f065f 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/path/joinrels.c,v 1.88 2007/10/26 18:10:50 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/path/joinrels.c,v 1.89 2007/11/15 21:14:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -346,8 +346,8 @@ join_is_legal(PlannerInfo *root, RelOptInfo *rel1, RelOptInfo *rel2,
    ListCell   *l;
 
    /*
-    * Ensure *jointype_p is set on failure return.  This is just to
-    * suppress uninitialized-variable warnings from overly anal compilers.
+    * Ensure *jointype_p is set on failure return.  This is just to suppress
+    * uninitialized-variable warnings from overly anal compilers.
     */
    *jointype_p = JOIN_INNER;
 
@@ -398,14 +398,14 @@ join_is_legal(PlannerInfo *root, RelOptInfo *rel1, RelOptInfo *rel2,
            bms_is_subset(ojinfo->min_righthand, rel2->relids))
        {
            if (jointype != JOIN_INNER)
-               return false;           /* invalid join path */
+               return false;   /* invalid join path */
            jointype = ojinfo->is_full_join ? JOIN_FULL : JOIN_LEFT;
        }
        else if (bms_is_subset(ojinfo->min_lefthand, rel2->relids) &&
                 bms_is_subset(ojinfo->min_righthand, rel1->relids))
        {
            if (jointype != JOIN_INNER)
-               return false;           /* invalid join path */
+               return false;   /* invalid join path */
            jointype = ojinfo->is_full_join ? JOIN_FULL : JOIN_RIGHT;
        }
        else
@@ -520,7 +520,7 @@ join_is_legal(PlannerInfo *root, RelOptInfo *rel1, RelOptInfo *rel2,
        else if (bms_equal(ininfo->righthand, rel2->relids))
            jointype = JOIN_UNIQUE_INNER;
        else
-           return false;           /* invalid join path */
+           return false;       /* invalid join path */
    }
 
    /* Join is valid */
@@ -666,9 +666,9 @@ have_join_order_restriction(PlannerInfo *root,
    ListCell   *l;
 
    /*
-    * It's possible that the rels correspond to the left and right sides
-    * of a degenerate outer join, that is, one with no joinclause mentioning
-    * the non-nullable side; in which case we should force the join to occur.
+    * It's possible that the rels correspond to the left and right sides of a
+    * degenerate outer join, that is, one with no joinclause mentioning the
+    * non-nullable side; in which case we should force the join to occur.
     *
     * Also, the two rels could represent a clauseless join that has to be
     * completed to build up the LHS or RHS of an outer join.
@@ -696,9 +696,9 @@ have_join_order_restriction(PlannerInfo *root,
        }
 
        /*
-        * Might we need to join these rels to complete the RHS?  We have
-        * to use "overlap" tests since either rel might include a lower OJ
-        * that has been proven to commute with this one.
+        * Might we need to join these rels to complete the RHS?  We have to
+        * use "overlap" tests since either rel might include a lower OJ that
+        * has been proven to commute with this one.
         */
        if (bms_overlap(ojinfo->min_righthand, rel1->relids) &&
            bms_overlap(ojinfo->min_righthand, rel2->relids))
@@ -761,13 +761,13 @@ have_join_order_restriction(PlannerInfo *root,
    }
 
    /*
-    * We do not force the join to occur if either input rel can legally
-    * be joined to anything else using joinclauses.  This essentially
-    * means that clauseless bushy joins are put off as long as possible.
-    * The reason is that when there is a join order restriction high up
-    * in the join tree (that is, with many rels inside the LHS or RHS),
-    * we would otherwise expend lots of effort considering very stupid
-    * join combinations within its LHS or RHS.
+    * We do not force the join to occur if either input rel can legally be
+    * joined to anything else using joinclauses.  This essentially means that
+    * clauseless bushy joins are put off as long as possible. The reason is
+    * that when there is a join order restriction high up in the join tree
+    * (that is, with many rels inside the LHS or RHS), we would otherwise
+    * expend lots of effort considering very stupid join combinations within
+    * its LHS or RHS.
     */
    if (result)
    {
@@ -787,7 +787,7 @@ have_join_order_restriction(PlannerInfo *root,
  *
  * Essentially, this tests whether have_join_order_restriction() could
  * succeed with this rel and some other one.  It's OK if we sometimes
- * say "true" incorrectly.  (Therefore, we don't bother with the relatively
+ * say "true" incorrectly. (Therefore, we don't bother with the relatively
  * expensive has_legal_joinclause test.)
  */
 static bool
index 846fe78ee6cc5cd99acd56c02bb29aa695fab9f2..7d22194860fe2f0479ece078b29223d6ef90938f 100644 (file)
@@ -11,7 +11,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/path/pathkeys.c,v 1.89 2007/11/08 21:49:47 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/path/pathkeys.c,v 1.90 2007/11/15 21:14:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 #define MUST_BE_REDUNDANT(eclass)  \
    ((eclass)->ec_has_const && !(eclass)->ec_below_outer_join)
 
-static PathKey *makePathKey(EquivalenceClass *eclass, Oid opfamily,
-                           int strategy, bool nulls_first);
+static PathKey *makePathKey(EquivalenceClass * eclass, Oid opfamily,
+           int strategy, bool nulls_first);
 static PathKey *make_canonical_pathkey(PlannerInfo *root,
-                      EquivalenceClass *eclass, Oid opfamily,
+                      EquivalenceClass * eclass, Oid opfamily,
                       int strategy, bool nulls_first);
-static bool pathkey_is_redundant(PathKey *new_pathkey, List *pathkeys);
+static bool pathkey_is_redundant(PathKey * new_pathkey, List *pathkeys);
 static PathKey *make_pathkey_from_sortinfo(PlannerInfo *root,
                           Expr *expr, Oid ordering_op,
                           bool nulls_first,
@@ -50,7 +50,7 @@ static PathKey *make_pathkey_from_sortinfo(PlannerInfo *root,
                           bool canonicalize);
 static Var *find_indexkey_var(PlannerInfo *root, RelOptInfo *rel,
                  AttrNumber varattno);
-static bool right_merge_direction(PlannerInfo *root, PathKey *pathkey);
+static bool right_merge_direction(PlannerInfo *root, PathKey * pathkey);
 
 
 /****************************************************************************
@@ -65,10 +65,10 @@ static bool right_merge_direction(PlannerInfo *root, PathKey *pathkey);
  * convenience routine to build the specified node.
  */
 static PathKey *
-makePathKey(EquivalenceClass *eclass, Oid opfamily,
+makePathKey(EquivalenceClass * eclass, Oid opfamily,
            int strategy, bool nulls_first)
 {
-   PathKey    *pk = makeNode(PathKey);
+   PathKey    *pk = makeNode(PathKey);
 
    pk->pk_eclass = eclass;
    pk->pk_opfamily = opfamily;
@@ -89,10 +89,10 @@ makePathKey(EquivalenceClass *eclass, Oid opfamily,
  */
 static PathKey *
 make_canonical_pathkey(PlannerInfo *root,
-                      EquivalenceClass *eclass, Oid opfamily,
+                      EquivalenceClass * eclass, Oid opfamily,
                       int strategy, bool nulls_first)
 {
-   PathKey    *pk;
+   PathKey    *pk;
    ListCell   *lc;
    MemoryContext oldcontext;
 
@@ -155,7 +155,7 @@ make_canonical_pathkey(PlannerInfo *root,
  * pointer comparison is enough to decide whether canonical ECs are the same.
  */
 static bool
-pathkey_is_redundant(PathKey *new_pathkey, List *pathkeys)
+pathkey_is_redundant(PathKey * new_pathkey, List *pathkeys)
 {
    EquivalenceClass *new_ec = new_pathkey->pk_eclass;
    ListCell   *lc;
@@ -170,7 +170,7 @@ pathkey_is_redundant(PathKey *new_pathkey, List *pathkeys)
    /* If same EC already used in list, then redundant */
    foreach(lc, pathkeys)
    {
-       PathKey    *old_pathkey = (PathKey *) lfirst(lc);
+       PathKey    *old_pathkey = (PathKey *) lfirst(lc);
 
        /* Assert we've been given canonical pathkeys */
        Assert(!old_pathkey->pk_eclass->ec_merged);
@@ -197,9 +197,9 @@ canonicalize_pathkeys(PlannerInfo *root, List *pathkeys)
 
    foreach(l, pathkeys)
    {
-       PathKey    *pathkey = (PathKey *) lfirst(l);
+       PathKey    *pathkey = (PathKey *) lfirst(l);
        EquivalenceClass *eclass;
-       PathKey    *cpathkey;
+       PathKey    *cpathkey;
 
        /* Find the canonical (merged) EquivalenceClass */
        eclass = pathkey->pk_eclass;
@@ -255,13 +255,13 @@ make_pathkey_from_sortinfo(PlannerInfo *root,
    EquivalenceClass *eclass;
 
    /*
-    * An ordering operator fully determines the behavior of its opfamily,
-    * so could only meaningfully appear in one family --- or perhaps two
-    * if one builds a reverse-sort opfamily, but there's not much point in
-    * that anymore.  But EquivalenceClasses need to contain opfamily lists
-    * based on the family membership of equality operators, which could
-    * easily be bigger.  So, look up the equality operator that goes with
-    * the ordering operator (this should be unique) and get its membership.
+    * An ordering operator fully determines the behavior of its opfamily, so
+    * could only meaningfully appear in one family --- or perhaps two if one
+    * builds a reverse-sort opfamily, but there's not much point in that
+    * anymore.  But EquivalenceClasses need to contain opfamily lists based
+    * on the family membership of equality operators, which could easily be
+    * bigger.  So, look up the equality operator that goes with the ordering
+    * operator (this should be unique) and get its membership.
     */
 
    /* Find the operator in pg_amop --- failure shouldn't happen */
@@ -284,15 +284,15 @@ make_pathkey_from_sortinfo(PlannerInfo *root,
 
    /*
     * When dealing with binary-compatible opclasses, we have to ensure that
-    * the exposed type of the expression tree matches the declared input
-    * type of the opclass, except when that is a polymorphic type
-    * (compare the behavior of parse_coerce.c).  This ensures that we can
-    * correctly match the indexkey or sortclause expression to other
-    * expressions we find in the query, because arguments of ordinary
-    * operator expressions will be cast that way.  (We have to do this
-    * for indexkeys because they are represented without any explicit
-    * relabel in pg_index, and for sort clauses because the parser is
-    * likewise cavalier about putting relabels on them.)
+    * the exposed type of the expression tree matches the declared input type
+    * of the opclass, except when that is a polymorphic type (compare the
+    * behavior of parse_coerce.c).  This ensures that we can correctly match
+    * the indexkey or sortclause expression to other expressions we find in
+    * the query, because arguments of ordinary operator expressions will be
+    * cast that way.  (We have to do this for indexkeys because they are
+    * represented without any explicit relabel in pg_index, and for sort
+    * clauses because the parser is likewise cavalier about putting relabels
+    * on them.)
     */
    if (exprType((Node *) expr) != opcintype &&
        !IsPolymorphicType(opcintype))
@@ -341,8 +341,8 @@ compare_pathkeys(List *keys1, List *keys2)
 
    forboth(key1, keys1, key2, keys2)
    {
-       PathKey    *pathkey1 = (PathKey *) lfirst(key1);
-       PathKey    *pathkey2 = (PathKey *) lfirst(key2);
+       PathKey    *pathkey1 = (PathKey *) lfirst(key1);
+       PathKey    *pathkey2 = (PathKey *) lfirst(key2);
 
        /*
         * XXX would like to check that we've been given canonicalized input,
@@ -495,7 +495,7 @@ build_index_pathkeys(PlannerInfo *root,
        bool        nulls_first;
        int         ikey;
        Expr       *indexkey;
-       PathKey    *cpathkey;
+       PathKey    *cpathkey;
 
        if (ScanDirectionIsBackward(scandir))
        {
@@ -601,9 +601,9 @@ convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel,
 
    foreach(i, subquery_pathkeys)
    {
-       PathKey    *sub_pathkey = (PathKey *) lfirst(i);
+       PathKey    *sub_pathkey = (PathKey *) lfirst(i);
        EquivalenceClass *sub_eclass = sub_pathkey->pk_eclass;
-       PathKey    *best_pathkey = NULL;
+       PathKey    *best_pathkey = NULL;
 
        if (sub_eclass->ec_has_volatile)
        {
@@ -614,7 +614,7 @@ convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel,
             */
            TargetEntry *tle;
 
-           if (sub_eclass->ec_sortref == 0)        /* can't happen */
+           if (sub_eclass->ec_sortref == 0)    /* can't happen */
                elog(ERROR, "volatile EquivalenceClass has no sortref");
            tle = get_sortgroupref_tle(sub_eclass->ec_sortref, sub_tlist);
            Assert(tle);
@@ -653,11 +653,11 @@ convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel,
            /*
             * Otherwise, the sub_pathkey's EquivalenceClass could contain
             * multiple elements (representing knowledge that multiple items
-            * are effectively equal).  Each element might match none, one, or
-            * more of the output columns that are visible to the outer
-            * query. This means we may have multiple possible representations
-            * of the sub_pathkey in the context of the outer query.  Ideally
-            * we would generate them all and put them all into an EC of the
+            * are effectively equal).  Each element might match none, one, or
+            * more of the output columns that are visible to the outer query.
+            * This means we may have multiple possible representations of the
+            * sub_pathkey in the context of the outer query.  Ideally we
+            * would generate them all and put them all into an EC of the
             * outer query, thereby propagating equality knowledge up to the
             * outer query.  Right now we cannot do so, because the outer
             * query's EquivalenceClasses are already frozen when this is
@@ -680,7 +680,8 @@ convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel,
                 * We handle two cases: the sub_pathkey key can be either an
                 * exact match for a targetlist entry, or it could match after
                 * stripping RelabelType nodes.  (We need that case since
-                * make_pathkey_from_sortinfo could add or remove RelabelType.)
+                * make_pathkey_from_sortinfo could add or remove
+                * RelabelType.)
                 */
                sub_stripped = sub_expr;
                while (sub_stripped && IsA(sub_stripped, RelabelType))
@@ -691,7 +692,7 @@ convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel,
                    TargetEntry *tle = (TargetEntry *) lfirst(k);
                    Expr       *outer_expr;
                    EquivalenceClass *outer_ec;
-                   PathKey    *outer_pk;
+                   PathKey    *outer_pk;
                    int         score;
 
                    /* resjunk items aren't visible to outer query */
@@ -729,7 +730,7 @@ convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel,
                                exprType((Node *) sub_expr))
                                outer_expr = (Expr *)
                                    makeRelabelType(outer_expr,
-                                                   exprType((Node *) sub_expr),
+                                                exprType((Node *) sub_expr),
                                                    -1,
                                                    COERCE_DONTCARE);
                        }
@@ -740,14 +741,14 @@ convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel,
                    /* Found a representation for this sub_pathkey */
                    outer_ec = get_eclass_for_sort_expr(root,
                                                        outer_expr,
-                                                       sub_member->em_datatype,
-                                                       sub_eclass->ec_opfamilies,
+                                                    sub_member->em_datatype,
+                                                  sub_eclass->ec_opfamilies,
                                                        0);
                    outer_pk = make_canonical_pathkey(root,
                                                      outer_ec,
-                                                     sub_pathkey->pk_opfamily,
-                                                     sub_pathkey->pk_strategy,
-                                                     sub_pathkey->pk_nulls_first);
+                                                   sub_pathkey->pk_opfamily,
+                                                   sub_pathkey->pk_strategy,
+                                               sub_pathkey->pk_nulls_first);
                    /* score = # of equivalence peers */
                    score = list_length(outer_ec->ec_members) - 1;
                    /* +1 if it matches the proper query_pathkeys item */
@@ -854,7 +855,7 @@ make_pathkeys_for_sortclauses(PlannerInfo *root,
    {
        SortClause *sortcl = (SortClause *) lfirst(l);
        Expr       *sortkey;
-       PathKey    *pathkey;
+       PathKey    *pathkey;
 
        sortkey = (Expr *) get_sortgroupclause_expr(sortcl, tlist);
        pathkey = make_pathkey_from_sortinfo(root,
@@ -961,7 +962,7 @@ find_mergeclauses_for_pathkeys(PlannerInfo *root,
 
    foreach(i, pathkeys)
    {
-       PathKey    *pathkey = (PathKey *) lfirst(i);
+       PathKey    *pathkey = (PathKey *) lfirst(i);
        EquivalenceClass *pathkey_ec = pathkey->pk_eclass;
        List       *matched_restrictinfos = NIL;
        ListCell   *j;
@@ -1042,7 +1043,7 @@ find_mergeclauses_for_pathkeys(PlannerInfo *root,
  * Returns a pathkeys list that can be applied to the outer relation.
  *
  * Since we assume here that a sort is required, there is no particular use
- * in matching any available ordering of the outerrel.  (joinpath.c has an
+ * in matching any available ordering of the outerrel. (joinpath.c has an
  * entirely separate code path for considering sort-free mergejoins.)  Rather,
  * it's interesting to try to match the requested query_pathkeys so that a
  * second output sort may be avoided; and failing that, we try to list "more
@@ -1117,16 +1118,15 @@ select_outer_pathkeys_for_merge(PlannerInfo *root,
    }
 
    /*
-    * Find out if we have all the ECs mentioned in query_pathkeys; if so
-    * we can generate a sort order that's also useful for final output.
-    * There is no percentage in a partial match, though, so we have to
-    * have 'em all.
+    * Find out if we have all the ECs mentioned in query_pathkeys; if so we
+    * can generate a sort order that's also useful for final output. There is
+    * no percentage in a partial match, though, so we have to have 'em all.
     */
    if (root->query_pathkeys)
    {
        foreach(lc, root->query_pathkeys)
        {
-           PathKey    *query_pathkey = (PathKey *) lfirst(lc);
+           PathKey    *query_pathkey = (PathKey *) lfirst(lc);
            EquivalenceClass *query_ec = query_pathkey->pk_eclass;
 
            for (j = 0; j < necs; j++)
@@ -1145,7 +1145,7 @@ select_outer_pathkeys_for_merge(PlannerInfo *root,
            /* mark their ECs as already-emitted */
            foreach(lc, root->query_pathkeys)
            {
-               PathKey    *query_pathkey = (PathKey *) lfirst(lc);
+               PathKey    *query_pathkey = (PathKey *) lfirst(lc);
                EquivalenceClass *query_ec = query_pathkey->pk_eclass;
 
                for (j = 0; j < necs; j++)
@@ -1161,16 +1161,16 @@ select_outer_pathkeys_for_merge(PlannerInfo *root,
    }
 
    /*
-    * Add remaining ECs to the list in popularity order, using a default
-    * sort ordering.  (We could use qsort() here, but the list length is
-    * usually so small it's not worth it.)
+    * Add remaining ECs to the list in popularity order, using a default sort
+    * ordering.  (We could use qsort() here, but the list length is usually
+    * so small it's not worth it.)
     */
    for (;;)
    {
-       int     best_j;
-       int     best_score;
+       int         best_j;
+       int         best_score;
        EquivalenceClass *ec;
-       PathKey *pathkey;
+       PathKey    *pathkey;
 
        best_j = 0;
        best_score = scores[0];
@@ -1230,7 +1230,7 @@ make_inner_pathkeys_for_merge(PlannerInfo *root,
 {
    List       *pathkeys = NIL;
    EquivalenceClass *lastoeclass;
-   PathKey    *opathkey;
+   PathKey    *opathkey;
    ListCell   *lc;
    ListCell   *lop;
 
@@ -1243,7 +1243,7 @@ make_inner_pathkeys_for_merge(PlannerInfo *root,
        RestrictInfo *rinfo = (RestrictInfo *) lfirst(lc);
        EquivalenceClass *oeclass;
        EquivalenceClass *ieclass;
-       PathKey    *pathkey;
+       PathKey    *pathkey;
 
        cache_mergeclause_eclasses(root, rinfo);
 
@@ -1332,7 +1332,7 @@ pathkeys_useful_for_merging(PlannerInfo *root, RelOptInfo *rel, List *pathkeys)
 
    foreach(i, pathkeys)
    {
-       PathKey    *pathkey = (PathKey *) lfirst(i);
+       PathKey    *pathkey = (PathKey *) lfirst(i);
        bool        matched = false;
        ListCell   *j;
 
@@ -1392,23 +1392,23 @@ pathkeys_useful_for_merging(PlannerInfo *root, RelOptInfo *rel, List *pathkeys)
  *     for merging its target column.
  */
 static bool
-right_merge_direction(PlannerInfo *root, PathKey *pathkey)
+right_merge_direction(PlannerInfo *root, PathKey * pathkey)
 {
    ListCell   *l;
 
    foreach(l, root->query_pathkeys)
    {
-       PathKey    *query_pathkey = (PathKey *) lfirst(l);
+       PathKey    *query_pathkey = (PathKey *) lfirst(l);
 
        if (pathkey->pk_eclass == query_pathkey->pk_eclass &&
            pathkey->pk_opfamily == query_pathkey->pk_opfamily)
        {
            /*
-            * Found a matching query sort column.  Prefer this pathkey's
+            * Found a matching query sort column.  Prefer this pathkey's
             * direction iff it matches.  Note that we ignore pk_nulls_first,
-            * which means that a sort might be needed anyway ... but we
-            * still want to prefer only one of the two possible directions,
-            * and we might as well use this one.
+            * which means that a sort might be needed anyway ... but we still
+            * want to prefer only one of the two possible directions, and we
+            * might as well use this one.
             */
            return (pathkey->pk_strategy == query_pathkey->pk_strategy);
        }
@@ -1480,13 +1480,13 @@ truncate_useless_pathkeys(PlannerInfo *root,
  *     useful according to truncate_useless_pathkeys().
  *
  * This is a cheap test that lets us skip building pathkeys at all in very
- * simple queries.  It's OK to err in the direction of returning "true" when
+ * simple queries. It's OK to err in the direction of returning "true" when
  * there really aren't any usable pathkeys, but erring in the other direction
  * is bad --- so keep this in sync with the routines above!
  *
  * We could make the test more complex, for example checking to see if any of
  * the joinclauses are really mergejoinable, but that likely wouldn't win
- * often enough to repay the extra cycles.  Queries with neither a join nor
+ * often enough to repay the extra cycles. Queries with neither a join nor
  * a sort are reasonably common, though, so this much work seems worthwhile.
  */
 bool
index e2b46f970ce33e11e7149b3661dabc7f5650923d..eed6446c8a85856304c991014eaf2bf29ac8e252 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/plan/createplan.c,v 1.234 2007/11/08 21:49:47 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/plan/createplan.c,v 1.235 2007/11/15 21:14:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -723,8 +723,8 @@ create_unique_plan(PlannerInfo *root, UniquePath *best_path)
        /*
         * Get the hashable equality operators for the Agg node to use.
         * Normally these are the same as the IN clause operators, but if
-        * those are cross-type operators then the equality operators are
-        * the ones for the IN clause operators' RHS datatype.
+        * those are cross-type operators then the equality operators are the
+        * ones for the IN clause operators' RHS datatype.
         */
        groupOperators = (Oid *) palloc(numGroupCols * sizeof(Oid));
        groupColPos = 0;
@@ -769,7 +769,7 @@ create_unique_plan(PlannerInfo *root, UniquePath *best_path)
            SortClause *sortcl;
 
            sortop = get_ordering_op_for_equality_op(in_oper, false);
-           if (!OidIsValid(sortop))        /* shouldn't happen */
+           if (!OidIsValid(sortop))    /* shouldn't happen */
                elog(ERROR, "could not find ordering operator for equality operator %u",
                     in_oper);
            tle = get_tle_by_resno(subplan->targetlist,
@@ -1530,8 +1530,8 @@ create_mergejoin_plan(PlannerInfo *root,
    int         i;
    EquivalenceClass *lastoeclass;
    EquivalenceClass *lastieclass;
-   PathKey    *opathkey;
-   PathKey    *ipathkey;
+   PathKey    *opathkey;
+   PathKey    *ipathkey;
    ListCell   *lc;
    ListCell   *lop;
    ListCell   *lip;
@@ -1603,8 +1603,8 @@ create_mergejoin_plan(PlannerInfo *root,
    /*
     * If inner plan is a sort that is expected to spill to disk, add a
     * materialize node to shield it from the need to handle mark/restore.
-    * This will allow it to perform the last merge pass on-the-fly, while
-    * in most cases not requiring the materialize to spill to disk.
+    * This will allow it to perform the last merge pass on-the-fly, while in
+    * most cases not requiring the materialize to spill to disk.
     *
     * XXX really, Sort oughta do this for itself, probably, to avoid the
     * overhead of a separate plan node.
@@ -1645,7 +1645,7 @@ create_mergejoin_plan(PlannerInfo *root,
    i = 0;
    foreach(lc, best_path->path_mergeclauses)
    {
-       RestrictInfo   *rinfo = (RestrictInfo *) lfirst(lc);
+       RestrictInfo *rinfo = (RestrictInfo *) lfirst(lc);
        EquivalenceClass *oeclass;
        EquivalenceClass *ieclass;
 
@@ -1938,7 +1938,7 @@ fix_indexqual_references(List *indexquals, IndexPath *index_path,
        }
        else if (IsA(clause, NullTest))
        {
-           NullTest *nt = (NullTest *) clause;
+           NullTest   *nt = (NullTest *) clause;
 
            Assert(nt->nulltesttype == IS_NULL);
            nt->arg = (Expr *) fix_indexqual_operand((Node *) nt->arg,
@@ -2139,9 +2139,9 @@ order_qual_clauses(PlannerInfo *root, List *clauses)
 {
    typedef struct
    {
-       Node   *clause;
-       Cost    cost;
-   } QualItem;
+       Node       *clause;
+       Cost        cost;
+   }           QualItem;
    int         nitems = list_length(clauses);
    QualItem   *items;
    ListCell   *lc;
@@ -2171,8 +2171,8 @@ order_qual_clauses(PlannerInfo *root, List *clauses)
 
    /*
     * Sort.  We don't use qsort() because it's not guaranteed stable for
-    * equal keys.  The expected number of entries is small enough that
-    * simple insertion sort should be good enough.
+    * equal keys.  The expected number of entries is small enough that a
+    * simple insertion sort should be good enough.
     */
    for (i = 1; i < nitems; i++)
    {
@@ -2182,9 +2182,9 @@ order_qual_clauses(PlannerInfo *root, List *clauses)
        /* insert newitem into the already-sorted subarray */
        for (j = i; j > 0; j--)
        {
-           if (newitem.cost >= items[j-1].cost)
+           if (newitem.cost >= items[j - 1].cost)
                break;
-           items[j] = items[j-1];
+           items[j] = items[j - 1];
        }
        items[j] = newitem;
    }
@@ -2616,7 +2616,7 @@ make_mergejoin(List *tlist,
  * make_sort --- basic routine to build a Sort plan node
  *
  * Caller must have built the sortColIdx, sortOperators, and nullsFirst
- * arrays already.  limit_tuples is as for cost_sort (in particular, pass
+ * arrays already. limit_tuples is as for cost_sort (in particular, pass
  * -1 if no limit)
  */
 static Sort *
@@ -2667,8 +2667,8 @@ add_sort_column(AttrNumber colIdx, Oid sortOp, bool nulls_first,
    for (i = 0; i < numCols; i++)
    {
        /*
-        * Note: we check sortOp because it's conceivable that "ORDER BY
-        * foo USING <, foo USING <<<" is not redundant, if <<< distinguishes
+        * Note: we check sortOp because it's conceivable that "ORDER BY foo
+        * USING <, foo USING <<<" is not redundant, if <<< distinguishes
         * values that < considers equal.  We need not check nulls_first
         * however because a lower-order column with the same sortop but
         * opposite nulls direction is redundant.
@@ -2729,7 +2729,7 @@ make_sort_from_pathkeys(PlannerInfo *root, Plan *lefttree, List *pathkeys,
 
    foreach(i, pathkeys)
    {
-       PathKey    *pathkey = (PathKey *) lfirst(i);
+       PathKey    *pathkey = (PathKey *) lfirst(i);
        EquivalenceClass *ec = pathkey->pk_eclass;
        TargetEntry *tle = NULL;
        Oid         pk_datatype = InvalidOid;
@@ -2743,7 +2743,7 @@ make_sort_from_pathkeys(PlannerInfo *root, Plan *lefttree, List *pathkeys,
             * have come from an ORDER BY clause, and we have to match it to
             * that same targetlist entry.
             */
-           if (ec->ec_sortref == 0)        /* can't happen */
+           if (ec->ec_sortref == 0)    /* can't happen */
                elog(ERROR, "volatile EquivalenceClass has no sortref");
            tle = get_sortgroupref_tle(ec->ec_sortref, tlist);
            Assert(tle);
@@ -2755,7 +2755,7 @@ make_sort_from_pathkeys(PlannerInfo *root, Plan *lefttree, List *pathkeys,
            /*
             * Otherwise, we can sort by any non-constant expression listed in
             * the pathkey's EquivalenceClass.  For now, we take the first one
-            * that corresponds to an available item in the tlist.  If there
+            * that corresponds to an available item in the tlist.  If there
             * isn't any, use the first one that is an expression in the
             * input's vars.  (The non-const restriction only matters if the
             * EC is below_outer_join; but if it isn't, it won't contain
@@ -2779,28 +2779,28 @@ make_sort_from_pathkeys(PlannerInfo *root, Plan *lefttree, List *pathkeys,
                if (tle)
                {
                    pk_datatype = em->em_datatype;
-                   break;          /* found expr already in tlist */
+                   break;      /* found expr already in tlist */
                }
 
                /*
                 * We can also use it if the pathkey expression is a relabel
                 * of the tlist entry, or vice versa.  This is needed for
                 * binary-compatible cases (cf. make_pathkey_from_sortinfo).
-                * We prefer an exact match, though, so we do the basic
-                * search first.
+                * We prefer an exact match, though, so we do the basic search
+                * first.
                 */
                tle = tlist_member_ignore_relabel((Node *) em->em_expr, tlist);
                if (tle)
                {
                    pk_datatype = em->em_datatype;
-                   break;          /* found expr already in tlist */
+                   break;      /* found expr already in tlist */
                }
            }
 
            if (!tle)
            {
                /* No matching tlist item; look for a computable expression */
-               Expr   *sortexpr = NULL;
+               Expr       *sortexpr = NULL;
 
                foreach(j, ec->ec_members)
                {
@@ -2821,7 +2821,7 @@ make_sort_from_pathkeys(PlannerInfo *root, Plan *lefttree, List *pathkeys,
                    if (!k)
                    {
                        pk_datatype = em->em_datatype;
-                       break;      /* found usable expression */
+                       break;  /* found usable expression */
                    }
                }
                if (!j)
@@ -3172,7 +3172,7 @@ make_group(PlannerInfo *root,
 
 /*
  * distinctList is a list of SortClauses, identifying the targetlist items
- * that should be considered by the Unique filter.  The input path must
+ * that should be considered by the Unique filter. The input path must
  * already be sorted accordingly.
  */
 Unique *
@@ -3221,7 +3221,7 @@ make_unique(Plan *lefttree, List *distinctList)
 
        uniqColIdx[keyno] = tle->resno;
        uniqOperators[keyno] = get_equality_op_for_ordering_op(sortcl->sortop);
-       if (!OidIsValid(uniqOperators[keyno]))      /* shouldn't happen */
+       if (!OidIsValid(uniqOperators[keyno]))  /* shouldn't happen */
            elog(ERROR, "could not find equality operator for ordering operator %u",
                 sortcl->sortop);
        keyno++;
@@ -3287,7 +3287,7 @@ make_setop(SetOpCmd cmd, Plan *lefttree,
 
        dupColIdx[keyno] = tle->resno;
        dupOperators[keyno] = get_equality_op_for_ordering_op(sortcl->sortop);
-       if (!OidIsValid(dupOperators[keyno]))       /* shouldn't happen */
+       if (!OidIsValid(dupOperators[keyno]))   /* shouldn't happen */
            elog(ERROR, "could not find equality operator for ordering operator %u",
                 sortcl->sortop);
        keyno++;
index bacd875abf0bed2fc0127edd762e71479c1b28df..a567197d75dae6755bd05c587be4ba41715b2246 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/plan/initsplan.c,v 1.135 2007/10/24 20:54:27 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/plan/initsplan.c,v 1.136 2007/11/15 21:14:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -51,7 +51,7 @@ static void distribute_qual_to_rels(PlannerInfo *root, Node *clause,
                        Relids ojscope,
                        Relids outerjoin_nonnullable);
 static bool check_outerjoin_delay(PlannerInfo *root, Relids *relids_p,
-                                 bool is_pushed_down);
+                     bool is_pushed_down);
 static void check_mergejoinable(RestrictInfo *restrictinfo);
 static void check_hashjoinable(RestrictInfo *restrictinfo);
 
@@ -329,10 +329,10 @@ deconstruct_recurse(PlannerInfo *root, Node *jtnode, bool below_outer_join,
 
        /*
         * A FROM with more than one list element is an inner join subsuming
-        * all below it, so we should report inner_join_rels = qualscope.
-        * If there was exactly one element, we should (and already did) report
-        * whatever its inner_join_rels were.  If there were no elements
-        * (is that possible?) the initialization before the loop fixed it.
+        * all below it, so we should report inner_join_rels = qualscope. If
+        * there was exactly one element, we should (and already did) report
+        * whatever its inner_join_rels were.  If there were no elements (is
+        * that possible?) the initialization before the loop fixed it.
         */
        if (list_length(f->fromlist) > 1)
            *inner_join_rels = *qualscope;
@@ -478,8 +478,8 @@ deconstruct_recurse(PlannerInfo *root, Node *jtnode, bool below_outer_join,
        else
        {
            /* can't combine, but needn't force join order above here */
-           Node   *leftpart,
-                  *rightpart;
+           Node       *leftpart,
+                      *rightpart;
 
            /* avoid creating useless 1-element sublists */
            if (list_length(leftjoinlist) == 1)
@@ -590,13 +590,13 @@ make_outerjoininfo(PlannerInfo *root,
    ojinfo->lhs_strict = bms_overlap(strict_relids, left_rels);
 
    /*
-    * Required LHS always includes the LHS rels mentioned in the clause.
-    * We may have to add more rels based on lower outer joins; see below.
+    * Required LHS always includes the LHS rels mentioned in the clause. We
+    * may have to add more rels based on lower outer joins; see below.
     */
    min_lefthand = bms_intersect(clause_relids, left_rels);
 
    /*
-    * Similarly for required RHS.  But here, we must also include any lower
+    * Similarly for required RHS.  But here, we must also include any lower
     * inner joins, to ensure we don't try to commute with any of them.
     */
    min_righthand = bms_int_members(bms_union(clause_relids, inner_join_rels),
@@ -614,10 +614,10 @@ make_outerjoininfo(PlannerInfo *root,
         * For a lower OJ in our LHS, if our join condition uses the lower
         * join's RHS and is not strict for that rel, we must preserve the
         * ordering of the two OJs, so add lower OJ's full syntactic relset to
-        * min_lefthand.  (We must use its full syntactic relset, not just
-        * its min_lefthand + min_righthand.  This is because there might
-        * be other OJs below this one that this one can commute with,
-        * but we cannot commute with them if we don't with this one.)
+        * min_lefthand.  (We must use its full syntactic relset, not just its
+        * min_lefthand + min_righthand.  This is because there might be other
+        * OJs below this one that this one can commute with, but we cannot
+        * commute with them if we don't with this one.)
         *
         * Note: I believe we have to insist on being strict for at least one
         * rel in the lower OJ's min_righthand, not its whole syn_righthand.
@@ -635,19 +635,19 @@ make_outerjoininfo(PlannerInfo *root,
        /*
         * For a lower OJ in our RHS, if our join condition does not use the
         * lower join's RHS and the lower OJ's join condition is strict, we
-        * can interchange the ordering of the two OJs; otherwise we must
-        * add lower OJ's full syntactic relset to min_righthand. 
+        * can interchange the ordering of the two OJs; otherwise we must add
+        * lower OJ's full syntactic relset to min_righthand.
         *
-        * Here, we have to consider that "our join condition" includes
-        * any clauses that syntactically appeared above the lower OJ and
-        * below ours; those are equivalent to degenerate clauses in our
-        * OJ and must be treated as such.  Such clauses obviously can't
-        * reference our LHS, and they must be non-strict for the lower OJ's
-        * RHS (else reduce_outer_joins would have reduced the lower OJ to
-        * a plain join).  Hence the other ways in which we handle clauses
-        * within our join condition are not affected by them.  The net
-        * effect is therefore sufficiently represented by the
-        * delay_upper_joins flag saved for us by check_outerjoin_delay.
+        * Here, we have to consider that "our join condition" includes any
+        * clauses that syntactically appeared above the lower OJ and below
+        * ours; those are equivalent to degenerate clauses in our OJ and must
+        * be treated as such.  Such clauses obviously can't reference our
+        * LHS, and they must be non-strict for the lower OJ's RHS (else
+        * reduce_outer_joins would have reduced the lower OJ to a plain
+        * join).  Hence the other ways in which we handle clauses within our
+        * join condition are not affected by them.  The net effect is
+        * therefore sufficiently represented by the delay_upper_joins flag
+        * saved for us by check_outerjoin_delay.
         */
        if (bms_overlap(right_rels, otherinfo->syn_righthand))
        {
@@ -817,7 +817,7 @@ distribute_qual_to_rels(PlannerInfo *root, Node *clause,
     * Note: it is not immediately obvious that a simple boolean is enough
     * for this: if for some reason we were to attach a degenerate qual to
     * its original join level, it would need to be treated as an outer join
-    * qual there.  However, this cannot happen, because all the rels the
+    * qual there.  However, this cannot happen, because all the rels the
     * clause mentions must be in the outer join's min_righthand, therefore
     * the join it needs must be formed before the outer join; and we always
     * attach quals to the lowest level where they can be evaluated.  But
@@ -828,10 +828,10 @@ distribute_qual_to_rels(PlannerInfo *root, Node *clause,
    if (is_deduced)
    {
        /*
-        * If the qual came from implied-equality deduction, it should
-        * not be outerjoin-delayed, else deducer blew it.  But we can't
-        * check this because the ojinfo list may now contain OJs above
-        * where the qual belongs.
+        * If the qual came from implied-equality deduction, it should not be
+        * outerjoin-delayed, else deducer blew it.  But we can't check this
+        * because the ojinfo list may now contain OJs above where the qual
+        * belongs.
         */
        Assert(!ojscope);
        is_pushed_down = true;
@@ -846,9 +846,9 @@ distribute_qual_to_rels(PlannerInfo *root, Node *clause,
         * The qual is attached to an outer join and mentions (some of the)
         * rels on the nonnullable side, so it's not degenerate.
         *
-        * We can't use such a clause to deduce equivalence (the left and right
-        * sides might be unequal above the join because one of them has gone
-        * to NULL) ... but we might be able to use it for more limited
+        * We can't use such a clause to deduce equivalence (the left and
+        * right sides might be unequal above the join because one of them has
+        * gone to NULL) ... but we might be able to use it for more limited
         * deductions, if there are no lower outer joins that delay its
         * application.  If so, consider adding it to the lists of set-aside
         * clauses.
@@ -875,8 +875,8 @@ distribute_qual_to_rels(PlannerInfo *root, Node *clause,
    else
    {
        /*
-        * Normal qual clause or degenerate outer-join clause.  Either way,
-        * we can mark it as pushed-down.
+        * Normal qual clause or degenerate outer-join clause.  Either way, we
+        * can mark it as pushed-down.
         */
        is_pushed_down = true;
 
@@ -887,6 +887,7 @@ distribute_qual_to_rels(PlannerInfo *root, Node *clause,
        {
            /* Should still be a subset of current scope ... */
            Assert(bms_is_subset(relids, qualscope));
+
            /*
             * Because application of the qual will be delayed by outer join,
             * we mustn't assume its vars are equal everywhere.
@@ -896,12 +897,11 @@ distribute_qual_to_rels(PlannerInfo *root, Node *clause,
        else
        {
            /*
-            * Qual is not delayed by any lower outer-join restriction, so
-            * we can consider feeding it to the equivalence machinery.
-            * However, if it's itself within an outer-join clause, treat it
-            * as though it appeared below that outer join (note that we can
-            * only get here when the clause references only nullable-side
-            * rels).
+            * Qual is not delayed by any lower outer-join restriction, so we
+            * can consider feeding it to the equivalence machinery. However,
+            * if it's itself within an outer-join clause, treat it as though
+            * it appeared below that outer join (note that we can only get
+            * here when the clause references only nullable-side rels).
             */
            maybe_equivalence = true;
            if (outerjoin_nonnullable != NULL)
@@ -926,9 +926,9 @@ distribute_qual_to_rels(PlannerInfo *root, Node *clause,
 
    /*
     * If it's a join clause (either naturally, or because delayed by
-    * outer-join rules), add vars used in the clause to targetlists of
-    * their relations, so that they will be emitted by the plan nodes that
-    * scan those relations (else they won't be available at the join node!).
+    * outer-join rules), add vars used in the clause to targetlists of their
+    * relations, so that they will be emitted by the plan nodes that scan
+    * those relations (else they won't be available at the join node!).
     *
     * Note: if the clause gets absorbed into an EquivalenceClass then this
     * may be unnecessary, but for now we have to do it to cover the case
@@ -955,23 +955,23 @@ distribute_qual_to_rels(PlannerInfo *root, Node *clause,
     * machinery.  We do *not* attach it directly to any restriction or join
     * lists.  The EC code will propagate it to the appropriate places later.
     *
-    * If the clause has a mergejoinable operator and is not outerjoin-delayed,
-    * yet isn't an equivalence because it is an outer-join clause, the EC
-    * code may yet be able to do something with it.  We add it to appropriate
-    * lists for further consideration later.  Specifically:
+    * If the clause has a mergejoinable operator and is not
+    * outerjoin-delayed, yet isn't an equivalence because it is an outer-join
+    * clause, the EC code may yet be able to do something with it.  We add it
+    * to appropriate lists for further consideration later.  Specifically:
     *
-    * If it is a left or right outer-join qualification that relates the
-    * two sides of the outer join (no funny business like leftvar1 =
-    * leftvar2 + rightvar), we add it to root->left_join_clauses or
+    * If it is a left or right outer-join qualification that relates the two
+    * sides of the outer join (no funny business like leftvar1 = leftvar2 +
+    * rightvar), we add it to root->left_join_clauses or
     * root->right_join_clauses according to which side the nonnullable
     * variable appears on.
     *
     * If it is a full outer-join qualification, we add it to
     * root->full_join_clauses.  (Ideally we'd discard cases that aren't
     * leftvar = rightvar, as we do for left/right joins, but this routine
-    * doesn't have the info needed to do that; and the current usage of
-    * the full_join_clauses list doesn't require that, so it's not
-    * currently worth complicating this routine's API to make it possible.)
+    * doesn't have the info needed to do that; and the current usage of the
+    * full_join_clauses list doesn't require that, so it's not currently
+    * worth complicating this routine's API to make it possible.)
     *
     * If none of the above hold, pass it off to
     * distribute_restrictinfo_to_rels().
@@ -997,9 +997,9 @@ distribute_qual_to_rels(PlannerInfo *root, Node *clause,
                return;
            }
            if (bms_is_subset(restrictinfo->right_relids,
-                                  outerjoin_nonnullable) &&
-                    !bms_overlap(restrictinfo->left_relids,
-                                 outerjoin_nonnullable))
+                             outerjoin_nonnullable) &&
+               !bms_overlap(restrictinfo->left_relids,
+                            outerjoin_nonnullable))
            {
                /* we have innervar = outervar */
                root->right_join_clauses = lappend(root->right_join_clauses,
@@ -1034,7 +1034,7 @@ distribute_qual_to_rels(PlannerInfo *root, Node *clause,
  * For an is_pushed_down qual, we can evaluate the qual as soon as (1) we have
  * all the rels it mentions, and (2) we are at or above any outer joins that
  * can null any of these rels and are below the syntactic location of the
- * given qual.  We must enforce (2) because pushing down such a clause below
+ * given qual. We must enforce (2) because pushing down such a clause below
  * the OJ might cause the OJ to emit null-extended rows that should not have
  * been formed, or that should have been rejected by the clause.  (This is
  * only an issue for non-strict quals, since if we can prove a qual mentioning
@@ -1043,7 +1043,7 @@ distribute_qual_to_rels(PlannerInfo *root, Node *clause,
  *
  * To enforce (2), scan the oj_info_list and merge the required-relid sets of
  * any such OJs into the clause's own reference list.  At the time we are
- * called, the oj_info_list contains only outer joins below this qual.  We
+ * called, the oj_info_list contains only outer joins below this qual. We
  * have to repeat the scan until no new relids get added; this ensures that
  * the qual is suitably delayed regardless of the order in which OJs get
  * executed.  As an example, if we have one OJ with LHS=A, RHS=B, and one with
@@ -1060,7 +1060,7 @@ distribute_qual_to_rels(PlannerInfo *root, Node *clause,
  * required relids overlap the LHS too) causes that OJ's delay_upper_joins
  * flag to be set TRUE.  This will prevent any higher-level OJs from
  * being interchanged with that OJ, which would result in not having any
- * correct place to evaluate the qual.  (The case we care about here is a
+ * correct place to evaluate the qual. (The case we care about here is a
  * sub-select WHERE clause within the RHS of some outer join.  The WHERE
  * clause must effectively be treated as a degenerate clause of that outer
  * join's condition.  Rather than trying to match such clauses with joins
@@ -1077,7 +1077,8 @@ check_outerjoin_delay(PlannerInfo *root, Relids *relids_p,
    bool        found_some;
 
    outerjoin_delayed = false;
-   do {
+   do
+   {
        ListCell   *l;
 
        found_some = false;
@@ -1134,8 +1135,8 @@ distribute_restrictinfo_to_rels(PlannerInfo *root,
        case BMS_SINGLETON:
 
            /*
-            * There is only one relation participating in the clause, so
-            * it is a restriction clause for that relation.
+            * There is only one relation participating in the clause, so it
+            * is a restriction clause for that relation.
             */
            rel = find_base_rel(root, bms_singleton_member(relids));
 
@@ -1151,8 +1152,8 @@ distribute_restrictinfo_to_rels(PlannerInfo *root,
             */
 
            /*
-            * Check for hashjoinable operators.  (We don't bother setting
-            * the hashjoin info if we're not going to need it.)
+            * Check for hashjoinable operators.  (We don't bother setting the
+            * hashjoin info if we're not going to need it.)
             */
            if (enable_hashjoin)
                check_hashjoinable(restrictinfo);
@@ -1222,7 +1223,7 @@ process_implied_equality(PlannerInfo *root,
        /* If we produced const TRUE, just drop the clause */
        if (clause && IsA(clause, Const))
        {
-           Const   *cclause = (Const *) clause;
+           Const      *cclause = (Const *) clause;
 
            Assert(cclause->consttype == BOOLOID);
            if (!cclause->constisnull && DatumGetBool(cclause->constvalue))
@@ -1273,9 +1274,9 @@ build_implied_join_equality(Oid opno,
     * Build the RestrictInfo node itself.
     */
    restrictinfo = make_restrictinfo(clause,
-                                    true, /* is_pushed_down */
-                                    false, /* outerjoin_delayed */
-                                    false, /* pseudoconstant */
+                                    true,      /* is_pushed_down */
+                                    false,     /* outerjoin_delayed */
+                                    false,     /* pseudoconstant */
                                     qualscope);
 
    /* Set mergejoinability info always, and hashjoinability if enabled */
@@ -1322,9 +1323,9 @@ check_mergejoinable(RestrictInfo *restrictinfo)
        restrictinfo->mergeopfamilies = get_mergejoin_opfamilies(opno);
 
    /*
-    * Note: op_mergejoinable is just a hint; if we fail to find the
-    * operator in any btree opfamilies, mergeopfamilies remains NIL
-    * and so the clause is not treated as mergejoinable.
+    * Note: op_mergejoinable is just a hint; if we fail to find the operator
+    * in any btree opfamilies, mergeopfamilies remains NIL and so the clause
+    * is not treated as mergejoinable.
     */
 }
 
index 80d01c02946d89ee428599347fd3493721148f7d..09302d3fc1db446e107f87c01d0a03f70f732178 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/plan/planagg.c,v 1.33 2007/10/13 00:58:03 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/plan/planagg.c,v 1.34 2007/11/15 21:14:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -298,9 +298,9 @@ build_minmax_path(PlannerInfo *root, RelOptInfo *rel, MinMaxAggInfo *info)
    info->notnulltest = (Expr *) ntest;
 
    /*
-    * Build list of existing restriction clauses plus the notnull test.
-    * We cheat a bit by not bothering with a RestrictInfo node for the
-    * notnull test --- predicate_implied_by() won't care.
+    * Build list of existing restriction clauses plus the notnull test. We
+    * cheat a bit by not bothering with a RestrictInfo node for the notnull
+    * test --- predicate_implied_by() won't care.
     */
    allquals = list_concat(list_make1(ntest), rel->baserestrictinfo);
 
@@ -320,9 +320,9 @@ build_minmax_path(PlannerInfo *root, RelOptInfo *rel, MinMaxAggInfo *info)
            continue;
 
        /*
-        * Ignore partial indexes that do not match the query --- unless
-        * their predicates can be proven from the baserestrict list plus
-        * the IS NOT NULL test.  In that case we can use them.
+        * Ignore partial indexes that do not match the query --- unless their
+        * predicates can be proven from the baserestrict list plus the IS NOT
+        * NULL test.  In that case we can use them.
         */
        if (index->indpred != NIL && !index->predOK &&
            !predicate_implied_by(index->indpred, allquals))
@@ -434,7 +434,7 @@ build_minmax_path(PlannerInfo *root, RelOptInfo *rel, MinMaxAggInfo *info)
 static ScanDirection
 match_agg_to_index_col(MinMaxAggInfo *info, IndexOptInfo *index, int indexcol)
 {
-   ScanDirection   result;
+   ScanDirection result;
 
    /* Check for operator match first (cheaper) */
    if (info->aggsortop == index->fwdsortop[indexcol])
@@ -519,8 +519,8 @@ make_agg_subplan(PlannerInfo *root, MinMaxAggInfo *info)
     * have stuck a gating Result atop that, if there were any pseudoconstant
     * quals.
     *
-    * We can skip adding the NOT NULL qual if it's redundant with either
-    * an already-given WHERE condition, or a clause of the index predicate.
+    * We can skip adding the NOT NULL qual if it's redundant with either an
+    * already-given WHERE condition, or a clause of the index predicate.
     */
    plan = create_plan(&subroot, (Path *) info->path);
 
index 772ee84e8d58664e5912483646f541f7d4e2c46f..f7bef9004b656f3edc1f9139ba5b9b518bd29f80 100644 (file)
@@ -14,7 +14,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/plan/planmain.c,v 1.103 2007/10/04 20:44:47 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/plan/planmain.c,v 1.104 2007/11/15 21:14:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -110,9 +110,10 @@ query_planner(PlannerInfo *root, List *tlist,
        *cheapest_path = (Path *)
            create_result_path((List *) parse->jointree->quals);
        *sorted_path = NULL;
+
        /*
-        * We still are required to canonicalize any pathkeys, in case
-        * it's something like "SELECT 2+2 ORDER BY 1".
+        * We still are required to canonicalize any pathkeys, in case it's
+        * something like "SELECT 2+2 ORDER BY 1".
         */
        root->canon_pathkeys = NIL;
        root->query_pathkeys = canonicalize_pathkeys(root,
@@ -143,8 +144,8 @@ query_planner(PlannerInfo *root, List *tlist,
    root->oj_info_list = NIL;
 
    /*
-    * Make a flattened version of the rangetable for faster access (this
-    * is OK because the rangetable won't change any more).
+    * Make a flattened version of the rangetable for faster access (this is
+    * OK because the rangetable won't change any more).
     */
    root->simple_rte_array = (RangeTblEntry **)
        palloc0(root->simple_rel_array_size * sizeof(RangeTblEntry *));
@@ -198,8 +199,8 @@ query_planner(PlannerInfo *root, List *tlist,
     * Examine the targetlist and qualifications, adding entries to baserel
     * targetlists for all referenced Vars.  Restrict and join clauses are
     * added to appropriate lists belonging to the mentioned relations.  We
-    * also build EquivalenceClasses for provably equivalent expressions,
-    * and form a target joinlist for make_one_rel() to work from.
+    * also build EquivalenceClasses for provably equivalent expressions, and
+    * form a target joinlist for make_one_rel() to work from.
     *
     * Note: all subplan nodes will have "flat" (var-only) tlists. This
     * implies that all expression evaluations are done at the root of the
@@ -227,14 +228,14 @@ query_planner(PlannerInfo *root, List *tlist,
 
    /*
     * If we formed any equivalence classes, generate additional restriction
-    * clauses as appropriate.  (Implied join clauses are formed on-the-fly
+    * clauses as appropriate.  (Implied join clauses are formed on-the-fly
     * later.)
     */
    generate_base_implied_equalities(root);
 
    /*
     * We have completed merging equivalence sets, so it's now possible to
-    * convert the requested query_pathkeys to canonical form.  Also
+    * convert the requested query_pathkeys to canonical form.  Also
     * canonicalize the groupClause and sortClause pathkeys for use later.
     */
    root->query_pathkeys = canonicalize_pathkeys(root, root->query_pathkeys);
index c55f89da78d592f19e1524d480b5850d96f68394..5234e0433d2c64f944044b8152bcbab1d77f023f 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/plan/planner.c,v 1.223 2007/10/11 18:05:27 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/plan/planner.c,v 1.224 2007/11/15 21:14:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -174,8 +174,8 @@ standard_planner(Query *parse, int cursorOptions, ParamListInfo boundParams)
    Assert(list_length(glob->subplans) == list_length(glob->subrtables));
    forboth(lp, glob->subplans, lr, glob->subrtables)
    {
-       Plan   *subplan = (Plan *) lfirst(lp);
-       List   *subrtable = (List *) lfirst(lr);
+       Plan       *subplan = (Plan *) lfirst(lp);
+       List       *subrtable = (List *) lfirst(lr);
 
        lfirst(lp) = set_plan_references(glob, subplan, subrtable);
    }
@@ -229,7 +229,7 @@ standard_planner(Query *parse, int cursorOptions, ParamListInfo boundParams)
  *--------------------
  */
 Plan *
-subquery_planner(PlannerGlobal *glob, Query *parse,
+subquery_planner(PlannerGlobal * glob, Query *parse,
                 Index level, double tuple_fraction,
                 PlannerInfo **subroot)
 {
@@ -741,9 +741,10 @@ grouping_planner(PlannerInfo *root, double tuple_fraction)
    {
        tuple_fraction = preprocess_limit(root, tuple_fraction,
                                          &offset_est, &count_est);
+
        /*
-        * If we have a known LIMIT, and don't have an unknown OFFSET,
-        * we can estimate the effects of using a bounded sort.
+        * If we have a known LIMIT, and don't have an unknown OFFSET, we can
+        * estimate the effects of using a bounded sort.
         */
        if (count_est > 0 && offset_est >= 0)
            limit_tuples = (double) count_est + (double) offset_est;
@@ -777,7 +778,7 @@ grouping_planner(PlannerInfo *root, double tuple_fraction)
         */
        current_pathkeys = make_pathkeys_for_sortclauses(root,
                                                         set_sortclauses,
-                                                   result_plan->targetlist,
+                                                    result_plan->targetlist,
                                                         true);
 
        /*
@@ -1446,7 +1447,7 @@ extract_grouping_ops(List *groupClause)
        GroupClause *groupcl = (GroupClause *) lfirst(glitem);
 
        groupOperators[colno] = get_equality_op_for_ordering_op(groupcl->sortop);
-       if (!OidIsValid(groupOperators[colno]))     /* shouldn't happen */
+       if (!OidIsValid(groupOperators[colno])) /* shouldn't happen */
            elog(ERROR, "could not find equality operator for ordering operator %u",
                 groupcl->sortop);
        colno++;
@@ -1477,8 +1478,8 @@ choose_hashed_grouping(PlannerInfo *root,
    /*
     * Check can't-do-it conditions, including whether the grouping operators
     * are hashjoinable.  (We assume hashing is OK if they are marked
-    * oprcanhash.  If there isn't actually a supporting hash function,
-    * the executor will complain at runtime.)
+    * oprcanhash.  If there isn't actually a supporting hash function, the
+    * executor will complain at runtime.)
     *
     * Executor doesn't support hashed aggregation with DISTINCT aggregates.
     * (Doing so would imply storing *all* the input values in the hash table,
index bc8ce00d4e8ba68393b97d4b9dcbcd04de2118e7..af7ab0d7f3d2e7ff1b0d7762694181e99c8a06f2 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/plan/setrefs.c,v 1.137 2007/10/11 18:05:27 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/plan/setrefs.c,v 1.138 2007/11/15 21:14:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -45,7 +45,7 @@ typedef struct
 {
    PlannerGlobal *glob;
    int         rtoffset;
-} fix_scan_expr_context;
+}  fix_scan_expr_context;
 
 typedef struct
 {
@@ -54,29 +54,29 @@ typedef struct
    indexed_tlist *inner_itlist;
    Index       acceptable_rel;
    int         rtoffset;
-} fix_join_expr_context;
+}  fix_join_expr_context;
 
 typedef struct
 {
    PlannerGlobal *glob;
    indexed_tlist *subplan_itlist;
    int         rtoffset;
-} fix_upper_expr_context;
+}  fix_upper_expr_context;
 
 #define fix_scan_list(glob, lst, rtoffset) \
    ((List *) fix_scan_expr(glob, (Node *) (lst), rtoffset))
 
-static Plan *set_plan_refs(PlannerGlobal *glob, Plan *plan, int rtoffset);
-static Plan *set_subqueryscan_references(PlannerGlobal *glob,
-                                        SubqueryScan *plan,
-                                        int rtoffset);
+static Plan *set_plan_refs(PlannerGlobal * glob, Plan *plan, int rtoffset);
+static Plan *set_subqueryscan_references(PlannerGlobal * glob,
+                           SubqueryScan *plan,
+                           int rtoffset);
 static bool trivial_subqueryscan(SubqueryScan *plan);
-static Node *fix_scan_expr(PlannerGlobal *glob, Node *node, int rtoffset);
-static Node *fix_scan_expr_mutator(Node *node, fix_scan_expr_context *context);
-static void set_join_references(PlannerGlobal *glob, Join *join, int rtoffset);
-static void set_inner_join_references(PlannerGlobal *glob, Plan *inner_plan,
+static Node *fix_scan_expr(PlannerGlobal * glob, Node *node, int rtoffset);
+static Node *fix_scan_expr_mutator(Node *node, fix_scan_expr_context * context);
+static void set_join_references(PlannerGlobal * glob, Join *join, int rtoffset);
+static void set_inner_join_references(PlannerGlobal * glob, Plan *inner_plan,
                          indexed_tlist *outer_itlist);
-static void set_upper_references(PlannerGlobal *glob, Plan *plan, int rtoffset);
+static void set_upper_references(PlannerGlobal * glob, Plan *plan, int rtoffset);
 static void set_dummy_tlist_references(Plan *plan, int rtoffset);
 static indexed_tlist *build_tlist_index(List *tlist);
 static Var *search_indexed_tlist_for_var(Var *var,
@@ -86,19 +86,19 @@ static Var *search_indexed_tlist_for_var(Var *var,
 static Var *search_indexed_tlist_for_non_var(Node *node,
                                 indexed_tlist *itlist,
                                 Index newvarno);
-static List *fix_join_expr(PlannerGlobal *glob,
-                          List *clauses,
-                          indexed_tlist *outer_itlist,
-                          indexed_tlist *inner_itlist,
-                          Index acceptable_rel, int rtoffset);
+static List *fix_join_expr(PlannerGlobal * glob,
+             List *clauses,
+             indexed_tlist *outer_itlist,
+             indexed_tlist *inner_itlist,
+             Index acceptable_rel, int rtoffset);
 static Node *fix_join_expr_mutator(Node *node,
-                                  fix_join_expr_context *context);
-static Node *fix_upper_expr(PlannerGlobal *glob,
-                           Node *node,
-                           indexed_tlist *subplan_itlist,
-                           int rtoffset);
+                     fix_join_expr_context * context);
+static Node *fix_upper_expr(PlannerGlobal * glob,
+              Node *node,
+              indexed_tlist *subplan_itlist,
+              int rtoffset);
 static Node *fix_upper_expr_mutator(Node *node,
-                                   fix_upper_expr_context *context);
+                      fix_upper_expr_context * context);
 static bool fix_opfuncids_walker(Node *node, void *context);
 
 
@@ -155,26 +155,26 @@ static bool fix_opfuncids_walker(Node *node, void *context);
  * the list of relation OIDs is appended to glob->relationOids.
  *
  * Notice that we modify Plan nodes in-place, but use expression_tree_mutator
- * to process targetlist and qual expressions.  We can assume that the Plan
+ * to process targetlist and qual expressions. We can assume that the Plan
  * nodes were just built by the planner and are not multiply referenced, but
  * it's not so safe to assume that for expression tree nodes.
  */
 Plan *
-set_plan_references(PlannerGlobal *glob, Plan *plan, List *rtable)
+set_plan_references(PlannerGlobal * glob, Plan *plan, List *rtable)
 {
    int         rtoffset = list_length(glob->finalrtable);
    ListCell   *lc;
 
    /*
-    * In the flat rangetable, we zero out substructure pointers that are
-    * not needed by the executor; this reduces the storage space and
-    * copying cost for cached plans.  We keep only the alias and eref
-    * Alias fields, which are needed by EXPLAIN.
+    * In the flat rangetable, we zero out substructure pointers that are not
+    * needed by the executor; this reduces the storage space and copying cost
+    * for cached plans.  We keep only the alias and eref Alias fields, which
+    * are needed by EXPLAIN.
     */
    foreach(lc, rtable)
    {
-       RangeTblEntry  *rte = (RangeTblEntry *) lfirst(lc);
-       RangeTblEntry  *newrte;
+       RangeTblEntry *rte = (RangeTblEntry *) lfirst(lc);
+       RangeTblEntry *newrte;
 
        /* flat copy to duplicate all the scalar fields */
        newrte = (RangeTblEntry *) palloc(sizeof(RangeTblEntry));
@@ -193,11 +193,11 @@ set_plan_references(PlannerGlobal *glob, Plan *plan, List *rtable)
        /*
         * If it's a plain relation RTE, add the table to relationOids.
         *
-        * We do this even though the RTE might be unreferenced in the
-        * plan tree; this would correspond to cases such as views that
-        * were expanded, child tables that were eliminated by constraint
-        * exclusion, etc.  Schema invalidation on such a rel must still
-        * force rebuilding of the plan.
+        * We do this even though the RTE might be unreferenced in the plan
+        * tree; this would correspond to cases such as views that were
+        * expanded, child tables that were eliminated by constraint
+        * exclusion, etc.  Schema invalidation on such a rel must still force
+        * rebuilding of the plan.
         *
         * Note we don't bother to avoid duplicate list entries.  We could,
         * but it would probably cost more cycles than it would save.
@@ -215,7 +215,7 @@ set_plan_references(PlannerGlobal *glob, Plan *plan, List *rtable)
  * set_plan_refs: recurse through the Plan nodes of a single subquery level
  */
 static Plan *
-set_plan_refs(PlannerGlobal *glob, Plan *plan, int rtoffset)
+set_plan_refs(PlannerGlobal * glob, Plan *plan, int rtoffset)
 {
    ListCell   *l;
 
@@ -229,7 +229,7 @@ set_plan_refs(PlannerGlobal *glob, Plan *plan, int rtoffset)
    {
        case T_SeqScan:
            {
-               SeqScan *splan = (SeqScan *) plan;
+               SeqScan    *splan = (SeqScan *) plan;
 
                splan->scanrelid += rtoffset;
                splan->plan.targetlist =
@@ -240,7 +240,7 @@ set_plan_refs(PlannerGlobal *glob, Plan *plan, int rtoffset)
            break;
        case T_IndexScan:
            {
-               IndexScan *splan = (IndexScan *) plan;
+               IndexScan  *splan = (IndexScan *) plan;
 
                splan->scan.scanrelid += rtoffset;
                splan->scan.plan.targetlist =
@@ -282,7 +282,7 @@ set_plan_refs(PlannerGlobal *glob, Plan *plan, int rtoffset)
            break;
        case T_TidScan:
            {
-               TidScan *splan = (TidScan *) plan;
+               TidScan    *splan = (TidScan *) plan;
 
                splan->scan.scanrelid += rtoffset;
                splan->scan.plan.targetlist =
@@ -340,11 +340,12 @@ set_plan_refs(PlannerGlobal *glob, Plan *plan, int rtoffset)
            /*
             * These plan types don't actually bother to evaluate their
             * targetlists, because they just return their unmodified input
-            * tuples.  Even though the targetlist won't be used by the
+            * tuples.  Even though the targetlist won't be used by the
             * executor, we fix it up for possible use by EXPLAIN (not to
             * mention ease of debugging --- wrong varnos are very confusing).
             */
            set_dummy_tlist_references(plan, rtoffset);
+
            /*
             * Since these plan types don't check quals either, we should not
             * find any qual expression attached to them.
@@ -353,13 +354,13 @@ set_plan_refs(PlannerGlobal *glob, Plan *plan, int rtoffset)
            break;
        case T_Limit:
            {
-               Limit *splan = (Limit *) plan;
+               Limit      *splan = (Limit *) plan;
 
                /*
                 * Like the plan types above, Limit doesn't evaluate its tlist
                 * or quals.  It does have live expressions for limit/offset,
-                * however; and those cannot contain subplan variable refs,
-                * so fix_scan_expr works for them.
+                * however; and those cannot contain subplan variable refs, so
+                * fix_scan_expr works for them.
                 */
                set_dummy_tlist_references(plan, rtoffset);
                Assert(splan->plan.qual == NIL);
@@ -376,7 +377,7 @@ set_plan_refs(PlannerGlobal *glob, Plan *plan, int rtoffset)
            break;
        case T_Result:
            {
-               Result *splan = (Result *) plan;
+               Result     *splan = (Result *) plan;
 
                /*
                 * Result may or may not have a subplan; if not, it's more
@@ -398,7 +399,7 @@ set_plan_refs(PlannerGlobal *glob, Plan *plan, int rtoffset)
            break;
        case T_Append:
            {
-               Append *splan = (Append *) plan;
+               Append     *splan = (Append *) plan;
 
                /*
                 * Append, like Sort et al, doesn't actually evaluate its
@@ -416,7 +417,7 @@ set_plan_refs(PlannerGlobal *glob, Plan *plan, int rtoffset)
            break;
        case T_BitmapAnd:
            {
-               BitmapAnd *splan = (BitmapAnd *) plan;
+               BitmapAnd  *splan = (BitmapAnd *) plan;
 
                /* BitmapAnd works like Append, but has no tlist */
                Assert(splan->plan.targetlist == NIL);
@@ -431,7 +432,7 @@ set_plan_refs(PlannerGlobal *glob, Plan *plan, int rtoffset)
            break;
        case T_BitmapOr:
            {
-               BitmapOr *splan = (BitmapOr *) plan;
+               BitmapOr   *splan = (BitmapOr *) plan;
 
                /* BitmapOr works like Append, but has no tlist */
                Assert(splan->plan.targetlist == NIL);
@@ -472,7 +473,7 @@ set_plan_refs(PlannerGlobal *glob, Plan *plan, int rtoffset)
  * to do the normal processing on it.
  */
 static Plan *
-set_subqueryscan_references(PlannerGlobal *glob,
+set_subqueryscan_references(PlannerGlobal * glob,
                            SubqueryScan *plan,
                            int rtoffset)
 {
@@ -618,7 +619,7 @@ copyVar(Var *var)
  * and adding OIDs from regclass Const nodes into glob->relationOids.
  */
 static Node *
-fix_scan_expr(PlannerGlobal *glob, Node *node, int rtoffset)
+fix_scan_expr(PlannerGlobal * glob, Node *node, int rtoffset)
 {
    fix_scan_expr_context context;
 
@@ -628,7 +629,7 @@ fix_scan_expr(PlannerGlobal *glob, Node *node, int rtoffset)
 }
 
 static Node *
-fix_scan_expr_mutator(Node *node, fix_scan_expr_context *context)
+fix_scan_expr_mutator(Node *node, fix_scan_expr_context * context)
 {
    if (node == NULL)
        return NULL;
@@ -637,9 +638,10 @@ fix_scan_expr_mutator(Node *node, fix_scan_expr_context *context)
        Var        *var = copyVar((Var *) node);
 
        Assert(var->varlevelsup == 0);
+
        /*
         * We should not see any Vars marked INNER, but in a nestloop inner
-        * scan there could be OUTER Vars.  Leave them alone.
+        * scan there could be OUTER Vars.  Leave them alone.
         */
        Assert(var->varno != INNER);
        if (var->varno > 0 && var->varno != OUTER)
@@ -657,9 +659,10 @@ fix_scan_expr_mutator(Node *node, fix_scan_expr_context *context)
        cexpr->cvarno += context->rtoffset;
        return (Node *) cexpr;
    }
+
    /*
-    * Since we update opcode info in-place, this part could possibly
-    * scribble on the planner's input data structures, but it's OK.
+    * Since we update opcode info in-place, this part could possibly scribble
+    * on the planner's input data structures, but it's OK.
     */
    if (IsA(node, OpExpr))
        set_opfuncid((OpExpr *) node);
@@ -697,7 +700,7 @@ fix_scan_expr_mutator(Node *node, fix_scan_expr_context *context)
  * quals of the child indexscan.  set_inner_join_references does that.
  */
 static void
-set_join_references(PlannerGlobal *glob, Join *join, int rtoffset)
+set_join_references(PlannerGlobal * glob, Join *join, int rtoffset)
 {
    Plan       *outer_plan = join->plan.lefttree;
    Plan       *inner_plan = join->plan.righttree;
@@ -774,7 +777,7 @@ set_join_references(PlannerGlobal *glob, Join *join, int rtoffset)
  * recursion reaches the inner indexscan, and so we'd have done it twice.
  */
 static void
-set_inner_join_references(PlannerGlobal *glob, Plan *inner_plan,
+set_inner_join_references(PlannerGlobal * glob, Plan *inner_plan,
                          indexed_tlist *outer_itlist)
 {
    if (IsA(inner_plan, IndexScan))
@@ -966,7 +969,7 @@ set_inner_join_references(PlannerGlobal *glob, Plan *inner_plan,
  * the expression.
  */
 static void
-set_upper_references(PlannerGlobal *glob, Plan *plan, int rtoffset)
+set_upper_references(PlannerGlobal * glob, Plan *plan, int rtoffset)
 {
    Plan       *subplan = plan->lefttree;
    indexed_tlist *subplan_itlist;
@@ -1038,7 +1041,7 @@ set_dummy_tlist_references(Plan *plan, int rtoffset)
        }
        else
        {
-           newvar->varnoold = 0;   /* wasn't ever a plain Var */
+           newvar->varnoold = 0;       /* wasn't ever a plain Var */
            newvar->varoattno = 0;
        }
 
@@ -1251,7 +1254,7 @@ search_indexed_tlist_for_non_var(Node *node,
  * not modified.
  */
 static List *
-fix_join_expr(PlannerGlobal *glob,
+fix_join_expr(PlannerGlobal * glob,
              List *clauses,
              indexed_tlist *outer_itlist,
              indexed_tlist *inner_itlist,
@@ -1269,7 +1272,7 @@ fix_join_expr(PlannerGlobal *glob,
 }
 
 static Node *
-fix_join_expr_mutator(Node *node, fix_join_expr_context *context)
+fix_join_expr_mutator(Node *node, fix_join_expr_context * context)
 {
    Var        *newvar;
 
@@ -1325,9 +1328,10 @@ fix_join_expr_mutator(Node *node, fix_join_expr_context *context)
        if (newvar)
            return (Node *) newvar;
    }
+
    /*
-    * Since we update opcode info in-place, this part could possibly
-    * scribble on the planner's input data structures, but it's OK.
+    * Since we update opcode info in-place, this part could possibly scribble
+    * on the planner's input data structures, but it's OK.
     */
    if (IsA(node, OpExpr))
        set_opfuncid((OpExpr *) node);
@@ -1381,7 +1385,7 @@ fix_join_expr_mutator(Node *node, fix_join_expr_context *context)
  * The original tree is not modified.
  */
 static Node *
-fix_upper_expr(PlannerGlobal *glob,
+fix_upper_expr(PlannerGlobal * glob,
               Node *node,
               indexed_tlist *subplan_itlist,
               int rtoffset)
@@ -1395,7 +1399,7 @@ fix_upper_expr(PlannerGlobal *glob,
 }
 
 static Node *
-fix_upper_expr_mutator(Node *node, fix_upper_expr_context *context)
+fix_upper_expr_mutator(Node *node, fix_upper_expr_context * context)
 {
    Var        *newvar;
 
@@ -1422,9 +1426,10 @@ fix_upper_expr_mutator(Node *node, fix_upper_expr_context *context)
        if (newvar)
            return (Node *) newvar;
    }
+
    /*
-    * Since we update opcode info in-place, this part could possibly
-    * scribble on the planner's input data structures, but it's OK.
+    * Since we update opcode info in-place, this part could possibly scribble
+    * on the planner's input data structures, but it's OK.
     */
    if (IsA(node, OpExpr))
        set_opfuncid((OpExpr *) node);
@@ -1474,7 +1479,7 @@ fix_upper_expr_mutator(Node *node, fix_upper_expr_context *context)
  * they are not coming from a subplan.
  */
 List *
-set_returning_clause_references(PlannerGlobal *glob,
+set_returning_clause_references(PlannerGlobal * glob,
                                List *rlist,
                                Plan *topplan,
                                Index resultRelation)
@@ -1485,8 +1490,8 @@ set_returning_clause_references(PlannerGlobal *glob,
     * We can perform the desired Var fixup by abusing the fix_join_expr
     * machinery that normally handles inner indexscan fixup.  We search the
     * top plan's targetlist for Vars of non-result relations, and use
-    * fix_join_expr to convert RETURNING Vars into references to those
-    * tlist entries, while leaving result-rel Vars as-is.
+    * fix_join_expr to convert RETURNING Vars into references to those tlist
+    * entries, while leaving result-rel Vars as-is.
     */
    itlist = build_tlist_index_other_vars(topplan->targetlist, resultRelation);
 
index 76d80bfce0f0cd5cb26c28f5c3fef54f08f7acbf..8177f291b080f181b0219f6d432467b1a3dbfb6f 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/plan/subselect.c,v 1.125 2007/09/22 21:36:40 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/plan/subselect.c,v 1.126 2007/11/15 21:14:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -43,7 +43,7 @@ typedef struct process_sublinks_context
 {
    PlannerInfo *root;
    bool        isTopQual;
-} process_sublinks_context;
+}  process_sublinks_context;
 
 typedef struct finalize_primnode_context
 {
@@ -54,16 +54,16 @@ typedef struct finalize_primnode_context
 
 
 static Node *convert_testexpr(PlannerInfo *root,
-                             Node *testexpr,
-                             int rtindex,
-                             List **righthandIds);
+                Node *testexpr,
+                int rtindex,
+                List **righthandIds);
 static Node *convert_testexpr_mutator(Node *node,
                         convert_testexpr_context *context);
 static bool subplan_is_hashable(SubLink *slink, SubPlan *node, Plan *plan);
 static bool hash_ok_operator(OpExpr *expr);
 static Node *replace_correlation_vars_mutator(Node *node, PlannerInfo *root);
 static Node *process_sublinks_mutator(Node *node,
-                                     process_sublinks_context *context);
+                        process_sublinks_context * context);
 static Bitmapset *finalize_plan(PlannerInfo *root,
              Plan *plan,
              Bitmapset *outer_params,
@@ -88,13 +88,13 @@ replace_outer_var(PlannerInfo *root, Var *var)
    abslevel = root->query_level - var->varlevelsup;
 
    /*
-    * If there's already a paramlist entry for this same Var, just use
-    * it.  NOTE: in sufficiently complex querytrees, it is possible for the
-    * same varno/abslevel to refer to different RTEs in different parts of
-    * the parsetree, so that different fields might end up sharing the same
-    * Param number.  As long as we check the vartype as well, I believe that
-    * this sort of aliasing will cause no trouble. The correct field should
-    * get stored into the Param slot at execution in each part of the tree.
+    * If there's already a paramlist entry for this same Var, just use it.
+    * NOTE: in sufficiently complex querytrees, it is possible for the same
+    * varno/abslevel to refer to different RTEs in different parts of the
+    * parsetree, so that different fields might end up sharing the same Param
+    * number.  As long as we check the vartype as well, I believe that this
+    * sort of aliasing will cause no trouble. The correct field should get
+    * stored into the Param slot at execution in each part of the tree.
     *
     * We also need to demand a match on vartypmod.  This does not matter for
     * the Param itself, since those are not typmod-dependent, but it does
@@ -470,11 +470,10 @@ make_subplan(PlannerInfo *root, SubLink *slink, Node *testexpr, bool isTopQual)
 
    /*
     * A parameterless subplan (not initplan) should be prepared to handle
-    * REWIND efficiently.  If it has direct parameters then there's no point
-    * since it'll be reset on each scan anyway; and if it's an initplan
-    * then there's no point since it won't get re-run without parameter
-    * changes anyway.  The input of a hashed subplan doesn't need REWIND
-    * either.
+    * REWIND efficiently.  If it has direct parameters then there's no point
+    * since it'll be reset on each scan anyway; and if it's an initplan then
+    * there's no point since it won't get re-run without parameter changes
+    * anyway.  The input of a hashed subplan doesn't need REWIND either.
     */
    if (splan->parParam == NIL && !isInitPlan && !splan->useHashTable)
        root->glob->rewindPlanIDs = bms_add_member(root->glob->rewindPlanIDs,
@@ -625,13 +624,12 @@ subplan_is_hashable(SubLink *slink, SubPlan *node, Plan *plan)
        return false;
 
    /*
-    * The combining operators must be hashable and strict.
-    * The need for hashability is obvious, since we want to use hashing.
-    * Without strictness, behavior in the presence of nulls is too
-    * unpredictable.  We actually must assume even more than plain
-    * strictness: they can't yield NULL for non-null inputs, either
-    * (see nodeSubplan.c).  However, hash indexes and hash joins assume
-    * that too.
+    * The combining operators must be hashable and strict. The need for
+    * hashability is obvious, since we want to use hashing. Without
+    * strictness, behavior in the presence of nulls is too unpredictable.  We
+    * actually must assume even more than plain strictness: they can't yield
+    * NULL for non-null inputs, either (see nodeSubplan.c).  However, hash
+    * indexes and hash joins assume that too.
     */
    if (IsA(slink->testexpr, OpExpr))
    {
@@ -730,7 +728,7 @@ convert_IN_to_join(PlannerInfo *root, SubLink *sublink)
        in_operators = NIL;
        foreach(lc, ((BoolExpr *) sublink->testexpr)->args)
        {
-           OpExpr *op = (OpExpr *) lfirst(lc);
+           OpExpr     *op = (OpExpr *) lfirst(lc);
 
            if (!IsA(op, OpExpr))       /* probably shouldn't happen */
                return NULL;
@@ -867,7 +865,7 @@ SS_process_sublinks(PlannerInfo *root, Node *expr, bool isQual)
 }
 
 static Node *
-process_sublinks_mutator(Node *node, process_sublinks_context *context)
+process_sublinks_mutator(Node *node, process_sublinks_context * context)
 {
    process_sublinks_context locContext;
 
index 1d92cc5628b748756faa73ee0a6f303b32553e25..d8c98c927e66c078a17da97be68fc0f780e3e310 100644 (file)
@@ -22,7 +22,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/prep/prepunion.c,v 1.144 2007/10/22 17:04:35 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/prep/prepunion.c,v 1.145 2007/11/15 21:14:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -224,11 +224,11 @@ recurse_set_operations(Node *setOp, PlannerInfo *root,
         * output columns.
         *
         * XXX you don't really want to know about this: setrefs.c will apply
-        * fix_upper_expr() to the Result node's tlist. This
-        * would fail if the Vars generated by generate_setop_tlist() were not
-        * exactly equal() to the corresponding tlist entries of the subplan.
-        * However, since the subplan was generated by generate_union_plan()
-        * or generate_nonunion_plan(), and hence its tlist was generated by
+        * fix_upper_expr() to the Result node's tlist. This would fail if the
+        * Vars generated by generate_setop_tlist() were not exactly equal()
+        * to the corresponding tlist entries of the subplan. However, since
+        * the subplan was generated by generate_union_plan() or
+        * generate_nonunion_plan(), and hence its tlist was generated by
         * generate_append_tlist(), this will work.  We just tell
         * generate_setop_tlist() to use varno 0.
         */
@@ -972,8 +972,8 @@ make_inh_translation_lists(Relation oldrelation, Relation newrelation,
         * Otherwise we have to search for the matching column by name.
         * There's no guarantee it'll have the same column position, because
         * of cases like ALTER TABLE ADD COLUMN and multiple inheritance.
-        * However, in simple cases it will be the same column number, so
-        * try that before we go groveling through all the columns.
+        * However, in simple cases it will be the same column number, so try
+        * that before we go groveling through all the columns.
         *
         * Note: the test for (att = ...) != NULL cannot fail, it's just a
         * notational device to include the assignment into the if-clause.
index c541713f3f96826053f9ce833e4906bdec2958b0..5b0ca6deec593fbc923e11e3a5d96a5cb4704d0d 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/util/clauses.c,v 1.250 2007/10/11 21:27:49 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/util/clauses.c,v 1.251 2007/11/15 21:14:36 momjian Exp $
  *
  * HISTORY
  *   AUTHOR            DATE            MAJOR EVENT
@@ -576,7 +576,7 @@ expression_returns_set_walker(Node *node, void *context)
  *   Estimate the number of rows in a set result.
  *
  * We use the product of the rowcount estimates of all the functions in
- * the given tree.  The result is 1 if there are no set-returning functions.
+ * the given tree. The result is 1 if there are no set-returning functions.
  */
 double
 expression_returns_set_rows(Node *clause)
@@ -738,9 +738,9 @@ contain_mutable_functions_walker(Node *node, void *context)
    else if (IsA(node, CoerceViaIO))
    {
        CoerceViaIO *expr = (CoerceViaIO *) node;
-       Oid     iofunc;
-       Oid     typioparam;
-       bool    typisvarlena;
+       Oid         iofunc;
+       Oid         typioparam;
+       bool        typisvarlena;
 
        /* check the result type's input function */
        getTypeInputInfo(expr->resulttype,
@@ -849,9 +849,9 @@ contain_volatile_functions_walker(Node *node, void *context)
    else if (IsA(node, CoerceViaIO))
    {
        CoerceViaIO *expr = (CoerceViaIO *) node;
-       Oid     iofunc;
-       Oid     typioparam;
-       bool    typisvarlena;
+       Oid         iofunc;
+       Oid         typioparam;
+       bool        typisvarlena;
 
        /* check the result type's input function */
        getTypeInputInfo(expr->resulttype,
@@ -1065,13 +1065,13 @@ find_nonnullable_rels_walker(Node *node, bool top_level)
    else if (IsA(node, List))
    {
        /*
-        * At top level, we are examining an implicit-AND list: if any of
-        * the arms produces FALSE-or-NULL then the result is FALSE-or-NULL.
-        * If not at top level, we are examining the arguments of a strict
+        * At top level, we are examining an implicit-AND list: if any of the
+        * arms produces FALSE-or-NULL then the result is FALSE-or-NULL. If
+        * not at top level, we are examining the arguments of a strict
         * function: if any of them produce NULL then the result of the
         * function must be NULL.  So in both cases, the set of nonnullable
-        * rels is the union of those found in the arms, and we pass down
-        * the top_level flag unmodified.
+        * rels is the union of those found in the arms, and we pass down the
+        * top_level flag unmodified.
         */
        foreach(l, (List *) node)
        {
@@ -1115,15 +1115,17 @@ find_nonnullable_rels_walker(Node *node, bool top_level)
                                                          top_level);
                    break;
                }
+
                /*
                 * Below top level, even if one arm produces NULL, the result
                 * could be FALSE (hence not NULL).  However, if *all* the
-                * arms produce NULL then the result is NULL, so we can
-                * take the intersection of the sets of nonnullable rels,
-                * just as for OR.  Fall through to share code.
+                * arms produce NULL then the result is NULL, so we can take
+                * the intersection of the sets of nonnullable rels, just as
+                * for OR.  Fall through to share code.
                 */
                /* FALL THRU */
            case OR_EXPR:
+
                /*
                 * OR is strict if all of its arms are, so we can take the
                 * intersection of the sets of nonnullable rels for each arm.
@@ -1135,13 +1137,14 @@ find_nonnullable_rels_walker(Node *node, bool top_level)
 
                    subresult = find_nonnullable_rels_walker(lfirst(l),
                                                             top_level);
-                   if (result == NULL)             /* first subresult? */
+                   if (result == NULL) /* first subresult? */
                        result = subresult;
                    else
                        result = bms_int_members(result, subresult);
+
                    /*
-                    * If the intersection is empty, we can stop looking.
-                    * This also justifies the test for first-subresult above.
+                    * If the intersection is empty, we can stop looking. This
+                    * also justifies the test for first-subresult above.
                     */
                    if (bms_is_empty(result))
                        break;
@@ -1669,7 +1672,7 @@ eval_const_expressions(Node *node)
 {
    eval_const_expressions_context context;
 
-   context.boundParams = NULL; /* don't use any bound params */
+   context.boundParams = NULL; /* don't use any bound params */
    context.active_fns = NIL;   /* nothing being recursively simplified */
    context.case_val = NULL;    /* no CASE being examined */
    context.estimate = false;   /* safe transformations only */
@@ -1697,7 +1700,7 @@ estimate_expression_value(PlannerInfo *root, Node *node)
 {
    eval_const_expressions_context context;
 
-   context.boundParams = root->glob->boundParams;  /* bound Params */
+   context.boundParams = root->glob->boundParams;      /* bound Params */
    context.active_fns = NIL;   /* nothing being recursively simplified */
    context.case_val = NULL;    /* no CASE being examined */
    context.estimate = true;    /* unsafe transformations OK */
@@ -3015,11 +3018,11 @@ inline_function(Oid funcid, Oid result_type, List *args,
    newexpr = (Node *) ((TargetEntry *) linitial(querytree->targetList))->expr;
 
    /*
-    * Make sure the function (still) returns what it's declared to.  This will
-    * raise an error if wrong, but that's okay since the function would fail
-    * at runtime anyway.  Note we do not try this until we have verified that
-    * no rewriting was needed; that's probably not important, but let's be
-    * careful.
+    * Make sure the function (still) returns what it's declared to.  This
+    * will raise an error if wrong, but that's okay since the function would
+    * fail at runtime anyway.  Note we do not try this until we have verified
+    * that no rewriting was needed; that's probably not important, but let's
+    * be careful.
     */
    if (check_sql_fn_retval(funcid, result_type, list_make1(querytree), NULL))
        goto fail;              /* reject whole-tuple-result cases */
@@ -3580,8 +3583,8 @@ expression_tree_walker(Node *node,
            return walker(((MinMaxExpr *) node)->args, context);
        case T_XmlExpr:
            {
-               XmlExpr *xexpr = (XmlExpr *) node;
-               
+               XmlExpr    *xexpr = (XmlExpr *) node;
+
                if (walker(xexpr->named_args, context))
                    return true;
                /* we assume walker doesn't care about arg_names */
@@ -3853,15 +3856,15 @@ expression_tree_mutator(Node *node,
 
    switch (nodeTag(node))
    {
-       /*
-        * Primitive node types with no expression subnodes.  Var and Const
-        * are frequent enough to deserve special cases, the others we just
-        * use copyObject for.
-        */
+           /*
+            * Primitive node types with no expression subnodes.  Var and
+            * Const are frequent enough to deserve special cases, the others
+            * we just use copyObject for.
+            */
        case T_Var:
            {
-               Var    *var = (Var *) node;
-               Var    *newnode;
+               Var        *var = (Var *) node;
+               Var        *newnode;
 
                FLATCOPY(newnode, var, Var);
                return (Node *) newnode;
@@ -4130,8 +4133,8 @@ expression_tree_mutator(Node *node,
            break;
        case T_XmlExpr:
            {
-               XmlExpr *xexpr = (XmlExpr *) node;
-               XmlExpr *newnode;
+               XmlExpr    *xexpr = (XmlExpr *) node;
+               XmlExpr    *newnode;
 
                FLATCOPY(newnode, xexpr, XmlExpr);
                MUTATE(newnode->named_args, xexpr->named_args, List *);
index 6a31a02835cc0f33feb06a4535c80a0927c9cb5b..9fc68a0f6d36ba65e06201b6b36f3bfb6e5f3a5c 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/util/joininfo.c,v 1.48 2007/02/16 00:14:01 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/util/joininfo.c,v 1.49 2007/11/15 21:14:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -56,8 +56,8 @@ have_relevant_joinclause(PlannerInfo *root,
    }
 
    /*
-    * We also need to check the EquivalenceClass data structure, which
-    * might contain relationships not emitted into the joininfo lists.
+    * We also need to check the EquivalenceClass data structure, which might
+    * contain relationships not emitted into the joininfo lists.
     */
    if (!result && rel1->has_eclass_joins && rel2->has_eclass_joins)
        result = have_relevant_eclass_joinclause(root, rel1, rel2);
index bd95a0e0e232ae1663f52b3344d56bceaf5c89c0..d6bfa2e35f0243e5395d36c8baf87ffff714bf17 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/util/pathnode.c,v 1.140 2007/05/04 01:13:44 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/util/pathnode.c,v 1.141 2007/11/15 21:14:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -771,7 +771,7 @@ create_unique_path(PlannerInfo *root, RelOptInfo *rel, Path *subpath)
    /*
     * Try to identify the targetlist that will actually be unique-ified. In
     * current usage, this routine is only used for sub-selects of IN clauses,
-    * so we should be able to find the tlist in in_info_list.  Get the IN
+    * so we should be able to find the tlist in in_info_list.  Get the IN
     * clause's operators, too, because they determine what "unique" means.
     */
    sub_targetlist = NIL;
@@ -931,7 +931,7 @@ translate_sub_tlist(List *tlist, int relid)
  *
  * colnos is an integer list of output column numbers (resno's).  We are
  * interested in whether rows consisting of just these columns are certain
- * to be distinct.  "Distinctness" is defined according to whether the
+ * to be distinct. "Distinctness" is defined according to whether the
  * corresponding upper-level equality operators listed in opids would think
  * the values are distinct.  (Note: the opids entries could be cross-type
  * operators, and thus not exactly the equality operators that the subquery
@@ -948,8 +948,8 @@ query_is_distinct_for(Query *query, List *colnos, List *opids)
 
    /*
     * DISTINCT (including DISTINCT ON) guarantees uniqueness if all the
-    * columns in the DISTINCT clause appear in colnos and operator
-    * semantics match.
+    * columns in the DISTINCT clause appear in colnos and operator semantics
+    * match.
     */
    if (query->distinctClause)
    {
@@ -1004,9 +1004,8 @@ query_is_distinct_for(Query *query, List *colnos, List *opids)
     *
     * XXX this code knows that prepunion.c will adopt the default ordering
     * operator for each column datatype as the sortop.  It'd probably be
-    * better if these operators were chosen at parse time and stored into
-    * the parsetree, instead of leaving bits of the planner to decide
-    * semantics.
+    * better if these operators were chosen at parse time and stored into the
+    * parsetree, instead of leaving bits of the planner to decide semantics.
     */
    if (query->setOperations)
    {
@@ -1028,7 +1027,7 @@ query_is_distinct_for(Query *query, List *colnos, List *opids)
                opid = distinct_col_search(tle->resno, colnos, opids);
                if (!OidIsValid(opid) ||
                    !ops_in_same_btree_opfamily(opid,
-                                               ordering_oper_opid(exprType((Node *) tle->expr))))
+                          ordering_oper_opid(exprType((Node *) tle->expr))))
                    break;      /* exit early if no match */
            }
            if (l == NULL)      /* had matches for all? */
@@ -1048,7 +1047,7 @@ query_is_distinct_for(Query *query, List *colnos, List *opids)
  * distinct_col_search - subroutine for query_is_distinct_for
  *
  * If colno is in colnos, return the corresponding element of opids,
- * else return InvalidOid.  (We expect colnos does not contain duplicates,
+ * else return InvalidOid. (We expect colnos does not contain duplicates,
  * so the result is well-defined.)
  */
 static Oid
index 21dd342593a0bdb3145e1a54c199e5559f241a11..5c11418e0dcef68761be586a08ddc7569d853201 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/util/plancat.c,v 1.137 2007/09/20 17:56:31 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/util/plancat.c,v 1.138 2007/11/15 21:14:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -166,9 +166,9 @@ get_relation_info(PlannerInfo *root, Oid relationObjectId, bool inhparent,
            }
 
            /*
-            * If the index is valid, but cannot yet be used, ignore it;
-            * but mark the plan we are generating as transient.
-            * See src/backend/access/heap/README.HOT for discussion.
+            * If the index is valid, but cannot yet be used, ignore it; but
+            * mark the plan we are generating as transient. See
+            * src/backend/access/heap/README.HOT for discussion.
             */
            if (index->indcheckxmin &&
                !TransactionIdPrecedes(HeapTupleHeaderGetXmin(indexRelation->rd_indextuple->t_data),
@@ -187,7 +187,7 @@ get_relation_info(PlannerInfo *root, Oid relationObjectId, bool inhparent,
 
            /*
             * Allocate per-column info arrays.  To save a few palloc cycles
-            * we allocate all the Oid-type arrays in one request.  Note that
+            * we allocate all the Oid-type arrays in one request.  Note that
             * the opfamily array needs an extra, terminating zero at the end.
             * We pre-zero the ordering info in case the index is unordered.
             */
@@ -221,9 +221,9 @@ get_relation_info(PlannerInfo *root, Oid relationObjectId, bool inhparent,
 
                for (i = 0; i < ncolumns; i++)
                {
-                   int16   opt = indexRelation->rd_indoption[i];
-                   int     fwdstrat;
-                   int     revstrat;
+                   int16       opt = indexRelation->rd_indoption[i];
+                   int         fwdstrat;
+                   int         revstrat;
 
                    if (opt & INDOPTION_DESC)
                    {
@@ -235,10 +235,11 @@ get_relation_info(PlannerInfo *root, Oid relationObjectId, bool inhparent,
                        fwdstrat = BTLessStrategyNumber;
                        revstrat = BTGreaterStrategyNumber;
                    }
+
                    /*
-                    * Index AM must have a fixed set of strategies for it
-                    * to make sense to specify amcanorder, so we
-                    * need not allow the case amstrategies == 0.
+                    * Index AM must have a fixed set of strategies for it to
+                    * make sense to specify amcanorder, so we need not allow
+                    * the case amstrategies == 0.
                     */
                    if (fwdstrat > 0)
                    {
index 3280612dfd5b4877dca95d6ff747f1c8fbf94c16..53f8db6d224de7ff8002bc1b0a51d0efd1d76ee3 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/util/predtest.c,v 1.16 2007/07/24 17:22:07 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/util/predtest.c,v 1.17 2007/11/15 21:14:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1109,7 +1109,7 @@ list_member_strip(List *list, Expr *datum)
 
    foreach(cell, list)
    {
-       Expr *elem = (Expr *) lfirst(cell);
+       Expr       *elem = (Expr *) lfirst(cell);
 
        if (elem && IsA(elem, RelabelType))
            elem = ((RelabelType *) elem)->arg;
@@ -1342,7 +1342,8 @@ btree_predicate_proof(Expr *predicate, Node *clause, bool refute_it)
     *
     * We must find a btree opfamily that contains both operators, else the
     * implication can't be determined.  Also, the opfamily must contain a
-    * suitable test operator taking the pred_const and clause_const datatypes.
+    * suitable test operator taking the pred_const and clause_const
+    * datatypes.
     *
     * If there are multiple matching opfamilies, assume we can use any one to
     * determine the logical relationship of the two operators and the correct
@@ -1354,8 +1355,8 @@ btree_predicate_proof(Expr *predicate, Node *clause, bool refute_it)
                                 0, 0, 0);
 
    /*
-    * If we couldn't find any opfamily containing the pred_op, perhaps it is a
-    * <> operator.  See if it has a negator that is in an opfamily.
+    * If we couldn't find any opfamily containing the pred_op, perhaps it is
+    * <> operator.  See if it has a negator that is in an opfamily.
     */
    pred_op_negated = false;
    if (catlist->n_members == 0)
index 56f8f3493c223e539adc91e2d4cd55164204ca4c..b2051959984f0f8d450aff11d3579613bc552c78 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/util/relnode.c,v 1.87 2007/04/21 21:01:45 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/util/relnode.c,v 1.88 2007/11/15 21:14:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -32,9 +32,9 @@ typedef struct JoinHashEntry
 static void build_joinrel_tlist(PlannerInfo *root, RelOptInfo *joinrel,
                    RelOptInfo *input_rel);
 static List *build_joinrel_restrictlist(PlannerInfo *root,
-                                       RelOptInfo *joinrel,
-                                       RelOptInfo *outer_rel,
-                                       RelOptInfo *inner_rel);
+                          RelOptInfo *joinrel,
+                          RelOptInfo *outer_rel,
+                          RelOptInfo *inner_rel);
 static void build_joinrel_joinlist(RelOptInfo *joinrel,
                       RelOptInfo *outer_rel,
                       RelOptInfo *inner_rel);
@@ -510,8 +510,9 @@ build_joinrel_restrictlist(PlannerInfo *root,
     */
    result = subbuild_joinrel_restrictlist(joinrel, outer_rel->joininfo, NIL);
    result = subbuild_joinrel_restrictlist(joinrel, inner_rel->joininfo, result);
+
    /*
-    * Add on any clauses derived from EquivalenceClasses.  These cannot be
+    * Add on any clauses derived from EquivalenceClasses.  These cannot be
     * redundant with the clauses in the joininfo lists, so don't bother
     * checking.
     */
@@ -599,10 +600,10 @@ subbuild_joinrel_joinlist(RelOptInfo *joinrel,
        {
            /*
             * This clause is still a join clause at this level, so add it to
-            * the new joininfo list, being careful to eliminate
-            * duplicates. (Since RestrictInfo nodes in different joinlists
-            * will have been multiply-linked rather than copied, pointer
-            * equality should be a sufficient test.)
+            * the new joininfo list, being careful to eliminate duplicates.
+            * (Since RestrictInfo nodes in different joinlists will have been
+            * multiply-linked rather than copied, pointer equality should be
+            * a sufficient test.)
             */
            new_joininfo = list_append_unique_ptr(new_joininfo, rinfo);
        }
index 8251e75d650a66bf8cefe98394bc6894788b659b..6a843c8c040c393e0543b94711e516b905a9f823 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/util/restrictinfo.c,v 1.53 2007/01/22 20:00:39 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/util/restrictinfo.c,v 1.54 2007/11/15 21:14:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -534,7 +534,7 @@ extract_actual_join_clauses(List *restrictinfo_list,
  *
  * Given a list of RestrictInfo clauses that are to be applied in a join,
  * select the ones that are not redundant with any clause in the
- * reference_list.  This is used only for nestloop-with-inner-indexscan
+ * reference_list. This is used only for nestloop-with-inner-indexscan
  * joins: any clauses being checked by the index should be removed from
  * the qpquals list.
  *
index d2ac14cfa1bcf93f6556997b15ae7285de9cf27a..7073f0b1e82618a6bc1ab4efc4fa3312b95fdd90 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/util/tlist.c,v 1.76 2007/11/08 21:49:47 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/util/tlist.c,v 1.77 2007/11/15 21:14:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -61,7 +61,7 @@ tlist_member_ignore_relabel(Node *node, List *targetlist)
    foreach(temp, targetlist)
    {
        TargetEntry *tlentry = (TargetEntry *) lfirst(temp);
-       Expr   *tlexpr = tlentry->expr;
+       Expr       *tlexpr = tlentry->expr;
 
        while (tlexpr && IsA(tlexpr, RelabelType))
            tlexpr = ((RelabelType *) tlexpr)->arg;
index efb1ad9343de381ecd0c9ef7933a7c70c80bf2d5..75564f2b5ff0cf8cf19dcbc27d0849e49c7525e3 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/util/var.c,v 1.71 2007/09/20 17:56:31 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/util/var.c,v 1.72 2007/11/15 21:14:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -166,7 +166,7 @@ pull_varattnos_walker(Node *node, Bitmapset **varattnos)
 
        Assert(var->varno == 1);
        *varattnos = bms_add_member(*varattnos,
-                       var->varattno - FirstLowInvalidHeapAttributeNumber);
+                        var->varattno - FirstLowInvalidHeapAttributeNumber);
        return false;
    }
    /* Should not find a subquery or subplan */
index 099a7c7446ae900867f586bc67ed7fe1716c25bd..ed837f1ca6f367711ef251af08564494b96acc4d 100644 (file)
@@ -17,7 +17,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/parser/analyze.c,v 1.369 2007/10/25 13:48:57 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/analyze.c,v 1.370 2007/11/15 21:14:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -61,7 +61,7 @@ static List *transformReturningList(ParseState *pstate, List *returningList);
 static Query *transformDeclareCursorStmt(ParseState *pstate,
                           DeclareCursorStmt *stmt);
 static Query *transformExplainStmt(ParseState *pstate,
-                          ExplainStmt *stmt);
+                    ExplainStmt *stmt);
 static void transformLockingClause(Query *qry, LockingClause *lc);
 static bool check_parameter_resolution_walker(Node *node,
                                check_parameter_resolution_context *context);
@@ -77,7 +77,7 @@ static bool check_parameter_resolution_walker(Node *node,
  * Optionally, information about $n parameter types can be supplied.
  * References to $n indexes not defined by paramTypes[] are disallowed.
  *
- * The result is a Query node.  Optimizable statements require considerable
+ * The result is a Query node. Optimizable statements require considerable
  * transformation, while utility-type statements are simply hung off
  * a dummy CMD_UTILITY Query node.
  */
@@ -1565,7 +1565,7 @@ transformReturningList(ParseState *pstate, List *returningList)
    if (list_length(pstate->p_rtable) != length_rtable)
        ereport(ERROR,
                (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-        errmsg("RETURNING cannot contain references to other relations")));
+         errmsg("RETURNING cannot contain references to other relations")));
 
    /* mark column origins */
    markTargetListOrigins(pstate, rlist);
@@ -1620,21 +1620,21 @@ transformDeclareCursorStmt(ParseState *pstate, DeclareCursorStmt *stmt)
    if (result->rowMarks != NIL && (stmt->options & CURSOR_OPT_HOLD))
        ereport(ERROR,
                (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-             errmsg("DECLARE CURSOR WITH HOLD ... FOR UPDATE/SHARE is not supported"),
+                errmsg("DECLARE CURSOR WITH HOLD ... FOR UPDATE/SHARE is not supported"),
                 errdetail("Holdable cursors must be READ ONLY.")));
 
    /* FOR UPDATE and SCROLL are not compatible */
    if (result->rowMarks != NIL && (stmt->options & CURSOR_OPT_SCROLL))
        ereport(ERROR,
                (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-             errmsg("DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported"),
+       errmsg("DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported"),
                 errdetail("Scrollable cursors must be READ ONLY.")));
 
    /* FOR UPDATE and INSENSITIVE are not compatible */
    if (result->rowMarks != NIL && (stmt->options & CURSOR_OPT_INSENSITIVE))
        ereport(ERROR,
                (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-             errmsg("DECLARE INSENSITIVE CURSOR ... FOR UPDATE/SHARE is not supported"),
+                errmsg("DECLARE INSENSITIVE CURSOR ... FOR UPDATE/SHARE is not supported"),
                 errdetail("Insensitive cursors must be READ ONLY.")));
 
    /* We won't need the raw querytree any more */
index 473ba15252e15aaa0527a3f5af4a82d9aed0283c..0c45ab3bb237097a680b038c28b311c5f80bb04f 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/parser/keywords.c,v 1.192 2007/09/24 01:29:29 adunstan Exp $
+ *   $PostgreSQL: pgsql/src/backend/parser/keywords.c,v 1.193 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -387,13 +387,14 @@ static const ScanKeyword ScanKeywords[] = {
    {"when", WHEN, RESERVED_KEYWORD},
    {"where", WHERE, RESERVED_KEYWORD},
    {"whitespace", WHITESPACE_P, UNRESERVED_KEYWORD},
+
    /*
     * XXX we mark WITH as reserved to force it to be quoted in dumps, even
     * though it is currently unreserved according to gram.y.  This is because
     * we expect we'll have to make it reserved to implement SQL WITH clauses.
     * If that patch manages to do without reserving WITH, adjust this entry
-    * at that time; in any case this should be back in sync with gram.y
-    * after WITH clauses are implemented.
+    * at that time; in any case this should be back in sync with gram.y after
+    * WITH clauses are implemented.
     */
    {"with", WITH, RESERVED_KEYWORD},
    {"without", WITHOUT, UNRESERVED_KEYWORD},
index 28717020e349f237d0cd57e6eec23a39768f05b3..174e96adac22e86a0faffb487031316ddee64552 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/parser/parse_clause.c,v 1.166 2007/06/23 22:12:51 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/parser/parse_clause.c,v 1.167 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -152,8 +152,8 @@ setTargetTable(ParseState *pstate, RangeVar *relation,
     * Open target rel and grab suitable lock (which we will hold till end of
     * transaction).
     *
-    * free_parsestate() will eventually do the corresponding
-    * heap_close(), but *not* release the lock.
+    * free_parsestate() will eventually do the corresponding heap_close(),
+    * but *not* release the lock.
     */
    pstate->p_target_relation = heap_openrv(relation, RowExclusiveLock);
 
@@ -1665,21 +1665,22 @@ addTargetToSortList(ParseState *pstate, TargetEntry *tle,
                                          restype,
                                          restype,
                                          false);
+
            /*
-            * Verify it's a valid ordering operator, and determine
-            * whether to consider it like ASC or DESC.
+            * Verify it's a valid ordering operator, and determine whether to
+            * consider it like ASC or DESC.
             */
            if (!get_compare_function_for_ordering_op(sortop,
                                                      &cmpfunc, &reverse))
                ereport(ERROR,
                        (errcode(ERRCODE_WRONG_OBJECT_TYPE),
-                        errmsg("operator %s is not a valid ordering operator",
-                               strVal(llast(sortby_opname))),
+                      errmsg("operator %s is not a valid ordering operator",
+                             strVal(llast(sortby_opname))),
                         errhint("Ordering operators must be \"<\" or \">\" members of btree operator families.")));
            break;
        default:
            elog(ERROR, "unrecognized sortby_dir: %d", sortby_dir);
-           sortop = InvalidOid; /* keep compiler quiet */
+           sortop = InvalidOid;    /* keep compiler quiet */
            reverse = false;
            break;
    }
index 79bfe4f7e3effb4d2e0d5f2c6f813620a7043148..98b9aba238f133690bf269fba7cff0c0266267fc 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/parser/parse_coerce.c,v 2.157 2007/09/06 17:31:58 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/parser/parse_coerce.c,v 2.158 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -37,10 +37,10 @@ static Node *coerce_type_typmod(Node *node,
                   bool hideInputCoercion);
 static void hide_coercion_node(Node *node);
 static Node *build_coercion_expression(Node *node,
-                                      CoercionPathType pathtype,
-                                      Oid funcId,
-                                      Oid targetTypeId, int32 targetTypMod,
-                                      CoercionForm cformat, bool isExplicit);
+                         CoercionPathType pathtype,
+                         Oid funcId,
+                         Oid targetTypeId, int32 targetTypMod,
+                         CoercionForm cformat, bool isExplicit);
 static Node *coerce_record_to_complex(ParseState *pstate, Node *node,
                         Oid targetTypeId,
                         CoercionContext ccontext,
@@ -142,7 +142,7 @@ coerce_type(ParseState *pstate, Node *node,
         *
         * Note: by returning the unmodified node here, we are saying that
         * it's OK to treat an UNKNOWN constant as a valid input for a
-        * function accepting ANY, ANYELEMENT, or ANYNONARRAY.  This should be
+        * function accepting ANY, ANYELEMENT, or ANYNONARRAY.  This should be
         * all right, since an UNKNOWN value is still a perfectly valid Datum.
         * However an UNKNOWN value is definitely *not* an array, and so we
         * mustn't accept it for ANYARRAY.  (Instead, we will call anyarray_in
@@ -271,12 +271,13 @@ coerce_type(ParseState *pstate, Node *node,
        }
 
        param->paramtype = targetTypeId;
+
        /*
         * Note: it is tempting here to set the Param's paramtypmod to
         * targetTypeMod, but that is probably unwise because we have no
-        * infrastructure that enforces that the value delivered for a
-        * Param will match any particular typmod.  Leaving it -1 ensures
-        * that a run-time length check/coercion will occur if needed.
+        * infrastructure that enforces that the value delivered for a Param
+        * will match any particular typmod.  Leaving it -1 ensures that a
+        * run-time length check/coercion will occur if needed.
         */
        param->paramtypmod = -1;
 
@@ -720,10 +721,11 @@ build_coercion_expression(Node *node,
        acoerce->arg = (Expr *) node;
        acoerce->elemfuncid = funcId;
        acoerce->resulttype = targetTypeId;
+
        /*
         * Label the output as having a particular typmod only if we are
-        * really invoking a length-coercion function, ie one with more
-        * than one argument.
+        * really invoking a length-coercion function, ie one with more than
+        * one argument.
         */
        acoerce->resulttypmod = (nargs >= 2) ? targetTypMod : -1;
        acoerce->isExplicit = isExplicit;
@@ -934,10 +936,10 @@ coerce_to_specific_type(ParseState *pstate, Node *node,
            ereport(ERROR,
                    (errcode(ERRCODE_DATATYPE_MISMATCH),
            /* translator: first %s is name of a SQL construct, eg LIMIT */
-                  errmsg("argument of %s must be type %s, not type %s",
-                         constructName,
-                         format_type_be(targetTypeId),
-                         format_type_be(inputTypeId))));
+                    errmsg("argument of %s must be type %s, not type %s",
+                           constructName,
+                           format_type_be(targetTypeId),
+                           format_type_be(inputTypeId))));
    }
 
    if (expression_returns_set(node))
@@ -1304,7 +1306,7 @@ enforce_generic_type_consistency(Oid *actual_arg_types,
 
    /*
     * Fast Track: if none of the arguments are polymorphic, return the
-    * unmodified rettype.  We assume it can't be polymorphic either.
+    * unmodified rettype.  We assume it can't be polymorphic either.
     */
    if (!have_generics)
        return rettype;
@@ -1359,8 +1361,8 @@ enforce_generic_type_consistency(Oid *actual_arg_types,
        if (type_is_array(elem_typeid))
            ereport(ERROR,
                    (errcode(ERRCODE_DATATYPE_MISMATCH),
-                    errmsg("type matched to anynonarray is an array type: %s",
-                           format_type_be(elem_typeid))));
+                  errmsg("type matched to anynonarray is an array type: %s",
+                         format_type_be(elem_typeid))));
    }
 
    if (have_anyenum)
@@ -1921,13 +1923,12 @@ find_coercion_pathway(Oid targetTypeId, Oid sourceTypeId,
        /*
         * If we still haven't found a possibility, consider automatic casting
         * using I/O functions.  We allow assignment casts to textual types
-        * and explicit casts from textual types to be handled this way.
-        * (The CoerceViaIO mechanism is a lot more general than that, but
-        * this is all we want to allow in the absence of a pg_cast entry.)
-        * It would probably be better to insist on explicit casts in both
-        * directions, but this is a compromise to preserve something of the
-        * pre-8.3 behavior that many types had implicit (yipes!) casts to
-        * text.
+        * and explicit casts from textual types to be handled this way. (The
+        * CoerceViaIO mechanism is a lot more general than that, but this is
+        * all we want to allow in the absence of a pg_cast entry.) It would
+        * probably be better to insist on explicit casts in both directions,
+        * but this is a compromise to preserve something of the pre-8.3
+        * behavior that many types had implicit (yipes!) casts to text.
         */
        if (result == COERCION_PATH_NONE)
        {
index 52957e825e7f7a66041185b2660d037f595ba5e1..85800ea3eaa991bb4f9d638b0b0ee55095b929df 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/parser/parse_expr.c,v 1.223 2007/11/11 19:22:49 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/parser/parse_expr.c,v 1.224 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -56,10 +56,10 @@ static Node *transformArrayExpr(ParseState *pstate, ArrayExpr *a);
 static Node *transformRowExpr(ParseState *pstate, RowExpr *r);
 static Node *transformCoalesceExpr(ParseState *pstate, CoalesceExpr *c);
 static Node *transformMinMaxExpr(ParseState *pstate, MinMaxExpr *m);
-static Node *transformXmlExpr(ParseState *pstate, XmlExpr *x);
-static Node *transformXmlSerialize(ParseState *pstate, XmlSerialize *xs);
+static Node *transformXmlExpr(ParseState *pstate, XmlExpr * x);
+static Node *transformXmlSerialize(ParseState *pstate, XmlSerialize * xs);
 static Node *transformBooleanTest(ParseState *pstate, BooleanTest *b);
-static Node *transformCurrentOfExpr(ParseState *pstate, CurrentOfExpr *cexpr);
+static Node *transformCurrentOfExpr(ParseState *pstate, CurrentOfExpr * cexpr);
 static Node *transformColumnRef(ParseState *pstate, ColumnRef *cref);
 static Node *transformWholeRowRef(ParseState *pstate, char *schemaname,
                     char *relname, int location);
@@ -545,7 +545,7 @@ transformColumnRef(ParseState *pstate, ColumnRef *cref)
 static Oid *
 find_param_type(ParseState *pstate, int paramno)
 {
-   Oid    *result;
+   Oid        *result;
 
    /*
     * Find topmost ParseState, which is where paramtype info lives.
@@ -612,7 +612,7 @@ exprIsNullConstant(Node *arg)
 {
    if (arg && IsA(arg, A_Const))
    {
-       A_Const *con = (A_Const *) arg;
+       A_Const    *con = (A_Const *) arg;
 
        if (con->val.type == T_Null &&
            con->typename == NULL)
@@ -1411,10 +1411,10 @@ transformMinMaxExpr(ParseState *pstate, MinMaxExpr *m)
 }
 
 static Node *
-transformXmlExpr(ParseState *pstate, XmlExpr *x)
+transformXmlExpr(ParseState *pstate, XmlExpr * x)
 {
-   XmlExpr *newx = makeNode(XmlExpr);
-   ListCell    *lc;
+   XmlExpr    *newx = makeNode(XmlExpr);
+   ListCell   *lc;
    int         i;
 
    newx->op = x->op;
@@ -1424,7 +1424,7 @@ transformXmlExpr(ParseState *pstate, XmlExpr *x)
        newx->name = NULL;
 
    /*
-    * gram.y built the named args as a list of ResTarget.  Transform each,
+    * gram.y built the named args as a list of ResTarget.  Transform each,
     * and break the names out as a separate list.
     */
    newx->named_args = NIL;
@@ -1432,9 +1432,9 @@ transformXmlExpr(ParseState *pstate, XmlExpr *x)
 
    foreach(lc, x->named_args)
    {
-       ResTarget   *r = (ResTarget *) lfirst(lc);
-       Node        *expr;
-       char        *argname;
+       ResTarget  *r = (ResTarget *) lfirst(lc);
+       Node       *expr;
+       char       *argname;
 
        Assert(IsA(r, ResTarget));
 
@@ -1450,7 +1450,7 @@ transformXmlExpr(ParseState *pstate, XmlExpr *x)
            ereport(ERROR,
                    (errcode(ERRCODE_SYNTAX_ERROR),
                     x->op == IS_XMLELEMENT
-                    ? errmsg("unnamed XML attribute value must be a column reference")
+           ? errmsg("unnamed XML attribute value must be a column reference")
                     : errmsg("unnamed XML element value must be a column reference")));
            argname = NULL;     /* keep compiler quiet */
        }
@@ -1465,7 +1465,7 @@ transformXmlExpr(ParseState *pstate, XmlExpr *x)
    {
        foreach(lc, newx->arg_names)
        {
-           ListCell    *lc2;
+           ListCell   *lc2;
 
            for_each_cell(lc2, lnext(lc))
            {
@@ -1537,16 +1537,16 @@ transformXmlExpr(ParseState *pstate, XmlExpr *x)
 }
 
 static Node *
-transformXmlSerialize(ParseState *pstate, XmlSerialize *xs)
+transformXmlSerialize(ParseState *pstate, XmlSerialize * xs)
 {
    Oid         targetType;
    int32       targetTypmod;
-   XmlExpr    *xexpr;
+   XmlExpr    *xexpr;
 
    xexpr = makeNode(XmlExpr);
    xexpr->op = IS_XMLSERIALIZE;
    xexpr->args = list_make1(coerce_to_specific_type(pstate,
-                                                    transformExpr(pstate, xs->expr),
+                                            transformExpr(pstate, xs->expr),
                                                     XMLOID,
                                                     "XMLSERIALIZE"));
 
@@ -1558,13 +1558,13 @@ transformXmlSerialize(ParseState *pstate, XmlSerialize *xs)
    xexpr->typmod = targetTypmod;
 
    /*
-    * The actual target type is determined this way.  SQL allows char
-    * and varchar as target types.  We allow anything that can be
-    * cast implicitly from text.  This way, user-defined text-like
-    * data types automatically fit in.
+    * The actual target type is determined this way.  SQL allows char and
+    * varchar as target types.  We allow anything that can be cast implicitly
+    * from text.  This way, user-defined text-like data types automatically
+    * fit in.
     */
    return (Node *) coerce_to_target_type(pstate, (Node *) xexpr, TEXTOID, targetType, targetTypmod,
-                                         COERCION_IMPLICIT, COERCE_IMPLICIT_CAST);
+                                   COERCION_IMPLICIT, COERCE_IMPLICIT_CAST);
 }
 
 static Node *
@@ -1608,9 +1608,9 @@ transformBooleanTest(ParseState *pstate, BooleanTest *b)
 }
 
 static Node *
-transformCurrentOfExpr(ParseState *pstate, CurrentOfExpr *cexpr)
+transformCurrentOfExpr(ParseState *pstate, CurrentOfExpr * cexpr)
 {
-   int     sublevels_up;
+   int         sublevels_up;
 
    /* CURRENT OF can only appear at top level of UPDATE/DELETE */
    Assert(pstate->p_target_rangetblentry != NULL);
@@ -1851,7 +1851,7 @@ exprType(Node *expr)
                            ereport(ERROR,
                                    (errcode(ERRCODE_UNDEFINED_OBJECT),
                                     errmsg("could not find array type for data type %s",
-                                           format_type_be(subplan->firstColType))));
+                                   format_type_be(subplan->firstColType))));
                    }
                }
                else
@@ -2153,8 +2153,8 @@ exprIsLengthCoercion(Node *expr, int32 *coercedTypmod)
        *coercedTypmod = -1;    /* default result on failure */
 
    /*
-    * Scalar-type length coercions are FuncExprs, array-type length
-    * coercions are ArrayCoerceExprs
+    * Scalar-type length coercions are FuncExprs, array-type length coercions
+    * are ArrayCoerceExprs
     */
    if (expr && IsA(expr, FuncExpr))
    {
@@ -2336,9 +2336,9 @@ make_row_comparison_op(ParseState *pstate, List *opname,
 
    /*
     * Now we must determine which row comparison semantics (= <> < <= > >=)
-    * apply to this set of operators.  We look for btree opfamilies containing
-    * the operators, and see which interpretations (strategy numbers) exist
-    * for each operator.
+    * apply to this set of operators.  We look for btree opfamilies
+    * containing the operators, and see which interpretations (strategy
+    * numbers) exist for each operator.
     */
    opfamily_lists = (List **) palloc(nopers * sizeof(List *));
    opstrat_lists = (List **) palloc(nopers * sizeof(List *));
@@ -2421,7 +2421,7 @@ make_row_comparison_op(ParseState *pstate, List *opname,
        }
        if (OidIsValid(opfamily))
            opfamilies = lappend_oid(opfamilies, opfamily);
-       else                    /* should not happen */
+       else    /* should not happen */
            ereport(ERROR,
                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
                     errmsg("could not determine interpretation of row comparison operator %s",
index 76dcd29185c71782d75680abcf3aedb4a07c2fbb..f8264688f0e6eccece3e043549b120cca4dbc38d 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/parser/parse_func.c,v 1.198 2007/11/11 19:22:49 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/parser/parse_func.c,v 1.199 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -727,9 +727,9 @@ func_get_detail(List *funcname,
         * This interpretation needs to be given higher priority than
         * interpretations involving a type coercion followed by a function
         * call, otherwise we can produce surprising results. For example, we
-        * want "text(varchar)" to be interpreted as a simple coercion, not
-        * as "text(name(varchar))" which the code below this point is
-        * entirely capable of selecting.
+        * want "text(varchar)" to be interpreted as a simple coercion, not as
+        * "text(name(varchar))" which the code below this point is entirely
+        * capable of selecting.
         *
         * We also treat a coercion of a previously-unknown-type literal
         * constant to a specific type this way.
@@ -738,8 +738,8 @@ func_get_detail(List *funcname,
         * cast implementation function to be named after the target type.
         * Thus the function will be found by normal lookup if appropriate.
         *
-        * The reason we reject COERCION_PATH_ARRAYCOERCE is mainly that
-        * you can't write "foo[] (something)" as a function call.  In theory
+        * The reason we reject COERCION_PATH_ARRAYCOERCE is mainly that you
+        * can't write "foo[] (something)" as a function call.  In theory
         * someone might want to invoke it as "_foo (something)" but we have
         * never supported that historically, so we can insist that people
         * write it as a normal cast instead.  Lack of historical support is
@@ -747,7 +747,7 @@ func_get_detail(List *funcname,
         *
         * NB: it's important that this code does not exceed what coerce_type
         * can do, because the caller will try to apply coerce_type if we
-        * return FUNCDETAIL_COERCION.  If we return that result for something
+        * return FUNCDETAIL_COERCION.  If we return that result for something
         * coerce_type can't handle, we'll cause infinite recursion between
         * this module and coerce_type!
         */
index a51a4d6215df0e9578a255bfff29a4de5c6ce673..3367ee2a875a39668a309b5e939a01312f4050b1 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/parser/parse_oper.c,v 1.96 2007/11/11 19:22:49 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/parser/parse_oper.c,v 1.97 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -887,8 +887,8 @@ make_scalar_array_op(ParseState *pstate, List *opname,
 
    /*
     * enforce consistency with polymorphic argument and return types,
-    * possibly adjusting return type or declared_arg_types (which will
-    * be used as the cast destination by make_fn_arguments)
+    * possibly adjusting return type or declared_arg_types (which will be
+    * used as the cast destination by make_fn_arguments)
     */
    rettype = enforce_generic_type_consistency(actual_arg_types,
                                               declared_arg_types,
@@ -997,8 +997,8 @@ make_op_expr(ParseState *pstate, Operator op,
 
    /*
     * enforce consistency with polymorphic argument and return types,
-    * possibly adjusting return type or declared_arg_types (which will
-    * be used as the cast destination by make_fn_arguments)
+    * possibly adjusting return type or declared_arg_types (which will be
+    * used as the cast destination by make_fn_arguments)
     */
    rettype = enforce_generic_type_consistency(actual_arg_types,
                                               declared_arg_types,
index af26c4c1c92d1242e38552bfa17ddabff7951f38..e8122ad14b1bbc3b8f98ced264830a73259a9c3a 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/parser/parse_target.c,v 1.156 2007/09/27 17:42:03 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/parser/parse_target.c,v 1.157 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -827,8 +827,8 @@ ExpandColumnRefStar(ParseState *pstate, ColumnRef *cref,
         *
         * Since the grammar only accepts bare '*' at top level of SELECT, we
         * need not handle the targetlist==false case here.  However, we must
-        * test for it because the grammar currently fails to distinguish
-        * quoted name "*" from a real asterisk.
+        * test for it because the grammar currently fails to distinguish a
+        * quoted name "*" from a real asterisk.
         */
        if (!targetlist)
            elog(ERROR, "invalid use of *");
@@ -1320,8 +1320,8 @@ FigureColnameInternal(Node *node, char **name)
            break;
        case T_XmlExpr:
            /* make SQL/XML functions act like a regular function */
-           switch (((XmlExpr*) node)->op)
-           {       
+           switch (((XmlExpr *) node)->op)
+           {
                case IS_XMLCONCAT:
                    *name = "xmlconcat";
                    return 2;
@@ -1346,7 +1346,7 @@ FigureColnameInternal(Node *node, char **name)
                case IS_DOCUMENT:
                    /* nothing */
                    break;
-           } 
+           }
            break;
        case T_XmlSerialize:
            *name = "xmlserialize";
index e61cf0857645619b5d54e3963c0a4d6c2296ad3b..6de2adf7a318ed2084c09fef49fe2036ab74b0dd 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/parser/parse_type.c,v 1.92 2007/11/11 19:22:49 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/parser/parse_type.c,v 1.93 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 
 static int32 typenameTypeMod(ParseState *pstate, const TypeName *typename,
-                            Type typ);
+               Type typ);
 
 
 /*
  * LookupTypeName
  *     Given a TypeName object, lookup the pg_type syscache entry of the type.
- *     Returns NULL if no such type can be found.  If the type is found,
+ *     Returns NULL if no such type can be found.  If the type is found,
  *     the typmod value represented in the TypeName struct is computed and
  *     stored into *typmod_p.
  *
@@ -46,7 +46,7 @@ static int32 typenameTypeMod(ParseState *pstate, const TypeName *typename,
  *
  * typmod_p can be passed as NULL if the caller does not care to know the
  * typmod value, but the typmod decoration (if any) will be validated anyway,
- * except in the case where the type is not found.  Note that if the type is
+ * except in the case where the type is not found. Note that if the type is
  * found but is a shell, and there is typmod decoration, an error will be
  * thrown --- this is intentional.
  *
@@ -252,15 +252,15 @@ typenameTypeMod(ParseState *pstate, const TypeName *typename, Type typ)
        return typename->typemod;
 
    /*
-    * Else, type had better accept typmods.  We give a special error
-    * message for the shell-type case, since a shell couldn't possibly
-    * have a typmodin function.
+    * Else, type had better accept typmods.  We give a special error message
+    * for the shell-type case, since a shell couldn't possibly have a
+    * typmodin function.
     */
    if (!((Form_pg_type) GETSTRUCT(typ))->typisdefined)
        ereport(ERROR,
                (errcode(ERRCODE_SYNTAX_ERROR),
-                errmsg("type modifier cannot be specified for shell type \"%s\"",
-                       TypeNameToString(typename)),
+           errmsg("type modifier cannot be specified for shell type \"%s\"",
+                  TypeNameToString(typename)),
                 parser_errposition(pstate, typename->location)));
 
    typmodin = ((Form_pg_type) GETSTRUCT(typ))->typmodin;
@@ -281,24 +281,24 @@ typenameTypeMod(ParseState *pstate, const TypeName *typename, Type typ)
    n = 0;
    foreach(l, typename->typmods)
    {
-       Node    *tm = (Node *) lfirst(l);
-       char    *cstr = NULL;
+       Node       *tm = (Node *) lfirst(l);
+       char       *cstr = NULL;
 
        if (IsA(tm, A_Const))
        {
-           A_Const    *ac = (A_Const *) tm;
+           A_Const    *ac = (A_Const *) tm;
 
            /*
-            * The grammar hands back some integers with ::int4 attached,
-            * so allow a cast decoration if it's an Integer value, but
-            * not otherwise.
+            * The grammar hands back some integers with ::int4 attached, so
+            * allow a cast decoration if it's an Integer value, but not
+            * otherwise.
             */
            if (IsA(&ac->val, Integer))
            {
                cstr = (char *) palloc(32);
                snprintf(cstr, 32, "%ld", (long) ac->val.val.ival);
            }
-           else if (ac->typename == NULL)  /* no casts allowed */
+           else if (ac->typename == NULL)      /* no casts allowed */
            {
                /* otherwise we can just use the str field directly. */
                cstr = ac->val.val.str;
@@ -306,7 +306,7 @@ typenameTypeMod(ParseState *pstate, const TypeName *typename, Type typ)
        }
        else if (IsA(tm, ColumnRef))
        {
-           ColumnRef   *cr = (ColumnRef *) tm;
+           ColumnRef  *cr = (ColumnRef *) tm;
 
            if (list_length(cr->fields) == 1)
                cstr = strVal(linitial(cr->fields));
@@ -314,7 +314,7 @@ typenameTypeMod(ParseState *pstate, const TypeName *typename, Type typ)
        if (!cstr)
            ereport(ERROR,
                    (errcode(ERRCODE_SYNTAX_ERROR),
-                    errmsg("type modifiers must be simple constants or identifiers"),
+           errmsg("type modifiers must be simple constants or identifiers"),
                     parser_errposition(pstate, typename->location)));
        datums[n++] = CStringGetDatum(cstr);
    }
index a6306a435cc8f12b1e95dc041245c8ef915be611..2ff6f9274d717ba946debe202e35ef303da40449 100644 (file)
@@ -19,7 +19,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/parser/parse_utilcmd.c,v 2.5 2007/11/11 19:22:49 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/parse_utilcmd.c,v 2.6 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -98,13 +98,13 @@ static void transformTableConstraint(ParseState *pstate,
                         Constraint *constraint);
 static void transformInhRelation(ParseState *pstate, CreateStmtContext *cxt,
                     InhRelation *inhrelation);
-static IndexStmt *generateClonedIndexStmt(CreateStmtContext *cxt, 
-                           Relation parent_index, AttrNumber *attmap);
+static IndexStmt *generateClonedIndexStmt(CreateStmtContext *cxt,
+                       Relation parent_index, AttrNumber *attmap);
 static List *get_opclass(Oid opclass, Oid actual_datatype);
 static void transformIndexConstraints(ParseState *pstate,
                          CreateStmtContext *cxt);
 static IndexStmt *transformIndexConstraint(Constraint *constraint,
-                                          CreateStmtContext *cxt);
+                        CreateStmtContext *cxt);
 static void transformFKConstraints(ParseState *pstate,
                       CreateStmtContext *cxt,
                       bool skipValidation,
@@ -138,21 +138,21 @@ transformCreateStmt(CreateStmt *stmt, const char *queryString)
    ListCell   *elements;
 
    /*
-    * We must not scribble on the passed-in CreateStmt, so copy it.  (This
-    * is overkill, but easy.)
+    * We must not scribble on the passed-in CreateStmt, so copy it.  (This is
+    * overkill, but easy.)
     */
    stmt = (CreateStmt *) copyObject(stmt);
 
    /*
     * If the target relation name isn't schema-qualified, make it so.  This
     * prevents some corner cases in which added-on rewritten commands might
-    * think they should apply to other relations that have the same name
-    * and are earlier in the search path.  "istemp" is equivalent to a
+    * think they should apply to other relations that have the same name and
+    * are earlier in the search path.  "istemp" is equivalent to a
     * specification of pg_temp, so no need for anything extra in that case.
     */
    if (stmt->relation->schemaname == NULL && !stmt->relation->istemp)
    {
-       Oid     namespaceid = RangeVarGetCreationNamespace(stmt->relation);
+       Oid         namespaceid = RangeVarGetCreationNamespace(stmt->relation);
 
        stmt->relation->schemaname = get_namespace_name(namespaceid);
    }
@@ -580,8 +580,7 @@ transformInhRelation(ParseState *pstate, CreateStmtContext *cxt,
    }
 
    /*
-    * Insert the copied attributes into the cxt for the new table
-    * definition.
+    * Insert the copied attributes into the cxt for the new table definition.
     */
    for (parent_attno = 1; parent_attno <= tupleDesc->natts;
         parent_attno++)
@@ -650,8 +649,8 @@ transformInhRelation(ParseState *pstate, CreateStmtContext *cxt,
    }
 
    /*
-    * Copy CHECK constraints if requested, being careful to adjust
-    * attribute numbers
+    * Copy CHECK constraints if requested, being careful to adjust attribute
+    * numbers
     */
    if (including_constraints && tupleDesc->constr)
    {
@@ -687,9 +686,9 @@ transformInhRelation(ParseState *pstate, CreateStmtContext *cxt,
 
        foreach(l, parent_indexes)
        {
-           Oid          parent_index_oid = lfirst_oid(l);
-           Relation     parent_index;
-           IndexStmt   *index_stmt;
+           Oid         parent_index_oid = lfirst_oid(l);
+           Relation    parent_index;
+           IndexStmt  *index_stmt;
 
            parent_index = index_open(parent_index_oid, AccessShareLock);
 
@@ -723,25 +722,25 @@ static IndexStmt *
 generateClonedIndexStmt(CreateStmtContext *cxt, Relation source_idx,
                        AttrNumber *attmap)
 {
-   HeapTuple            ht_idx;
-   HeapTuple            ht_idxrel;
-   HeapTuple            ht_am;
-   Form_pg_index        idxrec;
-   Form_pg_class        idxrelrec;
-   Form_pg_am           amrec;
-   List                *indexprs = NIL;
-   ListCell            *indexpr_item;
-   Oid                  indrelid;
-   Oid                  source_relid;
-   int                  keyno;
-   Oid                  keycoltype;
-   Datum                indclassDatum;
-   Datum                indoptionDatum;
-   bool                 isnull;
-   oidvector           *indclass;
-   int2vector          *indoption;
-   IndexStmt           *index;
-   Datum                reloptions;
+   HeapTuple   ht_idx;
+   HeapTuple   ht_idxrel;
+   HeapTuple   ht_am;
+   Form_pg_index idxrec;
+   Form_pg_class idxrelrec;
+   Form_pg_am  amrec;
+   List       *indexprs = NIL;
+   ListCell   *indexpr_item;
+   Oid         indrelid;
+   Oid         source_relid;
+   int         keyno;
+   Oid         keycoltype;
+   Datum       indclassDatum;
+   Datum       indoptionDatum;
+   bool        isnull;
+   oidvector  *indclass;
+   int2vector *indoption;
+   IndexStmt  *index;
+   Datum       reloptions;
 
    source_relid = RelationGetRelid(source_idx);
 
@@ -825,7 +824,7 @@ generateClonedIndexStmt(CreateStmtContext *cxt, Relation source_idx,
 
    for (keyno = 0; keyno < idxrec->indnatts; keyno++)
    {
-       IndexElem   *iparam;
+       IndexElem  *iparam;
        AttrNumber  attnum = idxrec->indkey.values[keyno];
        int16       opt = indoption->values[keyno];
 
@@ -914,9 +913,9 @@ generateClonedIndexStmt(CreateStmtContext *cxt, Relation source_idx,
 static List *
 get_opclass(Oid opclass, Oid actual_datatype)
 {
-   HeapTuple            ht_opc;
-   Form_pg_opclass      opc_rec;
-   List                *result = NIL;
+   HeapTuple   ht_opc;
+   Form_pg_opclass opc_rec;
+   List       *result = NIL;
 
    ht_opc = SearchSysCache(CLAOID,
                            ObjectIdGetDatum(opclass),
@@ -928,8 +927,8 @@ get_opclass(Oid opclass, Oid actual_datatype)
    if (!OidIsValid(actual_datatype) ||
        GetDefaultOpClass(actual_datatype, opc_rec->opcmethod) != opclass)
    {
-       char *nsp_name = get_namespace_name(opc_rec->opcnamespace);
-       char *opc_name = NameStr(opc_rec->opcname);
+       char       *nsp_name = get_namespace_name(opc_rec->opcnamespace);
+       char       *opc_name = NameStr(opc_rec->opcname);
 
        result = list_make2(makeString(nsp_name), makeString(opc_name));
    }
@@ -1038,9 +1037,9 @@ transformIndexConstraints(ParseState *pstate, CreateStmtContext *cxt)
 static IndexStmt *
 transformIndexConstraint(Constraint *constraint, CreateStmtContext *cxt)
 {
-   IndexStmt   *index;
-   ListCell    *keys;
-   IndexElem   *iparam;
+   IndexStmt  *index;
+   ListCell   *keys;
+   IndexElem  *iparam;
 
    Assert(constraint->contype == CONSTR_PRIMARY ||
           constraint->contype == CONSTR_UNIQUE);
@@ -1054,8 +1053,8 @@ transformIndexConstraint(Constraint *constraint, CreateStmtContext *cxt)
        if (cxt->pkey != NULL)
            ereport(ERROR,
                    (errcode(ERRCODE_INVALID_TABLE_DEFINITION),
-                    errmsg("multiple primary keys for table \"%s\" are not allowed",
-                           cxt->relation->relname)));
+            errmsg("multiple primary keys for table \"%s\" are not allowed",
+                   cxt->relation->relname)));
        cxt->pkey = index;
 
        /*
@@ -1068,7 +1067,7 @@ transformIndexConstraint(Constraint *constraint, CreateStmtContext *cxt)
    if (constraint->name != NULL)
        index->idxname = pstrdup(constraint->name);
    else
-       index->idxname = NULL;      /* DefineIndex will choose name */
+       index->idxname = NULL;  /* DefineIndex will choose name */
 
    index->relation = cxt->relation;
    index->accessMethod = DEFAULT_INDEX_TYPE;
@@ -1079,10 +1078,10 @@ transformIndexConstraint(Constraint *constraint, CreateStmtContext *cxt)
    index->concurrent = false;
 
    /*
-    * Make sure referenced keys exist.  If we are making a PRIMARY KEY
-    * index, also make sure they are NOT NULL, if possible. (Although we
-    * could leave it to DefineIndex to mark the columns NOT NULL, it's
-    * more efficient to get it right the first time.)
+    * Make sure referenced keys exist.  If we are making a PRIMARY KEY index,
+    * also make sure they are NOT NULL, if possible. (Although we could leave
+    * it to DefineIndex to mark the columns NOT NULL, it's more efficient to
+    * get it right the first time.)
     */
    foreach(keys, constraint->keys)
    {
@@ -1110,9 +1109,9 @@ transformIndexConstraint(Constraint *constraint, CreateStmtContext *cxt)
        else if (SystemAttributeByName(key, cxt->hasoids) != NULL)
        {
            /*
-            * column will be a system column in the new table, so accept
-            * it.  System columns can't ever be null, so no need to worry
-            * about PRIMARY/NOT NULL constraint.
+            * column will be a system column in the new table, so accept it.
+            * System columns can't ever be null, so no need to worry about
+            * PRIMARY/NOT NULL constraint.
             */
            found = true;
        }
@@ -1132,8 +1131,8 @@ transformIndexConstraint(Constraint *constraint, CreateStmtContext *cxt)
                if (rel->rd_rel->relkind != RELKIND_RELATION)
                    ereport(ERROR,
                            (errcode(ERRCODE_WRONG_OBJECT_TYPE),
-                            errmsg("inherited relation \"%s\" is not a table",
-                                   inh->relname)));
+                          errmsg("inherited relation \"%s\" is not a table",
+                                 inh->relname)));
                for (count = 0; count < rel->rd_att->natts; count++)
                {
                    Form_pg_attribute inhattr = rel->rd_att->attrs[count];
@@ -1146,10 +1145,10 @@ transformIndexConstraint(Constraint *constraint, CreateStmtContext *cxt)
                        found = true;
 
                        /*
-                        * We currently have no easy way to force an
-                        * inherited column to be NOT NULL at creation, if
-                        * its parent wasn't so already. We leave it to
-                        * DefineIndex to fix things up in this case.
+                        * We currently have no easy way to force an inherited
+                        * column to be NOT NULL at creation, if its parent
+                        * wasn't so already. We leave it to DefineIndex to
+                        * fix things up in this case.
                         */
                        break;
                    }
@@ -1162,9 +1161,9 @@ transformIndexConstraint(Constraint *constraint, CreateStmtContext *cxt)
 
        /*
         * In the ALTER TABLE case, don't complain about index keys not
-        * created in the command; they may well exist already.
-        * DefineIndex will complain about them if not, and will also take
-        * care of marking them NOT NULL.
+        * created in the command; they may well exist already. DefineIndex
+        * will complain about them if not, and will also take care of marking
+        * them NOT NULL.
         */
        if (!found && !cxt->isalter)
            ereport(ERROR,
@@ -1186,8 +1185,8 @@ transformIndexConstraint(Constraint *constraint, CreateStmtContext *cxt)
                else
                    ereport(ERROR,
                            (errcode(ERRCODE_DUPLICATE_COLUMN),
-                            errmsg("column \"%s\" appears twice in unique constraint",
-                                   key)));
+                   errmsg("column \"%s\" appears twice in unique constraint",
+                          key)));
            }
        }
 
@@ -1269,7 +1268,7 @@ transformFKConstraints(ParseState *pstate, CreateStmtContext *cxt,
  * transformIndexStmt - parse analysis for CREATE INDEX
  *
  * Note: this is a no-op for an index not using either index expressions or
- * a predicate expression.  There are several code paths that create indexes
+ * a predicate expression. There are several code paths that create indexes
  * without bothering to call this, because they know they don't have any
  * such expressions to deal with.
  */
@@ -1282,28 +1281,28 @@ transformIndexStmt(IndexStmt *stmt, const char *queryString)
    ListCell   *l;
 
    /*
-    * We must not scribble on the passed-in IndexStmt, so copy it.  (This
-    * is overkill, but easy.)
+    * We must not scribble on the passed-in IndexStmt, so copy it.  (This is
+    * overkill, but easy.)
     */
    stmt = (IndexStmt *) copyObject(stmt);
 
    /*
-    * Open the parent table with appropriate locking.  We must do this
+    * Open the parent table with appropriate locking.  We must do this
     * because addRangeTableEntry() would acquire only AccessShareLock,
-    * leaving DefineIndex() needing to do a lock upgrade with consequent
-    * risk of deadlock.  Make sure this stays in sync with the type of
-    * lock DefineIndex() wants.
+    * leaving DefineIndex() needing to do a lock upgrade with consequent risk
+    * of deadlock.  Make sure this stays in sync with the type of lock
+    * DefineIndex() wants.
     */
    rel = heap_openrv(stmt->relation,
-               (stmt->concurrent ? ShareUpdateExclusiveLock : ShareLock));
+                 (stmt->concurrent ? ShareUpdateExclusiveLock : ShareLock));
 
    /* Set up pstate */
    pstate = make_parsestate(NULL);
    pstate->p_sourcetext = queryString;
 
    /*
-    * Put the parent table into the rtable so that the expressions can
-    * refer to its fields without qualification.
+    * Put the parent table into the rtable so that the expressions can refer
+    * to its fields without qualification.
     */
    rte = addRangeTableEntry(pstate, stmt->relation, NULL, false, true);
 
@@ -1432,7 +1431,7 @@ transformRuleStmt(RuleStmt *stmt, const char *queryString,
 
    /* take care of the where clause */
    *whereClause = transformWhereClause(pstate,
-                                       (Node *) copyObject(stmt->whereClause),
+                                     (Node *) copyObject(stmt->whereClause),
                                        "WHERE");
 
    if (list_length(pstate->p_rtable) != 2)     /* naughty, naughty... */
@@ -1458,7 +1457,7 @@ transformRuleStmt(RuleStmt *stmt, const char *queryString,
 
        nothing_qry->commandType = CMD_NOTHING;
        nothing_qry->rtable = pstate->p_rtable;
-       nothing_qry->jointree = makeFromExpr(NIL, NULL); /* no join wanted */
+       nothing_qry->jointree = makeFromExpr(NIL, NULL);        /* no join wanted */
 
        *actions = list_make1(nothing_qry);
    }
@@ -1480,8 +1479,8 @@ transformRuleStmt(RuleStmt *stmt, const char *queryString,
                        has_new;
 
            /*
-            * Since outer ParseState isn't parent of inner, have to pass
-            * down the query text by hand.
+            * Since outer ParseState isn't parent of inner, have to pass down
+            * the query text by hand.
             */
            sub_pstate->p_sourcetext = queryString;
 
@@ -1650,17 +1649,17 @@ transformAlterTableStmt(AlterTableStmt *stmt, const char *queryString)
    AlterTableCmd *newcmd;
 
    /*
-    * We must not scribble on the passed-in AlterTableStmt, so copy it.
-    * (This is overkill, but easy.)
+    * We must not scribble on the passed-in AlterTableStmt, so copy it. (This
+    * is overkill, but easy.)
     */
    stmt = (AlterTableStmt *) copyObject(stmt);
 
    /*
-    * Acquire exclusive lock on the target relation, which will be held
-    * until end of transaction.  This ensures any decisions we make here
-    * based on the state of the relation will still be good at execution.
-    * We must get exclusive lock now because execution will; taking a lower
-    * grade lock now and trying to upgrade later risks deadlock.
+    * Acquire exclusive lock on the target relation, which will be held until
+    * end of transaction.  This ensures any decisions we make here based on
+    * the state of the relation will still be good at execution. We must get
+    * exclusive lock now because execution will; taking a lower grade lock
+    * now and trying to upgrade later risks deadlock.
     */
    rel = relation_openrv(stmt->relation, AccessExclusiveLock);
 
index b9c0b9a98538f6aef03c82361ec60c76180029c4..4a16c7eac777b026904b25c476f11ff118b0c440 100644 (file)
@@ -14,7 +14,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/parser/parser.c,v 1.71 2007/01/09 02:14:14 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/parser/parser.c,v 1.72 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -28,8 +28,8 @@
 
 List      *parsetree;          /* result of parsing is left here */
 
-static bool have_lookahead;            /* is lookahead info valid? */
-static int lookahead_token;        /* one-token lookahead */
+static bool have_lookahead;        /* is lookahead info valid? */
+static int lookahead_token;    /* one-token lookahead */
 static YYSTYPE lookahead_yylval;   /* yylval for lookahead token */
 static YYLTYPE lookahead_yylloc;   /* yylloc for lookahead token */
 
@@ -98,6 +98,7 @@ filtered_base_yylex(void)
    switch (cur_token)
    {
        case NULLS_P:
+
            /*
             * NULLS FIRST and NULLS LAST must be reduced to one token
             */
@@ -126,6 +127,7 @@ filtered_base_yylex(void)
            break;
 
        case WITH:
+
            /*
             * WITH CASCADED, LOCAL, or CHECK must be reduced to one token
             *
index 8d01c554a023cffdfd83f80964d6dc0ad95e708d..8d84bcfbb939819777e70b2e1e703e40ca4c103d 100644 (file)
@@ -4,7 +4,7 @@
  * If dlopen() is available (Darwin 10.3 and later), we just use it.
  * Otherwise we emulate it with the older, now deprecated, NSLinkModule API.
  *
- * $PostgreSQL: pgsql/src/backend/port/dynloader/darwin.c,v 1.11 2006/10/08 19:31:03 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/port/dynloader/darwin.c,v 1.12 2007/11/15 21:14:37 momjian Exp $
  */
 #include "postgres.h"
 
@@ -43,8 +43,7 @@ pg_dlerror(void)
 {
    return dlerror();
 }
-
-#else /* !HAVE_DLOPEN */
+#else                          /* !HAVE_DLOPEN */
 
 /*
  * These routines were taken from the Apache source, but were made
@@ -132,4 +131,4 @@ pg_dlerror(void)
    return (char *) errorString;
 }
 
-#endif /* HAVE_DLOPEN */
+#endif   /* HAVE_DLOPEN */
index 08662d1fb372c5309e7e56434400bc414f53deeb..b9b8e8453fc7e0149c0c4e3e2551b75ddc4be11c 100644 (file)
@@ -10,7 +10,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/port/sysv_shmem.c,v 1.51 2007/07/02 20:11:54 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/port/sysv_shmem.c,v 1.52 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -247,7 +247,7 @@ PGSharedMemoryIsInUse(unsigned long id1, unsigned long id2)
    /*
     * Try to attach to the segment and see if it matches our data directory.
     * This avoids shmid-conflict problems on machines that are running
-    * several postmasters under the same userid. 
+    * several postmasters under the same userid.
     */
    if (stat(DataDir, &statbuf) < 0)
        return true;            /* if can't stat, be conservative */
index 20b8cc7ee7d26e08d86690b95fb01d767448a240..7b6581192d35745d48ed062e6fe68faedc809447 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/port/win32/mingwcompat.c,v 1.2 2007/10/29 14:04:42 mha Exp $
+ *   $PostgreSQL: pgsql/src/backend/port/win32/mingwcompat.c,v 1.3 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -14,7 +14,7 @@
 #include "postgres.h"
 
 /*
- * This file contains loaders for functions that are missing in the MinGW 
+ * This file contains loaders for functions that are missing in the MinGW
  * import libraries. It's only for actual Win32 API functions, so they are
  * all present in proper Win32 compilers.
  */
@@ -36,7 +36,7 @@ LoadKernel32()
    if (kernel32 == NULL)
        ereport(FATAL,
                (errmsg_internal("could not load kernel32.dll: %d",
-                                (int)GetLastError())));
+                                (int) GetLastError())));
 }
 
 
@@ -44,11 +44,12 @@ LoadKernel32()
  * Replacement for RegisterWaitForSingleObject(), which lives in
  * kernel32.dll·
  */
-typedef BOOL (WINAPI * __RegisterWaitForSingleObject)
-   (PHANDLE, HANDLE, WAITORTIMERCALLBACK, PVOID, ULONG, ULONG);
+typedef
+BOOL(WINAPI * __RegisterWaitForSingleObject)
+(PHANDLE, HANDLE, WAITORTIMERCALLBACK, PVOID, ULONG, ULONG);
 static __RegisterWaitForSingleObject _RegisterWaitForSingleObject = NULL;
 
-BOOL WINAPI 
+BOOL       WINAPI
 RegisterWaitForSingleObject(PHANDLE phNewWaitObject,
                            HANDLE hObject,
                            WAITORTIMERCALLBACK Callback,
@@ -66,7 +67,7 @@ RegisterWaitForSingleObject(PHANDLE phNewWaitObject,
        if (_RegisterWaitForSingleObject == NULL)
            ereport(FATAL,
                    (errmsg_internal("could not locate RegisterWaitForSingleObject in kernel32.dll: %d",
-                                    (int)GetLastError())));
+                                    (int) GetLastError())));
    }
 
    return (_RegisterWaitForSingleObject)
@@ -74,4 +75,3 @@ RegisterWaitForSingleObject(PHANDLE phNewWaitObject,
 }
 
 #endif
-
index 3c6fbdb60d87ff56b0080328677a5c975a863173..93d8f55d73476f212bdef5d7abaf19aaf2b9737c 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/port/win32/socket.c,v 1.18 2007/06/04 13:39:28 mha Exp $
+ *   $PostgreSQL: pgsql/src/backend/port/win32/socket.c,v 1.19 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -103,14 +103,15 @@ pgwin32_poll_signals(void)
 }
 
 static int
-isDataGram(SOCKET s) {
-   int type;
-   int typelen = sizeof(type);
+isDataGram(SOCKET s)
+{
+   int         type;
+   int         typelen = sizeof(type);
 
-   if ( getsockopt(s, SOL_SOCKET, SO_TYPE, (char*)&type, &typelen) )
+   if (getsockopt(s, SOL_SOCKET, SO_TYPE, (char *) &type, &typelen))
        return 1;
 
-   return ( type == SOCK_DGRAM ) ? 1 : 0;
+   return (type == SOCK_DGRAM) ? 1 : 0;
 }
 
 int
@@ -118,7 +119,7 @@ pgwin32_waitforsinglesocket(SOCKET s, int what, int timeout)
 {
    static HANDLE waitevent = INVALID_HANDLE_VALUE;
    static SOCKET current_socket = -1;
-   static int    isUDP = 0;
+   static int  isUDP = 0;
    HANDLE      events[2];
    int         r;
 
@@ -139,9 +140,9 @@ pgwin32_waitforsinglesocket(SOCKET s, int what, int timeout)
     * socket from a previous call
     */
 
-   if (current_socket != s) 
+   if (current_socket != s)
    {
-       if ( current_socket != -1 )
+       if (current_socket != -1)
            WSAEventSelect(current_socket, waitevent, 0);
        isUDP = isDataGram(s);
    }
@@ -157,34 +158,32 @@ pgwin32_waitforsinglesocket(SOCKET s, int what, int timeout)
    events[0] = pgwin32_signal_event;
    events[1] = waitevent;
 
-   /* 
-    * Just a workaround of unknown locking problem with writing
-    * in UDP socket under high load: 
-    * Client's pgsql backend sleeps infinitely in 
-    * WaitForMultipleObjectsEx, pgstat process sleeps in 
-    * pgwin32_select().  So, we will wait with small 
-    * timeout(0.1 sec) and if sockect is still blocked, 
-    * try WSASend (see comments in pgwin32_select) and wait again.
+   /*
+    * Just a workaround of unknown locking problem with writing in UDP socket
+    * under high load: Client's pgsql backend sleeps infinitely in
+    * WaitForMultipleObjectsEx, pgstat process sleeps in pgwin32_select().
+    * So, we will wait with small timeout(0.1 sec) and if sockect is still
+    * blocked, try WSASend (see comments in pgwin32_select) and wait again.
     */
    if ((what & FD_WRITE) && isUDP)
    {
-       for(;;)
+       for (;;)
        {
            r = WaitForMultipleObjectsEx(2, events, FALSE, 100, TRUE);
 
-           if ( r == WAIT_TIMEOUT )
+           if (r == WAIT_TIMEOUT)
            {
-               char        c;
-               WSABUF      buf;
-               DWORD       sent;
+               char        c;
+               WSABUF      buf;
+               DWORD       sent;
 
                buf.buf = &c;
                buf.len = 0;
 
                r = WSASend(s, &buf, 1, &sent, 0, NULL, NULL);
-               if (r == 0)         /* Completed - means things are fine! */
+               if (r == 0)     /* Completed - means things are fine! */
                    return 1;
-               else if ( WSAGetLastError() != WSAEWOULDBLOCK )
+               else if (WSAGetLastError() != WSAEWOULDBLOCK)
                {
                    TranslateSocketError();
                    return 0;
@@ -291,7 +290,7 @@ pgwin32_recv(SOCKET s, char *buf, int len, int f)
    int         r;
    DWORD       b;
    DWORD       flags = f;
-   int     n;
+   int         n;
 
    if (pgwin32_poll_signals())
        return -1;
@@ -317,8 +316,8 @@ pgwin32_recv(SOCKET s, char *buf, int len, int f)
    {
        if (pgwin32_waitforsinglesocket(s, FD_READ | FD_CLOSE | FD_ACCEPT,
                                        INFINITE) == 0)
-           return -1; /* errno already set */
-   
+           return -1;          /* errno already set */
+
        r = WSARecv(s, &wbuf, 1, &b, &flags, NULL, NULL);
        if (r == SOCKET_ERROR)
        {
@@ -326,10 +325,11 @@ pgwin32_recv(SOCKET s, char *buf, int len, int f)
            {
                /*
                 * There seem to be cases on win2k (at least) where WSARecv
-                * can return WSAEWOULDBLOCK even when pgwin32_waitforsinglesocket
-                * claims the socket is readable. In this case, just sleep for a
-                * moment and try again. We try up to 5 times - if it fails more than
-                * that it's not likely to ever come back.
+                * can return WSAEWOULDBLOCK even when
+                * pgwin32_waitforsinglesocket claims the socket is readable.
+                * In this case, just sleep for a moment and try again. We try
+                * up to 5 times - if it fails more than that it's not likely
+                * to ever come back.
                 */
                pg_usleep(10000);
                continue;
@@ -340,7 +340,7 @@ pgwin32_recv(SOCKET s, char *buf, int len, int f)
        return b;
    }
    ereport(NOTICE,
-       (errmsg_internal("Failed to read from ready socket (after retries)")));
+     (errmsg_internal("Failed to read from ready socket (after retries)")));
    errno = EWOULDBLOCK;
    return -1;
 }
@@ -359,11 +359,11 @@ pgwin32_send(SOCKET s, char *buf, int len, int flags)
    wbuf.buf = buf;
 
    /*
-    * Readiness of socket to send data to UDP socket 
-    * may be not true: socket can become busy again! So loop
-    * until send or error occurs.
+    * Readiness of socket to send data to UDP socket may be not true: socket
+    * can become busy again! So loop until send or error occurs.
     */
-   for(;;) {
+   for (;;)
+   {
        r = WSASend(s, &wbuf, 1, &b, flags, NULL, NULL);
        if (r != SOCKET_ERROR && b > 0)
            /* Write succeeded right away */
index b8300f00cfb2d594629bf4cf7fd254c9b6dcae40..060fc06dfad4a7244fb3511f4d3f25c03ced3b7d 100644 (file)
  * There is an autovacuum shared memory area, where the launcher stores
  * information about the database it wants vacuumed.  When it wants a new
  * worker to start, it sets a flag in shared memory and sends a signal to the
- * postmaster.  Then postmaster knows nothing more than it must start a worker;
- * so it forks a new child, which turns into a worker.  This new process
+ * postmaster. Then postmaster knows nothing more than it must start a worker;
+ * so it forks a new child, which turns into a worker. This new process
  * connects to shared memory, and there it can inspect the information that the
  * launcher has set up.
  *
  * If the fork() call fails in the postmaster, it sets a flag in the shared
  * memory area, and sends a signal to the launcher.  The launcher, upon
  * noticing the flag, can try starting the worker again by resending the
- * signal.  Note that the failure can only be transient (fork failure due to
+ * signal. Note that the failure can only be transient (fork failure due to
  * high load, memory pressure, too many processes, etc); more permanent
  * problems, like failure to connect to a database, are detected later in the
  * worker and dealt with just by having the worker exit normally.  The launcher
  * will launch a new worker again later, per schedule.
  *
- * When the worker is done vacuuming it sends SIGUSR1 to the launcher.  The
+ * When the worker is done vacuuming it sends SIGUSR1 to the launcher. The
  * launcher then wakes up and is able to launch another worker, if the schedule
  * is so tight that a new worker is needed immediately.  At this time the
  * launcher can also balance the settings for the various remaining workers'
@@ -55,7 +55,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/postmaster/autovacuum.c,v 1.67 2007/10/29 22:17:41 alvherre Exp $
+ *   $PostgreSQL: pgsql/src/backend/postmaster/autovacuum.c,v 1.68 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -141,10 +141,10 @@ static MemoryContext AutovacMemCxt;
 /* struct to keep track of databases in launcher */
 typedef struct avl_dbase
 {
-   Oid         adl_datid;          /* hash key -- must be first */
-   TimestampTz adl_next_worker;
+   Oid         adl_datid;      /* hash key -- must be first */
+   TimestampTz adl_next_worker;
    int         adl_score;
-} avl_dbase;
+}  avl_dbase;
 
 /* struct to keep track of databases in worker */
 typedef struct avw_dbase
@@ -153,14 +153,14 @@ typedef struct avw_dbase
    char       *adw_name;
    TransactionId adw_frozenxid;
    PgStat_StatDBEntry *adw_entry;
-} avw_dbase;
+}  avw_dbase;
 
 /* struct to keep track of tables to vacuum and/or analyze, in 1st pass */
 typedef struct av_relation
 {
-   Oid     ar_relid;
-   Oid     ar_toastrelid;
-} av_relation;
+   Oid         ar_relid;
+   Oid         ar_toastrelid;
+}  av_relation;
 
 /* struct to keep track of tables to vacuum and/or analyze, after rechecking */
 typedef struct autovac_table
@@ -198,11 +198,11 @@ typedef struct WorkerInfoData
    Oid         wi_dboid;
    Oid         wi_tableoid;
    PGPROC     *wi_proc;
-   TimestampTz wi_launchtime;
+   TimestampTz wi_launchtime;
    int         wi_cost_delay;
    int         wi_cost_limit;
    int         wi_cost_limit_base;
-} WorkerInfoData;
+}  WorkerInfoData;
 
 typedef struct WorkerInfoData *WorkerInfo;
 
@@ -211,16 +211,16 @@ typedef struct WorkerInfoData *WorkerInfo;
  * stored atomically in shared memory so that other processes can set them
  * without locking.
  */
-typedef enum 
+typedef enum
 {
-   AutoVacForkFailed,  /* failed trying to start a worker */
-   AutoVacRebalance,   /* rebalance the cost limits */
-   AutoVacNumSignals = AutoVacRebalance    /* must be last */
+   AutoVacForkFailed,          /* failed trying to start a worker */
+   AutoVacRebalance,           /* rebalance the cost limits */
+   AutoVacNumSignals = AutoVacRebalance        /* must be last */
 } AutoVacuumSignal;
 
 /*-------------
  * The main autovacuum shmem struct.  On shared memory we store this main
- * struct and the array of WorkerInfo structs.  This struct keeps:
+ * struct and the array of WorkerInfo structs. This struct keeps:
  *
  * av_signal       set by other processes to indicate various conditions
  * av_launcherpid  the PID of the autovacuum launcher
@@ -235,12 +235,12 @@ typedef enum
  */
 typedef struct
 {
-   sig_atomic_t    av_signal[AutoVacNumSignals];
-   pid_t           av_launcherpid;
-   SHMEM_OFFSET    av_freeWorkers;
-   SHM_QUEUE       av_runningWorkers;
-   SHMEM_OFFSET    av_startingWorker;
-} AutoVacuumShmemStruct;
+   sig_atomic_t av_signal[AutoVacNumSignals];
+   pid_t       av_launcherpid;
+   SHMEM_OFFSET av_freeWorkers;
+   SHM_QUEUE   av_runningWorkers;
+   SHMEM_OFFSET av_startingWorker;
+}  AutoVacuumShmemStruct;
 
 static AutoVacuumShmemStruct *AutoVacuumShmem;
 
@@ -249,10 +249,10 @@ static Dllist *DatabaseList = NULL;
 static MemoryContext DatabaseListCxt = NULL;
 
 /* Pointer to my own WorkerInfo, valid on each worker */
-static WorkerInfo  MyWorkerInfo = NULL;
+static WorkerInfo MyWorkerInfo = NULL;
 
 /* PID of launcher, valid only in worker while shutting down */
-int    AutovacuumLauncherPid = 0;
+int            AutovacuumLauncherPid = 0;
 
 #ifdef EXEC_BACKEND
 static pid_t avlauncher_forkexec(void);
@@ -261,20 +261,20 @@ static pid_t avworker_forkexec(void);
 NON_EXEC_STATIC void AutoVacWorkerMain(int argc, char *argv[]);
 NON_EXEC_STATIC void AutoVacLauncherMain(int argc, char *argv[]);
 
-static Oid do_start_worker(void);
+static Oid do_start_worker(void);
 static void launcher_determine_sleep(bool canlaunch, bool recursing,
-                        struct timeval *nap);
+                        struct timeval * nap);
 static void launch_worker(TimestampTz now);
 static List *get_database_list(void);
 static void rebuild_database_list(Oid newdb);
-static int db_comparator(const void *a, const void *b);
+static int db_comparator(const void *a, const void *b);
 static void autovac_balance_cost(void);
 
 static void do_autovacuum(void);
 static void FreeWorkerInfo(int code, Datum arg);
 
 static void relation_check_autovac(Oid relid, Form_pg_class classForm,
-                      Form_pg_autovacuum avForm, PgStat_StatTabEntry *tabentry,
+                   Form_pg_autovacuum avForm, PgStat_StatTabEntry *tabentry,
                       List **table_oids, List **table_toast_list,
                       List **toast_oids);
 static autovac_table *table_recheck_autovac(Oid relid);
@@ -300,7 +300,7 @@ static void autovac_refresh_stats(void);
 
 
 /********************************************************************
- *                    AUTOVACUUM LAUNCHER CODE
+ *                   AUTOVACUUM LAUNCHER CODE
  ********************************************************************/
 
 #ifdef EXEC_BACKEND
@@ -403,9 +403,9 @@ AutoVacLauncherMain(int argc, char *argv[])
 
    /*
     * If possible, make this process a group leader, so that the postmaster
-    * can signal any child processes too.  (autovacuum probably never has
-    * any child processes, but for consistency we make all postmaster
-    * child processes do this.)
+    * can signal any child processes too.  (autovacuum probably never has any
+    * child processes, but for consistency we make all postmaster child
+    * processes do this.)
     */
 #ifdef HAVE_SETSID
    if (setsid() < 0)
@@ -475,7 +475,7 @@ AutoVacLauncherMain(int argc, char *argv[])
 
        /*
         * These operations are really just a minimal subset of
-        * AbortTransaction().  We don't have very many resources to worry
+        * AbortTransaction().  We don't have very many resources to worry
         * about, but we do have LWLocks.
         */
        LWLockReleaseAll();
@@ -525,7 +525,7 @@ AutoVacLauncherMain(int argc, char *argv[])
    if (!AutoVacuumingActive())
    {
        do_start_worker();
-       proc_exit(0);       /* done */
+       proc_exit(0);           /* done */
    }
 
    AutoVacuumShmem->av_launcherpid = MyProcPid;
@@ -543,8 +543,8 @@ AutoVacLauncherMain(int argc, char *argv[])
    {
        struct timeval nap;
        TimestampTz current_time = 0;
-       bool    can_launch;
-       Dlelem *elem;
+       bool        can_launch;
+       Dlelem     *elem;
 
        /*
         * Emergency bailout if postmaster has died.  This is to avoid the
@@ -554,7 +554,7 @@ AutoVacLauncherMain(int argc, char *argv[])
            exit(1);
 
        launcher_determine_sleep(AutoVacuumShmem->av_freeWorkers !=
-                                INVALID_OFFSET, false, &nap);
+                                INVALID_OFFSET, false, &nap);
 
        /*
         * Sleep for a while according to schedule.
@@ -566,7 +566,7 @@ AutoVacLauncherMain(int argc, char *argv[])
         */
        while (nap.tv_sec > 0 || nap.tv_usec > 0)
        {
-           uint32  sleeptime;
+           uint32      sleeptime;
 
            if (nap.tv_sec > 0)
            {
@@ -643,7 +643,7 @@ AutoVacLauncherMain(int argc, char *argv[])
                 * of a worker will continue to fail in the same way.
                 */
                AutoVacuumShmem->av_signal[AutoVacForkFailed] = false;
-               pg_usleep(100000L); /* 100ms */
+               pg_usleep(100000L);     /* 100ms */
                SendPostmasterSignal(PMSIGNAL_START_AUTOVAC_WORKER);
                continue;
            }
@@ -652,8 +652,8 @@ AutoVacLauncherMain(int argc, char *argv[])
        /*
         * There are some conditions that we need to check before trying to
         * start a launcher.  First, we need to make sure that there is a
-        * launcher slot available.  Second, we need to make sure that no other
-        * worker failed while starting up.
+        * launcher slot available.  Second, we need to make sure that no
+        * other worker failed while starting up.
         */
 
        current_time = GetCurrentTimestamp();
@@ -663,23 +663,24 @@ AutoVacLauncherMain(int argc, char *argv[])
 
        if (AutoVacuumShmem->av_startingWorker != INVALID_OFFSET)
        {
-           int     waittime;
+           int         waittime;
 
-           WorkerInfo worker = (WorkerInfo) MAKE_PTR(AutoVacuumShmem->av_startingWorker);
+           WorkerInfo  worker = (WorkerInfo) MAKE_PTR(AutoVacuumShmem->av_startingWorker);
 
            /*
             * We can't launch another worker when another one is still
             * starting up (or failed while doing so), so just sleep for a bit
             * more; that worker will wake us up again as soon as it's ready.
-            * We will only wait autovacuum_naptime seconds (up to a maximum of
-            * 60 seconds) for this to happen however.  Note that failure to
-            * connect to a particular database is not a problem here, because
-            * the worker removes itself from the startingWorker pointer before
-            * trying to connect.  Problems detected by the postmaster (like
-            * fork() failure) are also reported and handled differently.  The
-            * only problems that may cause this code to fire are errors in the
-            * earlier sections of AutoVacWorkerMain, before the worker removes
-            * the WorkerInfo from the startingWorker pointer.
+            * We will only wait autovacuum_naptime seconds (up to a maximum
+            * of 60 seconds) for this to happen however.  Note that failure
+            * to connect to a particular database is not a problem here,
+            * because the worker removes itself from the startingWorker
+            * pointer before trying to connect.  Problems detected by the
+            * postmaster (like fork() failure) are also reported and handled
+            * differently.  The only problems that may cause this code to
+            * fire are errors in the earlier sections of AutoVacWorkerMain,
+            * before the worker removes the WorkerInfo from the
+            * startingWorker pointer.
             */
            waittime = Min(autovacuum_naptime, 60) * 1000;
            if (TimestampDifferenceExceeds(worker->wi_launchtime, current_time,
@@ -687,6 +688,7 @@ AutoVacLauncherMain(int argc, char *argv[])
            {
                LWLockRelease(AutovacuumLock);
                LWLockAcquire(AutovacuumLock, LW_EXCLUSIVE);
+
                /*
                 * No other process can put a worker in starting mode, so if
                 * startingWorker is still INVALID after exchanging our lock,
@@ -709,7 +711,7 @@ AutoVacLauncherMain(int argc, char *argv[])
            else
                can_launch = false;
        }
-       LWLockRelease(AutovacuumLock);      /* either shared or exclusive */
+       LWLockRelease(AutovacuumLock);  /* either shared or exclusive */
 
        /* if we can't do anything, just go back to sleep */
        if (!can_launch)
@@ -720,10 +722,11 @@ AutoVacLauncherMain(int argc, char *argv[])
        elem = DLGetTail(DatabaseList);
        if (elem != NULL)
        {
-           avl_dbase *avdb = DLE_VAL(elem);
+           avl_dbase  *avdb = DLE_VAL(elem);
 
            /*
-            * launch a worker if next_worker is right now or it is in the past
+            * launch a worker if next_worker is right now or it is in the
+            * past
             */
            if (TimestampDifferenceExceeds(avdb->adl_next_worker,
                                           current_time, 0))
@@ -748,7 +751,7 @@ AutoVacLauncherMain(int argc, char *argv[])
            (errmsg("autovacuum launcher shutting down")));
    AutoVacuumShmem->av_launcherpid = 0;
 
-   proc_exit(0);       /* done */
+   proc_exit(0);               /* done */
 }
 
 /*
@@ -759,14 +762,14 @@ AutoVacLauncherMain(int argc, char *argv[])
  * cause a long sleep, which will be interrupted when a worker exits.
  */
 static void
-launcher_determine_sleep(bool canlaunch, bool recursing, struct timeval *nap)
+launcher_determine_sleep(bool canlaunch, bool recursing, struct timeval * nap)
 {
-   Dlelem *elem;
+   Dlelem     *elem;
 
    /*
     * We sleep until the next scheduled vacuum.  We trust that when the
-    * database list was built, care was taken so that no entries have times in
-    * the past; if the first entry has too close a next_worker value, or a
+    * database list was built, care was taken so that no entries have times
+    * in the past; if the first entry has too close a next_worker value, or a
     * time in the past, we will sleep a small nominal time.
     */
    if (!canlaunch)
@@ -777,10 +780,10 @@ launcher_determine_sleep(bool canlaunch, bool recursing, struct timeval *nap)
    else if ((elem = DLGetTail(DatabaseList)) != NULL)
    {
        avl_dbase  *avdb = DLE_VAL(elem);
-       TimestampTz current_time = GetCurrentTimestamp();
-       TimestampTz next_wakeup;
-       long    secs;
-       int     usecs;
+       TimestampTz current_time = GetCurrentTimestamp();
+       TimestampTz next_wakeup;
+       long        secs;
+       int         usecs;
 
        next_wakeup = avdb->adl_next_worker;
        TimestampDifference(current_time, next_wakeup, &secs, &usecs);
@@ -829,7 +832,7 @@ launcher_determine_sleep(bool canlaunch, bool recursing, struct timeval *nap)
  * this the "new" database, because when the database was already present on
  * the list, we expect that this function is not called at all).  The
  * preexisting list, if any, will be used to preserve the order of the
- * databases in the autovacuum_naptime period.  The new database is put at the
+ * databases in the autovacuum_naptime period. The new database is put at the
  * end of the interval.  The actual values are not saved, which should not be
  * much of a problem.
  */
@@ -864,14 +867,14 @@ rebuild_database_list(Oid newdb)
    /*
     * Implementing this is not as simple as it sounds, because we need to put
     * the new database at the end of the list; next the databases that were
-    * already on the list, and finally (at the tail of the list) all the other
-    * databases that are not on the existing list.
+    * already on the list, and finally (at the tail of the list) all the
+    * other databases that are not on the existing list.
     *
     * To do this, we build an empty hash table of scored databases.  We will
-    * start with the lowest score (zero) for the new database, then increasing
-    * scores for the databases in the existing list, in order, and lastly
-    * increasing scores for all databases gotten via get_database_list() that
-    * are not already on the hash.
+    * start with the lowest score (zero) for the new database, then
+    * increasing scores for the databases in the existing list, in order, and
+    * lastly increasing scores for all databases gotten via
+    * get_database_list() that are not already on the hash.
     *
     * Then we will put all the hash elements into an array, sort the array by
     * score, and finally put the array elements into the new doubly linked
@@ -888,7 +891,7 @@ rebuild_database_list(Oid newdb)
    score = 0;
    if (OidIsValid(newdb))
    {
-       avl_dbase   *db;
+       avl_dbase  *db;
        PgStat_StatDBEntry *entry;
 
        /* only consider this database if it has a pgstat entry */
@@ -907,7 +910,7 @@ rebuild_database_list(Oid newdb)
    /* Now insert the databases from the existing list */
    if (DatabaseList != NULL)
    {
-       Dlelem  *elem;
+       Dlelem     *elem;
 
        elem = DLGetHead(DatabaseList);
        while (elem != NULL)
@@ -920,8 +923,8 @@ rebuild_database_list(Oid newdb)
            elem = DLGetSucc(elem);
 
            /*
-            * skip databases with no stat entries -- in particular, this
-            * gets rid of dropped databases
+            * skip databases with no stat entries -- in particular, this gets
+            * rid of dropped databases
             */
            entry = pgstat_fetch_stat_dbentry(avdb->adl_datid);
            if (entry == NULL)
@@ -969,12 +972,12 @@ rebuild_database_list(Oid newdb)
 
    if (nelems > 0)
    {
-       TimestampTz     current_time;
-       int             millis_increment;
-       avl_dbase      *dbary;
-       avl_dbase      *db;
-       HASH_SEQ_STATUS seq;
-       int             i;
+       TimestampTz current_time;
+       int         millis_increment;
+       avl_dbase  *dbary;
+       avl_dbase  *db;
+       HASH_SEQ_STATUS seq;
+       int         i;
 
        /* put all the hash elements into an array */
        dbary = palloc(nelems * sizeof(avl_dbase));
@@ -992,7 +995,7 @@ rebuild_database_list(Oid newdb)
        current_time = GetCurrentTimestamp();
 
        /*
-        * move the elements from the array into the dllist, setting the 
+        * move the elements from the array into the dllist, setting the
         * next_worker while walking the array
         */
        for (i = 0; i < nelems; i++)
@@ -1033,7 +1036,7 @@ db_comparator(const void *a, const void *b)
  *
  * Bare-bones procedure for starting an autovacuum worker from the launcher.
  * It determines what database to work on, sets up shared memory stuff and
- * signals postmaster to start the worker.  It fails gracefully if invoked when
+ * signals postmaster to start the worker. It fails gracefully if invoked when
  * autovacuum_workers are already active.
  *
  * Return value is the OID of the database that the worker is going to process,
@@ -1047,11 +1050,11 @@ do_start_worker(void)
    TransactionId xidForceLimit;
    bool        for_xid_wrap;
    avw_dbase  *avdb;
-   TimestampTz current_time;
+   TimestampTz current_time;
    bool        skipit = false;
    Oid         retval = InvalidOid;
    MemoryContext tmpcxt,
-                 oldcxt;
+               oldcxt;
 
    /* return quickly when there are no free workers */
    LWLockAcquire(AutovacuumLock, LW_SHARED);
@@ -1080,8 +1083,8 @@ do_start_worker(void)
    dblist = get_database_list();
 
    /*
-    * Determine the oldest datfrozenxid/relfrozenxid that we will allow
-    * to pass without forcing a vacuum.  (This limit can be tightened for
+    * Determine the oldest datfrozenxid/relfrozenxid that we will allow to
+    * pass without forcing a vacuum.  (This limit can be tightened for
     * particular tables, but not loosened.)
     */
    recentXid = ReadNewTransactionId();
@@ -1121,7 +1124,7 @@ do_start_worker(void)
        if (TransactionIdPrecedes(tmp->adw_frozenxid, xidForceLimit))
        {
            if (avdb == NULL ||
-               TransactionIdPrecedes(tmp->adw_frozenxid, avdb->adw_frozenxid))
+             TransactionIdPrecedes(tmp->adw_frozenxid, avdb->adw_frozenxid))
                avdb = tmp;
            for_xid_wrap = true;
            continue;
@@ -1151,7 +1154,7 @@ do_start_worker(void)
 
        while (elem != NULL)
        {
-           avl_dbase *dbp = DLE_VAL(elem);
+           avl_dbase  *dbp = DLE_VAL(elem);
 
            if (dbp->adl_datid == tmp->adw_datid)
            {
@@ -1160,7 +1163,7 @@ do_start_worker(void)
                 * the current time and the current time plus naptime.
                 */
                if (!TimestampDifferenceExceeds(dbp->adl_next_worker,
-                                              current_time, 0) &&
+                                               current_time, 0) &&
                    !TimestampDifferenceExceeds(current_time,
                                                dbp->adl_next_worker,
                                                autovacuum_naptime * 1000))
@@ -1174,8 +1177,8 @@ do_start_worker(void)
            continue;
 
        /*
-        * Remember the db with oldest autovac time.  (If we are here,
-        * both tmp->entry and db->entry must be non-null.)
+        * Remember the db with oldest autovac time.  (If we are here, both
+        * tmp->entry and db->entry must be non-null.)
         */
        if (avdb == NULL ||
            tmp->adw_entry->last_autovac_time < avdb->adw_entry->last_autovac_time)
@@ -1192,7 +1195,8 @@ do_start_worker(void)
 
        /*
         * Get a worker entry from the freelist.  We checked above, so there
-        * really should be a free slot -- complain very loudly if there isn't.
+        * really should be a free slot -- complain very loudly if there
+        * isn't.
         */
        sworker = AutoVacuumShmem->av_freeWorkers;
        if (sworker == INVALID_OFFSET)
@@ -1243,8 +1247,8 @@ do_start_worker(void)
 static void
 launch_worker(TimestampTz now)
 {
-   Oid     dbid;
-   Dlelem *elem;
+   Oid         dbid;
+   Dlelem     *elem;
 
    dbid = do_start_worker();
    if (OidIsValid(dbid))
@@ -1256,7 +1260,7 @@ launch_worker(TimestampTz now)
        elem = (DatabaseList == NULL) ? NULL : DLGetHead(DatabaseList);
        while (elem != NULL)
        {
-           avl_dbase *avdb = DLE_VAL(elem);
+           avl_dbase  *avdb = DLE_VAL(elem);
 
            if (avdb->adl_datid == dbid)
            {
@@ -1274,11 +1278,11 @@ launch_worker(TimestampTz now)
        }
 
        /*
-        * If the database was not present in the database list, we rebuild the
-        * list.  It's possible that the database does not get into the list
-        * anyway, for example if it's a database that doesn't have a pgstat
-        * entry, but this is not a problem because we don't want to schedule
-        * workers regularly into those in any case.
+        * If the database was not present in the database list, we rebuild
+        * the list.  It's possible that the database does not get into the
+        * list anyway, for example if it's a database that doesn't have a
+        * pgstat entry, but this is not a problem because we don't want to
+        * schedule workers regularly into those in any case.
         */
        if (elem == NULL)
            rebuild_database_list(dbid);
@@ -1287,7 +1291,7 @@ launch_worker(TimestampTz now)
 
 /*
  * Called from postmaster to signal a failure to fork a process to become
- * worker.  The postmaster should kill(SIGUSR1) the launcher shortly
+ * worker. The postmaster should kill(SIGUSR1) the launcher shortly
  * after calling this function.
  */
 void
@@ -1343,7 +1347,7 @@ avl_quickdie(SIGNAL_ARGS)
 
 
 /********************************************************************
- *                    AUTOVACUUM WORKER CODE
+ *                   AUTOVACUUM WORKER CODE
  ********************************************************************/
 
 #ifdef EXEC_BACKEND
@@ -1445,9 +1449,9 @@ AutoVacWorkerMain(int argc, char *argv[])
 
    /*
     * If possible, make this process a group leader, so that the postmaster
-    * can signal any child processes too.  (autovacuum probably never has
-    * any child processes, but for consistency we make all postmaster
-    * child processes do this.)
+    * can signal any child processes too.  (autovacuum probably never has any
+    * child processes, but for consistency we make all postmaster child
+    * processes do this.)
     */
 #ifdef HAVE_SETSID
    if (setsid() < 0)
@@ -1465,8 +1469,8 @@ AutoVacWorkerMain(int argc, char *argv[])
    pqsignal(SIGHUP, SIG_IGN);
 
    /*
-    * SIGINT is used to signal cancelling the current table's vacuum;
-    * SIGTERM means abort and exit cleanly, and SIGQUIT means abandon ship.
+    * SIGINT is used to signal cancelling the current table's vacuum; SIGTERM
+    * means abort and exit cleanly, and SIGQUIT means abandon ship.
     */
    pqsignal(SIGINT, StatementCancelHandler);
    pqsignal(SIGTERM, die);
@@ -1538,9 +1542,10 @@ AutoVacWorkerMain(int argc, char *argv[])
    LWLockAcquire(AutovacuumLock, LW_EXCLUSIVE);
 
    /*
-    * beware of startingWorker being INVALID; this should normally not happen,
-    * but if a worker fails after forking and before this, the launcher might
-    * have decided to remove it from the queue and start again.
+    * beware of startingWorker being INVALID; this should normally not
+    * happen, but if a worker fails after forking and before this, the
+    * launcher might have decided to remove it from the queue and start
+    * again.
     */
    if (AutoVacuumShmem->av_startingWorker != INVALID_OFFSET)
    {
@@ -1549,7 +1554,7 @@ AutoVacWorkerMain(int argc, char *argv[])
        MyWorkerInfo->wi_proc = MyProc;
 
        /* insert into the running list */
-       SHMQueueInsertBefore(&AutoVacuumShmem->av_runningWorkers, 
+       SHMQueueInsertBefore(&AutoVacuumShmem->av_runningWorkers,
                             &MyWorkerInfo->wi_links);
 
        /*
@@ -1575,7 +1580,7 @@ AutoVacWorkerMain(int argc, char *argv[])
 
    if (OidIsValid(dbid))
    {
-       char    *dbname;
+       char       *dbname;
 
        /*
         * Report autovac startup to the stats collector.  We deliberately do
@@ -1629,7 +1634,7 @@ FreeWorkerInfo(int code, Datum arg)
        /*
         * Wake the launcher up so that he can launch a new worker immediately
         * if required.  We only save the launcher's PID in local memory here;
-        * the actual signal will be sent when the PGPROC is recycled.  Note
+        * the actual signal will be sent when the PGPROC is recycled.  Note
         * that we always do this, so that the launcher can rebalance the cost
         * limit setting of the remaining workers.
         *
@@ -1686,16 +1691,17 @@ static void
 autovac_balance_cost(void)
 {
    WorkerInfo  worker;
+
    /*
     * note: in cost_limit, zero also means use value from elsewhere, because
     * zero is not a valid value.
     */
-   int         vac_cost_limit = (autovacuum_vac_cost_limit > 0 ?
-                                 autovacuum_vac_cost_limit : VacuumCostLimit);
-   int         vac_cost_delay = (autovacuum_vac_cost_delay >= 0 ?
-                                 autovacuum_vac_cost_delay : VacuumCostDelay);
-   double      cost_total;
-   double      cost_avail;
+   int         vac_cost_limit = (autovacuum_vac_cost_limit > 0 ?
+                               autovacuum_vac_cost_limit : VacuumCostLimit);
+   int         vac_cost_delay = (autovacuum_vac_cost_delay >= 0 ?
+                               autovacuum_vac_cost_delay : VacuumCostDelay);
+   double      cost_total;
+   double      cost_avail;
 
    /* not set? nothing to do */
    if (vac_cost_limit <= 0 || vac_cost_delay <= 0)
@@ -1715,15 +1721,15 @@ autovac_balance_cost(void)
 
        worker = (WorkerInfo) SHMQueueNext(&AutoVacuumShmem->av_runningWorkers,
                                           &worker->wi_links,
-                                          offsetof(WorkerInfoData, wi_links));
+                                        offsetof(WorkerInfoData, wi_links));
    }
    /* there are no cost limits -- nothing to do */
    if (cost_total <= 0)
        return;
 
    /*
-    * Adjust each cost limit of active workers to balance the total of
-    * cost limit to autovacuum_vacuum_cost_limit.
+    * Adjust each cost limit of active workers to balance the total of cost
+    * limit to autovacuum_vacuum_cost_limit.
     */
    cost_avail = (double) vac_cost_limit / vac_cost_delay;
    worker = (WorkerInfo) SHMQueueNext(&AutoVacuumShmem->av_runningWorkers,
@@ -1734,8 +1740,8 @@ autovac_balance_cost(void)
        if (worker->wi_proc != NULL &&
            worker->wi_cost_limit_base > 0 && worker->wi_cost_delay > 0)
        {
-           int     limit = (int)
-               (cost_avail * worker->wi_cost_limit_base / cost_total);
+           int         limit = (int)
+           (cost_avail * worker->wi_cost_limit_base / cost_total);
 
            /*
             * We put a lower bound of 1 to the cost_limit, to avoid division-
@@ -1750,7 +1756,7 @@ autovac_balance_cost(void)
 
        worker = (WorkerInfo) SHMQueueNext(&AutoVacuumShmem->av_runningWorkers,
                                           &worker->wi_links,
-                                          offsetof(WorkerInfoData, wi_links));
+                                        offsetof(WorkerInfoData, wi_links));
    }
 }
 
@@ -1781,7 +1787,7 @@ get_database_list(void)
    while (read_pg_database_line(db_file, thisname, &db_id,
                                 &db_tablespace, &db_frozenxid))
    {
-       avw_dbase *avdb;
+       avw_dbase  *avdb;
 
        avdb = (avw_dbase *) palloc(sizeof(avw_dbase));
 
@@ -1817,7 +1823,7 @@ do_autovacuum(void)
    List       *table_oids = NIL;
    List       *toast_oids = NIL;
    List       *table_toast_list = NIL;
-   ListCell   * volatile cell;
+   ListCell   *volatile cell;
    PgStat_StatDBEntry *shared;
    PgStat_StatDBEntry *dbentry;
    BufferAccessStrategy bstrategy;
@@ -1835,8 +1841,8 @@ do_autovacuum(void)
    MemoryContextSwitchTo(AutovacMemCxt);
 
    /*
-    * may be NULL if we couldn't find an entry (only happens if we
-    * are forcing a vacuum for anti-wrap purposes).
+    * may be NULL if we couldn't find an entry (only happens if we are
+    * forcing a vacuum for anti-wrap purposes).
     */
    dbentry = pgstat_fetch_stat_dbentry(MyDatabaseId);
 
@@ -1854,9 +1860,9 @@ do_autovacuum(void)
    pgstat_vacuum_tabstat();
 
    /*
-    * Find the pg_database entry and select the default freeze_min_age.
-    * We use zero in template and nonconnectable databases,
-    * else the system-wide default.
+    * Find the pg_database entry and select the default freeze_min_age. We
+    * use zero in template and nonconnectable databases, else the system-wide
+    * default.
     */
    tuple = SearchSysCache(DATABASEOID,
                           ObjectIdGetDatum(MyDatabaseId),
@@ -1948,12 +1954,12 @@ do_autovacuum(void)
     */
    foreach(cell, toast_oids)
    {
-       Oid     toastoid = lfirst_oid(cell);
-       ListCell *cell2;
+       Oid         toastoid = lfirst_oid(cell);
+       ListCell   *cell2;
 
        foreach(cell2, table_toast_list)
        {
-           av_relation    *ar = lfirst(cell2);
+           av_relation *ar = lfirst(cell2);
 
            if (ar->ar_toastrelid == toastoid)
            {
@@ -1969,9 +1975,9 @@ do_autovacuum(void)
    toast_oids = NIL;
 
    /*
-    * Create a buffer access strategy object for VACUUM to use.  We want
-    * to use the same one across all the vacuum operations we perform,
-    * since the point is for VACUUM not to blow out the shared cache.
+    * Create a buffer access strategy object for VACUUM to use.  We want to
+    * use the same one across all the vacuum operations we perform, since the
+    * point is for VACUUM not to blow out the shared cache.
     */
    bstrategy = GetAccessStrategy(BAS_VACUUM);
 
@@ -1990,10 +1996,10 @@ do_autovacuum(void)
     */
    foreach(cell, table_oids)
    {
-       Oid     relid = lfirst_oid(cell);
+       Oid         relid = lfirst_oid(cell);
        autovac_table *tab;
        WorkerInfo  worker;
-       bool        skipit;
+       bool        skipit;
        char       *datname,
                   *nspname,
                   *relname;
@@ -2001,9 +2007,9 @@ do_autovacuum(void)
        CHECK_FOR_INTERRUPTS();
 
        /*
-        * hold schedule lock from here until we're sure that this table
-        * still needs vacuuming.  We also need the AutovacuumLock to walk
-        * the worker array, but we'll let go of that one quickly.
+        * hold schedule lock from here until we're sure that this table still
+        * needs vacuuming.  We also need the AutovacuumLock to walk the
+        * worker array, but we'll let go of that one quickly.
         */
        LWLockAcquire(AutovacuumScheduleLock, LW_EXCLUSIVE);
        LWLockAcquire(AutovacuumLock, LW_SHARED);
@@ -2014,8 +2020,8 @@ do_autovacuum(void)
         */
        skipit = false;
        worker = (WorkerInfo) SHMQueueNext(&AutoVacuumShmem->av_runningWorkers,
-                                          &AutoVacuumShmem->av_runningWorkers,
-                                          offsetof(WorkerInfoData, wi_links));
+                                        &AutoVacuumShmem->av_runningWorkers,
+                                        offsetof(WorkerInfoData, wi_links));
        while (worker)
        {
            /* ignore myself */
@@ -2032,10 +2038,10 @@ do_autovacuum(void)
                break;
            }
 
-next_worker:
+   next_worker:
            worker = (WorkerInfo) SHMQueueNext(&AutoVacuumShmem->av_runningWorkers,
                                               &worker->wi_links,
-                                              offsetof(WorkerInfoData, wi_links));
+                                        offsetof(WorkerInfoData, wi_links));
        }
        LWLockRelease(AutovacuumLock);
        if (skipit)
@@ -2046,8 +2052,8 @@ next_worker:
 
        /*
         * Check whether pgstat data still says we need to vacuum this table.
-        * It could have changed if something else processed the table while we
-        * weren't looking.
+        * It could have changed if something else processed the table while
+        * we weren't looking.
         *
         * FIXME we ignore the possibility that the table was finished being
         * vacuumed in the last 500ms (PGSTAT_STAT_INTERVAL).  This is a bug.
@@ -2062,7 +2068,7 @@ next_worker:
        }
 
        /*
-        * Ok, good to go.  Store the table in shared memory before releasing
+        * Ok, good to go.  Store the table in shared memory before releasing
         * the lock so that other workers don't vacuum it concurrently.
         */
        MyWorkerInfo->wi_tableoid = relid;
@@ -2099,7 +2105,7 @@ next_worker:
 
        /*
         * Save the relation name for a possible error message, to avoid a
-        * catalog lookup in case of an error.  Note: they must live in a
+        * catalog lookup in case of an error.  Note: they must live in a
         * long-lived memory context because we call vacuum and analyze in
         * different transactions.
         */
@@ -2124,9 +2130,9 @@ next_worker:
 
            /*
             * Clear a possible query-cancel signal, to avoid a late reaction
-            * to an automatically-sent signal because of vacuuming the current
-            * table (we're done with it, so it would make no sense to cancel
-            * at this point.)
+            * to an automatically-sent signal because of vacuuming the
+            * current table (we're done with it, so it would make no sense to
+            * cancel at this point.)
             */
            QueryCancelPending = false;
        }
@@ -2171,8 +2177,8 @@ next_worker:
    }
 
    /*
-    * Update pg_database.datfrozenxid, and truncate pg_clog if possible.
-    * We only need to do this once, not after each table.
+    * Update pg_database.datfrozenxid, and truncate pg_clog if possible. We
+    * only need to do this once, not after each table.
     */
    vac_update_datfrozenxid();
 
@@ -2249,13 +2255,13 @@ get_pgstat_tabentry_relid(Oid relid, bool isshared, PgStat_StatDBEntry *shared,
  */
 static void
 relation_check_autovac(Oid relid, Form_pg_class classForm,
-                      Form_pg_autovacuum avForm, PgStat_StatTabEntry *tabentry,
+                   Form_pg_autovacuum avForm, PgStat_StatTabEntry *tabentry,
                       List **table_oids, List **table_toast_list,
                       List **toast_oids)
 {
-   bool    dovacuum;
-   bool    doanalyze;
-   bool    dummy;
+   bool        dovacuum;
+   bool        doanalyze;
+   bool        dummy;
 
    relation_needs_vacanalyze(relid, avForm, classForm, tabentry,
                              &dovacuum, &doanalyze, &dummy);
@@ -2273,7 +2279,7 @@ relation_check_autovac(Oid relid, Form_pg_class classForm,
            *table_oids = lappend_oid(*table_oids, relid);
        else if (OidIsValid(classForm->reltoastrelid))
        {
-           av_relation    *rel = palloc(sizeof(av_relation));
+           av_relation *rel = palloc(sizeof(av_relation));
 
            rel->ar_relid = relid;
            rel->ar_toastrelid = classForm->reltoastrelid;
@@ -2341,7 +2347,7 @@ table_recheck_autovac(Oid relid)
    /* it doesn't need vacuum, but what about it's TOAST table? */
    else if (OidIsValid(classForm->reltoastrelid))
    {
-       Oid     toastrelid = classForm->reltoastrelid;
+       Oid         toastrelid = classForm->reltoastrelid;
        HeapTuple   toastClassTup;
 
        toastClassTup = SearchSysCacheCopy(RELOID,
@@ -2349,15 +2355,15 @@ table_recheck_autovac(Oid relid)
                                           0, 0, 0);
        if (HeapTupleIsValid(toastClassTup))
        {
-           bool            toast_dovacuum;
-           bool            toast_doanalyze;
-           bool            toast_wraparound;
-           Form_pg_class   toastClassForm;
+           bool        toast_dovacuum;
+           bool        toast_doanalyze;
+           bool        toast_wraparound;
+           Form_pg_class toastClassForm;
            PgStat_StatTabEntry *toasttabentry;
 
            toastClassForm = (Form_pg_class) GETSTRUCT(toastClassTup);
            toasttabentry = get_pgstat_tabentry_relid(toastrelid,
-                                                     toastClassForm->relisshared,
+                                                toastClassForm->relisshared,
                                                      shared, dbentry);
 
            /* note we use the pg_autovacuum entry for the main table */
@@ -2386,8 +2392,8 @@ table_recheck_autovac(Oid relid)
        int         vac_cost_delay;
 
        /*
-        * Calculate the vacuum cost parameters and the minimum freeze age.  If
-        * there is a tuple in pg_autovacuum, use it; else, use the GUC
+        * Calculate the vacuum cost parameters and the minimum freeze age.
+        * If there is a tuple in pg_autovacuum, use it; else, use the GUC
         * defaults.  Note that the fields may contain "-1" (or indeed any
         * negative value), which means use the GUC defaults for each setting.
         * In cost_limit, the value 0 also means to use the value from
@@ -2442,7 +2448,7 @@ table_recheck_autovac(Oid relid)
  *
  * Check whether a relation needs to be vacuumed or analyzed; return each into
  * "dovacuum" and "doanalyze", respectively.  Also return whether the vacuum is
- * being forced because of Xid wraparound.  avForm and tabentry can be NULL,
+ * being forced because of Xid wraparound. avForm and tabentry can be NULL,
  * classForm shouldn't.
  *
  * A table needs to be vacuumed if the number of dead tuples exceeds a
@@ -2461,7 +2467,7 @@ table_recheck_autovac(Oid relid)
  *
  * A table whose pg_autovacuum.enabled value is false, is automatically
  * skipped (unless we have to vacuum it due to freeze_max_age).  Thus
- * autovacuum can be disabled for specific tables.  Also, when the stats
+ * autovacuum can be disabled for specific tables. Also, when the stats
  * collector does not have data about a table, it will be skipped.
  *
  * A table whose vac_base_thresh value is <0 takes the base value from the
@@ -2474,24 +2480,28 @@ relation_needs_vacanalyze(Oid relid,
                          Form_pg_autovacuum avForm,
                          Form_pg_class classForm,
                          PgStat_StatTabEntry *tabentry,
                        /* output params below */
+ /* output params below */
                          bool *dovacuum,
                          bool *doanalyze,
                          bool *wraparound)
 {
    bool        force_vacuum;
    float4      reltuples;      /* pg_class.reltuples */
+
    /* constants from pg_autovacuum or GUC variables */
    int         vac_base_thresh,
                anl_base_thresh;
    float4      vac_scale_factor,
                anl_scale_factor;
+
    /* thresholds calculated from above constants */
    float4      vacthresh,
                anlthresh;
+
    /* number of vacuum (resp. analyze) tuples at this time */
    float4      vactuples,
                anltuples;
+
    /* freeze parameters */
    int         freeze_max_age;
    TransactionId xidForceLimit;
@@ -2501,9 +2511,9 @@ relation_needs_vacanalyze(Oid relid,
 
    /*
     * Determine vacuum/analyze equation parameters.  If there is a tuple in
-    * pg_autovacuum, use it; else, use the GUC defaults.  Note that the fields
-    * may contain "-1" (or indeed any negative value), which means use the GUC
-    * defaults for each setting.
+    * pg_autovacuum, use it; else, use the GUC defaults.  Note that the
+    * fields may contain "-1" (or indeed any negative value), which means use
+    * the GUC defaults for each setting.
     */
    if (avForm != NULL)
    {
@@ -2575,9 +2585,9 @@ relation_needs_vacanalyze(Oid relid,
    else
    {
        /*
-        * Skip a table not found in stat hash, unless we have to force
-        * vacuum for anti-wrap purposes.  If it's not acted upon, there's
-        * no need to vacuum it.
+        * Skip a table not found in stat hash, unless we have to force vacuum
+        * for anti-wrap purposes.  If it's not acted upon, there's no need to
+        * vacuum it.
         */
        *dovacuum = force_vacuum;
        *doanalyze = false;
@@ -2641,6 +2651,7 @@ autovac_report_activity(VacuumStmt *vacstmt, Oid relid)
 {
    char       *relname = get_rel_name(relid);
    char       *nspname = get_namespace_name(get_rel_namespace(relid));
+
 #define MAX_AUTOVAC_ACTIV_LEN (NAMEDATALEN * 2 + 32)
    char        activity[MAX_AUTOVAC_ACTIV_LEN];
 
@@ -2656,9 +2667,9 @@ autovac_report_activity(VacuumStmt *vacstmt, Oid relid)
    /*
     * Report the qualified name of the relation.
     *
-    * Paranoia is appropriate here in case relation was recently dropped
-    * --- the lsyscache routines we just invoked will return NULL rather
-    * than failing.
+    * Paranoia is appropriate here in case relation was recently dropped ---
+    * the lsyscache routines we just invoked will return NULL rather than
+    * failing.
     */
    if (relname && nspname)
    {
@@ -2722,12 +2733,12 @@ IsAutoVacuumWorkerProcess(void)
 
 /*
  * AutoVacuumShmemSize
- *         Compute space needed for autovacuum-related shared memory
+ *     Compute space needed for autovacuum-related shared memory
  */
 Size
 AutoVacuumShmemSize(void)
 {
-   Size    size;
+   Size        size;
 
    /*
     * Need the fixed struct and the array of WorkerInfoData.
@@ -2746,7 +2757,7 @@ AutoVacuumShmemSize(void)
 void
 AutoVacuumShmemInit(void)
 {
-   bool        found;
+   bool        found;
 
    AutoVacuumShmem = (AutoVacuumShmemStruct *)
        ShmemInitStruct("AutoVacuum Data",
@@ -2785,10 +2796,10 @@ AutoVacuumShmemInit(void)
 
 /*
  * autovac_refresh_stats
- *         Refresh pgstats data for an autovacuum process
+ *     Refresh pgstats data for an autovacuum process
  *
  * Cause the next pgstats read operation to obtain fresh data, but throttle
- * such refreshing in the autovacuum launcher.  This is mostly to avoid
+ * such refreshing in the autovacuum launcher. This is mostly to avoid
  * rereading the pgstats files too many times in quick succession when there
  * are many databases.
  *
@@ -2800,8 +2811,8 @@ autovac_refresh_stats(void)
 {
    if (IsAutoVacuumLauncherProcess())
    {
-       static TimestampTz  last_read = 0;
-       TimestampTz         current_time;
+       static TimestampTz last_read = 0;
+       TimestampTz current_time;
 
        current_time = GetCurrentTimestamp();
 
index f75e9f37d888a6c60697f55ed8588c97ed3a865f..7f2d3b820ae5b32da2d02010211f0763427509c4 100644 (file)
@@ -2,7 +2,7 @@
  *
  * bgwriter.c
  *
- * The background writer (bgwriter) is new as of Postgres 8.0.  It attempts
+ * The background writer (bgwriter) is new as of Postgres 8.0. It attempts
  * to keep regular backends from having to write out dirty shared buffers
  * (which they would only do when needing to free a shared buffer to read in
  * another page).  In the best scenario all writes from shared buffers will
@@ -37,7 +37,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/postmaster/bgwriter.c,v 1.46 2007/11/14 21:19:18 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/postmaster/bgwriter.c,v 1.47 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -128,7 +128,7 @@ typedef struct
 
    int         ckpt_flags;     /* checkpoint flags, as defined in xlog.h */
 
-   uint32      num_backend_writes; /* counts non-bgwriter buffer writes */
+   uint32      num_backend_writes;     /* counts non-bgwriter buffer writes */
 
    int         num_requests;   /* current # of requests */
    int         max_requests;   /* allocated array size */
@@ -202,9 +202,9 @@ BackgroundWriterMain(void)
 
    /*
     * If possible, make this process a group leader, so that the postmaster
-    * can signal any child processes too.  (bgwriter probably never has
-    * any child processes, but for consistency we make all postmaster
-    * child processes do this.)
+    * can signal any child processes too.  (bgwriter probably never has any
+    * child processes, but for consistency we make all postmaster child
+    * processes do this.)
     */
 #ifdef HAVE_SETSID
    if (setsid() < 0)
@@ -402,10 +402,10 @@ BackgroundWriterMain(void)
        }
 
        /*
-        * Force a checkpoint if too much time has elapsed since the
-        * last one.  Note that we count a timed checkpoint in stats only
-        * when this occurs without an external request, but we set the
-        * CAUSE_TIME flag bit even if there is also an external request.
+        * Force a checkpoint if too much time has elapsed since the last one.
+        * Note that we count a timed checkpoint in stats only when this
+        * occurs without an external request, but we set the CAUSE_TIME flag
+        * bit even if there is also an external request.
         */
        now = time(NULL);
        elapsed_secs = now - last_checkpoint_time;
@@ -427,10 +427,9 @@ BackgroundWriterMain(void)
            volatile BgWriterShmemStruct *bgs = BgWriterShmem;
 
            /*
-            * Atomically fetch the request flags to figure out what
-            * kind of a checkpoint we should perform, and increase the 
-            * started-counter to acknowledge that we've started
-            * a new checkpoint.
+            * Atomically fetch the request flags to figure out what kind of a
+            * checkpoint we should perform, and increase the started-counter
+            * to acknowledge that we've started a new checkpoint.
             */
            SpinLockAcquire(&bgs->ckpt_lck);
            flags |= bgs->ckpt_flags;
@@ -518,8 +517,8 @@ CheckArchiveTimeout(void)
        return;
 
    /*
-    * Update local state ... note that last_xlog_switch_time is the
-    * last time a switch was performed *or requested*.
+    * Update local state ... note that last_xlog_switch_time is the last time
+    * a switch was performed *or requested*.
     */
    last_time = GetLastSegSwitchTime();
 
@@ -534,17 +533,17 @@ CheckArchiveTimeout(void)
        switchpoint = RequestXLogSwitch();
 
        /*
-        * If the returned pointer points exactly to a segment
-        * boundary, assume nothing happened.
+        * If the returned pointer points exactly to a segment boundary,
+        * assume nothing happened.
         */
        if ((switchpoint.xrecoff % XLogSegSize) != 0)
            ereport(DEBUG1,
-                   (errmsg("transaction log switch forced (archive_timeout=%d)",
-                           XLogArchiveTimeout)));
+               (errmsg("transaction log switch forced (archive_timeout=%d)",
+                       XLogArchiveTimeout)));
 
        /*
-        * Update state in any case, so we don't retry constantly when
-        * the system is idle.
+        * Update state in any case, so we don't retry constantly when the
+        * system is idle.
         */
        last_xlog_switch_time = now;
    }
@@ -577,14 +576,14 @@ BgWriterNap(void)
    if (bgwriter_lru_maxpages > 0 || ckpt_active)
        udelay = BgWriterDelay * 1000L;
    else if (XLogArchiveTimeout > 0)
-       udelay = 1000000L;  /* One second */
+       udelay = 1000000L;      /* One second */
    else
-       udelay = 10000000L; /* Ten seconds */
+       udelay = 10000000L;     /* Ten seconds */
 
    while (udelay > 999999L)
    {
        if (got_SIGHUP || shutdown_requested ||
-           (ckpt_active ? ImmediateCheckpointRequested() : checkpoint_requested))
+       (ckpt_active ? ImmediateCheckpointRequested() : checkpoint_requested))
            break;
        pg_usleep(1000000L);
        AbsorbFsyncRequests();
@@ -592,12 +591,12 @@ BgWriterNap(void)
    }
 
    if (!(got_SIGHUP || shutdown_requested ||
-         (ckpt_active ? ImmediateCheckpointRequested() : checkpoint_requested)))
+     (ckpt_active ? ImmediateCheckpointRequested() : checkpoint_requested)))
        pg_usleep(udelay);
 }
 
 /*
- * Returns true if an immediate checkpoint request is pending.  (Note that
+ * Returns true if an immediate checkpoint request is pending. (Note that
  * this does not check the *current* checkpoint's IMMEDIATE flag, but whether
  * there is one pending behind it.)
  */
@@ -635,7 +634,7 @@ ImmediateCheckpointRequested(void)
 void
 CheckpointWriteDelay(int flags, double progress)
 {
-   static int absorb_counter = WRITES_PER_ABSORB;
+   static int  absorb_counter = WRITES_PER_ABSORB;
 
    /* Do nothing if checkpoint is being executed by non-bgwriter process */
    if (!am_bg_writer)
@@ -687,7 +686,7 @@ static bool
 IsCheckpointOnSchedule(double progress)
 {
    XLogRecPtr  recptr;
-   struct timeval  now;
+   struct timeval now;
    double      elapsed_xlogs,
                elapsed_time;
 
@@ -697,7 +696,7 @@ IsCheckpointOnSchedule(double progress)
    progress *= CheckPointCompletionTarget;
 
    /*
-    * Check against the cached value first. Only do the more expensive 
+    * Check against the cached value first. Only do the more expensive
     * calculations once we reach the target previously calculated. Since
     * neither time or WAL insert pointer moves backwards, a freshly
     * calculated value can only be greater than or equal to the cached value.
@@ -708,12 +707,12 @@ IsCheckpointOnSchedule(double progress)
    /*
     * Check progress against WAL segments written and checkpoint_segments.
     *
-    * We compare the current WAL insert location against the location 
+    * We compare the current WAL insert location against the location
     * computed before calling CreateCheckPoint. The code in XLogInsert that
     * actually triggers a checkpoint when checkpoint_segments is exceeded
     * compares against RedoRecptr, so this is not completely accurate.
-    * However, it's good enough for our purposes, we're only calculating
-    * an estimate anyway.
+    * However, it's good enough for our purposes, we're only calculating an
+    * estimate anyway.
     */
    recptr = GetInsertRecPtr();
    elapsed_xlogs =
@@ -852,7 +851,7 @@ BgWriterShmemInit(void)
  * flags is a bitwise OR of the following:
  * CHECKPOINT_IS_SHUTDOWN: checkpoint is for database shutdown.
  * CHECKPOINT_IMMEDIATE: finish the checkpoint ASAP,
- *     ignoring checkpoint_completion_target parameter. 
+ *     ignoring checkpoint_completion_target parameter.
  * CHECKPOINT_FORCE: force a checkpoint even if no XLOG activity has occured
  *     since the last one (implied by CHECKPOINT_IS_SHUTDOWN).
  * CHECKPOINT_WAIT: wait for completion before returning (otherwise,
@@ -865,7 +864,8 @@ RequestCheckpoint(int flags)
 {
    /* use volatile pointer to prevent code rearrangement */
    volatile BgWriterShmemStruct *bgs = BgWriterShmem;
-   int old_failed, old_started;
+   int         old_failed,
+               old_started;
 
    /*
     * If in a standalone backend, just do it ourselves.
@@ -873,9 +873,8 @@ RequestCheckpoint(int flags)
    if (!IsPostmasterEnvironment)
    {
        /*
-        * There's no point in doing slow checkpoints in a standalone
-        * backend, because there's no other backends the checkpoint could
-        * disrupt.
+        * There's no point in doing slow checkpoints in a standalone backend,
+        * because there's no other backends the checkpoint could disrupt.
         */
        CreateCheckPoint(flags | CHECKPOINT_IMMEDIATE);
 
@@ -906,8 +905,8 @@ RequestCheckpoint(int flags)
    SpinLockRelease(&bgs->ckpt_lck);
 
    /*
-    * Send signal to request checkpoint.  When not waiting, we
-    * consider failure to send the signal to be nonfatal.
+    * Send signal to request checkpoint.  When not waiting, we consider
+    * failure to send the signal to be nonfatal.
     */
    if (BgWriterShmem->bgwriter_pid == 0)
        elog((flags & CHECKPOINT_WAIT) ? ERROR : LOG,
@@ -922,18 +921,19 @@ RequestCheckpoint(int flags)
     */
    if (flags & CHECKPOINT_WAIT)
    {
-       int new_started, new_failed;
+       int         new_started,
+                   new_failed;
 
        /* Wait for a new checkpoint to start. */
-       for(;;)
+       for (;;)
        {
            SpinLockAcquire(&bgs->ckpt_lck);
            new_started = bgs->ckpt_started;
            SpinLockRelease(&bgs->ckpt_lck);
-           
+
            if (new_started != old_started)
                break;
-           
+
            CHECK_FOR_INTERRUPTS();
            pg_usleep(100000L);
        }
@@ -941,9 +941,9 @@ RequestCheckpoint(int flags)
        /*
         * We are waiting for ckpt_done >= new_started, in a modulo sense.
         */
-       for(;;)
+       for (;;)
        {
-           int new_done;
+           int         new_done;
 
            SpinLockAcquire(&bgs->ckpt_lck);
            new_done = bgs->ckpt_done;
index 1b0ad2786c456bdce1dcf2babb51fbfedb4ef020..37e25861e74740d952011311391b9f50486562aa 100644 (file)
@@ -19,7 +19,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/postmaster/pgarch.c,v 1.31 2007/09/26 22:36:30 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/postmaster/pgarch.c,v 1.32 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -223,7 +223,7 @@ PgArchiverMain(int argc, char *argv[])
 
    MyProcPid = getpid();       /* reset MyProcPid */
 
-   MyStartTime = time(NULL);   /* record Start Time for logging */
+   MyStartTime = time(NULL);   /* record Start Time for logging */
 
    /*
     * If possible, make this process a group leader, so that the postmaster
@@ -360,7 +360,7 @@ pgarch_ArchiverCopyLoop(void)
    if (!XLogArchiveCommandSet())
    {
        ereport(WARNING,
-               (errmsg("archive_mode enabled, yet archive_command is not set")));
+          (errmsg("archive_mode enabled, yet archive_command is not set")));
        /* can't do anything if no command ... */
        return;
    }
@@ -476,15 +476,15 @@ pgarch_archiveXlog(char *xlog)
    {
        /*
         * If either the shell itself, or a called command, died on a signal,
-        * abort the archiver.  We do this because system() ignores SIGINT and
+        * abort the archiver.  We do this because system() ignores SIGINT and
         * SIGQUIT while waiting; so a signal is very likely something that
-        * should have interrupted us too.  If we overreact it's no big deal,
+        * should have interrupted us too.  If we overreact it's no big deal,
         * the postmaster will just start the archiver again.
         *
-        * Per the Single Unix Spec, shells report exit status > 128 when
-        * called command died on a signal.
+        * Per the Single Unix Spec, shells report exit status > 128 when a
+        * called command died on a signal.
         */
-       bool    signaled = WIFSIGNALED(rc) || WEXITSTATUS(rc) > 128;
+       bool        signaled = WIFSIGNALED(rc) || WEXITSTATUS(rc) > 128;
 
        ereport(signaled ? FATAL : LOG,
                (errmsg("archive command \"%s\" failed: return code %d",
index 8623dbd0055e4c4eb806c9dcbff1fa39c9ae7988..22ba2ee3449b74856549da0daf740d7e34b9efdd 100644 (file)
@@ -13,7 +13,7 @@
  *
  * Copyright (c) 2001-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.166 2007/09/25 20:03:37 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.167 2007/11/15 21:14:37 momjian Exp $
  * ----------
  */
 #include "postgres.h"
@@ -127,14 +127,14 @@ static bool pgStatRunningInCollector = false;
  * avoiding repeated searches in pgstat_initstats() when a relation is
  * repeatedly opened during a transaction.
  */
-#define TABSTAT_QUANTUM        100         /* we alloc this many at a time */
+#define TABSTAT_QUANTUM        100 /* we alloc this many at a time */
 
 typedef struct TabStatusArray
 {
    struct TabStatusArray *tsa_next;    /* link to next array, if any */
-   int         tsa_used;               /* # entries currently used */
+   int         tsa_used;       /* # entries currently used */
    PgStat_TableStatus tsa_entries[TABSTAT_QUANTUM];    /* per-table data */
-} TabStatusArray;
+}  TabStatusArray;
 
 static TabStatusArray *pgStatTabList = NULL;
 
@@ -147,10 +147,10 @@ static TabStatusArray *pgStatTabList = NULL;
  */
 typedef struct PgStat_SubXactStatus
 {
-   int         nest_level;             /* subtransaction nest level */
+   int         nest_level;     /* subtransaction nest level */
    struct PgStat_SubXactStatus *prev;  /* higher-level subxact if any */
    PgStat_TableXactStatus *first;      /* head of list for this subxact */
-} PgStat_SubXactStatus;
+}  PgStat_SubXactStatus;
 
 static PgStat_SubXactStatus *pgStatXactStack = NULL;
 
@@ -160,11 +160,11 @@ static int    pgStatXactRollback = 0;
 /* Record that's written to 2PC state file when pgstat state is persisted */
 typedef struct TwoPhasePgStatRecord
 {
-   PgStat_Counter tuples_inserted; /* tuples inserted in xact */
-   PgStat_Counter tuples_deleted;  /* tuples deleted in xact */
-   Oid         t_id;               /* table's OID */
-   bool        t_shared;           /* is it a shared catalog? */
-} TwoPhasePgStatRecord;
+   PgStat_Counter tuples_inserted;     /* tuples inserted in xact */
+   PgStat_Counter tuples_deleted;      /* tuples deleted in xact */
+   Oid         t_id;           /* table's OID */
+   bool        t_shared;       /* is it a shared catalog? */
+}  TwoPhasePgStatRecord;
 
 /*
  * Info about current "snapshot" of stats file
@@ -221,7 +221,7 @@ static void pgstat_recv_resetcounter(PgStat_MsgResetcounter *msg, int len);
 static void pgstat_recv_autovac(PgStat_MsgAutovacStart *msg, int len);
 static void pgstat_recv_vacuum(PgStat_MsgVacuum *msg, int len);
 static void pgstat_recv_analyze(PgStat_MsgAnalyze *msg, int len);
-static void pgstat_recv_bgwriter(PgStat_MsgBgWriter *msg, int len);
+static void pgstat_recv_bgwriter(PgStat_MsgBgWriter * msg, int len);
 
 
 /* ------------------------------------------------------------
@@ -470,9 +470,9 @@ startup_failed:
 
    /*
     * Adjust GUC variables to suppress useless activity, and for debugging
-    * purposes (seeing track_counts off is a clue that we failed here).
-    * We use PGC_S_OVERRIDE because there is no point in trying to turn it
-    * back on from postgresql.conf without a restart.
+    * purposes (seeing track_counts off is a clue that we failed here). We
+    * use PGC_S_OVERRIDE because there is no point in trying to turn it back
+    * on from postgresql.conf without a restart.
     */
    SetConfigOption("track_counts", "off", PGC_INTERNAL, PGC_S_OVERRIDE);
 }
@@ -531,8 +531,8 @@ pgstat_start(void)
    pid_t       pgStatPid;
 
    /*
-    * Check that the socket is there, else pgstat_init failed and we can
-    * do nothing useful.
+    * Check that the socket is there, else pgstat_init failed and we can do
+    * nothing useful.
     */
    if (pgStatSock < 0)
        return 0;
@@ -587,9 +587,10 @@ pgstat_start(void)
    return 0;
 }
 
-void allow_immediate_pgstat_restart(void)
+void
+allow_immediate_pgstat_restart(void)
 {
-       last_pgstat_start_time = 0;
+   last_pgstat_start_time = 0;
 }
 
 /* ------------------------------------------------------------
@@ -612,7 +613,7 @@ pgstat_report_tabstat(bool force)
 {
    /* we assume this inits to all zeroes: */
    static const PgStat_TableCounts all_zeroes;
-   static TimestampTz last_report = 0; 
+   static TimestampTz last_report = 0;
 
    TimestampTz now;
    PgStat_MsgTabstat regular_msg;
@@ -638,8 +639,8 @@ pgstat_report_tabstat(bool force)
    /*
     * Scan through the TabStatusArray struct(s) to find tables that actually
     * have counts, and build messages to send.  We have to separate shared
-    * relations from regular ones because the databaseid field in the
-    * message header has to depend on that.
+    * relations from regular ones because the databaseid field in the message
+    * header has to depend on that.
     */
    regular_msg.m_databaseid = MyDatabaseId;
    shared_msg.m_databaseid = InvalidOid;
@@ -658,12 +659,13 @@ pgstat_report_tabstat(bool force)
            Assert(entry->trans == NULL);
 
            /*
-            * Ignore entries that didn't accumulate any actual counts,
-            * such as indexes that were opened by the planner but not used.
+            * Ignore entries that didn't accumulate any actual counts, such
+            * as indexes that were opened by the planner but not used.
             */
            if (memcmp(&entry->t_counts, &all_zeroes,
                       sizeof(PgStat_TableCounts)) == 0)
                continue;
+
            /*
             * OK, insert data into the appropriate message, and send if full.
             */
@@ -885,7 +887,7 @@ pgstat_collect_oids(Oid catalogid)
    scan = heap_beginscan(rel, SnapshotNow, 0, NULL);
    while ((tup = heap_getnext(scan, ForwardScanDirection)) != NULL)
    {
-       Oid     thisoid = HeapTupleGetOid(tup);
+       Oid         thisoid = HeapTupleGetOid(tup);
 
        CHECK_FOR_INTERRUPTS();
 
@@ -950,7 +952,7 @@ pgstat_drop_relation(Oid relid)
    msg.m_databaseid = MyDatabaseId;
    pgstat_send(&msg, len);
 }
-#endif /* NOT_USED */
+#endif   /* NOT_USED */
 
 
 /* ----------
@@ -1021,7 +1023,7 @@ pgstat_report_vacuum(Oid tableoid, bool shared,
    msg.m_databaseid = shared ? InvalidOid : MyDatabaseId;
    msg.m_tableoid = tableoid;
    msg.m_analyze = analyze;
-   msg.m_autovacuum = IsAutoVacuumWorkerProcess(); /* is this autovacuum? */
+   msg.m_autovacuum = IsAutoVacuumWorkerProcess();     /* is this autovacuum? */
    msg.m_vacuumtime = GetCurrentTimestamp();
    msg.m_tuples = tuples;
    pgstat_send(&msg, sizeof(msg));
@@ -1045,7 +1047,7 @@ pgstat_report_analyze(Oid tableoid, bool shared, PgStat_Counter livetuples,
    pgstat_setheader(&msg.m_hdr, PGSTAT_MTYPE_ANALYZE);
    msg.m_databaseid = shared ? InvalidOid : MyDatabaseId;
    msg.m_tableoid = tableoid;
-   msg.m_autovacuum = IsAutoVacuumWorkerProcess(); /* is this autovacuum? */
+   msg.m_autovacuum = IsAutoVacuumWorkerProcess();     /* is this autovacuum? */
    msg.m_analyzetime = GetCurrentTimestamp();
    msg.m_live_tuples = livetuples;
    msg.m_dead_tuples = deadtuples;
@@ -1107,8 +1109,8 @@ pgstat_initstats(Relation rel)
    }
 
    /*
-    * If we already set up this relation in the current transaction,
-    * nothing to do.
+    * If we already set up this relation in the current transaction, nothing
+    * to do.
     */
    if (rel->pgstat_info != NULL &&
        rel->pgstat_info->t_id == rel_id)
@@ -1145,9 +1147,9 @@ get_tabstat_entry(Oid rel_id, bool isshared)
        if (tsa->tsa_used < TABSTAT_QUANTUM)
        {
            /*
-            * It must not be present, but we found a free slot instead.
-            * Fine, let's use this one.  We assume the entry was already
-            * zeroed, either at creation or after last use.
+            * It must not be present, but we found a free slot instead. Fine,
+            * let's use this one.  We assume the entry was already zeroed,
+            * either at creation or after last use.
             */
            entry = &tsa->tsa_entries[tsa->tsa_used++];
            entry->t_id = rel_id;
@@ -1201,14 +1203,14 @@ get_tabstat_stack_level(int nest_level)
  * add_tabstat_xact_level - add a new (sub)transaction state record
  */
 static void
-add_tabstat_xact_level(PgStat_TableStatus *pgstat_info, int nest_level)
+add_tabstat_xact_level(PgStat_TableStatus * pgstat_info, int nest_level)
 {
    PgStat_SubXactStatus *xact_state;
    PgStat_TableXactStatus *trans;
 
    /*
-    * If this is the first rel to be modified at the current nest level,
-    * we first have to push a transaction stack entry.
+    * If this is the first rel to be modified at the current nest level, we
+    * first have to push a transaction stack entry.
     */
    xact_state = get_tabstat_stack_level(nest_level);
 
@@ -1234,7 +1236,7 @@ pgstat_count_heap_insert(Relation rel)
 
    if (pgstat_track_counts && pgstat_info != NULL)
    {
-       int     nest_level = GetCurrentTransactionNestLevel();
+       int         nest_level = GetCurrentTransactionNestLevel();
 
        /* t_tuples_inserted is nontransactional, so just advance it */
        pgstat_info->t_counts.t_tuples_inserted++;
@@ -1258,7 +1260,7 @@ pgstat_count_heap_update(Relation rel, bool hot)
 
    if (pgstat_track_counts && pgstat_info != NULL)
    {
-       int     nest_level = GetCurrentTransactionNestLevel();
+       int         nest_level = GetCurrentTransactionNestLevel();
 
        /* t_tuples_updated is nontransactional, so just advance it */
        pgstat_info->t_counts.t_tuples_updated++;
@@ -1287,7 +1289,7 @@ pgstat_count_heap_delete(Relation rel)
 
    if (pgstat_track_counts && pgstat_info != NULL)
    {
-       int     nest_level = GetCurrentTransactionNestLevel();
+       int         nest_level = GetCurrentTransactionNestLevel();
 
        /* t_tuples_deleted is nontransactional, so just advance it */
        pgstat_info->t_counts.t_tuples_deleted++;
@@ -1341,8 +1343,8 @@ AtEOXact_PgStat(bool isCommit)
 
    /*
     * Transfer transactional insert/update counts into the base tabstat
-    * entries.  We don't bother to free any of the transactional state,
-    * since it's all in TopTransactionContext and will go away anyway.
+    * entries.  We don't bother to free any of the transactional state, since
+    * it's all in TopTransactionContext and will go away anyway.
     */
    xact_state = pgStatXactStack;
    if (xact_state != NULL)
@@ -1424,11 +1426,11 @@ AtEOSubXact_PgStat(bool isCommit, int nestDepth)
                else
                {
                    /*
-                    * When there isn't an immediate parent state, we can
-                    * just reuse the record instead of going through a
+                    * When there isn't an immediate parent state, we can just
+                    * reuse the record instead of going through a
                     * palloc/pfree pushup (this works since it's all in
-                    * TopTransactionContext anyway).  We have to re-link
-                    * it into the parent level, though, and that might mean
+                    * TopTransactionContext anyway).  We have to re-link it
+                    * into the parent level, though, and that might mean
                     * pushing a new entry into the pgStatXactStack.
                     */
                    PgStat_SubXactStatus *upper_xact_state;
@@ -1500,7 +1502,7 @@ AtPrepare_PgStat(void)
  *     Clean up after successful PREPARE.
  *
  * All we need do here is unlink the transaction stats state from the
- * nontransactional state.  The nontransactional action counts will be
+ * nontransactional state. The nontransactional action counts will be
  * reported to the stats collector immediately, while the effects on live
  * and dead tuple counts are preserved in the 2PC state file.
  *
@@ -1512,8 +1514,8 @@ PostPrepare_PgStat(void)
    PgStat_SubXactStatus *xact_state;
 
    /*
-    * We don't bother to free any of the transactional state,
-    * since it's all in TopTransactionContext and will go away anyway.
+    * We don't bother to free any of the transactional state, since it's all
+    * in TopTransactionContext and will go away anyway.
     */
    xact_state = pgStatXactStack;
    if (xact_state != NULL)
@@ -1701,8 +1703,8 @@ pgstat_fetch_stat_numbackends(void)
  * ---------
  * pgstat_fetch_global() -
  *
- *  Support function for the SQL-callable pgstat* functions. Returns
- *  a pointer to the global statistics struct.
+ * Support function for the SQL-callable pgstat* functions. Returns
+ * a pointer to the global statistics struct.
  * ---------
  */
 PgStat_GlobalStats *
@@ -1795,8 +1797,8 @@ pgstat_bestart(void)
    volatile PgBackendStatus *beentry;
 
    /*
-    * To minimize the time spent modifying the PgBackendStatus entry,
-    * fetch all the needed data first.
+    * To minimize the time spent modifying the PgBackendStatus entry, fetch
+    * all the needed data first.
     *
     * If we have a MyProcPort, use its session start time (for consistency,
     * and to save a kernel call).
@@ -1930,8 +1932,8 @@ pgstat_report_xact_timestamp(TimestampTz tstamp)
 
    /*
     * Update my status entry, following the protocol of bumping
-    * st_changecount before and after.  We use a volatile pointer
-    * here to ensure the compiler doesn't try to get cute.
+    * st_changecount before and after.  We use a volatile pointer here to
+    * ensure the compiler doesn't try to get cute.
     */
    beentry->st_changecount++;
    beentry->st_xact_start_timestamp = tstamp;
@@ -2085,7 +2087,7 @@ pgstat_send(void *msg, int len)
 /* ----------
  * pgstat_send_bgwriter() -
  *
- *      Send bgwriter statistics to the collector
+ *     Send bgwriter statistics to the collector
  * ----------
  */
 void
@@ -2095,9 +2097,9 @@ pgstat_send_bgwriter(void)
    static const PgStat_MsgBgWriter all_zeroes;
 
    /*
-    * This function can be called even if nothing at all has happened.
-    * In this case, avoid sending a completely empty message to
-    * the stats collector.
+    * This function can be called even if nothing at all has happened. In
+    * this case, avoid sending a completely empty message to the stats
+    * collector.
     */
    if (memcmp(&BgWriterStats, &all_zeroes, sizeof(PgStat_MsgBgWriter)) == 0)
        return;
@@ -2145,13 +2147,13 @@ PgstatCollectorMain(int argc, char *argv[])
 
    MyProcPid = getpid();       /* reset MyProcPid */
 
-   MyStartTime = time(NULL);   /* record Start Time for logging */
+   MyStartTime = time(NULL);   /* record Start Time for logging */
 
    /*
     * If possible, make this process a group leader, so that the postmaster
-    * can signal any child processes too.  (pgstat probably never has
-    * any child processes, but for consistency we make all postmaster
-    * child processes do this.)
+    * can signal any child processes too.  (pgstat probably never has any
+    * child processes, but for consistency we make all postmaster child
+    * processes do this.)
     */
 #ifdef HAVE_SETSID
    if (setsid() < 0)
@@ -2250,8 +2252,8 @@ PgstatCollectorMain(int argc, char *argv[])
         * poll/select call, so this also limits speed of response to SIGQUIT,
         * which is more important.)
         *
-        * We use poll(2) if available, otherwise select(2).
-        * Win32 has its own implementation.
+        * We use poll(2) if available, otherwise select(2). Win32 has its own
+        * implementation.
         */
 #ifndef WIN32
 #ifdef HAVE_POLL
@@ -2291,9 +2293,9 @@ PgstatCollectorMain(int argc, char *argv[])
 
        got_data = FD_ISSET(pgStatSock, &rfds);
 #endif   /* HAVE_POLL */
-#else /* WIN32 */
+#else                          /* WIN32 */
        got_data = pgwin32_waitforsinglesocket(pgStatSock, FD_READ,
-                                              PGSTAT_SELECT_TIMEOUT*1000);
+                                              PGSTAT_SELECT_TIMEOUT * 1000);
 #endif
 
        /*
@@ -2363,7 +2365,7 @@ PgstatCollectorMain(int argc, char *argv[])
                    break;
 
                case PGSTAT_MTYPE_BGWRITER:
-                   pgstat_recv_bgwriter((PgStat_MsgBgWriter *) &msg, len);
+                   pgstat_recv_bgwriter((PgStat_MsgBgWriter *) & msg, len);
                    break;
 
                default:
@@ -2704,7 +2706,7 @@ pgstat_read_statsfile(Oid onlydb)
                dbentry->tables = hash_create("Per-database table",
                                              PGSTAT_TAB_HASH_SIZE,
                                              &hash_ctl,
-                                    HASH_ELEM | HASH_FUNCTION | HASH_CONTEXT);
+                                  HASH_ELEM | HASH_FUNCTION | HASH_CONTEXT);
 
                /*
                 * Arrange that following 'T's add entries to this database's
@@ -2813,7 +2815,7 @@ pgstat_setup_memcxt(void)
 /* ----------
  * pgstat_clear_snapshot() -
  *
- * Discard any data collected in the current transaction.  Any subsequent
+ * Discard any data collected in the current transaction.  Any subsequent
  * request will cause new snapshots to be read.
  *
  * This is also invoked during transaction commit or abort to discard
@@ -3158,7 +3160,7 @@ pgstat_recv_analyze(PgStat_MsgAnalyze *msg, int len)
  * ----------
  */
 static void
-pgstat_recv_bgwriter(PgStat_MsgBgWriter *msg, int len)
+pgstat_recv_bgwriter(PgStat_MsgBgWriter * msg, int len)
 {
    globalStats.timed_checkpoints += msg->m_timed_checkpoints;
    globalStats.requested_checkpoints += msg->m_requested_checkpoints;
index 9af65261596e48c187d7b968be6c6d0cb314bcdc..c83e4e73d80de2f8cdc69bd1cec199c55a8de792 100644 (file)
@@ -37,7 +37,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.546 2007/11/15 20:04:38 petere Exp $
+ *   $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.547 2007/11/15 21:14:37 momjian Exp $
  *
  * NOTES
  *
  * children we have and send them appropriate signals when necessary.
  *
  * "Special" children such as the startup, bgwriter and autovacuum launcher
- * tasks are not in this list.  Autovacuum worker processes are in it.
+ * tasks are not in this list. Autovacuum worker processes are in it.
  * Also, "dead_end" children are in it: these are children launched just
  * for the purpose of sending a friendly rejection message to a would-be
- * client.  We must track them because they are attached to shared memory,
+ * client. We must track them because they are attached to shared memory,
  * but we know they will never become live backends.
  */
 typedef struct bkend
@@ -189,7 +189,7 @@ static char ExtraOptions[MAXPGPATH];
  * backend dumps core. Normally, it kills all peers of the dead backend
  * and reinitializes shared memory.  By specifying -s or -n, we can have
  * the postmaster stop (rather than kill) peers and not reinitialize
- * shared data structures.  (Reinit is currently dead code, though.)
+ * shared data structures. (Reinit is currently dead code, though.)
  */
 static bool Reinit = true;
 static int SendStop = false;
@@ -213,8 +213,8 @@ static pid_t StartupPID = 0,
            WalWriterPID = 0,
            AutoVacPID = 0,
            PgArchPID = 0,
-           PgStatPID = 0,
-           SysLoggerPID = 0;
+           PgStatPID = 0,
+           SysLoggerPID = 0;
 
 /* Startup/shutdown state */
 #define            NoShutdown      0
@@ -243,12 +243,13 @@ static bool FatalError = false; /* T if recovering from backend crash */
  *
  * Notice that this state variable does not distinguish *why* we entered
  * PM_WAIT_BACKENDS or later states --- Shutdown and FatalError must be
- * consulted to find that out.  FatalError is never true in PM_RUN state, nor
+ * consulted to find that out. FatalError is never true in PM_RUN state, nor
  * in PM_SHUTDOWN state (because we don't enter that state when trying to
  * recover from a crash).  It can be true in PM_STARTUP state, because we
  * don't clear it until we've successfully recovered.
  */
-typedef enum {
+typedef enum
+{
    PM_INIT,                    /* postmaster starting */
    PM_STARTUP,                 /* waiting for startup subprocess */
    PM_RUN,                     /* normal "database is alive" state */
@@ -256,14 +257,14 @@ typedef enum {
    PM_SHUTDOWN,                /* waiting for bgwriter to do shutdown ckpt */
    PM_WAIT_DEAD_END,           /* waiting for dead_end children to exit */
    PM_NO_CHILDREN              /* all important children have exited */
-} PMState;
+}  PMState;
 
 static PMState pmState = PM_INIT;
 
 bool       ClientAuthInProgress = false;       /* T during new-client
                                                 * authentication */
 
-bool redirection_done = false; /* stderr redirected for syslogger? */
+bool       redirection_done = false;   /* stderr redirected for syslogger? */
 
 /* received START_AUTOVAC_LAUNCHER signal */
 static volatile sig_atomic_t start_autovac_launcher = false;
@@ -321,6 +322,7 @@ static long PostmasterRandom(void);
 static void RandomSalt(char *cryptSalt, char *md5Salt);
 static void signal_child(pid_t pid, int signal);
 static void SignalSomeChildren(int signal, bool only_autovac);
+
 #define SignalChildren(sig)            SignalSomeChildren(sig, false)
 #define SignalAutovacWorkers(sig)  SignalSomeChildren(sig, true)
 static int CountChildren(void);
@@ -336,12 +338,12 @@ static void WINAPI pgwin32_deadchild_callback(PVOID lpParameter, BOOLEAN TimerOr
 
 static HANDLE win32ChildQueue;
 
-typedef struct 
+typedef struct
 {
-   HANDLE waitHandle;
-   HANDLE procHandle;
-   DWORD  procId;
-} win32_deadchild_waitinfo;
+   HANDLE      waitHandle;
+   HANDLE      procHandle;
+   DWORD       procId;
+}  win32_deadchild_waitinfo;
 
 HANDLE     PostmasterHandle;
 #endif
@@ -385,7 +387,7 @@ typedef struct
    InheritableSocket pgStatSock;
    pid_t       PostmasterPid;
    TimestampTz PgStartTime;
-   bool        redirection_done;
+   bool        redirection_done;
 #ifdef WIN32
    HANDLE      PostmasterHandle;
    HANDLE      initial_signal_pipe;
@@ -477,9 +479,9 @@ PostmasterMain(int argc, char *argv[])
    opterr = 1;
 
    /*
-    * Parse command-line options.  CAUTION: keep this in sync with
-    * tcop/postgres.c (the option sets should not conflict)
-    * and with the common help() function in main/main.c.
+    * Parse command-line options.  CAUTION: keep this in sync with
+    * tcop/postgres.c (the option sets should not conflict) and with the
+    * common help() function in main/main.c.
     */
    while ((opt = getopt(argc, argv, "A:B:c:D:d:EeFf:h:ijk:lN:nOo:Pp:r:S:sTt:W:-:")) != -1)
    {
@@ -907,7 +909,7 @@ PostmasterMain(int argc, char *argv[])
    win32ChildQueue = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 1);
    if (win32ChildQueue == NULL)
        ereport(FATAL,
-           (errmsg("could not create I/O completion port for child queue")));
+          (errmsg("could not create I/O completion port for child queue")));
 
    /*
     * Set up a handle that child processes can use to check whether the
@@ -1158,8 +1160,8 @@ pmdaemonize(void)
    MyStartTime = time(NULL);
 
    /*
-    * GH: If there's no setsid(), we hopefully don't need silent mode.
-    * Until there's a better solution.
+    * GH: If there's no setsid(), we hopefully don't need silent mode. Until
+    * there's a better solution.
     */
 #ifdef HAVE_SETSID
    if (setsid() < 0)
@@ -1207,9 +1209,9 @@ ServerLoop(void)
         * We wait at most one minute, to ensure that the other background
         * tasks handled below get done even when no requests are arriving.
         *
-        * If we are in PM_WAIT_DEAD_END state, then we don't want to
-        * accept any new connections, so we don't call select() at all;
-        * just sleep for a little bit with signals unblocked.
+        * If we are in PM_WAIT_DEAD_END state, then we don't want to accept
+        * any new connections, so we don't call select() at all; just sleep
+        * for a little bit with signals unblocked.
         */
        memcpy((char *) &rmask, (char *) &readmask, sizeof(fd_set));
 
@@ -1217,7 +1219,7 @@ ServerLoop(void)
 
        if (pmState == PM_WAIT_DEAD_END)
        {
-           pg_usleep(100000L);     /* 100 msec seems reasonable */
+           pg_usleep(100000L); /* 100 msec seems reasonable */
            selres = 0;
        }
        else
@@ -1294,8 +1296,8 @@ ServerLoop(void)
            BgWriterPID = StartBackgroundWriter();
 
        /*
-        * Likewise, if we have lost the walwriter process, try to start a
-        * new one.
+        * Likewise, if we have lost the walwriter process, try to start a new
+        * one.
         */
        if (WalWriterPID == 0 && pmState == PM_RUN)
            WalWriterPID = StartWalWriter();
@@ -1307,13 +1309,13 @@ ServerLoop(void)
        {
            AutoVacPID = StartAutoVacLauncher();
            if (AutoVacPID != 0)
-               start_autovac_launcher = false; /* signal processed */
+               start_autovac_launcher = false; /* signal processed */
        }
 
-       /* 
-        * If we have lost the archiver, try to start a new one.
-        * We do this even if we are shutting down, to allow archiver to
-        * take care of any remaining WAL files.
+       /*
+        * If we have lost the archiver, try to start a new one. We do this
+        * even if we are shutting down, to allow archiver to take care of any
+        * remaining WAL files.
         */
        if (XLogArchivingActive() && PgArchPID == 0 && pmState >= PM_RUN)
            PgArchPID = pgarch_start();
@@ -1732,10 +1734,10 @@ canAcceptConnections(void)
    if (pmState != PM_RUN)
    {
        if (Shutdown > NoShutdown)
-           return CAC_SHUTDOWN;        /* shutdown is pending */
+           return CAC_SHUTDOWN;    /* shutdown is pending */
        if (pmState == PM_STARTUP && !FatalError)
-           return CAC_STARTUP;         /* normal startup */
-       return CAC_RECOVERY;            /* else must be crash recovery */
+           return CAC_STARTUP; /* normal startup */
+       return CAC_RECOVERY;    /* else must be crash recovery */
    }
 
    /*
@@ -1793,11 +1795,11 @@ ConnCreate(int serverFd)
    }
 
    /*
-     * Allocate GSSAPI specific state struct
+    * Allocate GSSAPI specific state struct
     */
 #ifndef EXEC_BACKEND
-#if defined(ENABLE_GSS) || defined(ENABLE_SSPI) 
-   port->gss = (pg_gssinfo *)calloc(1, sizeof(pg_gssinfo));
+#if defined(ENABLE_GSS) || defined(ENABLE_SSPI)
+   port->gss = (pg_gssinfo *) calloc(1, sizeof(pg_gssinfo));
    if (!port->gss)
    {
        ereport(LOG,
@@ -2062,14 +2064,16 @@ reaper(SIGNAL_ARGS)
    /* These macros hide platform variations in getting child status */
 #ifdef HAVE_WAITPID
    int         status;         /* child exit status */
+
 #define LOOPTEST()     ((pid = waitpid(-1, &status, WNOHANG)) > 0)
 #define LOOPHEADER()   (exitstatus = status)
-#else   /* !HAVE_WAITPID */
+#else                          /* !HAVE_WAITPID */
 #ifndef WIN32
    union wait  status;         /* child exit status */
+
 #define LOOPTEST()     ((pid = wait3(&status, WNOHANG, NULL)) > 0)
 #define LOOPHEADER()   (exitstatus = status.w_status)
-#else  /* WIN32 */
+#else                          /* WIN32 */
 #define LOOPTEST()     ((pid = win32_waitpid(&exitstatus)) > 0)
 #define LOOPHEADER()
 #endif   /* WIN32 */
@@ -2152,7 +2156,7 @@ reaper(SIGNAL_ARGS)
 
            /* at this point we are really open for business */
            ereport(LOG,
-                   (errmsg("database system is ready to accept connections")));
+                (errmsg("database system is ready to accept connections")));
 
            continue;
        }
@@ -2166,13 +2170,13 @@ reaper(SIGNAL_ARGS)
            if (EXIT_STATUS_0(exitstatus) && pmState == PM_SHUTDOWN)
            {
                /*
-                * OK, we saw normal exit of the bgwriter after it's been
-                * told to shut down.  We expect that it wrote a shutdown
-                * checkpoint.  (If for some reason it didn't, recovery will
+                * OK, we saw normal exit of the bgwriter after it's been told
+                * to shut down.  We expect that it wrote a shutdown
+                * checkpoint.  (If for some reason it didn't, recovery will
                 * occur on next postmaster start.)
                 *
-                * At this point we should have no normal children left
-                * (else we'd not be in PM_SHUTDOWN state) but we might have
+                * At this point we should have no normal children left (else
+                * we'd not be in PM_SHUTDOWN state) but we might have
                 * dead_end children.
                 */
                Assert(Shutdown > NoShutdown);
@@ -2192,9 +2196,9 @@ reaper(SIGNAL_ARGS)
        }
 
        /*
-        * Was it the wal writer?  Normal exit can be ignored; we'll
-        * start a new one at the next iteration of the postmaster's main loop,
-        * if necessary.  Any other exit condition is treated as a crash.
+        * Was it the wal writer?  Normal exit can be ignored; we'll start a
+        * new one at the next iteration of the postmaster's main loop, if
+        * necessary.  Any other exit condition is treated as a crash.
         */
        if (pid == WalWriterPID)
        {
@@ -2206,9 +2210,10 @@ reaper(SIGNAL_ARGS)
        }
 
        /*
-        * Was it the autovacuum launcher?  Normal exit can be ignored; we'll
-        * start a new one at the next iteration of the postmaster's main loop,
-        * if necessary.  Any other exit condition is treated as a crash.
+        * Was it the autovacuum launcher?  Normal exit can be ignored; we'll
+        * start a new one at the next iteration of the postmaster's main
+        * loop, if necessary.  Any other exit condition is treated as a
+        * crash.
         */
        if (pid == AutoVacPID)
        {
@@ -2433,8 +2438,8 @@ HandleChildCrash(int pid, int exitstatus, const char *procname)
    /*
     * Force a power-cycle of the pgarch process too.  (This isn't absolutely
     * necessary, but it seems like a good idea for robustness, and it
-    * simplifies the state-machine logic in the case where a shutdown
-    * request arrives during crash processing.)
+    * simplifies the state-machine logic in the case where a shutdown request
+    * arrives during crash processing.)
     */
    if (PgArchPID != 0 && !FatalError)
    {
@@ -2448,8 +2453,8 @@ HandleChildCrash(int pid, int exitstatus, const char *procname)
    /*
     * Force a power-cycle of the pgstat process too.  (This isn't absolutely
     * necessary, but it seems like a good idea for robustness, and it
-    * simplifies the state-machine logic in the case where a shutdown
-    * request arrives during crash processing.)
+    * simplifies the state-machine logic in the case where a shutdown request
+    * arrives during crash processing.)
     */
    if (PgStatPID != 0 && !FatalError)
    {
@@ -2494,15 +2499,15 @@ LogChildExit(int lev, const char *procname, int pid, int exitstatus)
                        procname, pid, WTERMSIG(exitstatus)),
                 errhint("See C include file \"ntstatus.h\" for a description of the hexadecimal value.")));
 #elif defined(HAVE_DECL_SYS_SIGLIST) && HAVE_DECL_SYS_SIGLIST
-       ereport(lev,
-
-       /*------
-         translator: %s is a noun phrase describing a child process, such as
-         "server process" */
-               (errmsg("%s (PID %d) was terminated by signal %d: %s",
-                       procname, pid, WTERMSIG(exitstatus),
-                       WTERMSIG(exitstatus) < NSIG ?
-                       sys_siglist[WTERMSIG(exitstatus)] : "(unknown)")));
+   ereport(lev,
+
+   /*------
+     translator: %s is a noun phrase describing a child process, such as
+     "server process" */
+           (errmsg("%s (PID %d) was terminated by signal %d: %s",
+                   procname, pid, WTERMSIG(exitstatus),
+                   WTERMSIG(exitstatus) < NSIG ?
+                   sys_siglist[WTERMSIG(exitstatus)] : "(unknown)")));
 #else
        ereport(lev,
 
@@ -2532,18 +2537,18 @@ static void
 PostmasterStateMachine(void)
 {
    /*
-    * If we are in a state-machine state that implies waiting for backends
-    * to exit, see if they're all gone, and change state if so.
+    * If we are in a state-machine state that implies waiting for backends to
+    * exit, see if they're all gone, and change state if so.
     */
    if (pmState == PM_WAIT_BACKENDS)
    {
        /*
         * PM_WAIT_BACKENDS state ends when we have no regular backends
         * (including autovac workers) and no walwriter or autovac launcher.
-        * If we are doing crash recovery then we expect the bgwriter to
-        * exit too, otherwise not.  The archiver, stats, and syslogger
-        * processes are disregarded since they are not connected to shared
-        * memory; we also disregard dead_end children here.
+        * If we are doing crash recovery then we expect the bgwriter to exit
+        * too, otherwise not.  The archiver, stats, and syslogger processes
+        * are disregarded since they are not connected to shared memory; we
+        * also disregard dead_end children here.
         */
        if (CountChildren() == 0 &&
            StartupPID == 0 &&
@@ -2554,7 +2559,7 @@ PostmasterStateMachine(void)
            if (FatalError)
            {
                /*
-                * Start waiting for dead_end children to die.  This state
+                * Start waiting for dead_end children to die.  This state
                 * change causes ServerLoop to stop creating new ones.
                 */
                pmState = PM_WAIT_DEAD_END;
@@ -2562,9 +2567,9 @@ PostmasterStateMachine(void)
            else
            {
                /*
-                * If we get here, we are proceeding with normal shutdown.
-                * All the regular children are gone, and it's time to tell
-                * the bgwriter to do a shutdown checkpoint.
+                * If we get here, we are proceeding with normal shutdown. All
+                * the regular children are gone, and it's time to tell the
+                * bgwriter to do a shutdown checkpoint.
                 */
                Assert(Shutdown > NoShutdown);
                /* Start the bgwriter if not running */
@@ -2579,10 +2584,10 @@ PostmasterStateMachine(void)
                else
                {
                    /*
-                    * If we failed to fork a bgwriter, just shut down.
-                    * Any required cleanup will happen at next restart.
-                    * We set FatalError so that an "abnormal shutdown"
-                    * message gets logged when we exit.
+                    * If we failed to fork a bgwriter, just shut down. Any
+                    * required cleanup will happen at next restart. We set
+                    * FatalError so that an "abnormal shutdown" message gets
+                    * logged when we exit.
                     */
                    FatalError = true;
                    pmState = PM_WAIT_DEAD_END;
@@ -2600,8 +2605,8 @@ PostmasterStateMachine(void)
    if (pmState == PM_WAIT_DEAD_END)
    {
        /*
-        * PM_WAIT_DEAD_END state ends when the BackendList is entirely
-        * empty (ie, no dead_end children remain).
+        * PM_WAIT_DEAD_END state ends when the BackendList is entirely empty
+        * (ie, no dead_end children remain).
         */
        if (!DLGetHead(BackendList))
        {
@@ -2617,7 +2622,7 @@ PostmasterStateMachine(void)
 
    /*
     * If we've been told to shut down, we exit as soon as there are no
-    * remaining children.  If there was a crash, cleanup will occur at the
+    * remaining children.  If there was a crash, cleanup will occur at the
     * next startup.  (Before PostgreSQL 8.3, we tried to recover from the
     * crash before exiting, but that seems unwise if we are quitting because
     * we got SIGTERM from init --- there may well not be time for recovery
@@ -2627,7 +2632,7 @@ PostmasterStateMachine(void)
     * processes.  They've been sent SIGQUIT by this point (either when we
     * entered PM_SHUTDOWN state, or when we set FatalError, and at least one
     * of those must have happened by now).  In any case they contain logic to
-    * commit hara-kiri if they notice the postmaster is gone.  Since they
+    * commit hara-kiri if they notice the postmaster is gone.  Since they
     * aren't connected to shared memory, they pose no problem for shutdown.
     * The syslogger is not considered either, since it's intended to survive
     * till the postmaster exits.
@@ -2648,7 +2653,7 @@ PostmasterStateMachine(void)
 
    /*
     * If we need to recover from a crash, wait for all shmem-connected
-    * children to exit, then reset shmem and StartupDataBase.  (We can ignore
+    * children to exit, then reset shmem and StartupDataBase.  (We can ignore
     * the archiver and stats processes here since they are not connected to
     * shmem.)
     */
@@ -2678,7 +2683,7 @@ PostmasterStateMachine(void)
  * system().
  *
  * There is a race condition for recently-forked children: they might not
- * have executed setsid() yet.  So we signal the child directly as well as
+ * have executed setsid() yet. So we signal the child directly as well as
  * the group.  We assume such a child will handle the signal before trying
  * to spawn any grandchild processes.  We also assume that signaling the
  * child twice will not cause any problems.
@@ -2945,7 +2950,7 @@ BackendInitialize(Port *port)
 
    /*
     * If possible, make this process a group leader, so that the postmaster
-    * can signal any child processes too.  (We do this now on the off chance
+    * can signal any child processes too.  (We do this now on the off chance
     * that something might spawn a child process during authentication.)
     */
 #ifdef HAVE_SETSID
@@ -3448,17 +3453,18 @@ internal_forkexec(int argc, char *argv[], Port *port)
    }
 
    /*
-    * Queue a waiter for to signal when this child dies. The wait will be handled automatically
-    * by an operating system thread pool.
+    * Queue a waiter for to signal when this child dies. The wait will be
+    * handled automatically by an operating system thread pool.
     *
-    * Note: use malloc instead of palloc, since it needs to be thread-safe. Struct will be 
-    * free():d from the callback function that runs on a different thread.
+    * Note: use malloc instead of palloc, since it needs to be thread-safe.
+    * Struct will be free():d from the callback function that runs on a
+    * different thread.
     */
    childinfo = malloc(sizeof(win32_deadchild_waitinfo));
    if (!childinfo)
        ereport(FATAL,
-         (errcode(ERRCODE_OUT_OF_MEMORY),
-          errmsg("out of memory")));
+               (errcode(ERRCODE_OUT_OF_MEMORY),
+                errmsg("out of memory")));
 
    childinfo->procHandle = pi.hProcess;
    childinfo->procId = pi.dwProcessId;
@@ -3468,10 +3474,10 @@ internal_forkexec(int argc, char *argv[], Port *port)
                                     pgwin32_deadchild_callback,
                                     childinfo,
                                     INFINITE,
-                                    WT_EXECUTEONLYONCE | WT_EXECUTEINWAITTHREAD))
+                               WT_EXECUTEONLYONCE | WT_EXECUTEINWAITTHREAD))
        ereport(FATAL,
-         (errmsg_internal("could not register process for wait: error code %d",
-                          (int) GetLastError())));
+       (errmsg_internal("could not register process for wait: error code %d",
+                        (int) GetLastError())));
 
    /* Don't close pi.hProcess here - the wait thread needs access to it */
 
@@ -3505,13 +3511,14 @@ SubPostmasterMain(int argc, char *argv[])
 
    MyStartTime = time(NULL);
 
-   /* make sure stderr is in binary mode before anything can
-    * possibly be written to it, in case it's actually the syslogger pipe,
-    * so the pipe chunking protocol isn't disturbed. Non-logpipe data
-    * gets translated on redirection (e.g. via pg_ctl -l) anyway.
+   /*
+    * make sure stderr is in binary mode before anything can possibly be
+    * written to it, in case it's actually the syslogger pipe, so the pipe
+    * chunking protocol isn't disturbed. Non-logpipe data gets translated on
+    * redirection (e.g. via pg_ctl -l) anyway.
     */
 #ifdef WIN32
-   _setmode(fileno(stderr),_O_BINARY);
+   _setmode(fileno(stderr), _O_BINARY);
 #endif
 
    /* Lose the postmaster's on-exit routines (really a no-op) */
@@ -3529,12 +3536,12 @@ SubPostmasterMain(int argc, char *argv[])
    memset(&port, 0, sizeof(Port));
    read_backend_variables(argv[2], &port);
 
-   /* 
-    * Set up memory area for GSS information. Mirrors the code in
-    * ConnCreate for the non-exec case.
+   /*
+    * Set up memory area for GSS information. Mirrors the code in ConnCreate
+    * for the non-exec case.
     */
 #if defined(ENABLE_GSS) || defined(ENABLE_SSPI)
-   port.gss = (pg_gssinfo *)calloc(1, sizeof(pg_gssinfo));
+   port.gss = (pg_gssinfo *) calloc(1, sizeof(pg_gssinfo));
    if (!port.gss)
        ereport(FATAL,
                (errcode(ERRCODE_OUT_OF_MEMORY),
@@ -3601,8 +3608,8 @@ SubPostmasterMain(int argc, char *argv[])
         * process any libraries that should be preloaded at postmaster start
         *
         * NOTE: we have to re-load the shared_preload_libraries here because
-        *       this backend is not fork()ed so we can't inherit any shared
-        *       libraries / DLL's from our parent (the postmaster).
+        * this backend is not fork()ed so we can't inherit any shared
+        * libraries / DLL's from our parent (the postmaster).
         */
        process_shared_preload_libraries();
 
@@ -3899,6 +3906,7 @@ PostmasterRandom(void)
            struct timeval random_stop_time;
 
            gettimeofday(&random_stop_time, NULL);
+
            /*
             * We are not sure how much precision is in tv_usec, so we swap
             * the high and low 16 bits of 'random_stop_time' and XOR them
@@ -4014,7 +4022,7 @@ StartChildProcess(AuxProcType type)
                break;
            case WalWriterProcess:
                ereport(LOG,
-                  (errmsg("could not fork WAL writer process: %m")));
+                       (errmsg("could not fork WAL writer process: %m")));
                break;
            default:
                ereport(LOG,
@@ -4049,7 +4057,7 @@ StartChildProcess(AuxProcType type)
 static void
 StartAutovacuumWorker(void)
 {
-   Backend    *bn;
+   Backend    *bn;
 
    /*
     * If not in condition to run a process, don't try, but handle it like a
@@ -4061,8 +4069,8 @@ StartAutovacuumWorker(void)
    if (canAcceptConnections() == CAC_OK)
    {
        /*
-        * Compute the cancel key that will be assigned to this session.
-        * We probably don't need cancel keys for autovac workers, but we'd
+        * Compute the cancel key that will be assigned to this session. We
+        * probably don't need cancel keys for autovac workers, but we'd
         * better have something random in the field to prevent unfriendly
         * people from sending cancels to them.
         */
@@ -4098,9 +4106,9 @@ StartAutovacuumWorker(void)
    }
 
    /*
-    * Report the failure to the launcher, if it's running.  (If it's not,
-    * we might not even be connected to shared memory, so don't try to
-    * call AutoVacWorkerFailed.)
+    * Report the failure to the launcher, if it's running.  (If it's not, we
+    * might not even be connected to shared memory, so don't try to call
+    * AutoVacWorkerFailed.)
     */
    if (AutoVacPID != 0)
    {
@@ -4487,16 +4495,17 @@ ShmemBackendArrayRemove(pid_t pid)
 static pid_t
 win32_waitpid(int *exitstatus)
 {
-   DWORD dwd;
-   ULONG_PTR key;
-   OVERLAPPEDovl;
+   DWORD       dwd;
+   ULONG_PTR   key;
+   OVERLAPPED *ovl;
 
    /*
-    * Check if there are any dead children. If there are, return the pid of the first one that died.
+    * Check if there are any dead children. If there are, return the pid of
+    * the first one that died.
     */
    if (GetQueuedCompletionStatus(win32ChildQueue, &dwd, &key, &ovl, 0))
    {
-       *exitstatus = (int)key;
+       *exitstatus = (int) key;
        return dwd;
    }
 
@@ -4510,13 +4519,17 @@ win32_waitpid(int *exitstatus)
 static void WINAPI
 pgwin32_deadchild_callback(PVOID lpParameter, BOOLEAN TimerOrWaitFired)
 {
-   win32_deadchild_waitinfo *childinfo = (win32_deadchild_waitinfo *)lpParameter;
+   win32_deadchild_waitinfo *childinfo = (win32_deadchild_waitinfo *) lpParameter;
    DWORD       exitcode;
 
    if (TimerOrWaitFired)
-       return; /* timeout. Should never happen, since we use INFINITE as timeout value. */
+       return;                 /* timeout. Should never happen, since we use
+                                * INFINITE as timeout value. */
 
-   /* Remove handle from wait - required even though it's set to wait only once */
+   /*
+    * Remove handle from wait - required even though it's set to wait only
+    * once
+    */
    UnregisterWaitEx(childinfo->waitHandle, NULL);
 
    if (!GetExitCodeProcess(childinfo->procHandle, &exitcode))
@@ -4528,13 +4541,19 @@ pgwin32_deadchild_callback(PVOID lpParameter, BOOLEAN TimerOrWaitFired)
        exitcode = 255;
    }
 
-   if (!PostQueuedCompletionStatus(win32ChildQueue, childinfo->procId, (ULONG_PTR)exitcode, NULL))
+   if (!PostQueuedCompletionStatus(win32ChildQueue, childinfo->procId, (ULONG_PTR) exitcode, NULL))
        write_stderr("could not post child completion status\n");
 
-   /* Handle is per-process, so we close it here instead of in the originating thread */
+   /*
+    * Handle is per-process, so we close it here instead of in the
+    * originating thread
+    */
    CloseHandle(childinfo->procHandle);
 
-   /* Free struct that was allocated before the call to RegisterWaitForSingleObject() */
+   /*
+    * Free struct that was allocated before the call to
+    * RegisterWaitForSingleObject()
+    */
    free(childinfo);
 
    /* Queue SIGCHLD signal */
index 8ac38f0baa57149096d8c21ad0276671cdc49e33..0a255b5e076ea6ae70dee8b42457a1197d7337f0 100644 (file)
@@ -18,7 +18,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/postmaster/syslogger.c,v 1.40 2007/09/22 18:19:18 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/postmaster/syslogger.c,v 1.41 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -55,7 +55,7 @@
 #define LBF_MODE   _IOLBF
 #endif
 
-/* 
+/*
  * We read() into a temp buffer twice as big as a chunk, so that any fragment
  * left after processing can be moved down to the front and we'll still have
  * room to read a full chunk.
@@ -91,7 +91,7 @@ static FILE *csvlogFile = NULL;
 static char *last_file_name = NULL;
 static char *last_csvfile_name = NULL;
 
-/* 
+/*
  * Buffers for saving partial messages from different backends. We don't expect
  * that there will be very many outstanding at one time, so 20 seems plenty of
  * leeway. If this array gets full we won't lose messages, but we will lose
@@ -101,9 +101,9 @@ static char *last_csvfile_name = NULL;
  */
 typedef struct
 {
-   int32   pid;                /* PID of source process */
+   int32       pid;            /* PID of source process */
    StringInfoData data;        /* accumulated data, as a StringInfo */
-} save_buffer;
+}  save_buffer;
 
 #define CHUNK_SLOTS 20
 static save_buffer saved_chunks[CHUNK_SLOTS];
@@ -140,7 +140,7 @@ static void open_csvlogfile(void);
 static unsigned int __stdcall pipeThread(void *arg);
 #endif
 static void logfile_rotate(bool time_based_rotation, int size_rotation_for);
-static char *logfile_getname(pg_time_t timestamp, char * suffix);
+static char *logfile_getname(pg_time_t timestamp, char *suffix);
 static void set_next_rotation_time(void);
 static void sigHupHandler(SIGNAL_ARGS);
 static void sigUsr1Handler(SIGNAL_ARGS);
@@ -165,7 +165,7 @@ SysLoggerMain(int argc, char *argv[])
 
    MyProcPid = getpid();       /* reset MyProcPid */
 
-   MyStartTime = time(NULL);   /* set our start time in case we call elog */
+   MyStartTime = time(NULL);   /* set our start time in case we call elog */
 
 #ifdef EXEC_BACKEND
    syslogger_parseArgs(argc, argv);
@@ -199,13 +199,14 @@ SysLoggerMain(int argc, char *argv[])
        close(fd);
    }
 
-   /* Syslogger's own stderr can't be the syslogPipe, so set it back to
-    * text mode if we didn't just close it. 
-    * (It was set to binary in SubPostmasterMain).
+   /*
+    * Syslogger's own stderr can't be the syslogPipe, so set it back to text
+    * mode if we didn't just close it. (It was set to binary in
+    * SubPostmasterMain).
     */
 #ifdef WIN32
    else
-       _setmode(_fileno(stderr),_O_TEXT);
+       _setmode(_fileno(stderr), _O_TEXT);
 #endif
 
    /*
@@ -225,9 +226,9 @@ SysLoggerMain(int argc, char *argv[])
 
    /*
     * If possible, make this process a group leader, so that the postmaster
-    * can signal any child processes too.  (syslogger probably never has
-    * any child processes, but for consistency we make all postmaster
-    * child processes do this.)
+    * can signal any child processes too.  (syslogger probably never has any
+    * child processes, but for consistency we make all postmaster child
+    * processes do this.)
     */
 #ifdef HAVE_SETSID
    if (setsid() < 0)
@@ -284,7 +285,8 @@ SysLoggerMain(int argc, char *argv[])
    for (;;)
    {
        bool        time_based_rotation = false;
-       int         size_rotation_for = 0;
+       int         size_rotation_for = 0;
+
 #ifndef WIN32
        int         bytesRead;
        int         rc;
@@ -348,14 +350,14 @@ SysLoggerMain(int argc, char *argv[])
                rotation_requested = true;
                size_rotation_for |= LOG_DESTINATION_CSVLOG;
            }
-               
+
        }
 
        if (rotation_requested)
        {
            /*
-            * Force rotation when both values are zero.
-            * It means the request was sent by pg_rotate_logfile.
+            * Force rotation when both values are zero. It means the request
+            * was sent by pg_rotate_logfile.
             */
            if (!time_based_rotation && size_rotation_for == 0)
                size_rotation_for = LOG_DESTINATION_STDERR | LOG_DESTINATION_CSVLOG;
@@ -425,8 +427,9 @@ SysLoggerMain(int argc, char *argv[])
 
        if (pipe_eof_seen)
        {
-           /* seeing this message on the real stderr is annoying - so we
-            * make it DEBUG1 to suppress in normal use.
+           /*
+            * seeing this message on the real stderr is annoying - so we make
+            * it DEBUG1 to suppress in normal use.
             */
            ereport(DEBUG1,
                    (errmsg("logger shutting down")));
@@ -566,9 +569,9 @@ SysLogger_Start(void)
                int         fd;
 
                /*
-                * open the pipe in binary mode and make sure
-                * stderr is binary after it's been dup'ed into, to avoid
-                * disturbing the pipe chunking protocol.
+                * open the pipe in binary mode and make sure stderr is binary
+                * after it's been dup'ed into, to avoid disturbing the pipe
+                * chunking protocol.
                 */
                fflush(stderr);
                fd = _open_osfhandle((long) syslogPipe[1],
@@ -578,7 +581,7 @@ SysLogger_Start(void)
                            (errcode_for_file_access(),
                             errmsg("could not redirect stderr: %m")));
                close(fd);
-               _setmode(_fileno(stderr),_O_BINARY);
+               _setmode(_fileno(stderr), _O_BINARY);
                /* Now we are done with the write end of the pipe. */
                CloseHandle(syslogPipe[1]);
                syslogPipe[1] = 0;
@@ -682,10 +685,10 @@ syslogger_parseArgs(int argc, char *argv[])
  * Process data received through the syslogger pipe.
  *
  * This routine interprets the log pipe protocol which sends log messages as
- * (hopefully atomic) chunks - such chunks are detected and reassembled here. 
+ * (hopefully atomic) chunks - such chunks are detected and reassembled here.
  *
  * The protocol has a header that starts with two nul bytes, then has a 16 bit
- * length, the pid of the sending process, and a flag to indicate if it is 
+ * length, the pid of the sending process, and a flag to indicate if it is
  * the last chunk in a message. Incomplete chunks are saved until we read some
  * more, and non-final chunks are accumulated until we get the final chunk.
  *
@@ -704,23 +707,23 @@ syslogger_parseArgs(int argc, char *argv[])
 static void
 process_pipe_input(char *logbuffer, int *bytes_in_logbuffer)
 {
-   char   *cursor = logbuffer;
-   int     count = *bytes_in_logbuffer;
-   int     dest = LOG_DESTINATION_STDERR;
+   char       *cursor = logbuffer;
+   int         count = *bytes_in_logbuffer;
+   int         dest = LOG_DESTINATION_STDERR;
 
    /* While we have enough for a header, process data... */
    while (count >= (int) sizeof(PipeProtoHeader))
    {
        PipeProtoHeader p;
-       int     chunklen;
+       int         chunklen;
 
        /* Do we have a valid header? */
        memcpy(&p, cursor, sizeof(PipeProtoHeader));
        if (p.nuls[0] == '\0' && p.nuls[1] == '\0' &&
            p.len > 0 && p.len <= PIPE_MAX_PAYLOAD &&
            p.pid != 0 &&
-           (p.is_last == 't' || p.is_last == 'f' || 
-            p.is_last == 'T' || p.is_last == 'F' ))
+           (p.is_last == 't' || p.is_last == 'f' ||
+            p.is_last == 'T' || p.is_last == 'F'))
        {
            chunklen = PIPE_HEADER_SIZE + p.len;
 
@@ -728,18 +731,19 @@ process_pipe_input(char *logbuffer, int *bytes_in_logbuffer)
            if (count < chunklen)
                break;
 
-           dest = (p.is_last == 'T' || p.is_last == 'F' ) ? 
+           dest = (p.is_last == 'T' || p.is_last == 'F') ?
                LOG_DESTINATION_CSVLOG : LOG_DESTINATION_STDERR;
 
            if (p.is_last == 'f' || p.is_last == 'F')
            {
-               /* 
-                * Save a complete non-final chunk in the per-pid buffer 
-                * if possible - if not just write it out.
+               /*
+                * Save a complete non-final chunk in the per-pid buffer if
+                * possible - if not just write it out.
                 */
-               int free_slot = -1, existing_slot = -1;
-               int i;
-               StringInfo str;
+               int         free_slot = -1,
+                           existing_slot = -1;
+               int         i;
+               StringInfo  str;
 
                for (i = 0; i < CHUNK_SLOTS; i++)
                {
@@ -755,7 +759,7 @@ process_pipe_input(char *logbuffer, int *bytes_in_logbuffer)
                {
                    str = &(saved_chunks[existing_slot].data);
                    appendBinaryStringInfo(str,
-                                          cursor + PIPE_HEADER_SIZE, 
+                                          cursor + PIPE_HEADER_SIZE,
                                           p.len);
                }
                else if (free_slot >= 0)
@@ -764,29 +768,29 @@ process_pipe_input(char *logbuffer, int *bytes_in_logbuffer)
                    str = &(saved_chunks[free_slot].data);
                    initStringInfo(str);
                    appendBinaryStringInfo(str,
-                                          cursor + PIPE_HEADER_SIZE, 
+                                          cursor + PIPE_HEADER_SIZE,
                                           p.len);
                }
                else
                {
-                   /* 
+                   /*
                     * If there is no free slot we'll just have to take our
                     * chances and write out a partial message and hope that
                     * it's not followed by something from another pid.
                     */
-                   write_syslogger_file(cursor + PIPE_HEADER_SIZE, p.len, 
+                   write_syslogger_file(cursor + PIPE_HEADER_SIZE, p.len,
                                         dest);
                }
            }
            else
            {
-               /* 
+               /*
                 * Final chunk --- add it to anything saved for that pid, and
                 * either way write the whole thing out.
                 */
-               int existing_slot = -1;
-               int i;
-               StringInfo str;
+               int         existing_slot = -1;
+               int         i;
+               StringInfo  str;
 
                for (i = 0; i < CHUNK_SLOTS; i++)
                {
@@ -810,7 +814,7 @@ process_pipe_input(char *logbuffer, int *bytes_in_logbuffer)
                {
                    /* The whole message was one chunk, evidently. */
                    write_syslogger_file(cursor + PIPE_HEADER_SIZE, p.len,
-                       dest);
+                                        dest);
                }
            }
 
@@ -818,18 +822,18 @@ process_pipe_input(char *logbuffer, int *bytes_in_logbuffer)
            cursor += chunklen;
            count -= chunklen;
        }
-       else 
+       else
        {
            /* Process non-protocol data */
 
            /*
             * Look for the start of a protocol header.  If found, dump data
             * up to there and repeat the loop.  Otherwise, dump it all and
-            * fall out of the loop.  (Note: we want to dump it all if
-            * at all possible, so as to avoid dividing non-protocol messages
-            * across logfiles.  We expect that in many scenarios, a
-            * non-protocol message will arrive all in one read(), and we
-            * want to respect the read() boundary if possible.)
+            * fall out of the loop.  (Note: we want to dump it all if at all
+            * possible, so as to avoid dividing non-protocol messages across
+            * logfiles.  We expect that in many scenarios, a non-protocol
+            * message will arrive all in one read(), and we want to respect
+            * the read() boundary if possible.)
             */
            for (chunklen = 1; chunklen < count; chunklen++)
            {
@@ -858,8 +862,8 @@ process_pipe_input(char *logbuffer, int *bytes_in_logbuffer)
 static void
 flush_pipe_input(char *logbuffer, int *bytes_in_logbuffer)
 {
-   int i;
-   StringInfo str;
+   int         i;
+   StringInfo  str;
 
    /* Dump any incomplete protocol messages */
    for (i = 0; i < CHUNK_SLOTS; i++)
@@ -872,12 +876,13 @@ flush_pipe_input(char *logbuffer, int *bytes_in_logbuffer)
            pfree(str->data);
        }
    }
+
    /*
     * Force out any remaining pipe data as-is; we don't bother trying to
     * remove any protocol headers that may exist in it.
     */
    if (*bytes_in_logbuffer > 0)
-       write_syslogger_file(logbuffer, *bytes_in_logbuffer, 
+       write_syslogger_file(logbuffer, *bytes_in_logbuffer,
                             LOG_DESTINATION_STDERR);
    *bytes_in_logbuffer = 0;
 }
@@ -899,12 +904,12 @@ void
 write_syslogger_file(const char *buffer, int count, int destination)
 {
    int         rc;
-   FILE logfile;
+   FILE       *logfile;
 
    if (destination == LOG_DESTINATION_CSVLOG && csvlogFile == NULL)
        open_csvlogfile();
 
-   logfile = destination == LOG_DESTINATION_CSVLOG ? csvlogFile : syslogFile ;
+   logfile = destination == LOG_DESTINATION_CSVLOG ? csvlogFile : syslogFile;
 
 #ifndef WIN32
    rc = fwrite(buffer, 1, count, logfile);
@@ -972,16 +977,16 @@ pipeThread(void *arg)
 #endif   /* WIN32 */
 
 /*
- * open the csv log file - we do this opportunistically, because 
+ * open the csv log file - we do this opportunistically, because
  * we don't know if CSV logging will be wanted.
  */
 static void
 open_csvlogfile(void)
 {
-   char *filename;
-   FILE *fh;
+   char       *filename;
+   FILE       *fh;
 
-   filename = logfile_getname(time(NULL),".csv");
+   filename = logfile_getname(time(NULL), ".csv");
 
    fh = fopen(filename, "a");
 
@@ -994,7 +999,7 @@ open_csvlogfile(void)
    setvbuf(fh, NULL, LBF_MODE, 0);
 
 #ifdef WIN32
-   _setmode(_fileno(fh), _O_TEXT); /* use CRLF line endings on Windows */
+   _setmode(_fileno(fh), _O_TEXT);     /* use CRLF line endings on Windows */
 #endif
 
    csvlogFile = fh;
@@ -1010,7 +1015,7 @@ static void
 logfile_rotate(bool time_based_rotation, int size_rotation_for)
 {
    char       *filename;
-   char       *csvfilename = NULL;
+   char       *csvfilename = NULL;
    FILE       *fh;
 
    rotation_requested = false;
@@ -1066,10 +1071,10 @@ logfile_rotate(bool time_based_rotation, int size_rotation_for)
                            filename)));
 
            /*
-            * ENFILE/EMFILE are not too surprising on a busy system; just keep
-            * using the old file till we manage to get a new one. Otherwise,
-            * assume something's wrong with Log_directory and stop trying to
-            * create files.
+            * ENFILE/EMFILE are not too surprising on a busy system; just
+            * keep using the old file till we manage to get a new one.
+            * Otherwise, assume something's wrong with Log_directory and stop
+            * trying to create files.
             */
            if (saveerrno != ENFILE && saveerrno != EMFILE)
            {
@@ -1108,14 +1113,14 @@ logfile_rotate(bool time_based_rotation, int size_rotation_for)
 
    /* same as above, but for csv file. */
 
-   if (csvlogFile != NULL && ( 
-           time_based_rotation || 
-           (size_rotation_for & LOG_DESTINATION_STDERR)))
+   if (csvlogFile != NULL && (
+                              time_based_rotation ||
+                              (size_rotation_for & LOG_DESTINATION_STDERR)))
    {
        if (Log_truncate_on_rotation && time_based_rotation &&
-           last_csvfile_name != NULL && 
+           last_csvfile_name != NULL &&
            strcmp(csvfilename, last_csvfile_name) != 0)
-           
+
            fh = fopen(csvfilename, "w");
        else
            fh = fopen(csvfilename, "a");
@@ -1130,10 +1135,10 @@ logfile_rotate(bool time_based_rotation, int size_rotation_for)
                            csvfilename)));
 
            /*
-            * ENFILE/EMFILE are not too surprising on a busy system; just keep
-            * using the old file till we manage to get a new one. Otherwise,
-            * assume something's wrong with Log_directory and stop trying to
-            * create files.
+            * ENFILE/EMFILE are not too surprising on a busy system; just
+            * keep using the old file till we manage to get a new one.
+            * Otherwise, assume something's wrong with Log_directory and stop
+            * trying to create files.
             */
            if (saveerrno != ENFILE && saveerrno != EMFILE)
            {
@@ -1179,7 +1184,7 @@ logfile_rotate(bool time_based_rotation, int size_rotation_for)
  * Result is palloc'd.
  */
 static char *
-logfile_getname(pg_time_t timestamp, char * suffix)
+logfile_getname(pg_time_t timestamp, char *suffix)
 {
    char       *filename;
    int         len;
@@ -1206,7 +1211,7 @@ logfile_getname(pg_time_t timestamp, char * suffix)
    if (suffix != NULL)
    {
        len = strlen(filename);
-       if (len > 4 && (strcmp(filename+(len-4),".log") == 0))
+       if (len > 4 && (strcmp(filename + (len - 4), ".log") == 0))
            len -= 4;
        strncpy(filename + len, suffix, MAXPGPATH - len);
    }
index d5736b7e694df7ecf6f10afa6b803701029bc30e..0780403a8df25a2e5c81bc669ec8dfe2a933a3fb 100644 (file)
@@ -34,7 +34,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/postmaster/walwriter.c,v 1.2 2007/09/11 17:15:33 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/postmaster/walwriter.c,v 1.3 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -92,9 +92,9 @@ WalWriterMain(void)
 
    /*
     * If possible, make this process a group leader, so that the postmaster
-    * can signal any child processes too.  (walwriter probably never has
-    * any child processes, but for consistency we make all postmaster
-    * child processes do this.)
+    * can signal any child processes too.  (walwriter probably never has any
+    * child processes, but for consistency we make all postmaster child
+    * processes do this.)
     */
 #ifdef HAVE_SETSID
    if (setsid() < 0)
@@ -107,14 +107,14 @@ WalWriterMain(void)
     * We have no particular use for SIGINT at the moment, but seems
     * reasonable to treat like SIGTERM.
     */
-   pqsignal(SIGHUP, WalSigHupHandler); /* set flag to read config file */
+   pqsignal(SIGHUP, WalSigHupHandler); /* set flag to read config file */
    pqsignal(SIGINT, WalShutdownHandler);       /* request shutdown */
    pqsignal(SIGTERM, WalShutdownHandler);      /* request shutdown */
-   pqsignal(SIGQUIT, wal_quickdie);        /* hard crash time */
+   pqsignal(SIGQUIT, wal_quickdie);    /* hard crash time */
    pqsignal(SIGALRM, SIG_IGN);
    pqsignal(SIGPIPE, SIG_IGN);
    pqsignal(SIGUSR1, SIG_IGN); /* reserve for sinval */
-   pqsignal(SIGUSR2, SIG_IGN); /* not used */
+   pqsignal(SIGUSR2, SIG_IGN); /* not used */
 
    /*
     * Reset some signals that are accepted by postmaster but not here
@@ -133,8 +133,8 @@ WalWriterMain(void)
 #endif
 
    /*
-    * Create a resource owner to keep track of our resources (not clear
-    * that we need this, but may as well have one).
+    * Create a resource owner to keep track of our resources (not clear that
+    * we need this, but may as well have one).
     */
    CurrentResourceOwner = ResourceOwnerCreate(NULL, "Wal Writer");
 
index 0264760ea70ecde891f46b21a7c93684c6c7ed87..268e072c599b03c7baff2b8a9192e03bdda42643 100644 (file)
@@ -28,7 +28,7 @@
  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $PostgreSQL: pgsql/src/backend/regex/regc_color.c,v 1.6 2007/10/06 16:18:09 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/regex/regc_color.c,v 1.7 2007/11/15 21:14:37 momjian Exp $
  *
  *
  * Note that there are some incestuous relationships between this code and
@@ -722,13 +722,14 @@ dumpcolors(struct colormap * cm,
            else
                fprintf(f, "#%2ld%s(%2d): ", (long) co,
                        has, cd->nchrs);
+
            /*
             * Unfortunately, it's hard to do this next bit more efficiently.
             *
             * Spencer's original coding has the loop iterating from CHR_MIN
-            * to CHR_MAX, but that's utterly unusable for 32-bit chr.
-            * For debugging purposes it seems fine to print only chr
-            * codes up to 1000 or so.
+            * to CHR_MAX, but that's utterly unusable for 32-bit chr. For
+            * debugging purposes it seems fine to print only chr codes up to
+            * 1000 or so.
             */
            for (c = CHR_MIN; c < 1000; c++)
                if (GETCOLOR(cm, c) == co)
index 34c13068f9808b4764dc408a13b568f195dcb221..51ce0da2d2890d0c1f45f298b4f3817fa0772765 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/rewrite/rewriteDefine.c,v 1.122 2007/08/27 03:36:08 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/rewrite/rewriteDefine.c,v 1.123 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -671,16 +671,16 @@ EnableDisableRule(Relation rel, const char *rulename,
    Assert(eventRelationOid == owningRel);
    if (!pg_class_ownercheck(eventRelationOid, GetUserId()))
        aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_CLASS,
-                       get_rel_name(eventRelationOid));
-   
+                      get_rel_name(eventRelationOid));
+
    /*
     * Change ev_enabled if it is different from the desired new state.
     */
    if (DatumGetChar(((Form_pg_rewrite) GETSTRUCT(ruletup))->ev_enabled) !=
-           fires_when)
-       {
+       fires_when)
+   {
        ((Form_pg_rewrite) GETSTRUCT(ruletup))->ev_enabled =
-                   CharGetDatum(fires_when);
+           CharGetDatum(fires_when);
        simple_heap_update(pg_rewrite_desc, &ruletup->t_self, ruletup);
 
        /* keep system catalog indexes current */
index 6170b2f984d59f80c3d04a088eb758601cb85a58..a639a5420a5a0d51a577064fbff6d21ed791db36 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/rewrite/rewriteManip.c,v 1.105 2007/09/06 17:31:58 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/rewrite/rewriteManip.c,v 1.106 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -975,14 +975,14 @@ ResolveNew_mutator(Node *node, ResolveNew_context *context)
            context->sublevels_up == 0)
        {
            /*
-            * We get here if a WHERE CURRENT OF expression turns out to
-            * apply to a view.  Someday we might be able to translate
-            * the expression to apply to an underlying table of the view,
-            * but right now it's not implemented.
+            * We get here if a WHERE CURRENT OF expression turns out to apply
+            * to a view.  Someday we might be able to translate the
+            * expression to apply to an underlying table of the view, but
+            * right now it's not implemented.
             */
            ereport(ERROR,
                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                    errmsg("WHERE CURRENT OF on a view is not implemented")));
+                  errmsg("WHERE CURRENT OF on a view is not implemented")));
        }
        /* otherwise fall through to copy the expr normally */
    }
index 57aac234ed280a06f48163f908cf5616fd183d78..94786975d702421e0f3e154be1a43fe9c1a065bc 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/snowball/dict_snowball.c,v 1.3 2007/08/25 00:03:59 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/snowball/dict_snowball.c,v 1.4 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -66,6 +66,7 @@ PG_MODULE_MAGIC;
 
 PG_FUNCTION_INFO_V1(dsnowball_init);
 Datum      dsnowball_init(PG_FUNCTION_ARGS);
+
 PG_FUNCTION_INFO_V1(dsnowball_lexize);
 Datum      dsnowball_lexize(PG_FUNCTION_ARGS);
 
@@ -77,7 +78,7 @@ typedef struct stemmer_module
    struct SN_env *(*create) (void);
    void        (*close) (struct SN_env *);
    int         (*stem) (struct SN_env *);
-} stemmer_module;
+}  stemmer_module;
 
 static const stemmer_module stemmer_modules[] =
 {
@@ -139,7 +140,7 @@ typedef struct DictSnowball
     * context, so we just remember CurrentMemoryContext
     */
    MemoryContext dictCtx;
-} DictSnowball;
+}  DictSnowball;
 
 
 static void
@@ -238,7 +239,7 @@ dsnowball_lexize(PG_FUNCTION_ARGS)
 {
    DictSnowball *d = (DictSnowball *) PG_GETARG_POINTER(0);
    char       *in = (char *) PG_GETARG_POINTER(1);
-   int32      len = PG_GETARG_INT32(2);
+   int32       len = PG_GETARG_INT32(2);
    char       *txt = lowerstr_with_len(in, len);
    TSLexeme   *res = palloc0(sizeof(TSLexeme) * 2);
 
@@ -259,7 +260,7 @@ dsnowball_lexize(PG_FUNCTION_ARGS)
 
            recoded = (char *) pg_do_encoding_conversion((unsigned char *) txt,
                                                         strlen(txt),
-                                                        GetDatabaseEncoding(),
+                                                      GetDatabaseEncoding(),
                                                         PG_UTF8);
            if (recoded == NULL)
                elog(ERROR, "encoding conversion failed");
@@ -292,7 +293,7 @@ dsnowball_lexize(PG_FUNCTION_ARGS)
            recoded = (char *) pg_do_encoding_conversion((unsigned char *) txt,
                                                         strlen(txt),
                                                         PG_UTF8,
-                                                        GetDatabaseEncoding());
+                                                     GetDatabaseEncoding());
            if (recoded == NULL)
                elog(ERROR, "encoding conversion failed");
 
index ce7c54deeec68b37621f43056a511b350e337e0b..6a18e274e11c50c9d9e5432e930a35fa8c1b27e7 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.226 2007/09/25 22:11:48 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.227 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -77,8 +77,8 @@ static volatile BufferDesc *PinCountWaitBuf = NULL;
 
 
 static Buffer ReadBuffer_common(Relation reln, BlockNumber blockNum,
-                               bool zeroPage,
-                               BufferAccessStrategy strategy);
+                 bool zeroPage,
+                 BufferAccessStrategy strategy);
 static bool PinBuffer(volatile BufferDesc *buf, BufferAccessStrategy strategy);
 static void PinBuffer_Locked(volatile BufferDesc *buf);
 static void UnpinBuffer(volatile BufferDesc *buf, bool fixOwner);
@@ -90,8 +90,8 @@ static void TerminateBufferIO(volatile BufferDesc *buf, bool clear_dirty,
                  int set_flag_bits);
 static void buffer_write_error_callback(void *arg);
 static volatile BufferDesc *BufferAlloc(Relation reln, BlockNumber blockNum,
-                                       BufferAccessStrategy strategy,
-                                       bool *foundPtr);
+           BufferAccessStrategy strategy,
+           bool *foundPtr);
 static void FlushBuffer(volatile BufferDesc *buf, SMgrRelation reln);
 static void AtProcExit_Buffers(int code, Datum arg);
 
@@ -215,10 +215,10 @@ ReadBuffer_common(Relation reln, BlockNumber blockNum, bool zeroPage,
         * This can happen because mdread doesn't complain about reads beyond
         * EOF (when zero_damaged_pages is ON) and so a previous attempt to
         * read a block beyond EOF could have left a "valid" zero-filled
-        * buffer.  Unfortunately, we have also seen this case occurring
+        * buffer.  Unfortunately, we have also seen this case occurring
         * because of buggy Linux kernels that sometimes return an
-        * lseek(SEEK_END) result that doesn't account for a recent write.
-        * In that situation, the pre-existing buffer would contain valid data
+        * lseek(SEEK_END) result that doesn't account for a recent write. In
+        * that situation, the pre-existing buffer would contain valid data
         * that we don't want to overwrite.  Since the legitimate case should
         * always have left a zero-filled buffer, complain if not PageIsNew.
         */
@@ -283,9 +283,9 @@ ReadBuffer_common(Relation reln, BlockNumber blockNum, bool zeroPage,
    }
    else
    {
-       /* 
-        * Read in the page, unless the caller intends to overwrite it
-        * and just wants us to allocate a buffer.
+       /*
+        * Read in the page, unless the caller intends to overwrite it and
+        * just wants us to allocate a buffer.
         */
        if (zeroPage)
            MemSet((char *) bufBlock, 0, BLCKSZ);
@@ -420,7 +420,7 @@ BufferAlloc(Relation reln,
    /* Loop here in case we have to try another victim buffer */
    for (;;)
    {
-       bool lock_held;
+       bool        lock_held;
 
        /*
         * Select a victim buffer.  The buffer is returned with its header
@@ -472,7 +472,7 @@ BufferAlloc(Relation reln,
                 * If using a nondefault strategy, and writing the buffer
                 * would require a WAL flush, let the strategy decide whether
                 * to go ahead and write/reuse the buffer or to choose another
-                * victim.  We need lock to inspect the page LSN, so this
+                * victim.  We need lock to inspect the page LSN, so this
                 * can't be done inside StrategyGetBuffer.
                 */
                if (strategy != NULL &&
@@ -630,8 +630,8 @@ BufferAlloc(Relation reln,
     *
     * Clearing BM_VALID here is necessary, clearing the dirtybits is just
     * paranoia.  We also reset the usage_count since any recency of use of
-    * the old content is no longer relevant.  (The usage_count starts out
-    * at 1 so that the buffer can survive one clock-sweep pass.)
+    * the old content is no longer relevant.  (The usage_count starts out at
+    * 1 so that the buffer can survive one clock-sweep pass.)
     */
    buf->tag = newTag;
    buf->flags &= ~(BM_VALID | BM_DIRTY | BM_JUST_DIRTIED | BM_CHECKPOINT_NEEDED | BM_IO_ERROR);
@@ -865,7 +865,7 @@ ReleaseAndReadBuffer(Buffer buffer,
  * when we first pin it; for other strategies we just make sure the usage_count
  * isn't zero.  (The idea of the latter is that we don't want synchronized
  * heap scans to inflate the count, but we need it to not be zero to discourage
- * other backends from stealing buffers from our ring.  As long as we cycle
+ * other backends from stealing buffers from our ring. As long as we cycle
  * through the ring faster than the global clock-sweep cycles, buffers in
  * our ring won't be chosen as victims for replacement by other backends.)
  *
@@ -1016,9 +1016,8 @@ BufferSync(int flags)
     * have the flag set.
     *
     * Note that if we fail to write some buffer, we may leave buffers with
-    * BM_CHECKPOINT_NEEDED still set.  This is OK since any such buffer
-    * would certainly need to be written for the next checkpoint attempt,
-    * too.
+    * BM_CHECKPOINT_NEEDED still set.  This is OK since any such buffer would
+    * certainly need to be written for the next checkpoint attempt, too.
     */
    num_to_write = 0;
    for (buf_id = 0; buf_id < NBuffers; buf_id++)
@@ -1045,11 +1044,11 @@ BufferSync(int flags)
 
    /*
     * Loop over all buffers again, and write the ones (still) marked with
-    * BM_CHECKPOINT_NEEDED.  In this loop, we start at the clock sweep
-    * point since we might as well dump soon-to-be-recycled buffers first.
+    * BM_CHECKPOINT_NEEDED.  In this loop, we start at the clock sweep point
+    * since we might as well dump soon-to-be-recycled buffers first.
     *
-    * Note that we don't read the buffer alloc count here --- that should
-    * be left untouched till the next BgBufferSync() call.
+    * Note that we don't read the buffer alloc count here --- that should be
+    * left untouched till the next BgBufferSync() call.
     */
    buf_id = StrategySyncStart(NULL, NULL);
    num_to_scan = NBuffers;
@@ -1067,8 +1066,8 @@ BufferSync(int flags)
         * examine the bit here and the time SyncOneBuffer acquires lock,
         * someone else not only wrote the buffer but replaced it with another
         * page and dirtied it.  In that improbable case, SyncOneBuffer will
-        * write the buffer though we didn't need to.  It doesn't seem
-        * worth guarding against this, though.
+        * write the buffer though we didn't need to.  It doesn't seem worth
+        * guarding against this, though.
         */
        if (bufHdr->flags & BM_CHECKPOINT_NEEDED)
        {
@@ -1092,8 +1091,8 @@ BufferSync(int flags)
                    break;
 
                /*
-                * Perform normal bgwriter duties and sleep to throttle
-                * our I/O rate.
+                * Perform normal bgwriter duties and sleep to throttle our
+                * I/O rate.
                 */
                CheckpointWriteDelay(flags,
                                     (double) num_written / num_to_write);
@@ -1105,8 +1104,8 @@ BufferSync(int flags)
    }
 
    /*
-    * Update checkpoint statistics. As noted above, this doesn't
-    * include buffers written by other backends or bgwriter scan.
+    * Update checkpoint statistics. As noted above, this doesn't include
+    * buffers written by other backends or bgwriter scan.
     */
    CheckpointStats.ckpt_bufs_written += num_written;
 }
@@ -1128,7 +1127,7 @@ BgBufferSync(void)
     * Information saved between calls so we can determine the strategy
     * point's advance rate and avoid scanning already-cleaned buffers.
     */
-   static bool saved_info_valid = false;
+   static bool saved_info_valid = false;
    static int  prev_strategy_buf_id;
    static uint32 prev_strategy_passes;
    static int  next_to_clean;
@@ -1157,8 +1156,8 @@ BgBufferSync(void)
    int         reusable_buffers;
 
    /*
-    * Find out where the freelist clock sweep currently is, and how
-    * many buffer allocations have happened since our last call.
+    * Find out where the freelist clock sweep currently is, and how many
+    * buffer allocations have happened since our last call.
     */
    strategy_buf_id = StrategySyncStart(&strategy_passes, &recent_alloc);
 
@@ -1166,9 +1165,9 @@ BgBufferSync(void)
    BgWriterStats.m_buf_alloc += recent_alloc;
 
    /*
-    * If we're not running the LRU scan, just stop after doing the
-    * stats stuff.  We mark the saved state invalid so that we can recover
-    * sanely if LRU scan is turned back on later.
+    * If we're not running the LRU scan, just stop after doing the stats
+    * stuff.  We mark the saved state invalid so that we can recover sanely
+    * if LRU scan is turned back on later.
     */
    if (bgwriter_lru_maxpages <= 0)
    {
@@ -1178,18 +1177,19 @@ BgBufferSync(void)
 
    /*
     * Compute strategy_delta = how many buffers have been scanned by the
-    * clock sweep since last time.  If first time through, assume none.
-    * Then see if we are still ahead of the clock sweep, and if so, how many
-    * buffers we could scan before we'd catch up with it and "lap" it.
-    * Note: weird-looking coding of xxx_passes comparisons are to avoid
-    * bogus behavior when the passes counts wrap around.
+    * clock sweep since last time.  If first time through, assume none. Then
+    * see if we are still ahead of the clock sweep, and if so, how many
+    * buffers we could scan before we'd catch up with it and "lap" it. Note:
+    * weird-looking coding of xxx_passes comparisons are to avoid bogus
+    * behavior when the passes counts wrap around.
     */
    if (saved_info_valid)
    {
-       int32   passes_delta = strategy_passes - prev_strategy_passes;
+       int32       passes_delta = strategy_passes - prev_strategy_passes;
 
        strategy_delta = strategy_buf_id - prev_strategy_buf_id;
-       strategy_delta += (long) passes_delta * NBuffers;
+       strategy_delta += (long) passes_delta *NBuffers;
+
        Assert(strategy_delta >= 0);
 
        if ((int32) (next_passes - strategy_passes) > 0)
@@ -1218,8 +1218,8 @@ BgBufferSync(void)
        else
        {
            /*
-            * We're behind, so skip forward to the strategy point
-            * and start cleaning from there.
+            * We're behind, so skip forward to the strategy point and start
+            * cleaning from there.
             */
 #ifdef BGW_DEBUG
            elog(DEBUG2, "bgwriter behind: bgw %u-%u strategy %u-%u delta=%ld",
@@ -1235,8 +1235,8 @@ BgBufferSync(void)
    else
    {
        /*
-        * Initializing at startup or after LRU scanning had been off.
-        * Always start at the strategy point.
+        * Initializing at startup or after LRU scanning had been off. Always
+        * start at the strategy point.
         */
 #ifdef BGW_DEBUG
        elog(DEBUG2, "bgwriter initializing: strategy %u-%u",
@@ -1254,8 +1254,8 @@ BgBufferSync(void)
    saved_info_valid = true;
 
    /*
-    * Compute how many buffers had to be scanned for each new allocation,
-    * ie, 1/density of reusable buffers, and track a moving average of that.
+    * Compute how many buffers had to be scanned for each new allocation, ie,
+    * 1/density of reusable buffers, and track a moving average of that.
     *
     * If the strategy point didn't move, we don't update the density estimate
     */
@@ -1268,16 +1268,16 @@ BgBufferSync(void)
 
    /*
     * Estimate how many reusable buffers there are between the current
-    * strategy point and where we've scanned ahead to, based on the
-    * smoothed density estimate.
+    * strategy point and where we've scanned ahead to, based on the smoothed
+    * density estimate.
     */
    bufs_ahead = NBuffers - bufs_to_lap;
    reusable_buffers_est = (float) bufs_ahead / smoothed_density;
 
    /*
-    * Track a moving average of recent buffer allocations.  Here, rather
-    * than a true average we want a fast-attack, slow-decline behavior:
-    * we immediately follow any increase.
+    * Track a moving average of recent buffer allocations.  Here, rather than
+    * a true average we want a fast-attack, slow-decline behavior: we
+    * immediately follow any increase.
     */
    if (smoothed_alloc <= (float) recent_alloc)
        smoothed_alloc = recent_alloc;
@@ -1291,12 +1291,12 @@ BgBufferSync(void)
    /*
     * Even in cases where there's been little or no buffer allocation
     * activity, we want to make a small amount of progress through the buffer
-    * cache so that as many reusable buffers as possible are clean
-    * after an idle period.
+    * cache so that as many reusable buffers as possible are clean after an
+    * idle period.
     *
-    * (scan_whole_pool_milliseconds / BgWriterDelay) computes how many
-    * times the BGW will be called during the scan_whole_pool time;
-    * slice the buffer pool into that many sections.
+    * (scan_whole_pool_milliseconds / BgWriterDelay) computes how many times
+    * the BGW will be called during the scan_whole_pool time; slice the
+    * buffer pool into that many sections.
     */
    min_scan_buffers = (int) (NBuffers / (scan_whole_pool_milliseconds / BgWriterDelay));
 
@@ -1311,9 +1311,9 @@ BgBufferSync(void)
 
    /*
     * Now write out dirty reusable buffers, working forward from the
-    * next_to_clean point, until we have lapped the strategy scan, or
-    * cleaned enough buffers to match our estimate of the next cycle's
-    * allocation requirements, or hit the bgwriter_lru_maxpages limit.
+    * next_to_clean point, until we have lapped the strategy scan, or cleaned
+    * enough buffers to match our estimate of the next cycle's allocation
+    * requirements, or hit the bgwriter_lru_maxpages limit.
     */
 
    /* Make sure we can handle the pin inside SyncOneBuffer */
@@ -1326,7 +1326,7 @@ BgBufferSync(void)
    /* Execute the LRU scan */
    while (num_to_scan > 0 && reusable_buffers < upcoming_alloc_est)
    {
-       int     buffer_state = SyncOneBuffer(next_to_clean, true);
+       int         buffer_state = SyncOneBuffer(next_to_clean, true);
 
        if (++next_to_clean >= NBuffers)
        {
@@ -1361,11 +1361,11 @@ BgBufferSync(void)
 
    /*
     * Consider the above scan as being like a new allocation scan.
-    * Characterize its density and update the smoothed one based on it.
-    * This effectively halves the moving average period in cases where
-    * both the strategy and the background writer are doing some useful
-    * scanning, which is helpful because a long memory isn't as desirable
-    * on the density estimates.
+    * Characterize its density and update the smoothed one based on it. This
+    * effectively halves the moving average period in cases where both the
+    * strategy and the background writer are doing some useful scanning,
+    * which is helpful because a long memory isn't as desirable on the
+    * density estimates.
     */
    strategy_delta = bufs_to_lap - num_to_scan;
    recent_alloc = reusable_buffers - reusable_buffers_est;
@@ -1402,7 +1402,7 @@ static int
 SyncOneBuffer(int buf_id, bool skip_recently_used)
 {
    volatile BufferDesc *bufHdr = &BufferDescriptors[buf_id];
-   int     result = 0;
+   int         result = 0;
 
    /*
     * Check whether buffer needs writing.
@@ -2312,7 +2312,7 @@ LockBufferForCleanup(Buffer buffer)
  *
  * We won't loop, but just check once to see if the pin count is OK.  If
  * not, return FALSE with no lock held.
- */ 
+ */
 bool
 ConditionalLockBufferForCleanup(Buffer buffer)
 {
index 781b754cfceac195ddca44a1f32f62903c1ebc8c..b1219b58f75498bc5803a95d2b01bbf9f5b18fd9 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/buffer/freelist.c,v 1.61 2007/09/25 20:03:38 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/buffer/freelist.c,v 1.62 2007/11/15 21:14:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -36,10 +36,10 @@ typedef struct
     */
 
    /*
-    * Statistics.  These counters should be wide enough that they can't
+    * Statistics.  These counters should be wide enough that they can't
     * overflow during a single bgwriter cycle.
     */
-   uint32      completePasses;     /* Complete cycles of the clock sweep */
+   uint32      completePasses; /* Complete cycles of the clock sweep */
    uint32      numBufferAllocs;    /* Buffers allocated since last reset */
 } BufferStrategyControl;
 
@@ -57,31 +57,33 @@ typedef struct BufferAccessStrategyData
    BufferAccessStrategyType btype;
    /* Number of elements in buffers[] array */
    int         ring_size;
+
    /*
     * Index of the "current" slot in the ring, ie, the one most recently
     * returned by GetBufferFromRing.
     */
    int         current;
+
    /*
-    * True if the buffer just returned by StrategyGetBuffer had been in
-    * the ring already.
+    * True if the buffer just returned by StrategyGetBuffer had been in the
+    * ring already.
     */
    bool        current_was_in_ring;
 
    /*
-    * Array of buffer numbers.  InvalidBuffer (that is, zero) indicates
-    * we have not yet selected a buffer for this ring slot.  For allocation
+    * Array of buffer numbers.  InvalidBuffer (that is, zero) indicates we
+    * have not yet selected a buffer for this ring slot.  For allocation
     * simplicity this is palloc'd together with the fixed fields of the
     * struct.
     */
-   Buffer      buffers[1];             /* VARIABLE SIZE ARRAY */
-} BufferAccessStrategyData;
+   Buffer      buffers[1];     /* VARIABLE SIZE ARRAY */
+}  BufferAccessStrategyData;
 
 
 /* Prototypes for internal functions */
 static volatile BufferDesc *GetBufferFromRing(BufferAccessStrategy strategy);
 static void AddBufferToRing(BufferAccessStrategy strategy,
-                           volatile BufferDesc *buf);
+               volatile BufferDesc *buf);
 
 
 /*
@@ -108,8 +110,8 @@ StrategyGetBuffer(BufferAccessStrategy strategy, bool *lock_held)
    int         trycounter;
 
    /*
-    * If given a strategy object, see whether it can select a buffer.
-    * We assume strategy objects don't need the BufFreelistLock.
+    * If given a strategy object, see whether it can select a buffer. We
+    * assume strategy objects don't need the BufFreelistLock.
     */
    if (strategy != NULL)
    {
@@ -127,7 +129,7 @@ StrategyGetBuffer(BufferAccessStrategy strategy, bool *lock_held)
 
    /*
     * We count buffer allocation requests so that the bgwriter can estimate
-    * the rate of buffer consumption.  Note that buffers recycled by a
+    * the rate of buffer consumption.  Note that buffers recycled by a
     * strategy object are intentionally not counted here.
     */
    StrategyControl->numBufferAllocs++;
@@ -151,8 +153,8 @@ StrategyGetBuffer(BufferAccessStrategy strategy, bool *lock_held)
         * If the buffer is pinned or has a nonzero usage_count, we cannot use
         * it; discard it and retry.  (This can only happen if VACUUM put a
         * valid buffer in the freelist and then someone else used it before
-        * we got to it.  It's probably impossible altogether as of 8.3,
-        * but we'd better check anyway.)
+        * we got to it.  It's probably impossible altogether as of 8.3, but
+        * we'd better check anyway.)
         */
        LockBufHdr(buf);
        if (buf->refcount == 0 && buf->usage_count == 0)
@@ -246,7 +248,7 @@ StrategyFreeBuffer(volatile BufferDesc *buf)
  *
  * In addition, we return the completed-pass count (which is effectively
  * the higher-order bits of nextVictimBuffer) and the count of recent buffer
- * allocs if non-NULL pointers are passed.  The alloc count is reset after
+ * allocs if non-NULL pointers are passed. The alloc count is reset after
  * being read.
  */
 int
@@ -363,12 +365,12 @@ BufferAccessStrategy
 GetAccessStrategy(BufferAccessStrategyType btype)
 {
    BufferAccessStrategy strategy;
-   int     ring_size;
+   int         ring_size;
 
    /*
-    * Select ring size to use.  See buffer/README for rationales.
-    * (Currently all cases are the same size, but keep this code
-    * structure for flexibility.)
+    * Select ring size to use.  See buffer/README for rationales. (Currently
+    * all cases are the same size, but keep this code structure for
+    * flexibility.)
     *
     * Note: if you change the ring size for BAS_BULKREAD, see also
     * SYNC_SCAN_REPORT_INTERVAL in access/heap/syncscan.c.
@@ -438,9 +440,9 @@ GetBufferFromRing(BufferAccessStrategy strategy)
        strategy->current = 0;
 
    /*
-    * If the slot hasn't been filled yet, tell the caller to allocate
-    * a new buffer with the normal allocation strategy.  He will then
-    * fill this slot by calling AddBufferToRing with the new buffer.
+    * If the slot hasn't been filled yet, tell the caller to allocate a new
+    * buffer with the normal allocation strategy.  He will then fill this
+    * slot by calling AddBufferToRing with the new buffer.
     */
    bufnum = strategy->buffers[strategy->current];
    if (bufnum == InvalidBuffer)
@@ -454,9 +456,9 @@ GetBufferFromRing(BufferAccessStrategy strategy)
     *
     * If usage_count is 0 or 1 then the buffer is fair game (we expect 1,
     * since our own previous usage of the ring element would have left it
-    * there, but it might've been decremented by clock sweep since then).
-    * A higher usage_count indicates someone else has touched the buffer,
-    * so we shouldn't re-use it.
+    * there, but it might've been decremented by clock sweep since then). A
+    * higher usage_count indicates someone else has touched the buffer, so we
+    * shouldn't re-use it.
     */
    buf = &BufferDescriptors[bufnum - 1];
    LockBufHdr(buf);
@@ -492,7 +494,7 @@ AddBufferToRing(BufferAccessStrategy strategy, volatile BufferDesc *buf)
  *
  * When a nondefault strategy is used, the buffer manager calls this function
  * when it turns out that the buffer selected by StrategyGetBuffer needs to
- * be written out and doing so would require flushing WAL too.  This gives us
+ * be written out and doing so would require flushing WAL too. This gives us
  * a chance to choose a different victim.
  *
  * Returns true if buffer manager should ask for a new victim, and false
@@ -507,7 +509,7 @@ StrategyRejectBuffer(BufferAccessStrategy strategy, volatile BufferDesc *buf)
 
    /* Don't muck with behavior of normal buffer-replacement strategy */
    if (!strategy->current_was_in_ring ||
-       strategy->buffers[strategy->current] != BufferDescriptorGetBuffer(buf))
+     strategy->buffers[strategy->current] != BufferDescriptorGetBuffer(buf))
        return false;
 
    /*
index ad2bcf8dac6fa520bd6cb8a333fe748001990619..42d68a8f7e4159c3fc9e5b2ceab8c127972b06b2 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/buffer/localbuf.c,v 1.77 2007/05/30 20:11:59 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/buffer/localbuf.c,v 1.78 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -139,7 +139,7 @@ LocalBufferAlloc(Relation reln, BlockNumber blockNum, bool *foundPtr)
                /* Found a usable buffer */
                LocalRefCount[b]++;
                ResourceOwnerRememberBuffer(CurrentResourceOwner,
-                                           BufferDescriptorGetBuffer(bufHdr));
+                                         BufferDescriptorGetBuffer(bufHdr));
                break;
            }
        }
@@ -364,7 +364,7 @@ GetLocalBufferStorage(void)
    if (next_buf_in_block >= num_bufs_in_block)
    {
        /* Need to make a new request to memmgr */
-       int     num_bufs;
+       int         num_bufs;
 
        /* Start with a 16-buffer request; subsequent ones double each time */
        num_bufs = Max(num_bufs_in_block * 2, 16);
index 79da1f9c6fefd04b4415ec30003a9b9ac029968f..6d70fea77d9038543ba465924b160a7c1b484f88 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/file/fd.c,v 1.140 2007/07/26 15:15:18 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/file/fd.c,v 1.141 2007/11/15 21:14:38 momjian Exp $
  *
  * NOTES:
  *
@@ -855,16 +855,16 @@ OpenTemporaryFile(bool interXact)
 
    /*
     * If some temp tablespace(s) have been given to us, try to use the next
-    * one.  If a given tablespace can't be found, we silently fall back
-    * to the database's default tablespace.
+    * one.  If a given tablespace can't be found, we silently fall back to
+    * the database's default tablespace.
     *
     * BUT: if the temp file is slated to outlive the current transaction,
-    * force it into the database's default tablespace, so that it will
-    * not pose a threat to possible tablespace drop attempts.
+    * force it into the database's default tablespace, so that it will not
+    * pose a threat to possible tablespace drop attempts.
     */
    if (numTempTableSpaces > 0 && !interXact)
    {
-       Oid     tblspcOid = GetNextTempTableSpace();
+       Oid         tblspcOid = GetNextTempTableSpace();
 
        if (OidIsValid(tblspcOid))
            file = OpenTemporaryFileInTablespace(tblspcOid, false);
@@ -872,7 +872,7 @@ OpenTemporaryFile(bool interXact)
 
    /*
     * If not, or if tablespace is bad, create in database's default
-    * tablespace.  MyDatabaseTableSpace should normally be set before we get
+    * tablespace.  MyDatabaseTableSpace should normally be set before we get
     * here, but just in case it isn't, fall back to pg_default tablespace.
     */
    if (file <= 0)
@@ -941,8 +941,8 @@ OpenTemporaryFileInTablespace(Oid tblspcOid, bool rejectError)
    if (file <= 0)
    {
        /*
-        * We might need to create the tablespace's tempfile directory,
-        * if no one has yet done so.
+        * We might need to create the tablespace's tempfile directory, if no
+        * one has yet done so.
         *
         * Don't check for error from mkdir; it could fail if someone else
         * just did the same thing.  If it doesn't work then we'll bomb out on
@@ -967,8 +967,8 @@ OpenTemporaryFileInTablespace(Oid tblspcOid, bool rejectError)
 void
 FileClose(File file)
 {
-   Vfd         *vfdP;
-   struct stat filestats;
+   Vfd        *vfdP;
+   struct stat filestats;
 
    Assert(FileIsValid(file));
 
@@ -1542,13 +1542,14 @@ SetTempTablespaces(Oid *tableSpaces, int numSpaces)
    Assert(numSpaces >= 0);
    tempTableSpaces = tableSpaces;
    numTempTableSpaces = numSpaces;
+
    /*
-    * Select a random starting point in the list.  This is to minimize
-    * conflicts between backends that are most likely sharing the same
-    * list of temp tablespaces.  Note that if we create multiple temp
-    * files in the same transaction, we'll advance circularly through
-    * the list --- this ensures that large temporary sort files are
-    * nicely spread across all available tablespaces.
+    * Select a random starting point in the list.  This is to minimize
+    * conflicts between backends that are most likely sharing the same list
+    * of temp tablespaces.  Note that if we create multiple temp files in the
+    * same transaction, we'll advance circularly through the list --- this
+    * ensures that large temporary sort files are nicely spread across all
+    * available tablespaces.
     */
    if (numSpaces > 1)
        nextTempTableSpace = random() % numSpaces;
@@ -1572,7 +1573,7 @@ TempTablespacesAreSet(void)
 /*
  * GetNextTempTableSpace
  *
- * Select the next temp tablespace to use.  A result of InvalidOid means
+ * Select the next temp tablespace to use. A result of InvalidOid means
  * to use the current database's default tablespace.
  */
 Oid
index 8f32e36301c03b08e183a22fd991b17160b1c240..25c02877304e76b980638d8feef25f81fc27662f 100644 (file)
@@ -13,7 +13,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/ipc/ipc.c,v 1.98 2007/11/04 17:55:15 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/ipc/ipc.c,v 1.99 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -118,34 +118,31 @@ proc_exit(int code)
 #ifdef PROFILE_PID_DIR
    {
        /*
-        * If we are profiling ourself then gprof's mcleanup() is about
-        * to write out a profile to ./gmon.out.  Since mcleanup() always 
-        * uses a fixed file name, each backend will overwrite earlier
-        * profiles. To fix that, we create a separate subdirectory for
-        * each backend (./gprof/pid) and 'cd' to that subdirectory before
-        * we exit() - that forces mcleanup() to write each profile into
-        * its own directory.  We end up with something like:
-        *  $PGDATA/gprof/8829/gmon.out
-        *  $PGDATA/gprof/8845/gmon.out
-        *      ...
+        * If we are profiling ourself then gprof's mcleanup() is about to
+        * write out a profile to ./gmon.out.  Since mcleanup() always uses a
+        * fixed file name, each backend will overwrite earlier profiles. To
+        * fix that, we create a separate subdirectory for each backend
+        * (./gprof/pid) and 'cd' to that subdirectory before we exit() - that
+        * forces mcleanup() to write each profile into its own directory.  We
+        * end up with something like: $PGDATA/gprof/8829/gmon.out
+        * $PGDATA/gprof/8845/gmon.out ...
         *
         * To avoid undesirable disk space bloat, autovacuum workers are
         * discriminated against: all their gmon.out files go into the same
         * subdirectory.  Without this, an installation that is "just sitting
         * there" nonetheless eats megabytes of disk space every few seconds.
         *
-        * Note that we do this here instead of in an on_proc_exit() 
-        * callback because we want to ensure that this code executes
-        * last - we don't want to interfere with any other on_proc_exit()
-        * callback.
+        * Note that we do this here instead of in an on_proc_exit() callback
+        * because we want to ensure that this code executes last - we don't
+        * want to interfere with any other on_proc_exit() callback.
         */
-       char gprofDirName[32];
+       char        gprofDirName[32];
 
        if (IsAutoVacuumWorkerProcess())
            snprintf(gprofDirName, 32, "gprof/avworker");
        else
            snprintf(gprofDirName, 32, "gprof/%d", (int) getpid());
-       
+
        mkdir("gprof", 0777);
        mkdir(gprofDirName, 0777);
        chdir(gprofDirName);
index 86c54448e4cf273a7929a4bbfbb7d1dbad8da1d1..5fc3cfc5c2ca91f1ae02de74d8e89a4820bee457 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/ipc/ipci.c,v 1.92 2007/06/08 18:23:52 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/ipc/ipci.c,v 1.93 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -44,7 +44,7 @@ static bool addin_request_allowed = true;
  *     a loadable module.
  *
  * This is only useful if called from the _PG_init hook of a library that
- * is loaded into the postmaster via shared_preload_libraries.  Once
+ * is loaded into the postmaster via shared_preload_libraries. Once
  * shared memory has been allocated, calls will be ignored.  (We could
  * raise an error, but it seems better to make it a no-op, so that
  * libraries containing such calls can be reloaded if needed.)
index c455c89f998c20fbea2795d1e716de9a1bf42d49..d7c8d706fd905bffbe162a232a53858f5096f394 100644 (file)
@@ -23,7 +23,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/ipc/procarray.c,v 1.36 2007/10/24 20:55:36 alvherre Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/ipc/procarray.c,v 1.37 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -230,9 +230,9 @@ ProcArrayEndTransaction(PGPROC *proc, TransactionId latestXid)
    if (TransactionIdIsValid(latestXid))
    {
        /*
-        * We must lock ProcArrayLock while clearing proc->xid, so
-        * that we do not exit the set of "running" transactions while
-        * someone else is taking a snapshot.  See discussion in
+        * We must lock ProcArrayLock while clearing proc->xid, so that we do
+        * not exit the set of "running" transactions while someone else is
+        * taking a snapshot.  See discussion in
         * src/backend/access/transam/README.
         */
        Assert(TransactionIdIsValid(proc->xid));
@@ -244,7 +244,7 @@ ProcArrayEndTransaction(PGPROC *proc, TransactionId latestXid)
        proc->xmin = InvalidTransactionId;
        /* must be cleared with xid/xmin: */
        proc->vacuumFlags &= ~PROC_VACUUM_STATE_MASK;
-       proc->inCommit = false;         /* be sure this is cleared in abort */
+       proc->inCommit = false; /* be sure this is cleared in abort */
 
        /* Clear the subtransaction-XID cache too while holding the lock */
        proc->subxids.nxids = 0;
@@ -260,9 +260,9 @@ ProcArrayEndTransaction(PGPROC *proc, TransactionId latestXid)
    else
    {
        /*
-        * If we have no XID, we don't need to lock, since we won't
-        * affect anyone else's calculation of a snapshot.  We might
-        * change their estimate of global xmin, but that's OK.
+        * If we have no XID, we don't need to lock, since we won't affect
+        * anyone else's calculation of a snapshot.  We might change their
+        * estimate of global xmin, but that's OK.
         */
        Assert(!TransactionIdIsValid(proc->xid));
 
@@ -270,7 +270,7 @@ ProcArrayEndTransaction(PGPROC *proc, TransactionId latestXid)
        proc->xmin = InvalidTransactionId;
        /* must be cleared with xid/xmin: */
        proc->vacuumFlags &= ~PROC_VACUUM_STATE_MASK;
-       proc->inCommit = false;         /* be sure this is cleared in abort */
+       proc->inCommit = false; /* be sure this is cleared in abort */
 
        Assert(proc->subxids.nxids == 0);
        Assert(proc->subxids.overflowed == false);
@@ -291,8 +291,8 @@ ProcArrayClearTransaction(PGPROC *proc)
 {
    /*
     * We can skip locking ProcArrayLock here, because this action does not
-    * actually change anyone's view of the set of running XIDs: our entry
-    * is duplicate with the gxact that has already been inserted into the
+    * actually change anyone's view of the set of running XIDs: our entry is
+    * duplicate with the gxact that has already been inserted into the
     * ProcArray.
     */
    proc->xid = InvalidTransactionId;
@@ -343,9 +343,9 @@ TransactionIdIsInProgress(TransactionId xid)
 
    /*
     * Don't bother checking a transaction older than RecentXmin; it could not
-    * possibly still be running.  (Note: in particular, this guarantees
-    * that we reject InvalidTransactionId, FrozenTransactionId, etc as
-    * not running.)
+    * possibly still be running.  (Note: in particular, this guarantees that
+    * we reject InvalidTransactionId, FrozenTransactionId, etc as not
+    * running.)
     */
    if (TransactionIdPrecedes(xid, RecentXmin))
    {
@@ -364,8 +364,8 @@ TransactionIdIsInProgress(TransactionId xid)
    }
 
    /*
-    * If not first time through, get workspace to remember main XIDs in.
-    * We malloc it permanently to avoid repeated palloc/pfree overhead.
+    * If not first time through, get workspace to remember main XIDs in. We
+    * malloc it permanently to avoid repeated palloc/pfree overhead.
     */
    if (xids == NULL)
    {
@@ -393,7 +393,7 @@ TransactionIdIsInProgress(TransactionId xid)
    /* No shortcuts, gotta grovel through the array */
    for (i = 0; i < arrayP->numProcs; i++)
    {
-       volatile PGPROC    *proc = arrayP->procs[i];
+       volatile PGPROC *proc = arrayP->procs[i];
        TransactionId pxid;
 
        /* Ignore my own proc --- dealt with it above */
@@ -477,8 +477,8 @@ TransactionIdIsInProgress(TransactionId xid)
 
    /*
     * It isn't aborted, so check whether the transaction tree it belongs to
-    * is still running (or, more precisely, whether it was running when
-    * we held ProcArrayLock).
+    * is still running (or, more precisely, whether it was running when we
+    * held ProcArrayLock).
     */
    topxid = SubTransGetTopmostTransaction(xid);
    Assert(TransactionIdIsValid(topxid));
@@ -519,7 +519,7 @@ TransactionIdIsActive(TransactionId xid)
 
    for (i = 0; i < arrayP->numProcs; i++)
    {
-       volatile PGPROC    *proc = arrayP->procs[i];
+       volatile PGPROC *proc = arrayP->procs[i];
 
        /* Fetch xid just once - see GetNewTransactionId */
        TransactionId pxid = proc->xid;
@@ -578,10 +578,10 @@ GetOldestXmin(bool allDbs, bool ignoreVacuum)
    LWLockAcquire(ProcArrayLock, LW_SHARED);
 
    /*
-    * We initialize the MIN() calculation with latestCompletedXid + 1.
-    * This is a lower bound for the XIDs that might appear in the ProcArray
-    * later, and so protects us against overestimating the result due to
-    * future additions.
+    * We initialize the MIN() calculation with latestCompletedXid + 1. This
+    * is a lower bound for the XIDs that might appear in the ProcArray later,
+    * and so protects us against overestimating the result due to future
+    * additions.
     */
    result = ShmemVariableCache->latestCompletedXid;
    Assert(TransactionIdIsNormal(result));
@@ -589,7 +589,7 @@ GetOldestXmin(bool allDbs, bool ignoreVacuum)
 
    for (index = 0; index < arrayP->numProcs; index++)
    {
-       volatile PGPROC    *proc = arrayP->procs[index];
+       volatile PGPROC *proc = arrayP->procs[index];
 
        if (ignoreVacuum && (proc->vacuumFlags & PROC_IN_VACUUM))
            continue;
@@ -608,8 +608,8 @@ GetOldestXmin(bool allDbs, bool ignoreVacuum)
             * Also consider the transaction's Xmin, if set.
             *
             * We must check both Xid and Xmin because a transaction might
-            * have an Xmin but not (yet) an Xid; conversely, if it has
-            * an Xid, that could determine some not-yet-set Xmin.
+            * have an Xmin but not (yet) an Xid; conversely, if it has an
+            * Xid, that could determine some not-yet-set Xmin.
             */
            xid = proc->xmin;   /* Fetch just once */
            if (TransactionIdIsNormal(xid) &&
@@ -718,13 +718,13 @@ GetSnapshotData(Snapshot snapshot, bool serializable)
    globalxmin = xmin = xmax;
 
    /*
-    * Spin over procArray checking xid, xmin, and subxids.  The goal is
-    * to gather all active xids, find the lowest xmin, and try to record
+    * Spin over procArray checking xid, xmin, and subxids.  The goal is to
+    * gather all active xids, find the lowest xmin, and try to record
     * subxids.
     */
    for (index = 0; index < arrayP->numProcs; index++)
    {
-       volatile PGPROC    *proc = arrayP->procs[index];
+       volatile PGPROC *proc = arrayP->procs[index];
        TransactionId xid;
 
        /* Ignore procs running LAZY VACUUM */
@@ -742,7 +742,7 @@ GetSnapshotData(Snapshot snapshot, bool serializable)
 
        /*
         * If the transaction has been assigned an xid < xmax we add it to the
-        * snapshot, and update xmin if necessary.  There's no need to store
+        * snapshot, and update xmin if necessary.  There's no need to store
         * XIDs >= xmax, since we'll treat them as running anyway.  We don't
         * bother to examine their subxids either.
         *
@@ -841,8 +841,8 @@ GetTransactionsInCommit(TransactionId **xids_p)
 {
    ProcArrayStruct *arrayP = procArray;
    TransactionId *xids;
-   int nxids;
-   int index;
+   int         nxids;
+   int         index;
 
    xids = (TransactionId *) palloc(arrayP->maxProcs * sizeof(TransactionId));
    nxids = 0;
@@ -851,7 +851,8 @@ GetTransactionsInCommit(TransactionId **xids_p)
 
    for (index = 0; index < arrayP->numProcs; index++)
    {
-       volatile PGPROC    *proc = arrayP->procs[index];
+       volatile PGPROC *proc = arrayP->procs[index];
+
        /* Fetch xid just once - see GetNewTransactionId */
        TransactionId pxid = proc->xid;
 
@@ -877,21 +878,22 @@ GetTransactionsInCommit(TransactionId **xids_p)
 bool
 HaveTransactionsInCommit(TransactionId *xids, int nxids)
 {
-   bool result = false;
+   bool        result = false;
    ProcArrayStruct *arrayP = procArray;
-   int index;
+   int         index;
 
    LWLockAcquire(ProcArrayLock, LW_SHARED);
 
    for (index = 0; index < arrayP->numProcs; index++)
    {
-       volatile PGPROC    *proc = arrayP->procs[index];
+       volatile PGPROC *proc = arrayP->procs[index];
+
        /* Fetch xid just once - see GetNewTransactionId */
        TransactionId pxid = proc->xid;
 
        if (proc->inCommit && TransactionIdIsValid(pxid))
        {
-           int     i;
+           int         i;
 
            for (i = 0; i < nxids; i++)
            {
@@ -956,7 +958,7 @@ BackendPidGetProc(int pid)
  * Only main transaction Ids are considered.  This function is mainly
  * useful for determining what backend owns a lock.
  *
- * Beware that not every xact has an XID assigned.  However, as long as you
+ * Beware that not every xact has an XID assigned. However, as long as you
  * only call this using an XID found on disk, you're safe.
  */
 int
@@ -973,7 +975,7 @@ BackendXidGetPid(TransactionId xid)
 
    for (index = 0; index < arrayP->numProcs; index++)
    {
-       volatile PGPROC    *proc = arrayP->procs[index];
+       volatile PGPROC *proc = arrayP->procs[index];
 
        if (proc->xid == xid)
        {
@@ -1003,8 +1005,8 @@ IsBackendPid(int pid)
  * The array is palloc'd and is terminated with an invalid VXID.
  *
  * If limitXmin is not InvalidTransactionId, we skip any backends
- * with xmin >= limitXmin.  If allDbs is false, we skip backends attached
- * to other databases.  Also, our own process is always skipped.
+ * with xmin >= limitXmin. If allDbs is false, we skip backends attached
+ * to other databases. Also, our own process is always skipped.
  */
 VirtualTransactionId *
 GetCurrentVirtualXIDs(TransactionId limitXmin, bool allDbs)
@@ -1022,7 +1024,7 @@ GetCurrentVirtualXIDs(TransactionId limitXmin, bool allDbs)
 
    for (index = 0; index < arrayP->numProcs; index++)
    {
-       volatile PGPROC    *proc = arrayP->procs[index];
+       volatile PGPROC *proc = arrayP->procs[index];
 
        if (proc == MyProc)
            continue;
@@ -1080,7 +1082,7 @@ CountActiveBackends(void)
     */
    for (index = 0; index < arrayP->numProcs; index++)
    {
-       volatile PGPROC    *proc = arrayP->procs[index];
+       volatile PGPROC *proc = arrayP->procs[index];
 
        if (proc == MyProc)
            continue;           /* do not count myself */
@@ -1110,7 +1112,7 @@ CountDBBackends(Oid databaseid)
 
    for (index = 0; index < arrayP->numProcs; index++)
    {
-       volatile PGPROC    *proc = arrayP->procs[index];
+       volatile PGPROC *proc = arrayP->procs[index];
 
        if (proc->pid == 0)
            continue;           /* do not count prepared xacts */
@@ -1137,7 +1139,7 @@ CountUserBackends(Oid roleid)
 
    for (index = 0; index < arrayP->numProcs; index++)
    {
-       volatile PGPROC    *proc = arrayP->procs[index];
+       volatile PGPROC *proc = arrayP->procs[index];
 
        if (proc->pid == 0)
            continue;           /* do not count prepared xacts */
@@ -1189,7 +1191,7 @@ CheckOtherDBBackends(Oid databaseId)
 
        for (index = 0; index < arrayP->numProcs; index++)
        {
-           volatile PGPROC    *proc = arrayP->procs[index];
+           volatile PGPROC *proc = arrayP->procs[index];
 
            if (proc->databaseId != databaseId)
                continue;
@@ -1201,16 +1203,17 @@ CheckOtherDBBackends(Oid databaseId)
            if (proc->vacuumFlags & PROC_IS_AUTOVACUUM)
            {
                /* an autovacuum --- send it SIGTERM before sleeping */
-               int     autopid = proc->pid;
+               int         autopid = proc->pid;
 
                /*
-                * It's a bit awkward to release ProcArrayLock within the loop,
-                * but we'd probably better do so before issuing kill().  We
-                * have no idea what might block kill() inside the kernel...
+                * It's a bit awkward to release ProcArrayLock within the
+                * loop, but we'd probably better do so before issuing kill().
+                * We have no idea what might block kill() inside the
+                * kernel...
                 */
                LWLockRelease(ProcArrayLock);
 
-               (void) kill(autopid, SIGTERM);      /* ignore any error */
+               (void) kill(autopid, SIGTERM);  /* ignore any error */
 
                break;
            }
@@ -1225,14 +1228,14 @@ CheckOtherDBBackends(Oid databaseId)
        if (!found)
        {
            LWLockRelease(ProcArrayLock);
-           return false;               /* no conflicting backends, so done */
+           return false;       /* no conflicting backends, so done */
        }
 
        /* else sleep and try again */
-       pg_usleep(100 * 1000L);         /* 100ms */
+       pg_usleep(100 * 1000L); /* 100ms */
    }
 
-   return true;                        /* timed out, still conflicts */
+   return true;                /* timed out, still conflicts */
 }
 
 
index 99690d8b36b23ea9be9ef2ced0f8db936d428b2b..777cb7ba674066ecfaa60f0d1915bac698ff31a6 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/ipc/sinvaladt.c,v 1.64 2007/09/05 18:10:47 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/ipc/sinvaladt.c,v 1.65 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -394,7 +394,8 @@ GetNextLocalTransactionId(void)
    LocalTransactionId result;
 
    /* loop to avoid returning InvalidLocalTransactionId at wraparound */
-   do {
+   do
+   {
        result = nextLocalTransactionId++;
    } while (!LocalTransactionIdIsValid(result));
 
index 77b756cabb99339b2500c5311f1bee33dc5f081c..57410ccb8ec49acb6712acb050f963a413181754 100644 (file)
@@ -24,7 +24,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/large_object/inv_api.c,v 1.125 2007/06/12 19:46:24 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/large_object/inv_api.c,v 1.126 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -337,10 +337,10 @@ inv_getsize(LargeObjectDesc *obj_desc)
        bool        pfreeit;
 
        found = true;
-       if (HeapTupleHasNulls(tuple))               /* paranoia */
+       if (HeapTupleHasNulls(tuple))   /* paranoia */
            elog(ERROR, "null field found in pg_largeobject");
        data = (Form_pg_largeobject) GETSTRUCT(tuple);
-       datafield = &(data->data);          /* see note at top of file */
+       datafield = &(data->data);      /* see note at top of file */
        pfreeit = false;
        if (VARATT_IS_EXTENDED(datafield))
        {
@@ -443,7 +443,7 @@ inv_read(LargeObjectDesc *obj_desc, char *buf, int nbytes)
        bytea      *datafield;
        bool        pfreeit;
 
-       if (HeapTupleHasNulls(tuple))               /* paranoia */
+       if (HeapTupleHasNulls(tuple))   /* paranoia */
            elog(ERROR, "null field found in pg_largeobject");
        data = (Form_pg_largeobject) GETSTRUCT(tuple);
 
@@ -468,7 +468,7 @@ inv_read(LargeObjectDesc *obj_desc, char *buf, int nbytes)
            off = (int) (obj_desc->offset - pageoff);
            Assert(off >= 0 && off < LOBLKSIZE);
 
-           datafield = &(data->data);          /* see note at top of file */
+           datafield = &(data->data);  /* see note at top of file */
            pfreeit = false;
            if (VARATT_IS_EXTENDED(datafield))
            {
@@ -569,7 +569,7 @@ inv_write(LargeObjectDesc *obj_desc, const char *buf, int nbytes)
        {
            if ((oldtuple = index_getnext(sd, ForwardScanDirection)) != NULL)
            {
-               if (HeapTupleHasNulls(oldtuple))            /* paranoia */
+               if (HeapTupleHasNulls(oldtuple))        /* paranoia */
                    elog(ERROR, "null field found in pg_largeobject");
                olddata = (Form_pg_largeobject) GETSTRUCT(oldtuple);
                Assert(olddata->pageno >= pageno);
@@ -700,16 +700,16 @@ inv_truncate(LargeObjectDesc *obj_desc, int len)
 {
    int32       pageno = (int32) (len / LOBLKSIZE);
    int         off;
-   ScanKeyData skey[2];
+   ScanKeyData skey[2];
    IndexScanDesc sd;
    HeapTuple   oldtuple;
-   Form_pg_largeobject olddata;
+   Form_pg_largeobject olddata;
    struct
    {
        bytea       hdr;
        char        data[LOBLKSIZE];
    }           workbuf;
-   char       *workb = VARDATA(&workbuf.hdr);
+   char       *workb = VARDATA(&workbuf.hdr);
    HeapTuple   newtup;
    Datum       values[Natts_pg_largeobject];
    char        nulls[Natts_pg_largeobject];
@@ -743,30 +743,30 @@ inv_truncate(LargeObjectDesc *obj_desc, int len)
                         obj_desc->snapshot, 2, skey);
 
    /*
-    * If possible, get the page the truncation point is in.
-    * The truncation point may be beyond the end of the LO or
-    * in a hole.
+    * If possible, get the page the truncation point is in. The truncation
+    * point may be beyond the end of the LO or in a hole.
     */
    olddata = NULL;
    if ((oldtuple = index_getnext(sd, ForwardScanDirection)) != NULL)
    {
-       if (HeapTupleHasNulls(oldtuple))                /* paranoia */
+       if (HeapTupleHasNulls(oldtuple))        /* paranoia */
            elog(ERROR, "null field found in pg_largeobject");
        olddata = (Form_pg_largeobject) GETSTRUCT(oldtuple);
        Assert(olddata->pageno >= pageno);
    }
 
    /*
-    * If we found the page of the truncation point we need to
-    * truncate the data in it.  Otherwise if we're in a hole,
-    * we need to create a page to mark the end of data.
+    * If we found the page of the truncation point we need to truncate the
+    * data in it.  Otherwise if we're in a hole, we need to create a page to
+    * mark the end of data.
     */
    if (olddata != NULL && olddata->pageno == pageno)
    {
        /* First, load old data into workbuf */
-       bytea *datafield = &(olddata->data);    /* see note at top of file */
-       bool pfreeit = false;
-       int pagelen;
+       bytea      *datafield = &(olddata->data);       /* see note at top of
+                                                        * file */
+       bool        pfreeit = false;
+       int         pagelen;
 
        if (VARATT_IS_EXTENDED(datafield))
        {
@@ -778,14 +778,14 @@ inv_truncate(LargeObjectDesc *obj_desc, int len)
        Assert(pagelen <= LOBLKSIZE);
        memcpy(workb, VARDATA(datafield), pagelen);
        if (pfreeit)
-               pfree(datafield);
+           pfree(datafield);
 
        /*
         * Fill any hole
         */
        off = len % LOBLKSIZE;
        if (off > pagelen)
-               MemSet(workb + pagelen, 0, off - pagelen);
+           MemSet(workb + pagelen, 0, off - pagelen);
 
        /* compute length of new page */
        SET_VARSIZE(&workbuf.hdr, off + VARHDRSZ);
@@ -807,16 +807,15 @@ inv_truncate(LargeObjectDesc *obj_desc, int len)
    else
    {
        /*
-        * If the first page we found was after the truncation
-        * point, we're in a hole that we'll fill, but we need to
-        * delete the later page.
+        * If the first page we found was after the truncation point, we're in
+        * a hole that we'll fill, but we need to delete the later page.
         */
        if (olddata != NULL && olddata->pageno > pageno)
            simple_heap_delete(lo_heap_r, &oldtuple->t_self);
 
        /*
         * Write a brand new page.
-        * 
+        *
         * Fill the hole up to the truncation point
         */
        off = len % LOBLKSIZE;
@@ -826,7 +825,7 @@ inv_truncate(LargeObjectDesc *obj_desc, int len)
        /* compute length of new page */
        SET_VARSIZE(&workbuf.hdr, off + VARHDRSZ);
 
-       /* 
+       /*
         * Form and insert new tuple
         */
        memset(values, 0, sizeof(values));
@@ -851,11 +850,10 @@ inv_truncate(LargeObjectDesc *obj_desc, int len)
    index_endscan(sd);
 
    CatalogCloseIndexes(indstate);
-   
+
    /*
     * Advance command counter so that tuple updates will be seen by later
     * large-object operations in this transaction.
     */
    CommandCounterIncrement();
 }
-
index e599fa3fb8d7bcf3cd4c65314b65cf2924d8f873..c19680b2b70ed38b5208b6c0e89c0a068d8a6af5 100644 (file)
@@ -12,7 +12,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/lmgr/deadlock.c,v 1.49 2007/10/26 20:45:10 alvherre Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/lmgr/deadlock.c,v 1.50 2007/11/15 21:14:38 momjian Exp $
  *
  * Interface:
  *
@@ -110,7 +110,7 @@ static DEADLOCK_INFO *deadlockDetails;
 static int nDeadlockDetails;
 
 /* PGPROC pointer of any blocking autovacuum worker found */
-static PGPROC *blocking_autovacuum_proc = NULL; 
+static PGPROC *blocking_autovacuum_proc = NULL;
 
 
 /*
@@ -275,7 +275,7 @@ DeadLockCheck(PGPROC *proc)
 PGPROC *
 GetBlockingAutoVacuumPgproc(void)
 {
-   PGPROC  *ptr;
+   PGPROC     *ptr;
 
    ptr = blocking_autovacuum_proc;
    blocking_autovacuum_proc = NULL;
@@ -524,7 +524,7 @@ FindLockCycleRecurse(PGPROC *checkProc,
                    /*
                     * Look for a blocking autovacuum. There can be more than
                     * one in the deadlock cycle, in which case we just pick a
-                    * random one.  We stash the autovacuum worker's PGPROC so
+                    * random one.  We stash the autovacuum worker's PGPROC so
                     * that the caller can send a cancel signal to it, if
                     * appropriate.
                     *
@@ -532,10 +532,10 @@ FindLockCycleRecurse(PGPROC *checkProc,
                     * OK only for checking the PROC_IS_AUTOVACUUM flag,
                     * because that flag is set at process start and never
                     * reset; there is logic elsewhere to avoid cancelling an
-                    * autovacuum that is working for preventing Xid wraparound
-                    * problems (which needs to read a different vacuumFlag
-                    * bit), but we don't do that here to avoid grabbing
-                    * ProcArrayLock.
+                    * autovacuum that is working for preventing Xid
+                    * wraparound problems (which needs to read a different
+                    * vacuumFlag bit), but we don't do that here to avoid
+                    * grabbing ProcArrayLock.
                     */
                    if (proc->vacuumFlags & PROC_IS_AUTOVACUUM)
                        blocking_autovacuum_proc = proc;
index f947d226fea1c318e335363c872669aecc4ce581..3db3a112d14b4cc4d236f02d9ade77729245754c 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/lmgr/lmgr.c,v 1.93 2007/09/05 18:10:47 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/lmgr/lmgr.c,v 1.94 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -518,7 +518,7 @@ ConditionalXactLockTableWait(TransactionId xid)
 
 
 /*
- *         VirtualXactLockTableInsert
+ *     VirtualXactLockTableInsert
  *
  * Insert a lock showing that the given virtual transaction ID is running ---
  * this is done at main transaction start when its VXID is assigned.
@@ -537,7 +537,7 @@ VirtualXactLockTableInsert(VirtualTransactionId vxid)
 }
 
 /*
- *         VirtualXactLockTableWait
+ *     VirtualXactLockTableWait
  *
  * Waits until the lock on the given VXID is released, which shows that
  * the top-level transaction owning the VXID has ended.
@@ -557,7 +557,7 @@ VirtualXactLockTableWait(VirtualTransactionId vxid)
 }
 
 /*
- *         ConditionalVirtualXactLockTableWait
+ *     ConditionalVirtualXactLockTableWait
  *
  * As above, but only lock if we can get the lock without blocking.
  * Returns TRUE if the lock was acquired.
index 06a4f7adae5ba21d429316783921bd73e9404b8d..d9e02239cad38261ae70483ce0e2696e5a56d998 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/lmgr/lock.c,v 1.178 2007/09/05 18:10:47 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/lmgr/lock.c,v 1.179 2007/11/15 21:14:38 momjian Exp $
  *
  * NOTES
  *   A lock table is a shared memory hash table.  When
@@ -581,7 +581,7 @@ LockAcquire(const LOCKTAG *locktag,
        ereport(ERROR,
                (errcode(ERRCODE_OUT_OF_MEMORY),
                 errmsg("out of shared memory"),
-           errhint("You might need to increase max_locks_per_transaction.")));
+         errhint("You might need to increase max_locks_per_transaction.")));
    }
    locallock->lock = lock;
 
@@ -647,7 +647,7 @@ LockAcquire(const LOCKTAG *locktag,
        ereport(ERROR,
                (errcode(ERRCODE_OUT_OF_MEMORY),
                 errmsg("out of shared memory"),
-           errhint("You might need to increase max_locks_per_transaction.")));
+         errhint("You might need to increase max_locks_per_transaction.")));
    }
    locallock->proclock = proclock;
 
@@ -1716,9 +1716,9 @@ GetLockConflicts(const LOCKTAG *locktag, LOCKMODE lockmode)
        elog(ERROR, "unrecognized lock mode: %d", lockmode);
 
    /*
-    * Allocate memory to store results, and fill with InvalidVXID.  We
-    * only need enough space for MaxBackends + a terminator, since
-    * prepared xacts don't count.
+    * Allocate memory to store results, and fill with InvalidVXID.  We only
+    * need enough space for MaxBackends + a terminator, since prepared xacts
+    * don't count.
     */
    vxids = (VirtualTransactionId *)
        palloc0(sizeof(VirtualTransactionId) * (MaxBackends + 1));
@@ -1771,8 +1771,8 @@ GetLockConflicts(const LOCKTAG *locktag, LOCKMODE lockmode)
 
                /*
                 * If we see an invalid VXID, then either the xact has already
-                * committed (or aborted), or it's a prepared xact.  In
-                * either case we may ignore it.
+                * committed (or aborted), or it's a prepared xact.  In either
+                * case we may ignore it.
                 */
                if (VirtualTransactionIdIsValid(vxid))
                    vxids[count++] = vxid;
@@ -2150,11 +2150,11 @@ GetLockStatusData(void)
    }
 
    /*
-    * And release locks.  We do this in reverse order for two reasons:
-    * (1) Anyone else who needs more than one of the locks will be trying
-    * to lock them in increasing order; we don't want to release the other
-    * process until it can get all the locks it needs.
-    * (2) This avoids O(N^2) behavior inside LWLockRelease.
+    * And release locks.  We do this in reverse order for two reasons: (1)
+    * Anyone else who needs more than one of the locks will be trying to lock
+    * them in increasing order; we don't want to release the other process
+    * until it can get all the locks it needs. (2) This avoids O(N^2)
+    * behavior inside LWLockRelease.
     */
    for (i = NUM_LOCK_PARTITIONS; --i >= 0;)
        LWLockRelease(FirstLockMgrLock + i);
@@ -2308,7 +2308,7 @@ lock_twophase_recover(TransactionId xid, uint16 info,
        ereport(ERROR,
                (errcode(ERRCODE_OUT_OF_MEMORY),
                 errmsg("out of shared memory"),
-           errhint("You might need to increase max_locks_per_transaction.")));
+         errhint("You might need to increase max_locks_per_transaction.")));
    }
 
    /*
@@ -2373,7 +2373,7 @@ lock_twophase_recover(TransactionId xid, uint16 info,
        ereport(ERROR,
                (errcode(ERRCODE_OUT_OF_MEMORY),
                 errmsg("out of shared memory"),
-           errhint("You might need to increase max_locks_per_transaction.")));
+         errhint("You might need to increase max_locks_per_transaction.")));
    }
 
    /*
index 51f87dea2ac50c14c5dc24c00929b9f46a14c172..5ff414d5df9dff8ec434ab34336e1b4f673d4c83 100644 (file)
@@ -15,7 +15,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/lmgr/lwlock.c,v 1.48 2007/01/05 22:19:38 momjian Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/lmgr/lwlock.c,v 1.49 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -175,8 +175,8 @@ NumLWLocks(void)
 
    /*
     * Add any requested by loadable modules; for backwards-compatibility
-    * reasons, allocate at least NUM_USER_DEFINED_LWLOCKS of them even
-    * if there are no explicit requests.
+    * reasons, allocate at least NUM_USER_DEFINED_LWLOCKS of them even if
+    * there are no explicit requests.
     */
    lock_addin_request_allowed = false;
    numLocks += Max(lock_addin_request, NUM_USER_DEFINED_LWLOCKS);
@@ -191,7 +191,7 @@ NumLWLocks(void)
  *     a loadable module.
  *
  * This is only useful if called from the _PG_init hook of a library that
- * is loaded into the postmaster via shared_preload_libraries.  Once
+ * is loaded into the postmaster via shared_preload_libraries. Once
  * shared memory has been allocated, calls will be ignored.  (We could
  * raise an error, but it seems better to make it a no-op, so that
  * libraries containing such calls can be reloaded if needed.)
index 4b2280b55067f23eea07d4f2e378dceb07ed245e..f7d049b64491c4447ca6b51446940f8705ac9ae7 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/lmgr/proc.c,v 1.196 2007/10/26 20:45:10 alvherre Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/lmgr/proc.c,v 1.197 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -207,7 +207,7 @@ InitProcGlobal(void)
    MemSet(AuxiliaryProcs, 0, NUM_AUXILIARY_PROCS * sizeof(PGPROC));
    for (i = 0; i < NUM_AUXILIARY_PROCS; i++)
    {
-       AuxiliaryProcs[i].pid = 0;  /* marks auxiliary proc as not in use */
+       AuxiliaryProcs[i].pid = 0;      /* marks auxiliary proc as not in use */
        PGSemaphoreCreate(&(AuxiliaryProcs[i].sem));
    }
 
@@ -362,7 +362,7 @@ InitProcessPhase2(void)
  *
  * Auxiliary processes are presently not expected to wait for real (lockmgr)
  * locks, so we need not set up the deadlock checker.  They are never added
- * to the ProcArray or the sinval messaging mechanism, either.  They also
+ * to the ProcArray or the sinval messaging mechanism, either. They also
  * don't get a VXID assigned, since this is only useful when we actually
  * hold lockmgr locks.
  */
@@ -734,7 +734,7 @@ ProcSleep(LOCALLOCK *locallock, LockMethod lockMethodTable)
    PROC_QUEUE *waitQueue = &(lock->waitProcs);
    LOCKMASK    myHeldLocks = MyProc->heldLocks;
    bool        early_deadlock = false;
-   bool        allow_autovacuum_cancel = true;
+   bool        allow_autovacuum_cancel = true;
    int         myWaitStatus;
    PGPROC     *proc;
    int         i;
@@ -889,18 +889,18 @@ ProcSleep(LOCALLOCK *locallock, LockMethod lockMethodTable)
 
        /*
         * waitStatus could change from STATUS_WAITING to something else
-        * asynchronously.  Read it just once per loop to prevent surprising
+        * asynchronously.  Read it just once per loop to prevent surprising
         * behavior (such as missing log messages).
         */
        myWaitStatus = MyProc->waitStatus;
 
        /*
         * If we are not deadlocked, but are waiting on an autovacuum-induced
-        * task, send a signal to interrupt it.  
+        * task, send a signal to interrupt it.
         */
        if (deadlock_state == DS_BLOCKED_BY_AUTOVACUUM && allow_autovacuum_cancel)
        {
-           PGPROC  *autovac = GetBlockingAutoVacuumPgproc();
+           PGPROC     *autovac = GetBlockingAutoVacuumPgproc();
 
            LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE);
 
@@ -912,7 +912,7 @@ ProcSleep(LOCALLOCK *locallock, LockMethod lockMethodTable)
                (autovac->vacuumFlags & PROC_IS_AUTOVACUUM) &&
                !(autovac->vacuumFlags & PROC_VACUUM_FOR_WRAPAROUND))
            {
-               int     pid = autovac->pid;
+               int         pid = autovac->pid;
 
                elog(DEBUG2, "sending cancel to blocking autovacuum pid = %d",
                     pid);
@@ -960,49 +960,50 @@ ProcSleep(LOCALLOCK *locallock, LockMethod lockMethodTable)
            if (deadlock_state == DS_SOFT_DEADLOCK)
                ereport(LOG,
                        (errmsg("process %d avoided deadlock for %s on %s by rearranging queue order after %ld.%03d ms",
-                               MyProcPid, modename, buf.data, msecs, usecs)));
+                             MyProcPid, modename, buf.data, msecs, usecs)));
            else if (deadlock_state == DS_HARD_DEADLOCK)
            {
                /*
-                * This message is a bit redundant with the error that will
-                * be reported subsequently, but in some cases the error
-                * report might not make it to the log (eg, if it's caught by
-                * an exception handler), and we want to ensure all long-wait
+                * This message is a bit redundant with the error that will be
+                * reported subsequently, but in some cases the error report
+                * might not make it to the log (eg, if it's caught by an
+                * exception handler), and we want to ensure all long-wait
                 * events get logged.
                 */
                ereport(LOG,
                        (errmsg("process %d detected deadlock while waiting for %s on %s after %ld.%03d ms",
-                               MyProcPid, modename, buf.data, msecs, usecs)));
+                             MyProcPid, modename, buf.data, msecs, usecs)));
            }
 
            if (myWaitStatus == STATUS_WAITING)
                ereport(LOG,
                        (errmsg("process %d still waiting for %s on %s after %ld.%03d ms",
-                               MyProcPid, modename, buf.data, msecs, usecs)));
+                             MyProcPid, modename, buf.data, msecs, usecs)));
            else if (myWaitStatus == STATUS_OK)
                ereport(LOG,
-                       (errmsg("process %d acquired %s on %s after %ld.%03d ms",
-                               MyProcPid, modename, buf.data, msecs, usecs)));
+                   (errmsg("process %d acquired %s on %s after %ld.%03d ms",
+                           MyProcPid, modename, buf.data, msecs, usecs)));
            else
            {
                Assert(myWaitStatus == STATUS_ERROR);
+
                /*
                 * Currently, the deadlock checker always kicks its own
-                * process, which means that we'll only see STATUS_ERROR
-                * when deadlock_state == DS_HARD_DEADLOCK, and there's no
-                * need to print redundant messages.  But for completeness
-                * and future-proofing, print a message if it looks like
-                * someone else kicked us off the lock.
+                * process, which means that we'll only see STATUS_ERROR when
+                * deadlock_state == DS_HARD_DEADLOCK, and there's no need to
+                * print redundant messages.  But for completeness and
+                * future-proofing, print a message if it looks like someone
+                * else kicked us off the lock.
                 */
                if (deadlock_state != DS_HARD_DEADLOCK)
                    ereport(LOG,
                            (errmsg("process %d failed to acquire %s on %s after %ld.%03d ms",
-                                   MyProcPid, modename, buf.data, msecs, usecs)));
+                             MyProcPid, modename, buf.data, msecs, usecs)));
            }
 
            /*
-            * At this point we might still need to wait for the lock.
-            * Reset state so we don't print the above messages again.
+            * At this point we might still need to wait for the lock. Reset
+            * state so we don't print the above messages again.
             */
            deadlock_state = DS_NO_DEADLOCK;
 
@@ -1237,8 +1238,8 @@ CheckDeadLock(void)
        /*
         * Unlock my semaphore so that the interrupted ProcSleep() call can
         * print the log message (we daren't do it here because we are inside
-        * a signal handler).  It will then sleep again until someone
-        * releases the lock.
+        * a signal handler).  It will then sleep again until someone releases
+        * the lock.
         *
         * If blocked by autovacuum, this wakeup will enable ProcSleep to send
         * the cancelling signal to the autovacuum worker.
@@ -1247,11 +1248,11 @@ CheckDeadLock(void)
    }
 
    /*
-    * And release locks.  We do this in reverse order for two reasons:
-    * (1) Anyone else who needs more than one of the locks will be trying
-    * to lock them in increasing order; we don't want to release the other
-    * process until it can get all the locks it needs.
-    * (2) This avoids O(N^2) behavior inside LWLockRelease.
+    * And release locks.  We do this in reverse order for two reasons: (1)
+    * Anyone else who needs more than one of the locks will be trying to lock
+    * them in increasing order; we don't want to release the other process
+    * until it can get all the locks it needs. (2) This avoids O(N^2)
+    * behavior inside LWLockRelease.
     */
 check_done:
    for (i = NUM_LOCK_PARTITIONS; --i >= 0;)
index ca5ea020747a5af30a5c634ba8def4dc9bcbd8bd..d1bfca71b03590297a90d4409e87b1bfabc6992c 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/page/bufpage.c,v 1.75 2007/09/21 21:25:42 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/page/bufpage.c,v 1.76 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -177,9 +177,9 @@ PageAddItem(Page page,
        if (PageHasFreeLinePointers(phdr))
        {
            /*
-            * Look for "recyclable" (unused) ItemId.  We check for no
-            * storage as well, just to be paranoid --- unused items
-            * should never have storage.
+            * Look for "recyclable" (unused) ItemId.  We check for no storage
+            * as well, just to be paranoid --- unused items should never have
+            * storage.
             */
            for (offsetNumber = 1; offsetNumber < limit; offsetNumber++)
            {
@@ -510,12 +510,13 @@ PageGetExactFreeSpace(Page page)
 Size
 PageGetHeapFreeSpace(Page page)
 {
-   Size            space;
+   Size        space;
 
    space = PageGetFreeSpace(page);
    if (space > 0)
    {
-       OffsetNumber    offnum, nline;
+       OffsetNumber offnum,
+                   nline;
 
        /*
         * Are there already MaxHeapTuplesPerPage line pointers in the page?
@@ -531,7 +532,7 @@ PageGetHeapFreeSpace(Page page)
                 */
                for (offnum = FirstOffsetNumber; offnum <= nline; offnum++)
                {
-                   ItemId  lp = PageGetItemId(page, offnum);
+                   ItemId      lp = PageGetItemId(page, offnum);
 
                    if (!ItemIdIsUsed(lp))
                        break;
@@ -540,8 +541,8 @@ PageGetHeapFreeSpace(Page page)
                if (offnum > nline)
                {
                    /*
-                    * The hint is wrong, but we can't clear it here since
-                    * we don't have the ability to mark the page dirty.
+                    * The hint is wrong, but we can't clear it here since we
+                    * don't have the ability to mark the page dirty.
                     */
                    space = 0;
                }
index 59d39117f3f2440fc3865f70029e33dfea622f93..0ae0d0daf6b8d7f8abfb4f6321703e03a4320dd7 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/smgr/md.c,v 1.130 2007/11/15 20:36:40 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/smgr/md.c,v 1.131 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -34,7 +34,7 @@
 /* special values for the segno arg to RememberFsyncRequest */
 #define FORGET_RELATION_FSYNC  (InvalidBlockNumber)
 #define FORGET_DATABASE_FSYNC  (InvalidBlockNumber-1)
-#define UNLINK_RELATION_REQUEST    (InvalidBlockNumber-2)
+#define UNLINK_RELATION_REQUEST (InvalidBlockNumber-2)
 
 /*
  * On Windows, we have to interpret EACCES as possibly meaning the same as
@@ -44,9 +44,9 @@
  * a pending fsync request getting revoked ... see mdsync).
  */
 #ifndef WIN32
-#define FILE_POSSIBLY_DELETED(err)  ((err) == ENOENT)
+#define FILE_POSSIBLY_DELETED(err) ((err) == ENOENT)
 #else
-#define FILE_POSSIBLY_DELETED(err)  ((err) == ENOENT || (err) == EACCES)
+#define FILE_POSSIBLY_DELETED(err) ((err) == ENOENT || (err) == EACCES)
 #endif
 
 /*
@@ -68,7 +68,7 @@
  * not needed because of an mdtruncate() operation.  The reason for leaving
  * them present at size zero, rather than unlinking them, is that other
  * backends and/or the bgwriter might be holding open file references to
- * such segments.  If the relation expands again after mdtruncate(), such
+ * such segments.  If the relation expands again after mdtruncate(), such
  * that a deactivated segment becomes active again, it is important that
  * such file references still be valid --- else data might get written
  * out to an unlinked old copy of a segment file that will eventually
@@ -125,7 +125,7 @@ typedef struct
 {
    RelFileNode rnode;          /* the targeted relation */
    BlockNumber segno;          /* which segment */
-} PendingOperationTag;
+}  PendingOperationTag;
 
 typedef uint16 CycleCtr;       /* can be any convenient integer size */
 
@@ -139,8 +139,8 @@ typedef struct
 typedef struct
 {
    RelFileNode rnode;          /* the dead relation to delete */
-   CycleCtr cycle_ctr;         /* mdckpt_cycle_ctr when request was made */
-} PendingUnlinkEntry;
+   CycleCtr    cycle_ctr;      /* mdckpt_cycle_ctr when request was made */
+}  PendingUnlinkEntry;
 
 static HTAB *pendingOpsTable = NULL;
 static List *pendingUnlinks = NIL;
@@ -154,7 +154,7 @@ typedef enum                    /* behavior for mdopen & _mdfd_getseg */
    EXTENSION_FAIL,             /* ereport if segment not present */
    EXTENSION_RETURN_NULL,      /* return NULL if not present */
    EXTENSION_CREATE            /* create new segments as needed */
-} ExtensionBehavior;
+}  ExtensionBehavior;
 
 /* local routines */
 static MdfdVec *mdopen(SMgrRelation reln, ExtensionBehavior behavior);
@@ -167,7 +167,7 @@ static MdfdVec *_mdfd_openseg(SMgrRelation reln, BlockNumber segno,
              int oflags);
 #endif
 static MdfdVec *_mdfd_getseg(SMgrRelation reln, BlockNumber blkno,
-                            bool isTemp, ExtensionBehavior behavior);
+            bool isTemp, ExtensionBehavior behavior);
 static BlockNumber _mdnblocks(SMgrRelation reln, MdfdVec *seg);
 
 
@@ -276,13 +276,13 @@ mdcreate(SMgrRelation reln, bool isRedo)
  * number from being reused.  The scenario this protects us from is:
  * 1. We delete a relation (and commit, and actually remove its file).
  * 2. We create a new relation, which by chance gets the same relfilenode as
- *    the just-deleted one (OIDs must've wrapped around for that to happen).
+ *   the just-deleted one (OIDs must've wrapped around for that to happen).
  * 3. We crash before another checkpoint occurs.
  * During replay, we would delete the file and then recreate it, which is fine
  * if the contents of the file were repopulated by subsequent WAL entries.
  * But if we didn't WAL-log insertions, but instead relied on fsyncing the
  * file after populating it (as for instance CLUSTER and CREATE INDEX do),
- * the contents of the file would be lost forever.  By leaving the empty file
+ * the contents of the file would be lost forever. By leaving the empty file
  * until after the next checkpoint, we prevent reassignment of the relfilenode
  * number until it's safe, because relfilenode assignment skips over any
  * existing file.
@@ -299,11 +299,11 @@ void
 mdunlink(RelFileNode rnode, bool isRedo)
 {
    char       *path;
-   int ret;
+   int         ret;
 
    /*
-    * We have to clean out any pending fsync requests for the doomed relation,
-    * else the next mdsync() will fail.
+    * We have to clean out any pending fsync requests for the doomed
+    * relation, else the next mdsync() will fail.
     */
    ForgetRelationFsyncRequests(rnode);
 
@@ -336,8 +336,8 @@ mdunlink(RelFileNode rnode, bool isRedo)
        BlockNumber segno;
 
        /*
-        * Note that because we loop until getting ENOENT, we will
-        * correctly remove all inactive segments as well as active ones.
+        * Note that because we loop until getting ENOENT, we will correctly
+        * remove all inactive segments as well as active ones.
         */
        for (segno = 1;; segno++)
        {
@@ -389,9 +389,9 @@ mdextend(SMgrRelation reln, BlockNumber blocknum, char *buffer, bool isTemp)
 #endif
 
    /*
-    * If a relation manages to grow to 2^32-1 blocks, refuse to extend it
-    * any more --- we mustn't create a block whose number
-    * actually is InvalidBlockNumber.
+    * If a relation manages to grow to 2^32-1 blocks, refuse to extend it any
+    * more --- we mustn't create a block whose number actually is
+    * InvalidBlockNumber.
     */
    if (blocknum == InvalidBlockNumber)
        ereport(ERROR,
@@ -414,7 +414,7 @@ mdextend(SMgrRelation reln, BlockNumber blocknum, char *buffer, bool isTemp)
    /*
     * Note: because caller usually obtained blocknum by calling mdnblocks,
     * which did a seek(SEEK_END), this seek is often redundant and will be
-    * optimized away by fd.c.  It's not redundant, however, if there is a
+    * optimized away by fd.c.  It's not redundant, however, if there is a
     * partial page at the end of the file. In that case we want to try to
     * overwrite the partial page with a full page.  It's also not redundant
     * if bufmgr.c had to dump another buffer of the same file to make room
@@ -588,16 +588,17 @@ mdread(SMgrRelation reln, BlockNumber blocknum, char *buffer)
        if (nbytes < 0)
            ereport(ERROR,
                    (errcode_for_file_access(),
-                    errmsg("could not read block %u of relation %u/%u/%u: %m",
-                           blocknum,
-                           reln->smgr_rnode.spcNode,
-                           reln->smgr_rnode.dbNode,
-                           reln->smgr_rnode.relNode)));
+                  errmsg("could not read block %u of relation %u/%u/%u: %m",
+                         blocknum,
+                         reln->smgr_rnode.spcNode,
+                         reln->smgr_rnode.dbNode,
+                         reln->smgr_rnode.relNode)));
+
        /*
         * Short read: we are at or past EOF, or we read a partial block at
         * EOF.  Normally this is an error; upper levels should never try to
-        * read a nonexistent block.  However, if zero_damaged_pages is ON
-        * or we are InRecovery, we should instead return zeroes without
+        * read a nonexistent block.  However, if zero_damaged_pages is ON or
+        * we are InRecovery, we should instead return zeroes without
         * complaining.  This allows, for example, the case of trying to
         * update a block that was later truncated away.
         */
@@ -657,11 +658,11 @@ mdwrite(SMgrRelation reln, BlockNumber blocknum, char *buffer, bool isTemp)
        if (nbytes < 0)
            ereport(ERROR,
                    (errcode_for_file_access(),
-                    errmsg("could not write block %u of relation %u/%u/%u: %m",
-                           blocknum,
-                           reln->smgr_rnode.spcNode,
-                           reln->smgr_rnode.dbNode,
-                           reln->smgr_rnode.relNode)));
+                 errmsg("could not write block %u of relation %u/%u/%u: %m",
+                        blocknum,
+                        reln->smgr_rnode.spcNode,
+                        reln->smgr_rnode.dbNode,
+                        reln->smgr_rnode.relNode)));
        /* short write: complain appropriately */
        ereport(ERROR,
                (errcode(ERRCODE_DISK_FULL),
@@ -703,7 +704,7 @@ mdnblocks(SMgrRelation reln)
     * NOTE: this assumption could only be wrong if another backend has
     * truncated the relation.  We rely on higher code levels to handle that
     * scenario by closing and re-opening the md fd, which is handled via
-    * relcache flush.  (Since the bgwriter doesn't participate in relcache
+    * relcache flush.  (Since the bgwriter doesn't participate in relcache
     * flush, it could have segment chain entries for inactive segments;
     * that's OK because the bgwriter never needs to compute relation size.)
     */
@@ -738,11 +739,11 @@ mdnblocks(SMgrRelation reln)
            if (v->mdfd_chain == NULL)
                ereport(ERROR,
                        (errcode_for_file_access(),
-                        errmsg("could not open segment %u of relation %u/%u/%u: %m",
-                               segno,
-                               reln->smgr_rnode.spcNode,
-                               reln->smgr_rnode.dbNode,
-                               reln->smgr_rnode.relNode)));
+                errmsg("could not open segment %u of relation %u/%u/%u: %m",
+                       segno,
+                       reln->smgr_rnode.spcNode,
+                       reln->smgr_rnode.dbNode,
+                       reln->smgr_rnode.relNode)));
        }
 
        v = v->mdfd_chain;
@@ -766,8 +767,8 @@ mdtruncate(SMgrRelation reln, BlockNumber nblocks, bool isTemp)
 #endif
 
    /*
-    * NOTE: mdnblocks makes sure we have opened all active segments, so
-    * that truncation loop will get them all!
+    * NOTE: mdnblocks makes sure we have opened all active segments, so that
+    * truncation loop will get them all!
     */
    curnblk = mdnblocks(reln);
    if (nblocks > curnblk)
@@ -796,9 +797,9 @@ mdtruncate(SMgrRelation reln, BlockNumber nblocks, bool isTemp)
        if (priorblocks > nblocks)
        {
            /*
-            * This segment is no longer active (and has already been
-            * unlinked from the mdfd_chain). We truncate the file, but do
-            * not delete it, for reasons explained in the header comments.
+            * This segment is no longer active (and has already been unlinked
+            * from the mdfd_chain). We truncate the file, but do not delete
+            * it, for reasons explained in the header comments.
             */
            if (FileTruncate(v->mdfd_vfd, 0) < 0)
                ereport(ERROR,
@@ -876,8 +877,8 @@ mdimmedsync(SMgrRelation reln)
    BlockNumber curnblk;
 
    /*
-    * NOTE: mdnblocks makes sure we have opened all active segments, so
-    * that fsync loop will get them all!
+    * NOTE: mdnblocks makes sure we have opened all active segments, so that
+    * fsync loop will get them all!
     */
    curnblk = mdnblocks(reln);
 
@@ -889,11 +890,11 @@ mdimmedsync(SMgrRelation reln)
        if (FileSync(v->mdfd_vfd) < 0)
            ereport(ERROR,
                    (errcode_for_file_access(),
-                    errmsg("could not fsync segment %u of relation %u/%u/%u: %m",
-                           v->mdfd_segno,
-                           reln->smgr_rnode.spcNode,
-                           reln->smgr_rnode.dbNode,
-                           reln->smgr_rnode.relNode)));
+               errmsg("could not fsync segment %u of relation %u/%u/%u: %m",
+                      v->mdfd_segno,
+                      reln->smgr_rnode.spcNode,
+                      reln->smgr_rnode.dbNode,
+                      reln->smgr_rnode.relNode)));
        v = v->mdfd_chain;
    }
 #else
@@ -929,12 +930,12 @@ mdsync(void)
 
    /*
     * If we are in the bgwriter, the sync had better include all fsync
-    * requests that were queued by backends up to this point.  The tightest
+    * requests that were queued by backends up to this point.  The tightest
     * race condition that could occur is that a buffer that must be written
-    * and fsync'd for the checkpoint could have been dumped by a backend
-    * just before it was visited by BufferSync().  We know the backend will
-    * have queued an fsync request before clearing the buffer's dirtybit,
-    * so we are safe as long as we do an Absorb after completing BufferSync().
+    * and fsync'd for the checkpoint could have been dumped by a backend just
+    * before it was visited by BufferSync().  We know the backend will have
+    * queued an fsync request before clearing the buffer's dirtybit, so we
+    * are safe as long as we do an Absorb after completing BufferSync().
     */
    AbsorbFsyncRequests();
 
@@ -946,21 +947,21 @@ mdsync(void)
     * ones: new ones will have cycle_ctr equal to the incremented value of
     * mdsync_cycle_ctr.
     *
-    * In normal circumstances, all entries present in the table at this
-    * point will have cycle_ctr exactly equal to the current (about to be old)
+    * In normal circumstances, all entries present in the table at this point
+    * will have cycle_ctr exactly equal to the current (about to be old)
     * value of mdsync_cycle_ctr.  However, if we fail partway through the
     * fsync'ing loop, then older values of cycle_ctr might remain when we
     * come back here to try again.  Repeated checkpoint failures would
     * eventually wrap the counter around to the point where an old entry
     * might appear new, causing us to skip it, possibly allowing a checkpoint
-    * to succeed that should not have.  To forestall wraparound, any time
-    * the previous mdsync() failed to complete, run through the table and
+    * to succeed that should not have.  To forestall wraparound, any time the
+    * previous mdsync() failed to complete, run through the table and
     * forcibly set cycle_ctr = mdsync_cycle_ctr.
     *
     * Think not to merge this loop with the main loop, as the problem is
     * exactly that that loop may fail before having visited all the entries.
-    * From a performance point of view it doesn't matter anyway, as this
-    * path will never be taken in a system that's functioning normally.
+    * From a performance point of view it doesn't matter anyway, as this path
+    * will never be taken in a system that's functioning normally.
     */
    if (mdsync_in_progress)
    {
@@ -994,10 +995,10 @@ mdsync(void)
        Assert((CycleCtr) (entry->cycle_ctr + 1) == mdsync_cycle_ctr);
 
        /*
-        * If fsync is off then we don't have to bother opening the file
-        * at all.  (We delay checking until this point so that changing
-        * fsync on the fly behaves sensibly.)  Also, if the entry is
-        * marked canceled, fall through to delete it.
+        * If fsync is off then we don't have to bother opening the file at
+        * all.  (We delay checking until this point so that changing fsync on
+        * the fly behaves sensibly.)  Also, if the entry is marked canceled,
+        * fall through to delete it.
         */
        if (enableFsync && !entry->canceled)
        {
@@ -1018,16 +1019,16 @@ mdsync(void)
 
            /*
             * The fsync table could contain requests to fsync segments that
-            * have been deleted (unlinked) by the time we get to them.
-            * Rather than just hoping an ENOENT (or EACCES on Windows) error
-            * can be ignored, what we do on error is absorb pending requests
-            * and then retry.  Since mdunlink() queues a "revoke" message
-            * before actually unlinking, the fsync request is guaranteed to
-            * be marked canceled after the absorb if it really was this case.
+            * have been deleted (unlinked) by the time we get to them. Rather
+            * than just hoping an ENOENT (or EACCES on Windows) error can be
+            * ignored, what we do on error is absorb pending requests and
+            * then retry.  Since mdunlink() queues a "revoke" message before
+            * actually unlinking, the fsync request is guaranteed to be
+            * marked canceled after the absorb if it really was this case.
             * DROP DATABASE likewise has to tell us to forget fsync requests
             * before it starts deletions.
             */
-           for (failures = 0; ; failures++)    /* loop exits at "break" */
+           for (failures = 0;; failures++)     /* loop exits at "break" */
            {
                SMgrRelation reln;
                MdfdVec    *seg;
@@ -1052,13 +1053,13 @@ mdsync(void)
                /*
                 * It is possible that the relation has been dropped or
                 * truncated since the fsync request was entered.  Therefore,
-                * allow ENOENT, but only if we didn't fail already on
-                * this file.  This applies both during _mdfd_getseg() and
-                * during FileSync, since fd.c might have closed the file
-                * behind our back.
+                * allow ENOENT, but only if we didn't fail already on this
+                * file.  This applies both during _mdfd_getseg() and during
+                * FileSync, since fd.c might have closed the file behind our
+                * back.
                 */
                seg = _mdfd_getseg(reln,
-                                  entry->tag.segno * ((BlockNumber) RELSEG_SIZE),
+                             entry->tag.segno * ((BlockNumber) RELSEG_SIZE),
                                   false, EXTENSION_RETURN_NULL);
                if (seg != NULL &&
                    FileSync(seg->mdfd_vfd) >= 0)
@@ -1066,8 +1067,8 @@ mdsync(void)
 
                /*
                 * XXX is there any point in allowing more than one retry?
-                * Don't see one at the moment, but easy to change the
-                * test here if so.
+                * Don't see one at the moment, but easy to change the test
+                * here if so.
                 */
                if (!FILE_POSSIBLY_DELETED(errno) ||
                    failures > 0)
@@ -1091,22 +1092,22 @@ mdsync(void)
                 * Absorb incoming requests and check to see if canceled.
                 */
                AbsorbFsyncRequests();
-               absorb_counter = FSYNCS_PER_ABSORB; /* might as well... */
+               absorb_counter = FSYNCS_PER_ABSORB;     /* might as well... */
 
                if (entry->canceled)
                    break;
-           }   /* end retry loop */
+           }                   /* end retry loop */
        }
 
        /*
-        * If we get here, either we fsync'd successfully, or we don't have
-        * to because enableFsync is off, or the entry is (now) marked
-        * canceled.  Okay to delete it.
+        * If we get here, either we fsync'd successfully, or we don't have to
+        * because enableFsync is off, or the entry is (now) marked canceled.
+        * Okay to delete it.
         */
        if (hash_search(pendingOpsTable, &entry->tag,
                        HASH_REMOVE, NULL) == NULL)
            elog(ERROR, "pendingOpsTable corrupted");
-   }   /* end loop over hashtable entries */
+   }                           /* end loop over hashtable entries */
 
    /* Flag successful completion of mdsync */
    mdsync_in_progress = false;
@@ -1129,13 +1130,13 @@ mdsync(void)
 void
 mdpreckpt(void)
 {
-   ListCell *cell;
+   ListCell   *cell;
 
    /*
-    * In case the prior checkpoint wasn't completed, stamp all entries in
-    * the list with the current cycle counter.  Anything that's in the
-    * list at the start of checkpoint can surely be deleted after the
-    * checkpoint is finished, regardless of when the request was made.
+    * In case the prior checkpoint wasn't completed, stamp all entries in the
+    * list with the current cycle counter.  Anything that's in the list at
+    * the start of checkpoint can surely be deleted after the checkpoint is
+    * finished, regardless of when the request was made.
     */
    foreach(cell, pendingUnlinks)
    {
@@ -1145,8 +1146,8 @@ mdpreckpt(void)
    }
 
    /*
-    * Any unlink requests arriving after this point will be assigned the
-    * next cycle counter, and won't be unlinked until next checkpoint.
+    * Any unlink requests arriving after this point will be assigned the next
+    * cycle counter, and won't be unlinked until next checkpoint.
     */
    mdckpt_cycle_ctr++;
 }
@@ -1162,11 +1163,11 @@ mdpostckpt(void)
    while (pendingUnlinks != NIL)
    {
        PendingUnlinkEntry *entry = (PendingUnlinkEntry *) linitial(pendingUnlinks);
-       char *path;
+       char       *path;
 
        /*
-        * New entries are appended to the end, so if the entry is new
-        * we've reached the end of old entries.
+        * New entries are appended to the end, so if the entry is new we've
+        * reached the end of old entries.
         */
        if (entry->cycle_ctr == mdsync_cycle_ctr)
            break;
@@ -1222,11 +1223,11 @@ register_dirty_segment(SMgrRelation reln, MdfdVec *seg)
        if (FileSync(seg->mdfd_vfd) < 0)
            ereport(ERROR,
                    (errcode_for_file_access(),
-                    errmsg("could not fsync segment %u of relation %u/%u/%u: %m",
-                           seg->mdfd_segno,
-                           reln->smgr_rnode.spcNode,
-                           reln->smgr_rnode.dbNode,
-                           reln->smgr_rnode.relNode)));
+               errmsg("could not fsync segment %u of relation %u/%u/%u: %m",
+                      seg->mdfd_segno,
+                      reln->smgr_rnode.spcNode,
+                      reln->smgr_rnode.dbNode,
+                      reln->smgr_rnode.relNode)));
    }
 }
 
@@ -1272,7 +1273,7 @@ register_unlink(RelFileNode rnode)
  * - FORGET_RELATION_FSYNC means to cancel pending fsyncs for a relation
  * - FORGET_DATABASE_FSYNC means to cancel pending fsyncs for a whole database
  * - UNLINK_RELATION_REQUEST is a request to delete the file after the next
- *   checkpoint.
+ *  checkpoint.
  *
  * (Handling the FORGET_* requests is a tad slow because the hash table has
  * to be searched linearly, but it doesn't seem worth rethinking the table
@@ -1351,9 +1352,10 @@ RememberFsyncRequest(RelFileNode rnode, BlockNumber segno)
            entry->canceled = false;
            entry->cycle_ctr = mdsync_cycle_ctr;
        }
+
        /*
         * NB: it's intentional that we don't change cycle_ctr if the entry
-        * already exists.  The fsync request must be treated as old, even
+        * already exists.  The fsync request must be treated as old, even
         * though the new request will be satisfied too by any subsequent
         * fsync.
         *
@@ -1361,8 +1363,8 @@ RememberFsyncRequest(RelFileNode rnode, BlockNumber segno)
         * act just as though it wasn't there.  The only case where this could
         * happen would be if a file had been deleted, we received but did not
         * yet act on the cancel request, and the same relfilenode was then
-        * assigned to a new file.  We mustn't lose the new request, but
-        * it should be considered new not old.
+        * assigned to a new file.  We mustn't lose the new request, but it
+        * should be considered new not old.
         */
    }
 }
@@ -1385,16 +1387,17 @@ ForgetRelationFsyncRequests(RelFileNode rnode)
         * message, we have to sleep and try again ... ugly, but hopefully
         * won't happen often.
         *
-        * XXX should we CHECK_FOR_INTERRUPTS in this loop?  Escaping with
-        * an error would leave the no-longer-used file still present on
-        * disk, which would be bad, so I'm inclined to assume that the
-        * bgwriter will always empty the queue soon.
+        * XXX should we CHECK_FOR_INTERRUPTS in this loop?  Escaping with an
+        * error would leave the no-longer-used file still present on disk,
+        * which would be bad, so I'm inclined to assume that the bgwriter
+        * will always empty the queue soon.
         */
        while (!ForwardFsyncRequest(rnode, FORGET_RELATION_FSYNC))
            pg_usleep(10000L);  /* 10 msec seems a good number */
+
        /*
-        * Note we don't wait for the bgwriter to actually absorb the
-        * revoke message; see mdsync() for the implications.
+        * Note we don't wait for the bgwriter to actually absorb the revoke
+        * message; see mdsync() for the implications.
         */
    }
 }
@@ -1511,24 +1514,24 @@ _mdfd_getseg(SMgrRelation reln, BlockNumber blkno, bool isTemp,
        if (v->mdfd_chain == NULL)
        {
            /*
-            * Normally we will create new segments only if authorized by
-            * the caller (i.e., we are doing mdextend()).  But when doing
-            * WAL recovery, create segments anyway; this allows cases such as
+            * Normally we will create new segments only if authorized by the
+            * caller (i.e., we are doing mdextend()).  But when doing WAL
+            * recovery, create segments anyway; this allows cases such as
             * replaying WAL data that has a write into a high-numbered
             * segment of a relation that was later deleted.  We want to go
             * ahead and create the segments so we can finish out the replay.
             *
-            * We have to maintain the invariant that segments before the
-            * last active segment are of size RELSEG_SIZE; therefore, pad
-            * them out with zeroes if needed.  (This only matters if caller
-            * is extending the relation discontiguously, but that can happen
-            * in hash indexes.)
+            * We have to maintain the invariant that segments before the last
+            * active segment are of size RELSEG_SIZE; therefore, pad them out
+            * with zeroes if needed.  (This only matters if caller is
+            * extending the relation discontiguously, but that can happen in
+            * hash indexes.)
             */
            if (behavior == EXTENSION_CREATE || InRecovery)
            {
                if (_mdnblocks(reln, v) < RELSEG_SIZE)
                {
-                   char   *zerobuf = palloc0(BLCKSZ);
+                   char       *zerobuf = palloc0(BLCKSZ);
 
                    mdextend(reln, nextsegno * ((BlockNumber) RELSEG_SIZE) - 1,
                             zerobuf, isTemp);
@@ -1575,11 +1578,11 @@ _mdnblocks(SMgrRelation reln, MdfdVec *seg)
    if (len < 0)
        ereport(ERROR,
                (errcode_for_file_access(),
-                errmsg("could not seek to end of segment %u of relation %u/%u/%u: %m",
-                       seg->mdfd_segno,
-                       reln->smgr_rnode.spcNode,
-                       reln->smgr_rnode.dbNode,
-                       reln->smgr_rnode.relNode)));
+       errmsg("could not seek to end of segment %u of relation %u/%u/%u: %m",
+              seg->mdfd_segno,
+              reln->smgr_rnode.spcNode,
+              reln->smgr_rnode.dbNode,
+              reln->smgr_rnode.relNode)));
    /* note that this calculation will ignore any partial block at EOF */
    return (BlockNumber) (len / BLCKSZ);
 }
index 6b13483a6d5c9321f5e8530b1eb0caf0d6fe4b98..0362da8d7b26fe77db7ad5cccb184ad301ede543 100644 (file)
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/smgr/smgr.c,v 1.107 2007/11/15 20:36:40 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/smgr/smgr.c,v 1.108 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -53,13 +53,13 @@ typedef struct f_smgr
                                           char *buffer, bool isTemp);
    BlockNumber (*smgr_nblocks) (SMgrRelation reln);
    void        (*smgr_truncate) (SMgrRelation reln, BlockNumber nblocks,
-                                 bool isTemp);
+                                             bool isTemp);
    void        (*smgr_immedsync) (SMgrRelation reln);
-   void        (*smgr_commit) (void);      /* may be NULL */
-   void        (*smgr_abort) (void);       /* may be NULL */
-   void        (*smgr_pre_ckpt) (void);    /* may be NULL */
-   void        (*smgr_sync) (void);        /* may be NULL */
-   void        (*smgr_post_ckpt) (void);   /* may be NULL */
+   void        (*smgr_commit) (void);  /* may be NULL */
+   void        (*smgr_abort) (void);   /* may be NULL */
+   void        (*smgr_pre_ckpt) (void);        /* may be NULL */
+   void        (*smgr_sync) (void);    /* may be NULL */
+   void        (*smgr_post_ckpt) (void);       /* may be NULL */
 } f_smgr;
 
 
@@ -848,8 +848,8 @@ smgr_redo(XLogRecPtr lsn, XLogRecord *record)
        /*
         * Forcibly create relation if it doesn't exist (which suggests that
         * it was dropped somewhere later in the WAL sequence).  As in
-        * XLogOpenRelation, we prefer to recreate the rel and replay the
-        * log as best we can until the drop is seen.
+        * XLogOpenRelation, we prefer to recreate the rel and replay the log
+        * as best we can until the drop is seen.
         */
        smgrcreate(reln, false, true);
 
index b5ecea2d06474de2702ead2d6682ed404e2b6a1e..43435966c95033162048422816f6dfadec1541ce 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.537 2007/08/02 23:39:44 adunstan Exp $
+ *   $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.538 2007/11/15 21:14:38 momjian Exp $
  *
  * NOTES
  *   this is the "main" module of the postgres backend and
@@ -142,6 +142,7 @@ static bool ignore_till_sync = false;
  * in order to reduce overhead for short-lived queries.
  */
 static CachedPlanSource *unnamed_stmt_psrc = NULL;
+
 /* workspace for building a new unnamed statement in */
 static MemoryContext unnamed_stmt_context = NULL;
 
@@ -214,8 +215,8 @@ InteractiveBackend(StringInfo inBuf)
    if (UseNewLine)
    {
        /*
-        * if we are using \n as a delimiter, then read characters until
-        * the \n.
+        * if we are using \n as a delimiter, then read characters until the
+        * \n.
         */
        while ((c = interactive_getc()) != EOF)
        {
@@ -833,10 +834,10 @@ exec_simple_query(const char *query_string)
    MemoryContextSwitchTo(oldcontext);
 
    /*
-    * We'll tell PortalRun it's a top-level command iff there's exactly
-    * one raw parsetree.  If more than one, it's effectively a transaction
-    * block and we want PreventTransactionChain to reject unsafe commands.
-    * (Note: we're assuming that query rewrite cannot add commands that are
+    * We'll tell PortalRun it's a top-level command iff there's exactly one
+    * raw parsetree.  If more than one, it's effectively a transaction block
+    * and we want PreventTransactionChain to reject unsafe commands. (Note:
+    * we're assuming that query rewrite cannot add commands that are
     * significant to PreventTransactionChain.)
     */
    isTopLevel = (list_length(parsetree_list) == 1);
@@ -1173,8 +1174,8 @@ exec_parse_message(const char *query_string,  /* string to execute */
         * originally specified parameter set is not required to be complete,
         * so we have to use parse_analyze_varparams().
         *
-        * XXX must use copyObject here since parse analysis scribbles on
-        * its input, and we need the unmodified raw parse tree for possible
+        * XXX must use copyObject here since parse analysis scribbles on its
+        * input, and we need the unmodified raw parse tree for possible
         * replanning later.
         */
        if (log_parser_stats)
@@ -1242,7 +1243,7 @@ exec_parse_message(const char *query_string,  /* string to execute */
                               commandTag,
                               paramTypes,
                               numParams,
-                              0,               /* default cursor options */
+                              0,       /* default cursor options */
                               stmt_list,
                               false);
    }
@@ -1252,7 +1253,7 @@ exec_parse_message(const char *query_string,  /* string to execute */
         * paramTypes and query_string need to be copied into
         * unnamed_stmt_context.  The rest is there already
         */
-       Oid    *newParamTypes;
+       Oid        *newParamTypes;
 
        if (numParams > 0)
        {
@@ -1267,7 +1268,7 @@ exec_parse_message(const char *query_string,  /* string to execute */
                                                 commandTag,
                                                 newParamTypes,
                                                 numParams,
-                                                0, /* cursor options */
+                                                0,     /* cursor options */
                                                 stmt_list,
                                                 fully_planned,
                                                 true,
@@ -1413,7 +1414,7 @@ exec_bind_message(StringInfo input_message)
        ereport(ERROR,
                (errcode(ERRCODE_PROTOCOL_VIOLATION),
                 errmsg("bind message supplies %d parameters, but prepared statement \"%s\" requires %d",
-                  numParams, stmt_name, psrc->num_params)));
+                       numParams, stmt_name, psrc->num_params)));
 
    /*
     * If we are in aborted transaction state, the only portals we can
@@ -1597,8 +1598,8 @@ exec_bind_message(StringInfo input_message)
    {
        /*
         * Revalidate the cached plan; this may result in replanning.  Any
-        * cruft will be generated in MessageContext.  The plan refcount
-        * will be assigned to the Portal, so it will be released at portal
+        * cruft will be generated in MessageContext.  The plan refcount will
+        * be assigned to the Portal, so it will be released at portal
         * destruction.
         */
        cplan = RevalidateCachedPlan(psrc, false);
@@ -1680,7 +1681,7 @@ exec_bind_message(StringInfo input_message)
                            *stmt_name ? stmt_name : "<unnamed>",
                            *portal_name ? "/" : "",
                            *portal_name ? portal_name : "",
-                           psrc->query_string ? psrc->query_string : "<source not stored>"),
+           psrc->query_string ? psrc->query_string : "<source not stored>"),
                     errhidestmt(true),
                     errdetail_params(params)));
            break;
@@ -1842,7 +1843,7 @@ exec_execute_message(const char *portal_name, long max_rows)
 
    completed = PortalRun(portal,
                          max_rows,
-                         true,                 /* always top level */
+                         true, /* always top level */
                          receiver,
                          receiver,
                          completionTag);
@@ -2134,8 +2135,8 @@ exec_describe_statement_message(const char *stmt_name)
 
    /*
     * If we are in aborted transaction state, we can't run
-    * SendRowDescriptionMessage(), because that needs catalog accesses.
-    * (We can't do RevalidateCachedPlan, either, but that's a lesser problem.)
+    * SendRowDescriptionMessage(), because that needs catalog accesses. (We
+    * can't do RevalidateCachedPlan, either, but that's a lesser problem.)
     * Hence, refuse to Describe statements that return data.  (We shouldn't
     * just refuse all Describes, since that might break the ability of some
     * clients to issue COMMIT or ROLLBACK commands, if they use code that
@@ -2368,6 +2369,7 @@ drop_unnamed_stmt(void)
    if (unnamed_stmt_psrc)
        DropCachedPlan(unnamed_stmt_psrc);
    unnamed_stmt_psrc = NULL;
+
    /*
     * If we failed while trying to build a prior unnamed statement, we may
     * have a memory context that wasn't assigned to a completed plancache
@@ -2564,7 +2566,7 @@ ProcessInterrupts(void)
        else
            ereport(FATAL,
                    (errcode(ERRCODE_ADMIN_SHUTDOWN),
-                    errmsg("terminating connection due to administrator command")));
+            errmsg("terminating connection due to administrator command")));
    }
    if (QueryCancelPending)
    {
@@ -2624,8 +2626,8 @@ check_stack_depth(void)
        ereport(ERROR,
                (errcode(ERRCODE_STATEMENT_TOO_COMPLEX),
                 errmsg("stack depth limit exceeded"),
-                errhint("Increase the configuration parameter \"max_stack_depth\", "
-                        "after ensuring the platform's stack depth limit is adequate.")));
+        errhint("Increase the configuration parameter \"max_stack_depth\", "
+          "after ensuring the platform's stack depth limit is adequate.")));
    }
 }
 
@@ -2852,9 +2854,9 @@ PostgresMain(int argc, char *argv[], const char *username)
    gucsource = PGC_S_ARGV;     /* initial switches came from command line */
 
    /*
-    * Parse command-line options.  CAUTION: keep this in sync with
-    * postmaster/postmaster.c (the option sets should not conflict)
-    * and with the common help() function in main/main.c.
+    * Parse command-line options.  CAUTION: keep this in sync with
+    * postmaster/postmaster.c (the option sets should not conflict) and with
+    * the common help() function in main/main.c.
     */
    while ((flag = getopt(argc, argv, "A:B:c:D:d:EeFf:h:ijk:lN:nOo:Pp:r:S:sTt:v:W:y:-:")) != -1)
    {
@@ -3119,7 +3121,7 @@ PostgresMain(int argc, char *argv[], const char *username)
    if (IsUnderPostmaster)
        pqsignal(SIGQUIT, quickdie);    /* hard crash time */
    else
-       pqsignal(SIGQUIT, die);     /* cancel current query and exit */
+       pqsignal(SIGQUIT, die); /* cancel current query and exit */
    pqsignal(SIGALRM, handle_sig_alarm);        /* timeout conditions */
 
    /*
@@ -3787,11 +3789,11 @@ get_stack_depth_rlimit(void)
            val = rlim.rlim_cur;
    }
    return val;
-#else /* no getrlimit */
+#else                          /* no getrlimit */
 #if defined(WIN32) || defined(__CYGWIN__)
    /* On Windows we set the backend stack size in src/backend/Makefile */
    return WIN32_STACK_RLIMIT;
-#else  /* not windows ... give up */
+#else                          /* not windows ... give up */
    return -1;
 #endif
 #endif
index 15b2cd4c2cfc40bd55abc8bc7a178c4d7f7a7a6e..72d20cd3ca8ee9148e808ae48fa44e71da40a544 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/tcop/pquery.c,v 1.117 2007/09/03 18:46:30 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/tcop/pquery.c,v 1.118 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -32,7 +32,7 @@
 Portal     ActivePortal = NULL;
 
 
-static void ProcessQuery(PlannedStmt *plan,
+static void ProcessQuery(PlannedStmt * plan,
             ParamListInfo params,
             DestReceiver *dest,
             char *completionTag);
@@ -57,7 +57,7 @@ static void DoPortalRewind(Portal portal);
  * CreateQueryDesc
  */
 QueryDesc *
-CreateQueryDesc(PlannedStmt *plannedstmt,
+CreateQueryDesc(PlannedStmt * plannedstmt,
                Snapshot snapshot,
                Snapshot crosscheck_snapshot,
                DestReceiver *dest,
@@ -67,9 +67,9 @@ CreateQueryDesc(PlannedStmt *plannedstmt,
    QueryDesc  *qd = (QueryDesc *) palloc(sizeof(QueryDesc));
 
    qd->operation = plannedstmt->commandType;   /* operation */
-   qd->plannedstmt = plannedstmt;              /* plan */
-   qd->utilitystmt = plannedstmt->utilityStmt; /* in case DECLARE CURSOR */
-   qd->snapshot = snapshot;                    /* snapshot */
+   qd->plannedstmt = plannedstmt;      /* plan */
+   qd->utilitystmt = plannedstmt->utilityStmt; /* in case DECLARE CURSOR */
+   qd->snapshot = snapshot;    /* snapshot */
    qd->crosscheck_snapshot = crosscheck_snapshot;      /* RI check snapshot */
    qd->dest = dest;            /* output dest */
    qd->params = params;        /* parameter values passed into query */
@@ -94,10 +94,10 @@ CreateUtilityQueryDesc(Node *utilitystmt,
 {
    QueryDesc  *qd = (QueryDesc *) palloc(sizeof(QueryDesc));
 
-   qd->operation = CMD_UTILITY;                /* operation */
+   qd->operation = CMD_UTILITY;    /* operation */
    qd->plannedstmt = NULL;
-   qd->utilitystmt = utilitystmt;              /* utility command */
-   qd->snapshot = snapshot;                    /* snapshot */
+   qd->utilitystmt = utilitystmt;      /* utility command */
+   qd->snapshot = snapshot;    /* snapshot */
    qd->crosscheck_snapshot = InvalidSnapshot;  /* RI check snapshot */
    qd->dest = dest;            /* output dest */
    qd->params = params;        /* parameter values passed into query */
@@ -141,7 +141,7 @@ FreeQueryDesc(QueryDesc *qdesc)
  * error; otherwise the executor's memory usage will be leaked.
  */
 static void
-ProcessQuery(PlannedStmt *plan,
+ProcessQuery(PlannedStmt * plan,
             ParamListInfo params,
             DestReceiver *dest,
             char *completionTag)
@@ -579,7 +579,7 @@ PortalStart(Portal portal, ParamListInfo params, Snapshot snapshot)
                 * take care of it if needed.
                 */
                {
-                   Node *ustmt = PortalGetPrimaryStmt(portal);
+                   Node       *ustmt = PortalGetPrimaryStmt(portal);
 
                    Assert(!IsA(ustmt, PlannedStmt));
                    portal->tupDesc = UtilityTupleDescriptor(ustmt);
@@ -1218,7 +1218,7 @@ PortalRunMulti(Portal portal, bool isTopLevel,
     */
    foreach(stmtlist_item, portal->stmts)
    {
-       Node   *stmt = (Node *) lfirst(stmtlist_item);
+       Node       *stmt = (Node *) lfirst(stmtlist_item);
 
        /*
         * If we got a cancel signal in prior command, quit
@@ -1366,7 +1366,7 @@ PortalRunFetch(Portal portal,
                 * results in the portal's tuplestore.
                 */
                if (!portal->holdStore)
-                   FillPortalStore(portal, false /* isTopLevel */);
+                   FillPortalStore(portal, false /* isTopLevel */ );
 
                /*
                 * Now fetch desired portion of results.
index d0b23d8d2925ee84fc0943d3b5a0fae89519b3a9..9a1e877820dd42e3a0c92bb9332826d8c03ad3bb 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.286 2007/09/03 18:46:30 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.287 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -269,9 +269,9 @@ CommandIsReadOnly(Node *parsetree)
        {
            case CMD_SELECT:
                if (stmt->intoClause != NULL)
-                   return false;   /* SELECT INTO */
+                   return false;       /* SELECT INTO */
                else if (stmt->rowMarks != NIL)
-                   return false;   /* SELECT FOR UPDATE/SHARE */
+                   return false;       /* SELECT FOR UPDATE/SHARE */
                else
                    return true;
            case CMD_UPDATE:
@@ -546,8 +546,8 @@ ProcessUtility(Node *parsetree,
 
        case T_CreateStmt:
            {
-               List        *stmts;
-               ListCell    *l;
+               List       *stmts;
+               ListCell   *l;
                Oid         relOid;
 
                /* Run parse analysis ... */
@@ -557,7 +557,7 @@ ProcessUtility(Node *parsetree,
                /* ... and do it */
                foreach(l, stmts)
                {
-                   Node   *stmt = (Node *) lfirst(l);
+                   Node       *stmt = (Node *) lfirst(l);
 
                    if (IsA(stmt, CreateStmt))
                    {
@@ -746,8 +746,8 @@ ProcessUtility(Node *parsetree,
 
        case T_AlterTableStmt:
            {
-               List        *stmts;
-               ListCell    *l;
+               List       *stmts;
+               ListCell   *l;
 
                /* Run parse analysis ... */
                stmts = transformAlterTableStmt((AlterTableStmt *) parsetree,
@@ -756,7 +756,7 @@ ProcessUtility(Node *parsetree,
                /* ... and do it */
                foreach(l, stmts)
                {
-                   Node   *stmt = (Node *) lfirst(l);
+                   Node       *stmt = (Node *) lfirst(l);
 
                    if (IsA(stmt, AlterTableStmt))
                    {
@@ -886,11 +886,11 @@ ProcessUtility(Node *parsetree,
            }
            break;
 
-       case T_CreateEnumStmt:          /* CREATE TYPE (enum) */
+       case T_CreateEnumStmt:  /* CREATE TYPE (enum) */
            DefineEnum((CreateEnumStmt *) parsetree);
            break;
 
-       case T_ViewStmt:                /* CREATE VIEW */
+       case T_ViewStmt:        /* CREATE VIEW */
            DefineView((ViewStmt *) parsetree, queryString);
            break;
 
@@ -1158,11 +1158,12 @@ ProcessUtility(Node *parsetree,
                        ReindexTable(stmt->relation);
                        break;
                    case OBJECT_DATABASE:
+
                        /*
-                        * This cannot run inside a user transaction block;
-                        * if we were inside a transaction, then its commit-
-                        * and start-transaction-command calls would not have
-                        * the intended effect!
+                        * This cannot run inside a user transaction block; if
+                        * we were inside a transaction, then its commit- and
+                        * start-transaction-command calls would not have the
+                        * intended effect!
                         */
                        PreventTransactionChain(isTopLevel,
                                                "REINDEX DATABASE");
@@ -1385,7 +1386,7 @@ CreateCommandTag(Node *parsetree)
 
    switch (nodeTag(parsetree))
    {
-       /* raw plannable queries */
+           /* raw plannable queries */
        case T_InsertStmt:
            tag = "INSERT";
            break;
@@ -1402,7 +1403,7 @@ CreateCommandTag(Node *parsetree)
            tag = "SELECT";
            break;
 
-       /* utility statements --- same whether raw or cooked */
+           /* utility statements --- same whether raw or cooked */
        case T_TransactionStmt:
            {
                TransactionStmt *stmt = (TransactionStmt *) parsetree;
@@ -1460,6 +1461,7 @@ CreateCommandTag(Node *parsetree)
        case T_ClosePortalStmt:
            {
                ClosePortalStmt *stmt = (ClosePortalStmt *) parsetree;
+
                if (stmt->portalname == NULL)
                    tag = "CLOSE CURSOR ALL";
                else
@@ -1714,8 +1716,8 @@ CreateCommandTag(Node *parsetree)
 
                /*
                 * We might be supporting ALTER INDEX here, so set the
-                * completion tag appropriately. Catch all other
-                * possibilities with ALTER TABLE
+                * completion tag appropriately. Catch all other possibilities
+                * with ALTER TABLE
                 */
 
                if (stmt->relkind == OBJECT_INDEX)
@@ -2030,6 +2032,7 @@ CreateCommandTag(Node *parsetree)
        case T_DeallocateStmt:
            {
                DeallocateStmt *stmt = (DeallocateStmt *) parsetree;
+
                if (stmt->name == NULL)
                    tag = "DEALLOCATE ALL";
                else
@@ -2037,7 +2040,7 @@ CreateCommandTag(Node *parsetree)
            }
            break;
 
-       /* already-planned queries */
+           /* already-planned queries */
        case T_PlannedStmt:
            {
                PlannedStmt *stmt = (PlannedStmt *) parsetree;
@@ -2045,6 +2048,7 @@ CreateCommandTag(Node *parsetree)
                switch (stmt->commandType)
                {
                    case CMD_SELECT:
+
                        /*
                         * We take a little extra care here so that the result
                         * will be useful for complaints about read-only
@@ -2085,14 +2089,15 @@ CreateCommandTag(Node *parsetree)
            }
            break;
 
-       /* parsed-and-rewritten-but-not-planned queries */
+           /* parsed-and-rewritten-but-not-planned queries */
        case T_Query:
            {
-               Query *stmt = (Query *) parsetree;
+               Query      *stmt = (Query *) parsetree;
 
                switch (stmt->commandType)
                {
                    case CMD_SELECT:
+
                        /*
                         * We take a little extra care here so that the result
                         * will be useful for complaints about read-only
@@ -2162,7 +2167,7 @@ GetCommandLogLevel(Node *parsetree)
 
    switch (nodeTag(parsetree))
    {
-       /* raw plannable queries */
+           /* raw plannable queries */
        case T_InsertStmt:
        case T_DeleteStmt:
        case T_UpdateStmt:
@@ -2176,7 +2181,7 @@ GetCommandLogLevel(Node *parsetree)
                lev = LOGSTMT_ALL;
            break;
 
-       /* utility statements --- same whether raw or cooked */
+           /* utility statements --- same whether raw or cooked */
        case T_TransactionStmt:
            lev = LOGSTMT_ALL;
            break;
@@ -2487,7 +2492,7 @@ GetCommandLogLevel(Node *parsetree)
            lev = LOGSTMT_ALL;
            break;
 
-       /* already-planned queries */
+           /* already-planned queries */
        case T_PlannedStmt:
            {
                PlannedStmt *stmt = (PlannedStmt *) parsetree;
@@ -2516,10 +2521,10 @@ GetCommandLogLevel(Node *parsetree)
            }
            break;
 
-       /* parsed-and-rewritten-but-not-planned queries */
+           /* parsed-and-rewritten-but-not-planned queries */
        case T_Query:
            {
-               Query *stmt = (Query *) parsetree;
+               Query      *stmt = (Query *) parsetree;
 
                switch (stmt->commandType)
                {
index 0459a5c1b058d944ce09bc0bd4dc3b4c1cb32830..cc3ef5c70892803c30196413a946982133073693 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/tsearch/dict.c,v 1.2 2007/10/19 22:01:45 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/tsearch/dict.c,v 1.3 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -40,7 +40,7 @@ ts_lexize(PG_FUNCTION_ARGS)
                                             PointerGetDatum(dict->dictData),
                                                PointerGetDatum(VARDATA(in)),
                                       Int32GetDatum(VARSIZE(in) - VARHDRSZ),
-                                                PointerGetDatum(&dstate)));
+                                                 PointerGetDatum(&dstate)));
 
    if (dstate.getnext)
    {
@@ -49,7 +49,7 @@ ts_lexize(PG_FUNCTION_ARGS)
                                             PointerGetDatum(dict->dictData),
                                                PointerGetDatum(VARDATA(in)),
                                       Int32GetDatum(VARSIZE(in) - VARHDRSZ),
-                                                PointerGetDatum(&dstate)));
+                                                 PointerGetDatum(&dstate)));
        if (ptr != NULL)
            res = ptr;
    }
index d7fe3cc46561a380784d75ea9990d7e49d53f84f..1267a301eecdf684fd43c3a6587dc0ce44d2a12e 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/tsearch/dict_ispell.c,v 1.3 2007/08/25 00:03:59 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/tsearch/dict_ispell.c,v 1.4 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -26,7 +26,7 @@ typedef struct
 {
    StopList    stoplist;
    IspellDict  obj;
-} DictISpell;
+}  DictISpell;
 
 Datum
 dispell_init(PG_FUNCTION_ARGS)
@@ -51,8 +51,8 @@ dispell_init(PG_FUNCTION_ARGS)
                        (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
                         errmsg("multiple DictFile parameters")));
            NIImportDictionary(&(d->obj),
-                              get_tsearch_config_filename(defGetString(defel),
-                                                          "dict"));
+                            get_tsearch_config_filename(defGetString(defel),
+                                                        "dict"));
            dictloaded = true;
        }
        else if (pg_strcasecmp(defel->defname, "AffFile") == 0)
@@ -112,7 +112,7 @@ dispell_lexize(PG_FUNCTION_ARGS)
 {
    DictISpell *d = (DictISpell *) PG_GETARG_POINTER(0);
    char       *in = (char *) PG_GETARG_POINTER(1);
-   int32      len = PG_GETARG_INT32(2);
+   int32       len = PG_GETARG_INT32(2);
    char       *txt;
    TSLexeme   *res;
    TSLexeme   *ptr,
index 8248d3987d64dc19cb2ebb545d4bfdc1afa95121..c2160ab34a274215bf894d000a3645279ef2fbfd 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/tsearch/dict_simple.c,v 1.4 2007/11/14 18:36:37 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/tsearch/dict_simple.c,v 1.5 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -24,7 +24,7 @@ typedef struct
 {
    StopList    stoplist;
    bool        accept;
-} DictSimple;
+}  DictSimple;
 
 
 Datum
@@ -64,8 +64,8 @@ dsimple_init(PG_FUNCTION_ARGS)
        {
            ereport(ERROR,
                    (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                    errmsg("unrecognized simple dictionary parameter: \"%s\"",
-                           defel->defname)));
+                  errmsg("unrecognized simple dictionary parameter: \"%s\"",
+                         defel->defname)));
        }
    }
 
@@ -77,7 +77,7 @@ dsimple_lexize(PG_FUNCTION_ARGS)
 {
    DictSimple *d = (DictSimple *) PG_GETARG_POINTER(0);
    char       *in = (char *) PG_GETARG_POINTER(1);
-   int32      len = PG_GETARG_INT32(2);
+   int32       len = PG_GETARG_INT32(2);
    char       *txt;
    TSLexeme   *res;
 
index 89819eb7443651232b7dfe334307837256eae793..649350745c0c63672492170905daa26330376b8d 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/tsearch/dict_synonym.c,v 1.4 2007/08/25 02:29:45 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/tsearch/dict_synonym.c,v 1.5 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -24,13 +24,13 @@ typedef struct
 {
    char       *in;
    char       *out;
-} Syn;
+}  Syn;
 
 typedef struct
 {
-   int         len;    /* length of syn array */
+   int         len;            /* length of syn array */
    Syn        *syn;
-} DictSyn;
+}  DictSyn;
 
 /*
  * Finds the next whitespace-delimited word within the 'in' string.
@@ -136,8 +136,8 @@ dsynonym_init(PG_FUNCTION_ARGS)
        *end = '\0';
 
        /*
-        * starti now points to the first word, and starto to the second
-        * word on the line, with a \0 terminator at the end of both words.
+        * starti now points to the first word, and starto to the second word
+        * on the line, with a \0 terminator at the end of both words.
         */
 
        if (cur >= d->len)
@@ -159,7 +159,7 @@ dsynonym_init(PG_FUNCTION_ARGS)
 
        cur++;
 
-   skipline:
+skipline:
        pfree(line);
    }
 
@@ -176,7 +176,7 @@ dsynonym_lexize(PG_FUNCTION_ARGS)
 {
    DictSyn    *d = (DictSyn *) PG_GETARG_POINTER(0);
    char       *in = (char *) PG_GETARG_POINTER(1);
-   int32      len = PG_GETARG_INT32(2);
+   int32       len = PG_GETARG_INT32(2);
    Syn         key,
               *found;
    TSLexeme   *res;
index 31564a789935c13edf0ae81feae7a6738f753266..e6beb68438d7c4f422d067bd8f56101cd870e2e1 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/tsearch/dict_thesaurus.c,v 1.6 2007/11/10 15:39:34 momjian Exp $
+ *   $PostgreSQL: pgsql/src/backend/tsearch/dict_thesaurus.c,v 1.7 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -35,20 +35,20 @@ typedef struct LexemeInfo
    uint16      tnvariant;      /* total num lexemes in one variant */
    struct LexemeInfo *nextentry;
    struct LexemeInfo *nextvariant;
-} LexemeInfo;
+}  LexemeInfo;
 
 typedef struct
 {
    char       *lexeme;
    LexemeInfo *entries;
-} TheLexeme;
+}  TheLexeme;
 
 typedef struct
 {
    uint16      lastlexeme;     /* number lexemes to substitute */
    uint16      reslen;
    TSLexeme   *res;            /* prepared substituted result */
-} TheSubstitute;
+}  TheSubstitute;
 
 typedef struct
 {
@@ -66,7 +66,7 @@ typedef struct
     */
    TheSubstitute *subst;
    int         nsubst;
-} DictThesaurus;
+}  DictThesaurus;
 
 
 static void
@@ -412,16 +412,16 @@ compileTheLexeme(DictThesaurus * d)
    {
        TSLexeme   *ptr;
 
-       if (strcmp(d->wrds[i].lexeme, "?") == 0)    /* Is stop word marker? */
+       if (strcmp(d->wrds[i].lexeme, "?") == 0)        /* Is stop word marker? */
            newwrds = addCompiledLexeme(newwrds, &nnw, &tnm, NULL, d->wrds[i].entries, 0);
        else
        {
            ptr = (TSLexeme *) DatumGetPointer(FunctionCall4(&(d->subdict->lexize),
-                                          PointerGetDatum(d->subdict->dictData),
-                                             PointerGetDatum(d->wrds[i].lexeme),
-                                       Int32GetDatum(strlen(d->wrds[i].lexeme)),
-                                                        PointerGetDatum(NULL)));
-   
+                                      PointerGetDatum(d->subdict->dictData),
+                                         PointerGetDatum(d->wrds[i].lexeme),
+                                   Int32GetDatum(strlen(d->wrds[i].lexeme)),
+                                                    PointerGetDatum(NULL)));
+
            if (!ptr)
                elog(ERROR, "thesaurus word-sample \"%s\" isn't recognized by subdictionary (rule %d)",
                     d->wrds[i].lexeme, d->wrds[i].entries->idsubst + 1);
@@ -435,7 +435,7 @@ compileTheLexeme(DictThesaurus * d)
                    TSLexeme   *remptr = ptr + 1;
                    int         tnvar = 1;
                    int         curvar = ptr->nvariant;
-   
+
                    /* compute n words in one variant */
                    while (remptr->lexeme)
                    {
@@ -444,14 +444,14 @@ compileTheLexeme(DictThesaurus * d)
                        tnvar++;
                        remptr++;
                    }
-   
+
                    remptr = ptr;
                    while (remptr->lexeme && remptr->nvariant == curvar)
                    {
                        newwrds = addCompiledLexeme(newwrds, &nnw, &tnm, remptr, d->wrds[i].entries, tnvar);
                        remptr++;
                    }
-   
+
                    ptr = remptr;
                }
            }
@@ -653,7 +653,8 @@ thesaurus_init(PG_FUNCTION_ARGS)
 static LexemeInfo *
 findTheLexeme(DictThesaurus * d, char *lexeme)
 {
-   TheLexeme   key, *res;
+   TheLexeme   key,
+              *res;
 
    if (d->nwrds == 0)
        return NULL;
index aea20b33ee22702c969c942688f42a6f742ec316..765691903a78b01c138d28f31b1426a10e399bda 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/tsearch/spell.c,v 1.5 2007/09/11 12:57:05 teodor Exp $
+ *   $PostgreSQL: pgsql/src/backend/tsearch/spell.c,v 1.6 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -22,7 +22,7 @@
 
 /*
  * Initialization requires a lot of memory that's not needed
- * after the initialization is done.  In init function, 
+ * after the initialization is done.  In init function,
  * CurrentMemoryContext is a long lived memory context associated
  * with the dictionary cache entry, so we use a temporary context
  * for the short-lived stuff.
@@ -35,8 +35,9 @@ static MemoryContext tmpCtx = NULL;
 static void
 checkTmpCtx(void)
 {
-   /* XXX: This assumes that CurrentMemoryContext doesn't have
-    * any children other than the one we create here.
+   /*
+    * XXX: This assumes that CurrentMemoryContext doesn't have any children
+    * other than the one we create here.
     */
    if (CurrentMemoryContext->firstchild == NULL)
    {
@@ -206,7 +207,8 @@ NIImportDictionary(IspellDict * Conf, const char *filename)
 
    while ((line = t_readline(dict)) != NULL)
    {
-       char       *s, *pstr;
+       char       *s,
+                  *pstr;
        const char *flag;
 
        /* Extract flag from the line */
@@ -441,8 +443,8 @@ parse_affentry(char *str, char *mask, char *find, char *repl,
            else if (!t_isspace(str))
                ereport(ERROR,
                        (errcode(ERRCODE_CONFIG_FILE_ERROR),
-                        errmsg("syntax error at line %d of affix file \"%s\"",
-                               lineno, filename)));
+                      errmsg("syntax error at line %d of affix file \"%s\"",
+                             lineno, filename)));
        }
        else if (state == PAE_INFIND)
        {
@@ -459,8 +461,8 @@ parse_affentry(char *str, char *mask, char *find, char *repl,
            else if (!t_isspace(str))
                ereport(ERROR,
                        (errcode(ERRCODE_CONFIG_FILE_ERROR),
-                        errmsg("syntax error at line %d of affix file \"%s\"",
-                               lineno, filename)));
+                      errmsg("syntax error at line %d of affix file \"%s\"",
+                             lineno, filename)));
        }
        else if (state == PAE_WAIT_REPL)
        {
@@ -477,8 +479,8 @@ parse_affentry(char *str, char *mask, char *find, char *repl,
            else if (!t_isspace(str))
                ereport(ERROR,
                        (errcode(ERRCODE_CONFIG_FILE_ERROR),
-                        errmsg("syntax error at line %d of affix file \"%s\"",
-                               lineno, filename)));
+                      errmsg("syntax error at line %d of affix file \"%s\"",
+                             lineno, filename)));
        }
        else if (state == PAE_INREPL)
        {
@@ -495,8 +497,8 @@ parse_affentry(char *str, char *mask, char *find, char *repl,
            else if (!t_isspace(str))
                ereport(ERROR,
                        (errcode(ERRCODE_CONFIG_FILE_ERROR),
-                        errmsg("syntax error at line %d of affix file \"%s\"",
-                               lineno, filename)));
+                      errmsg("syntax error at line %d of affix file \"%s\"",
+                             lineno, filename)));
        }
        else
            elog(ERROR, "unknown state in parse_affentry: %d", state);
@@ -664,7 +666,7 @@ NIImportOOAffixes(IspellDict * Conf, const char *filename)
            if ((ptr = strchr(prepl, '/')) != NULL)
            {
                *ptr = '\0';
-               ptr = repl + (ptr-prepl) + 1;
+               ptr = repl + (ptr - prepl) + 1;
                while (*ptr)
                {
                    aflg |= Conf->flagval[(unsigned int) *ptr];
@@ -685,7 +687,7 @@ NIImportOOAffixes(IspellDict * Conf, const char *filename)
            pfree(pmask);
        }
 
-   nextline:
+nextline:
        pfree(recoded);
    }
 
@@ -742,7 +744,8 @@ NIImportAffixes(IspellDict * Conf, const char *filename)
            s = findchar(pstr, 'l');
            if (s)
            {
-               s = recoded + ( s-pstr ); /* we need non-lowercased string */
+               s = recoded + (s - pstr);       /* we need non-lowercased
+                                                * string */
                while (*s && !t_isspace(s))
                    s++;
                while (*s && t_isspace(s))
@@ -773,7 +776,7 @@ NIImportAffixes(IspellDict * Conf, const char *filename)
        }
        if (STRNCMP(pstr, "flag") == 0)
        {
-           s = recoded + 4; /* we need non-lowercased string */
+           s = recoded + 4;    /* we need non-lowercased string */
            flagflags = 0;
 
            while (*s && t_isspace(s))
@@ -831,7 +834,7 @@ NIImportAffixes(IspellDict * Conf, const char *filename)
 
        NIAddAffix(Conf, flag, flagflags, mask, find, repl, suffixes ? FF_SUFFIX : FF_PREFIX);
 
-   nextline:
+nextline:
        pfree(recoded);
        pfree(pstr);
    }
@@ -953,15 +956,15 @@ mkSPNode(IspellDict * Conf, int low, int high, int level)
 }
 
 /*
- * Builds the Conf->Dictionary tree and AffixData from the imported dictionary 
+ * Builds the Conf->Dictionary tree and AffixData from the imported dictionary
  * and affixes.
  */
 void
 NISortDictionary(IspellDict * Conf)
 {
-   int i;
-   int naffix = 0;
-   int curaffix;
+   int         i;
+   int         naffix = 0;
+   int         curaffix;
 
    checkTmpCtx();
 
@@ -979,9 +982,9 @@ NISortDictionary(IspellDict * Conf)
    }
 
    /*
-    * Fill in Conf->AffixData with the affixes that were used
-    * in the dictionary. Replace textual flag-field of Conf->Spell 
-    * entries with indexes into Conf->AffixData array.
+    * Fill in Conf->AffixData with the affixes that were used in the
+    * dictionary. Replace textual flag-field of Conf->Spell entries with
+    * indexes into Conf->AffixData array.
     */
    Conf->AffixData = (char **) palloc0(naffix * sizeof(char *));
 
@@ -1446,7 +1449,7 @@ typedef struct SplitVar
    int         nstem;
    char      **stem;
    struct SplitVar *next;
-} SplitVar;
+}  SplitVar;
 
 static int
 CheckCompoundAffixes(CMPDAffix ** ptr, char *word, int len, bool CheckInPlace)
index 9756d6c5f03d8ab369366dcd9a7c2caf7aa282f2..3a2bbfd2fc72839aa24e30c4cf39a5b8dd2e6fb1 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/tsearch/to_tsany.c,v 1.5 2007/10/23 00:51:23 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/tsearch/to_tsany.c,v 1.6 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -40,8 +40,8 @@ compareWORD(const void *a, const void *b)
                                  ((ParsedWord *) b)->len);
 
        if (res == 0)
-       {   
-           if ( ((ParsedWord *) a)->pos.pos == ((ParsedWord *) b)->pos.pos )
+       {
+           if (((ParsedWord *) a)->pos.pos == ((ParsedWord *) b)->pos.pos)
                return 0;
 
            return (((ParsedWord *) a)->pos.pos > ((ParsedWord *) b)->pos.pos) ? 1 : -1;
@@ -72,7 +72,7 @@ uniqueWORD(ParsedWord * a, int4 l)
    ptr = a + 1;
 
    /*
-    * Sort words with its positions 
+    * Sort words with its positions
     */
    qsort((void *) a, l, sizeof(ParsedWord), compareWORD);
 
@@ -108,13 +108,13 @@ uniqueWORD(ParsedWord * a, int4 l)
        else
        {
            /*
-            * The word already exists, so adjust position information.
-            * But before we should check size of position's array, 
-            * max allowed value for position and uniqueness of position 
+            * The word already exists, so adjust position information. But
+            * before we should check size of position's array, max allowed
+            * value for position and uniqueness of position
             */
            pfree(ptr->word);
            if (res->pos.apos[0] < MAXNUMPOS - 1 && res->pos.apos[res->pos.apos[0]] != MAXENTRYPOS - 1 &&
-                   res->pos.apos[res->pos.apos[0]] != LIMITPOS(ptr->pos.pos))
+               res->pos.apos[res->pos.apos[0]] != LIMITPOS(ptr->pos.pos))
            {
                if (res->pos.apos[0] + 1 >= res->alen)
                {
@@ -138,7 +138,7 @@ uniqueWORD(ParsedWord * a, int4 l)
  * make value of tsvector, given parsed text
  */
 TSVector
-make_tsvector(ParsedText *prs)
+make_tsvector(ParsedText * prs)
 {
    int         i,
                j,
@@ -182,7 +182,7 @@ make_tsvector(ParsedText *prs)
        pfree(prs->words[i].word);
        if (prs->words[i].alen)
        {
-           int k = prs->words[i].pos.apos[0];
+           int         k = prs->words[i].pos.apos[0];
            WordEntryPos *wptr;
 
            if (k > 0xFFFF)
@@ -265,7 +265,7 @@ to_tsvector(PG_FUNCTION_ARGS)
  * to the stack.
  *
  * All words belonging to the same variant are pushed as an ANDed list,
- * and different variants are ORred together. 
+ * and different variants are ORred together.
  */
 static void
 pushval_morph(Datum opaque, TSQueryParserState state, char *strval, int lenval, int2 weight)
@@ -277,7 +277,8 @@ pushval_morph(Datum opaque, TSQueryParserState state, char *strval, int lenval,
                cntvar = 0,
                cntpos = 0,
                cnt = 0;
-   Oid cfg_id = DatumGetObjectId(opaque); /* the input is actually an Oid, not a pointer */
+   Oid         cfg_id = DatumGetObjectId(opaque);      /* the input is actually
+                                                        * an Oid, not a pointer */
 
    prs.lenwords = 4;
    prs.curwords = 0;
index 784cc17edd2424f73ebc8d814b706b88aca1df7a..acec56bfeb229ec8f751dd94525cbd82c98e4b10 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/tsearch/ts_locale.c,v 1.3 2007/11/09 22:37:35 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/tsearch/ts_locale.c,v 1.4 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -46,7 +46,7 @@ wchar2char(char *to, const wchar_t *from, size_t tolen)
        Assert(r <= tolen);
 
        /* Microsoft counts the zero terminator in the result */
-       return r-1;
+       return r - 1;
    }
 #endif   /* WIN32 */
 
@@ -59,7 +59,7 @@ wchar2char(char *to, const wchar_t *from, size_t tolen)
  * This has almost the API of mbstowcs(), except that *from need not be
  * null-terminated; instead, the number of input bytes is specified as
  * fromlen.  Also, we ereport() rather than returning -1 for invalid
- * input encoding.  tolen is the maximum number of wchar_t's to store at *to.
+ * input encoding. tolen is the maximum number of wchar_t's to store at *to.
  * The output will be zero-terminated iff there is room.
  */
 size_t
@@ -87,7 +87,7 @@ char2wchar(wchar_t *to, size_t tolen, const char *from, size_t fromlen)
        Assert(r <= tolen);
 
        /* Microsoft counts the zero terminator in the result */
-       return r-1;
+       return r - 1;
    }
 #endif   /* WIN32 */
 
@@ -183,7 +183,6 @@ t_isprint(const char *ptr)
 
    return iswprint((wint_t) character[0]);
 }
-
 #endif   /* TS_USE_WIDE */
 
 
@@ -195,10 +194,10 @@ t_isprint(const char *ptr)
 char *
 t_readline(FILE *fp)
 {
-   int len;
-   char *recoded;
-   char buf[4096];     /* lines must not be longer than this */
-   
+   int         len;
+   char       *recoded;
+   char        buf[4096];      /* lines must not be longer than this */
+
    if (fgets(buf, sizeof(buf), fp) == NULL)
        return NULL;
 
@@ -219,9 +218,8 @@ t_readline(FILE *fp)
    if (recoded == buf)
    {
        /*
-        * conversion didn't pstrdup, so we must.
-        * We can use the length of the original string, because
-        * no conversion was done.
+        * conversion didn't pstrdup, so we must. We can use the length of the
+        * original string, because no conversion was done.
         */
        recoded = pnstrdup(recoded, len);
    }
@@ -276,7 +274,7 @@ lowerstr_with_len(const char *str, int len)
         */
        wptr = wstr = (wchar_t *) palloc(sizeof(wchar_t) * (len + 1));
 
-       wlen = char2wchar(wstr, len+1, str, len);
+       wlen = char2wchar(wstr, len + 1, str, len);
        Assert(wlen <= len);
 
        while (*wptr)
index 22c5f2b86eaf3b8dd37ea69ef078433bd92a7ea3..5ceebcf0610fa8a08a6ba896b2d3ef95b05d4dc0 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/tsearch/ts_parse.c,v 1.3 2007/09/07 15:09:55 teodor Exp $
+ *   $PostgreSQL: pgsql/src/backend/tsearch/ts_parse.c,v 1.4 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -31,13 +31,13 @@ typedef struct ParsedLex
    int         lenlemm;
    bool        resfollow;
    struct ParsedLex *next;
-} ParsedLex;
+}  ParsedLex;
 
 typedef struct ListParsedLex
 {
    ParsedLex  *head;
    ParsedLex  *tail;
-} ListParsedLex;
+}  ListParsedLex;
 
 typedef struct
 {
@@ -56,7 +56,7 @@ typedef struct
 
    ParsedLex  *lastRes;
    TSLexeme   *tmpRes;
-} LexizeData;
+}  LexizeData;
 
 static void
 LexizeInit(LexizeData * ld, TSConfigCacheEntry * cfg)
@@ -462,7 +462,7 @@ hlfinditem(HeadlineParsedText * prs, TSQuery query, char *buf, int buflen)
    {
        if (item->type == QI_VAL &&
            item->operand.length == buflen &&
-           strncmp(GETOPERAND(query) + item->operand.distance, buf, buflen) == 0)
+       strncmp(GETOPERAND(query) + item->operand.distance, buf, buflen) == 0)
        {
            if (word->item)
            {
index 6c989474202cae395980fdfb6e4ac3fa2620cfd5..39c8713a23476e40d45b5d2d2f3b9cf26a6af8c4 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/tsearch/ts_utils.c,v 1.5 2007/11/09 22:37:35 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/tsearch/ts_utils.c,v 1.6 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -26,8 +26,8 @@
 
 /*
  * Given the base name and extension of a tsearch config file, return
- * its full path name.  The base name is assumed to be user-supplied,
- * and is checked to prevent pathname attacks.  The extension is assumed
+ * its full path name. The base name is assumed to be user-supplied,
+ * and is checked to prevent pathname attacks. The extension is assumed
  * to be safe.
  *
  * The result is a palloc'd string.
@@ -40,14 +40,13 @@ get_tsearch_config_filename(const char *basename,
    char       *result;
 
    /*
-    * We limit the basename to contain a-z, 0-9, and underscores.  This may
+    * We limit the basename to contain a-z, 0-9, and underscores.  This may
     * be overly restrictive, but we don't want to allow access to anything
     * outside the tsearch_data directory, so for instance '/' *must* be
-    * rejected, and on some platforms '\' and ':' are risky as well.
-    * Allowing uppercase might result in incompatible behavior between
-    * case-sensitive and case-insensitive filesystems, and non-ASCII
-    * characters create other interesting risks, so on the whole a tight
-    * policy seems best.
+    * rejected, and on some platforms '\' and ':' are risky as well. Allowing
+    * uppercase might result in incompatible behavior between case-sensitive
+    * and case-insensitive filesystems, and non-ASCII characters create other
+    * interesting risks, so on the whole a tight policy seems best.
     */
    if (strspn(basename, "abcdefghijklmnopqrstuvwxyz0123456789_") != strlen(basename))
        ereport(ERROR,
@@ -71,11 +70,11 @@ comparestr(const void *a, const void *b)
 
 /*
  * Reads a stopword file. Each word is run through 'wordop'
- * function, if given.  wordop may either modify the input in-place,
+ * function, if given. wordop may either modify the input in-place,
  * or palloc a new version.
  */
 void
-readstoplist(const char *fname, StopList *s, char *(*wordop) (const char *))
+readstoplist(const char *fname, StopList * s, char *(*wordop) (const char *))
 {
    char      **stop = NULL;
 
@@ -95,7 +94,7 @@ readstoplist(const char *fname, StopList *s, char *(*wordop) (const char *))
 
        while ((line = t_readline(hin)) != NULL)
        {
-           char *pbuf = line;
+           char       *pbuf = line;
 
            /* Trim trailing space */
            while (*pbuf && !t_isspace(pbuf))
index 0582fec2b5f42cbda3c7426b100c2519dd528f1e..147834c37542a762d14e1f168be40e7dfd5b44d1 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/tsearch/wparser.c,v 1.3 2007/08/25 00:03:59 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/tsearch/wparser.c,v 1.4 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -37,7 +37,7 @@ typedef struct
 {
    int         cur;
    LexDescr   *list;
-} TSTokenTypeStorage;
+}  TSTokenTypeStorage;
 
 static void
 tt_setup_firstcall(FuncCallContext *funcctx, Oid prsid)
@@ -131,8 +131,8 @@ ts_token_type_byname(PG_FUNCTION_ARGS)
 
    if (SRF_IS_FIRSTCALL())
    {
-       text    *prsname = PG_GETARG_TEXT_P(0);
-       Oid     prsId;
+       text       *prsname = PG_GETARG_TEXT_P(0);
+       Oid         prsId;
 
        funcctx = SRF_FIRSTCALL_INIT();
        prsId = TSParserGetPrsid(textToQualifiedNameList(prsname), false);
@@ -150,14 +150,14 @@ typedef struct
 {
    int         type;
    char       *lexeme;
-} LexemeEntry;
+}  LexemeEntry;
 
 typedef struct
 {
    int         cur;
    int         len;
    LexemeEntry *list;
-} PrsStorage;
+}  PrsStorage;
 
 
 static void
@@ -181,7 +181,7 @@ prs_setup_firstcall(FuncCallContext *funcctx, Oid prsid, text *txt)
 
    prsdata = (void *) DatumGetPointer(FunctionCall2(&prs->prsstart,
                                               PointerGetDatum(VARDATA(txt)),
-                                      Int32GetDatum(VARSIZE(txt) - VARHDRSZ)));
+                                   Int32GetDatum(VARSIZE(txt) - VARHDRSZ)));
 
    while ((type = DatumGetInt32(FunctionCall3(&prs->prstoken,
                                               PointerGetDatum(prsdata),
@@ -278,9 +278,9 @@ ts_parse_byname(PG_FUNCTION_ARGS)
 
    if (SRF_IS_FIRSTCALL())
    {
-       text    *prsname = PG_GETARG_TEXT_P(0);
-       text    *txt = PG_GETARG_TEXT_P(1);
-       Oid     prsId;
+       text       *prsname = PG_GETARG_TEXT_P(0);
+       text       *txt = PG_GETARG_TEXT_P(1);
+       Oid         prsId;
 
        funcctx = SRF_FIRSTCALL_INIT();
        prsId = TSParserGetPrsid(textToQualifiedNameList(prsname), false);
@@ -351,7 +351,7 @@ Datum
 ts_headline(PG_FUNCTION_ARGS)
 {
    PG_RETURN_DATUM(DirectFunctionCall3(ts_headline_byid_opt,
-                                   ObjectIdGetDatum(getTSCurrentConfig(true)),
+                                 ObjectIdGetDatum(getTSCurrentConfig(true)),
                                        PG_GETARG_DATUM(0),
                                        PG_GETARG_DATUM(1)));
 }
@@ -360,7 +360,7 @@ Datum
 ts_headline_opt(PG_FUNCTION_ARGS)
 {
    PG_RETURN_DATUM(DirectFunctionCall4(ts_headline_byid_opt,
-                                   ObjectIdGetDatum(getTSCurrentConfig(true)),
+                                 ObjectIdGetDatum(getTSCurrentConfig(true)),
                                        PG_GETARG_DATUM(0),
                                        PG_GETARG_DATUM(1),
                                        PG_GETARG_DATUM(2)));
index b79056ca688c668d41064166dc6df5fcb5be2964..ca2ee9d4590ad071669f1f5b3221b238a2786f5b 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/tsearch/wparser_def.c,v 1.8 2007/11/09 22:37:35 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/tsearch/wparser_def.c,v 1.9 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 #define FILEPATH       19
 #define DECIMAL            20
 #define SIGNEDINT      21
-#define UNSIGNEDINT    22
+#define UNSIGNEDINT        22
 #define HTMLENTITY     23
 
 #define LASTNUM            23
 
-static const char * const tok_alias[] = {
+static const char *const tok_alias[] = {
    "",
    "asciiword",
    "word",
@@ -81,7 +81,7 @@ static const char * const tok_alias[] = {
    "entity"
 };
 
-static const char * const lex_descr[] = {
+static const char *const lex_descr[] = {
    "",
    "Word, all ASCII",
    "Word, all letters",
@@ -189,7 +189,7 @@ typedef enum
    TPS_InHyphenNumWordPart,
    TPS_InHyphenUnsignedInt,
    TPS_Null                    /* last state (fake value) */
-} TParserState;
+}  TParserState;
 
 /* forward declaration */
 struct TParser;
@@ -207,7 +207,7 @@ typedef struct
    TParserState tostate;
    int         type;
    TParserSpecial special;
-} TParserStateActionItem;
+}  TParserStateActionItem;
 
 /* Flag bits in TParserStateActionItem.flags */
 #define A_NEXT     0x0000
@@ -229,7 +229,7 @@ typedef struct TParserPosition
    TParserState state;
    struct TParserPosition *prev;
    const TParserStateActionItem *pushedAtAction;
-} TParserPosition;
+}  TParserPosition;
 
 typedef struct TParser
 {
@@ -256,7 +256,7 @@ typedef struct TParser
    int         lenbytetoken;
    int         lenchartoken;
    int         type;
-} TParser;
+}  TParser;
 
 
 /* forward decls here */
@@ -1239,12 +1239,12 @@ static const TParserStateActionItem actionTPS_InHyphenUnsignedInt[] = {
  */
 typedef struct
 {
-   const TParserStateActionItem *action;   /* the actual state info */
+   const TParserStateActionItem *action;       /* the actual state info */
    TParserState state;         /* only for Assert crosscheck */
 #ifdef WPARSER_TRACE
    const char *state_name;     /* only for debug printout */
 #endif
-} TParserStateAction;
+}  TParserStateAction;
 
 #ifdef WPARSER_TRACE
 #define TPARSERSTATEACTION(state) \
@@ -1566,7 +1566,7 @@ typedef struct
 {
    HeadlineWordEntry *words;
    int         len;
-} hlCheck;
+}  hlCheck;
 
 static bool
 checkcondition_HL(void *checkval, QueryOperand * val)
index cd59ffb62d62aa8c8d0d832ce29f1bb43ce3eb28..7b4f7754f195db93bc81ae27c6f14385a1614840 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/arrayutils.c,v 1.24 2007/06/15 20:56:50 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/arrayutils.c,v 1.25 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -193,7 +193,7 @@ mda_next_tuple(int n, int *curr, const int *span)
 
 /*
  * ArrayGetIntegerTypmods: verify that argument is a 1-D cstring array,
- * and get the contents converted to integers.  Returns a palloc'd array
+ * and get the contents converted to integers. Returns a palloc'd array
  * and places the length at *n.
  */
 int32 *
index 1e44bc1cb56f8358147bc27451540cacbf8d6fe7..deed08dcc46f7116ed1c365fdf75b4dc7f3b8a10 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/bool.c,v 1.40 2007/06/05 21:31:06 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/bool.c,v 1.41 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -35,9 +35,9 @@
 Datum
 boolin(PG_FUNCTION_ARGS)
 {
-   const char  *in_str = PG_GETARG_CSTRING(0);
-   const char  *str;
-   size_t       len;
+   const char *in_str = PG_GETARG_CSTRING(0);
+   const char *str;
+   size_t      len;
 
    /*
     * Skip leading and trailing whitespace
@@ -92,7 +92,7 @@ boolin(PG_FUNCTION_ARGS)
 
    ereport(ERROR,
            (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
-            errmsg("invalid input syntax for type boolean: \"%s\"", in_str)));
+          errmsg("invalid input syntax for type boolean: \"%s\"", in_str)));
 
    /* not reached */
    PG_RETURN_BOOL(false);
@@ -143,7 +143,7 @@ boolsend(PG_FUNCTION_ARGS)
 }
 
 /*
- *     booltext            - cast function for bool => text
+ *     booltext            - cast function for bool => text
  *
  * We need this because it's different from the behavior of boolout();
  * this function follows the SQL-spec result (except for producing lower case)
@@ -151,8 +151,8 @@ boolsend(PG_FUNCTION_ARGS)
 Datum
 booltext(PG_FUNCTION_ARGS)
 {
-   bool         arg1 = PG_GETARG_BOOL(0);
-   char        *str;
+   bool        arg1 = PG_GETARG_BOOL(0);
+   char       *str;
 
    if (arg1)
        str = "true";
index 74127d05cbe94ba673065367913803bf7d137eba..de0db349fcb75f0bad72fe249584e95d7a75e39b 100644 (file)
@@ -13,7 +13,7 @@
  * this version handles 64 bit numbers and so can hold values up to
  * $92,233,720,368,547,758.07.
  *
- * $PostgreSQL: pgsql/src/backend/utils/adt/cash.c,v 1.73 2007/08/21 03:56:07 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/cash.c,v 1.74 2007/11/15 21:14:38 momjian Exp $
  */
 
 #include "postgres.h"
@@ -783,7 +783,7 @@ Datum
 cash_words(PG_FUNCTION_ARGS)
 {
    Cash        value = PG_GETARG_CASH(0);
-   uint64 val;
+   uint64      val;
    char        buf[256];
    char       *p = buf;
    Cash        m0;
@@ -808,13 +808,13 @@ cash_words(PG_FUNCTION_ARGS)
    /* Now treat as unsigned, to avoid trouble at INT_MIN */
    val = (uint64) value;
 
-   m0 = val % 100ll;               /* cents */
+   m0 = val % 100ll;           /* cents */
    m1 = (val / 100ll) % 1000;  /* hundreds */
-   m2 = (val / 100000ll) % 1000; /* thousands */
-   m3 = val / 100000000ll % 1000;  /* millions */
+   m2 = (val / 100000ll) % 1000;       /* thousands */
+   m3 = val / 100000000ll % 1000;      /* millions */
    m4 = val / 100000000000ll % 1000;   /* billions */
-   m5 = val / 100000000000000ll % 1000;    /* trillions */
-   m6 = val / 100000000000000000ll % 1000; /* quadrillions */
+   m5 = val / 100000000000000ll % 1000;        /* trillions */
+   m6 = val / 100000000000000000ll % 1000;     /* quadrillions */
 
    if (m6)
    {
index be37584190ea82d114eddef1cf7de196e7703c81..0f2b44b356979c849b19cc47f83640035f4f552b 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/date.c,v 1.136 2007/09/26 01:10:42 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/date.c,v 1.137 2007/11/15 21:14:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -49,9 +49,9 @@ static void AdjustTimeForTypmod(TimeADT *time, int32 typmod);
 static int32
 anytime_typmodin(bool istz, ArrayType *ta)
 {
-   int32   typmod;
-   int32   *tl;
-   int     n;
+   int32       typmod;
+   int32      *tl;
+   int         n;
 
    tl = ArrayGetIntegerTypmods(ta, &n);
 
@@ -74,10 +74,11 @@ anytime_typmodin(bool istz, ArrayType *ta)
        ereport(WARNING,
                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
                 errmsg("TIME(%d)%s precision reduced to maximum allowed, %d",
-                       *tl, (istz ? " WITH TIME ZONE" : "" ),
+                       *tl, (istz ? " WITH TIME ZONE" : ""),
                        MAX_TIME_PRECISION)));
        typmod = MAX_TIME_PRECISION;
-   } else
+   }
+   else
        typmod = *tl;
 
    return typmod;
@@ -87,7 +88,7 @@ anytime_typmodin(bool istz, ArrayType *ta)
 static char *
 anytime_typmodout(bool istz, int32 typmod)
 {
-   char    *res = (char *) palloc(64);
+   char       *res = (char *) palloc(64);
    const char *tz = istz ? " with time zone" : " without time zone";
 
    if (typmod >= 0)
@@ -339,7 +340,7 @@ date_mii(PG_FUNCTION_ARGS)
 static Timestamp
 date2timestamp(DateADT dateVal)
 {
-   Timestamp result;
+   Timestamp   result;
 
 #ifdef HAVE_INT64_TIMESTAMP
    /* date is days since 2000, timestamp is microseconds since same... */
@@ -1045,7 +1046,7 @@ time_send(PG_FUNCTION_ARGS)
 Datum
 timetypmodin(PG_FUNCTION_ARGS)
 {
-   ArrayType *ta = PG_GETARG_ARRAYTYPE_P(0);
+   ArrayType  *ta = PG_GETARG_ARRAYTYPE_P(0);
 
    PG_RETURN_INT32(anytime_typmodin(false, ta));
 }
@@ -1053,7 +1054,7 @@ timetypmodin(PG_FUNCTION_ARGS)
 Datum
 timetypmodout(PG_FUNCTION_ARGS)
 {
-   int32 typmod = PG_GETARG_INT32(0);
+   int32       typmod = PG_GETARG_INT32(0);
 
    PG_RETURN_CSTRING(anytime_typmodout(false, typmod));
 }
@@ -1815,7 +1816,7 @@ timetz_send(PG_FUNCTION_ARGS)
 Datum
 timetztypmodin(PG_FUNCTION_ARGS)
 {
-   ArrayType *ta = PG_GETARG_ARRAYTYPE_P(0);
+   ArrayType  *ta = PG_GETARG_ARRAYTYPE_P(0);
 
    PG_RETURN_INT32(anytime_typmodin(true, ta));
 }
@@ -1823,7 +1824,7 @@ timetztypmodin(PG_FUNCTION_ARGS)
 Datum
 timetztypmodout(PG_FUNCTION_ARGS)
 {
-   int32 typmod = PG_GETARG_INT32(0);
+   int32       typmod = PG_GETARG_INT32(0);
 
    PG_RETURN_CSTRING(anytime_typmodout(true, typmod));
 }
@@ -1994,17 +1995,17 @@ timetz_hash(PG_FUNCTION_ARGS)
    uint32      thash;
 
    /*
-    * To avoid any problems with padding bytes in the struct,
-    * we figure the field hashes separately and XOR them.  This also
-    * provides a convenient framework for dealing with the fact that
-    * the time field might be either double or int64.
+    * To avoid any problems with padding bytes in the struct, we figure the
+    * field hashes separately and XOR them.  This also provides a convenient
+    * framework for dealing with the fact that the time field might be either
+    * double or int64.
     */
 #ifdef HAVE_INT64_TIMESTAMP
    thash = DatumGetUInt32(DirectFunctionCall1(hashint8,
                                               Int64GetDatumFast(key->time)));
 #else
    thash = DatumGetUInt32(DirectFunctionCall1(hashfloat8,
-                                              Float8GetDatumFast(key->time)));
+                                            Float8GetDatumFast(key->time)));
 #endif
    thash ^= DatumGetUInt32(hash_uint32(key->zone));
    PG_RETURN_UINT32(thash);
index 742a328b280fbc19a763cb28f91ee85a681137cf..30aea83c93bb50f7e12e8645463d1890230572d9 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.182 2007/08/04 01:26:53 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.183 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -546,7 +546,7 @@ ParseDateTime(const char *timestr, char *workbuf, size_t buflen,
         */
        else if (isalpha((unsigned char) *cp))
        {
-           bool    is_date;
+           bool        is_date;
 
            ftype[nf] = DTK_STRING;
            APPEND_CHAR(bufp, bufend, pg_tolower((unsigned char) *cp++));
@@ -555,12 +555,11 @@ ParseDateTime(const char *timestr, char *workbuf, size_t buflen,
 
            /*
             * Dates can have embedded '-', '/', or '.' separators.  It could
-            * also be a timezone name containing embedded '/', '+', '-',
-            * '_', or ':' (but '_' or ':' can't be the first punctuation).
-            * If the next character is a digit or '+', we need to check
-            * whether what we have so far is a recognized non-timezone
-            * keyword --- if so, don't believe that this is the start of
-            * a timezone.
+            * also be a timezone name containing embedded '/', '+', '-', '_',
+            * or ':' (but '_' or ':' can't be the first punctuation). If the
+            * next character is a digit or '+', we need to check whether what
+            * we have so far is a recognized non-timezone keyword --- if so,
+            * don't believe that this is the start of a timezone.
             */
            is_date = false;
            if (*cp == '-' || *cp == '/' || *cp == '.')
@@ -790,8 +789,8 @@ DecodeDateTime(char **field, int *ftype, int nf,
                        {
                            /*
                             * We should return an error code instead of
-                            * ereport'ing directly, but then there is no
-                            * way to report the bad time zone name.
+                            * ereport'ing directly, but then there is no way
+                            * to report the bad time zone name.
                             */
                            ereport(ERROR,
                                    (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
@@ -1209,6 +1208,7 @@ DecodeDateTime(char **field, int *ftype, int nf,
                        break;
 
                    case UNKNOWN_FIELD:
+
                        /*
                         * Before giving up and declaring error, check to see
                         * if it is an all-alpha timezone name.
@@ -1303,8 +1303,8 @@ DecodeDateTime(char **field, int *ftype, int nf,
            return DTERR_FIELD_OVERFLOW;
 
        /*
-        * If we had a full timezone spec, compute the offset (we could not
-        * do it before, because we need the date to resolve DST status).
+        * If we had a full timezone spec, compute the offset (we could not do
+        * it before, because we need the date to resolve DST status).
         */
        if (namedTz != NULL)
        {
@@ -1566,8 +1566,8 @@ DecodeTimeOnly(char **field, int *ftype, int nf,
                        {
                            /*
                             * We should return an error code instead of
-                            * ereport'ing directly, but then there is no
-                            * way to report the bad time zone name.
+                            * ereport'ing directly, but then there is no way
+                            * to report the bad time zone name.
                             */
                            ereport(ERROR,
                                    (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
@@ -1934,6 +1934,7 @@ DecodeTimeOnly(char **field, int *ftype, int nf,
                        break;
 
                    case UNKNOWN_FIELD:
+
                        /*
                         * Before giving up and declaring error, check to see
                         * if it is an all-alpha timezone name.
@@ -1968,7 +1969,7 @@ DecodeTimeOnly(char **field, int *ftype, int nf,
 
    if (tm->tm_hour < 0 || tm->tm_min < 0 || tm->tm_min > 59 ||
        tm->tm_sec < 0 || tm->tm_sec > 60 || tm->tm_hour > 24 ||
-       /* test for > 24:00:00 */
+   /* test for > 24:00:00 */
 #ifdef HAVE_INT64_TIMESTAMP
        (tm->tm_hour == 24 && (tm->tm_min > 0 || tm->tm_sec > 0 ||
                               *fsec > INT64CONST(0))) ||
@@ -1985,8 +1986,8 @@ DecodeTimeOnly(char **field, int *ftype, int nf,
        return DTERR_BAD_FORMAT;
 
    /*
-    * If we had a full timezone spec, compute the offset (we could not
-    * do it before, because we may need the date to resolve DST status).
+    * If we had a full timezone spec, compute the offset (we could not do it
+    * before, because we may need the date to resolve DST status).
     */
    if (namedTz != NULL)
    {
@@ -2470,7 +2471,7 @@ DecodeNumber(int flen, char *str, bool haveTextMonth, int fmask,
  */
 static int
 DecodeNumberField(int len, char *str, int fmask,
-                 int *tmask, struct pg_tm * tm, fsec_t *fsec, bool *is2digits)
+               int *tmask, struct pg_tm * tm, fsec_t *fsec, bool *is2digits)
 {
    char       *cp;
 
@@ -2832,10 +2833,10 @@ DecodeInterval(char **field, int *ftype, int nf, int *dtype, struct pg_tm * tm,
 #else
                        *fsec += fval;
 #endif
+
                        /*
-                        * If any subseconds were specified, consider
-                        * this microsecond and millisecond input as
-                        * well.
+                        * If any subseconds were specified, consider this
+                        * microsecond and millisecond input as well.
                         */
                        if (fval == 0)
                            tmask = DTK_M(SECOND);
@@ -3322,12 +3323,12 @@ EncodeDateTime(struct pg_tm * tm, fsec_t fsec, int *tzp, char **tzn, int style,
 
            if (style == USE_ISO_DATES)
                sprintf(str, "%04d-%02d-%02d %02d:%02d",
-                   (tm->tm_year > 0) ? tm->tm_year : -(tm->tm_year - 1),
-                   tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min);
+                       (tm->tm_year > 0) ? tm->tm_year : -(tm->tm_year - 1),
+                       tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min);
            else
                sprintf(str, "%04d-%02d-%02dT%02d:%02d",
-                   (tm->tm_year > 0) ? tm->tm_year : -(tm->tm_year - 1),
-                   tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min);
+                       (tm->tm_year > 0) ? tm->tm_year : -(tm->tm_year - 1),
+                       tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min);
 
 
            /*
index 3848e8111f108d4a3ce73820149cf13af9410be7..12d1d9d364fa7a3d8732c1ae492d1e193fd813d5 100644 (file)
@@ -5,7 +5,7 @@
  * Copyright (c) 2002-2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/dbsize.c,v 1.14 2007/08/29 17:24:29 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/dbsize.c,v 1.15 2007/11/15 21:14:39 momjian Exp $
  *
  */
 
@@ -162,8 +162,9 @@ calculate_tablespace_size(Oid tblspcOid)
    AclResult   aclresult;
 
    /*
-    * User must have CREATE privilege for target tablespace, either explicitly
-    * granted or implicitly because it is default for current database.
+    * User must have CREATE privilege for target tablespace, either
+    * explicitly granted or implicitly because it is default for current
+    * database.
     */
    if (tblspcOid != MyDatabaseTableSpace)
    {
index d5187f06a77a2c22003b25dadae1de869e65394c..5d8bf3175cb3f39b3ce39463ccdc194fbab959a3 100644 (file)
@@ -1,13 +1,13 @@
 /*-------------------------------------------------------------------------
  *
  * enum.c
- *    I/O functions, operators, aggregates etc for enum types
+ *   I/O functions, operators, aggregates etc for enum types
  *
  * Copyright (c) 2006-2007, PostgreSQL Global Development Group
  *
  *
  * IDENTIFICATION
- *    $PostgreSQL: pgsql/src/backend/utils/adt/enum.c,v 1.4 2007/09/04 16:41:42 adunstan Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/enum.c,v 1.5 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -32,10 +32,10 @@ static int  enum_elem_cmp(const void *left, const void *right);
 Datum
 enum_in(PG_FUNCTION_ARGS)
 {
-   char *name = PG_GETARG_CSTRING(0);
-   Oid enumtypoid = PG_GETARG_OID(1);
-   Oid enumoid;
-   HeapTuple tup;
+   char       *name = PG_GETARG_CSTRING(0);
+   Oid         enumtypoid = PG_GETARG_OID(1);
+   Oid         enumoid;
+   HeapTuple   tup;
 
    /* must check length to prevent Assert failure within SearchSysCache */
    if (strlen(name) >= NAMEDATALEN)
@@ -66,9 +66,9 @@ enum_in(PG_FUNCTION_ARGS)
 Datum
 enum_out(PG_FUNCTION_ARGS)
 {
-   Oid enumval = PG_GETARG_OID(0);
-   char *result;
-   HeapTuple tup;
+   Oid         enumval = PG_GETARG_OID(0);
+   char       *result;
+   HeapTuple   tup;
    Form_pg_enum en;
 
    tup = SearchSysCache(ENUMOID,
@@ -92,12 +92,12 @@ enum_out(PG_FUNCTION_ARGS)
 Datum
 enum_recv(PG_FUNCTION_ARGS)
 {
-   StringInfo  buf = (StringInfo) PG_GETARG_POINTER(0);
-   Oid enumtypoid = PG_GETARG_OID(1);
-   Oid enumoid;
-   HeapTuple tup;
-   char       *name;
-   int         nbytes;
+   StringInfo  buf = (StringInfo) PG_GETARG_POINTER(0);
+   Oid         enumtypoid = PG_GETARG_OID(1);
+   Oid         enumoid;
+   HeapTuple   tup;
+   char       *name;
+   int         nbytes;
 
    name = pq_getmsgtext(buf, buf->len - buf->cursor, &nbytes);
 
@@ -132,9 +132,9 @@ enum_recv(PG_FUNCTION_ARGS)
 Datum
 enum_send(PG_FUNCTION_ARGS)
 {
-   Oid enumval = PG_GETARG_OID(0);
+   Oid         enumval = PG_GETARG_OID(0);
    StringInfoData buf;
-   HeapTuple tup;
+   HeapTuple   tup;
    Form_pg_enum en;
 
    tup = SearchSysCache(ENUMOID,
@@ -160,8 +160,8 @@ enum_send(PG_FUNCTION_ARGS)
 Datum
 enum_lt(PG_FUNCTION_ARGS)
 {
-   Oid a = PG_GETARG_OID(0);
-   Oid b = PG_GETARG_OID(1);
+   Oid         a = PG_GETARG_OID(0);
+   Oid         b = PG_GETARG_OID(1);
 
    PG_RETURN_BOOL(a < b);
 }
@@ -169,8 +169,8 @@ enum_lt(PG_FUNCTION_ARGS)
 Datum
 enum_le(PG_FUNCTION_ARGS)
 {
-   Oid a = PG_GETARG_OID(0);
-   Oid b = PG_GETARG_OID(1);
+   Oid         a = PG_GETARG_OID(0);
+   Oid         b = PG_GETARG_OID(1);
 
    PG_RETURN_BOOL(a <= b);
 }
@@ -178,8 +178,8 @@ enum_le(PG_FUNCTION_ARGS)
 Datum
 enum_eq(PG_FUNCTION_ARGS)
 {
-   Oid a = PG_GETARG_OID(0);
-   Oid b = PG_GETARG_OID(1);
+   Oid         a = PG_GETARG_OID(0);
+   Oid         b = PG_GETARG_OID(1);
 
    PG_RETURN_BOOL(a == b);
 }
@@ -187,8 +187,8 @@ enum_eq(PG_FUNCTION_ARGS)
 Datum
 enum_ne(PG_FUNCTION_ARGS)
 {
-   Oid a = PG_GETARG_OID(0);
-   Oid b = PG_GETARG_OID(1);
+   Oid         a = PG_GETARG_OID(0);
+   Oid         b = PG_GETARG_OID(1);
 
    PG_RETURN_BOOL(a != b);
 }
@@ -196,8 +196,8 @@ enum_ne(PG_FUNCTION_ARGS)
 Datum
 enum_ge(PG_FUNCTION_ARGS)
 {
-   Oid a = PG_GETARG_OID(0);
-   Oid b = PG_GETARG_OID(1);
+   Oid         a = PG_GETARG_OID(0);
+   Oid         b = PG_GETARG_OID(1);
 
    PG_RETURN_BOOL(a >= b);
 }
@@ -205,8 +205,8 @@ enum_ge(PG_FUNCTION_ARGS)
 Datum
 enum_gt(PG_FUNCTION_ARGS)
 {
-   Oid a = PG_GETARG_OID(0);
-   Oid b = PG_GETARG_OID(1);
+   Oid         a = PG_GETARG_OID(0);
+   Oid         b = PG_GETARG_OID(1);
 
    PG_RETURN_BOOL(a > b);
 }
@@ -214,8 +214,8 @@ enum_gt(PG_FUNCTION_ARGS)
 Datum
 enum_smaller(PG_FUNCTION_ARGS)
 {
-   Oid a = PG_GETARG_OID(0);
-   Oid b = PG_GETARG_OID(1);
+   Oid         a = PG_GETARG_OID(0);
+   Oid         b = PG_GETARG_OID(1);
 
    PG_RETURN_OID(a <= b ? a : b);
 }
@@ -223,8 +223,8 @@ enum_smaller(PG_FUNCTION_ARGS)
 Datum
 enum_larger(PG_FUNCTION_ARGS)
 {
-   Oid a = PG_GETARG_OID(0);
-   Oid b = PG_GETARG_OID(1);
+   Oid         a = PG_GETARG_OID(0);
+   Oid         b = PG_GETARG_OID(1);
 
    PG_RETURN_OID(a >= b ? a : b);
 }
@@ -232,8 +232,8 @@ enum_larger(PG_FUNCTION_ARGS)
 Datum
 enum_cmp(PG_FUNCTION_ARGS)
 {
-   Oid a = PG_GETARG_OID(0);
-   Oid b = PG_GETARG_OID(1);
+   Oid         a = PG_GETARG_OID(0);
+   Oid         b = PG_GETARG_OID(1);
 
    if (a > b)
        PG_RETURN_INT32(1);
@@ -248,10 +248,11 @@ enum_cmp(PG_FUNCTION_ARGS)
 Datum
 enum_first(PG_FUNCTION_ARGS)
 {
-   Oid enumtypoid;
-   Oid min = InvalidOid;
-   CatCList *list;
-   int num, i;
+   Oid         enumtypoid;
+   Oid         min = InvalidOid;
+   CatCList   *list;
+   int         num,
+               i;
 
    /*
     * We rely on being able to get the specific enum type from the calling
@@ -270,7 +271,8 @@ enum_first(PG_FUNCTION_ARGS)
    num = list->n_members;
    for (i = 0; i < num; i++)
    {
-       Oid valoid = HeapTupleHeaderGetOid(list->members[i]->tuple.t_data);
+       Oid         valoid = HeapTupleHeaderGetOid(list->members[i]->tuple.t_data);
+
        if (!OidIsValid(min) || valoid < min)
            min = valoid;
    }
@@ -287,10 +289,11 @@ enum_first(PG_FUNCTION_ARGS)
 Datum
 enum_last(PG_FUNCTION_ARGS)
 {
-   Oid enumtypoid;
-   Oid max = InvalidOid;
-   CatCList *list;
-   int num, i;
+   Oid         enumtypoid;
+   Oid         max = InvalidOid;
+   CatCList   *list;
+   int         num,
+               i;
 
    /*
     * We rely on being able to get the specific enum type from the calling
@@ -309,7 +312,8 @@ enum_last(PG_FUNCTION_ARGS)
    num = list->n_members;
    for (i = 0; i < num; i++)
    {
-       Oid valoid = HeapTupleHeaderGetOid(list->members[i]->tuple.t_data);
+       Oid         valoid = HeapTupleHeaderGetOid(list->members[i]->tuple.t_data);
+
        if (!OidIsValid(max) || valoid > max)
            max = valoid;
    }
@@ -327,9 +331,9 @@ enum_last(PG_FUNCTION_ARGS)
 Datum
 enum_range_bounds(PG_FUNCTION_ARGS)
 {
-   Oid lower;
-   Oid upper;
-   Oid enumtypoid;
+   Oid         lower;
+   Oid         upper;
+   Oid         enumtypoid;
 
    if (PG_ARGISNULL(0))
        lower = InvalidOid;
@@ -358,7 +362,7 @@ enum_range_bounds(PG_FUNCTION_ARGS)
 Datum
 enum_range_all(PG_FUNCTION_ARGS)
 {
-   Oid enumtypoid;
+   Oid         enumtypoid;
 
    /*
     * We rely on being able to get the specific enum type from the calling
@@ -378,10 +382,12 @@ enum_range_all(PG_FUNCTION_ARGS)
 static ArrayType *
 enum_range_internal(Oid enumtypoid, Oid lower, Oid upper)
 {
-   ArrayType *result;
-   CatCList *list;
-   int total, i, j;
-   Datum *elems;
+   ArrayType  *result;
+   CatCList   *list;
+   int         total,
+               i,
+               j;
+   Datum      *elems;
 
    list = SearchSysCacheList(ENUMTYPOIDNAME, 1,
                              ObjectIdGetDatum(enumtypoid),
@@ -393,7 +399,7 @@ enum_range_internal(Oid enumtypoid, Oid lower, Oid upper)
    j = 0;
    for (i = 0; i < total; i++)
    {
-       Oid val = HeapTupleGetOid(&(list->members[i]->tuple));
+       Oid         val = HeapTupleGetOid(&(list->members[i]->tuple));
 
        if ((!OidIsValid(lower) || lower <= val) &&
            (!OidIsValid(upper) || val <= upper))
@@ -418,8 +424,8 @@ enum_range_internal(Oid enumtypoid, Oid lower, Oid upper)
 static int
 enum_elem_cmp(const void *left, const void *right)
 {
-   Oid l = DatumGetObjectId(*((const Datum *) left));
-   Oid r = DatumGetObjectId(*((const Datum *) right));
+   Oid         l = DatumGetObjectId(*((const Datum *) left));
+   Oid         r = DatumGetObjectId(*((const Datum *) right));
 
    if (l < r)
        return -1;
index 53bfd321d7df77e79ee3383cdb0b1173fc38ad1c..23e8947eec7e7a94b640fcfb2085c701eefda103 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/float.c,v 1.151 2007/09/19 22:31:48 neilc Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/float.c,v 1.152 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -251,10 +251,11 @@ float4in(PG_FUNCTION_ARGS)
 #endif   /* HAVE_BUGGY_SOLARIS_STRTOD */
 
 #ifdef HAVE_BUGGY_IRIX_STRTOD
+
    /*
-    * In some IRIX versions, strtod() recognizes only "inf", so if the
-    * input is "infinity" we have to skip over "inity".  Also, it may
-    * return positive infinity for "-inf".
+    * In some IRIX versions, strtod() recognizes only "inf", so if the input
+    * is "infinity" we have to skip over "inity".  Also, it may return
+    * positive infinity for "-inf".
     */
    if (isinf(val))
    {
@@ -274,7 +275,7 @@ float4in(PG_FUNCTION_ARGS)
            endptr = num + 4;
        }
    }
-#endif /* HAVE_BUGGY_IRIX_STRTOD */
+#endif   /* HAVE_BUGGY_IRIX_STRTOD */
 
    /* skip trailing whitespace */
    while (*endptr != '\0' && isspace((unsigned char) *endptr))
@@ -443,10 +444,11 @@ float8in(PG_FUNCTION_ARGS)
 #endif   /* HAVE_BUGGY_SOLARIS_STRTOD */
 
 #ifdef HAVE_BUGGY_IRIX_STRTOD
+
    /*
-    * In some IRIX versions, strtod() recognizes only "inf", so if the
-    * input is "infinity" we have to skip over "inity".  Also, it may
-    * return positive infinity for "-inf".
+    * In some IRIX versions, strtod() recognizes only "inf", so if the input
+    * is "infinity" we have to skip over "inity".  Also, it may return
+    * positive infinity for "-inf".
     */
    if (isinf(val))
    {
@@ -466,7 +468,7 @@ float8in(PG_FUNCTION_ARGS)
            endptr = num + 4;
        }
    }
-#endif /* HAVE_BUGGY_IRIX_STRTOD */
+#endif   /* HAVE_BUGGY_IRIX_STRTOD */
 
    /* skip trailing whitespace */
    while (*endptr != '\0' && isspace((unsigned char) *endptr))
@@ -706,12 +708,13 @@ float4pl(PG_FUNCTION_ARGS)
    float4      result;
 
    result = arg1 + arg2;
+
    /*
-    *  There isn't any way to check for underflow of addition/subtraction
-    *  because numbers near the underflow value have been already been
-    *  to the point where we can't detect the that the two values
-    *  were originally different, e.g. on x86, '1e-45'::float4 ==
-    *  '2e-45'::float4 == 1.4013e-45.
+    * There isn't any way to check for underflow of addition/subtraction
+    * because numbers near the underflow value have been already been to the
+    * point where we can't detect the that the two values were originally
+    * different, e.g. on x86, '1e-45'::float4 == '2e-45'::float4 ==
+    * 1.4013e-45.
     */
    CHECKFLOATVAL(result, isinf(arg1) || isinf(arg2), true);
    PG_RETURN_FLOAT4(result);
@@ -738,7 +741,7 @@ float4mul(PG_FUNCTION_ARGS)
 
    result = arg1 * arg2;
    CHECKFLOATVAL(result, isinf(arg1) || isinf(arg2),
-                   arg1 == 0 || arg2 == 0);
+                 arg1 == 0 || arg2 == 0);
    PG_RETURN_FLOAT4(result);
 }
 
@@ -803,7 +806,7 @@ float8mul(PG_FUNCTION_ARGS)
    result = arg1 * arg2;
 
    CHECKFLOATVAL(result, isinf(arg1) || isinf(arg2),
-                   arg1 == 0 || arg2 == 0);
+                 arg1 == 0 || arg2 == 0);
    PG_RETURN_FLOAT8(result);
 }
 
@@ -1338,12 +1341,12 @@ dpow(PG_FUNCTION_ARGS)
 
    /*
     * pow() sets errno only on some platforms, depending on whether it
-    * follows _IEEE_, _POSIX_, _XOPEN_, or _SVID_, so we try to avoid
-    * using errno.  However, some platform/CPU combinations return
-    * errno == EDOM and result == Nan for negative arg1 and very large arg2
-    * (they must be using something different from our floor() test to
-    * decide it's invalid).  Other platforms (HPPA) return errno == ERANGE
-    * and a large (HUGE_VAL) but finite result to signal overflow.
+    * follows _IEEE_, _POSIX_, _XOPEN_, or _SVID_, so we try to avoid using
+    * errno.  However, some platform/CPU combinations return errno == EDOM
+    * and result == Nan for negative arg1 and very large arg2 (they must be
+    * using something different from our floor() test to decide it's
+    * invalid).  Other platforms (HPPA) return errno == ERANGE and a large
+    * (HUGE_VAL) but finite result to signal overflow.
     */
    errno = 0;
    result = pow(arg1, arg2);
@@ -1359,7 +1362,7 @@ dpow(PG_FUNCTION_ARGS)
    }
    else if (errno == ERANGE && result != 0 && !isinf(result))
        result = get_float8_infinity();
-   
+
    CHECKFLOATVAL(result, isinf(arg1) || isinf(arg2), arg1 == 0);
    PG_RETURN_FLOAT8(result);
 }
@@ -1453,8 +1456,8 @@ dacos(PG_FUNCTION_ARGS)
    float8      result;
 
    /*
-    *  We use errno here because the trigonometric functions are cyclic
-    *  and hard to check for underflow.
+    * We use errno here because the trigonometric functions are cyclic and
+    * hard to check for underflow.
     */
    errno = 0;
    result = acos(arg1);
@@ -1570,7 +1573,7 @@ dcot(PG_FUNCTION_ARGS)
                 errmsg("input is out of range")));
 
    result = 1.0 / result;
-   CHECKFLOATVAL(result, true /* cotan(pi/2) == inf */, true);
+   CHECKFLOATVAL(result, true /* cotan(pi/2) == inf */ , true);
    PG_RETURN_FLOAT8(result);
 }
 
@@ -1612,7 +1615,7 @@ dtan(PG_FUNCTION_ARGS)
                (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE),
                 errmsg("input is out of range")));
 
-   CHECKFLOATVAL(result, true /* tan(pi/2) == Inf */, true);
+   CHECKFLOATVAL(result, true /* tan(pi/2) == Inf */ , true);
    PG_RETURN_FLOAT8(result);
 }
 
@@ -1748,7 +1751,7 @@ float8_accum(PG_FUNCTION_ARGS)
    CHECKFLOATVAL(sumX, isinf(transvalues[1]) || isinf(newval), true);
    sumX2 += newval * newval;
    CHECKFLOATVAL(sumX2, isinf(transvalues[2]) || isinf(newval), true);
-   
+
    /*
     * If we're invoked by nodeAgg, we can cheat and modify our first
     * parameter in-place to reduce palloc overhead. Otherwise we construct a
@@ -1783,6 +1786,7 @@ Datum
 float4_accum(PG_FUNCTION_ARGS)
 {
    ArrayType  *transarray = PG_GETARG_ARRAYTYPE_P(0);
+
    /* do computations as float8 */
    float8      newval = PG_GETARG_FLOAT4(1);
    float8     *transvalues;
@@ -1800,7 +1804,7 @@ float4_accum(PG_FUNCTION_ARGS)
    CHECKFLOATVAL(sumX, isinf(transvalues[1]) || isinf(newval), true);
    sumX2 += newval * newval;
    CHECKFLOATVAL(sumX2, isinf(transvalues[2]) || isinf(newval), true);
-   
+
    /*
     * If we're invoked by nodeAgg, we can cheat and modify our first
     * parameter in-place to reduce palloc overhead. Otherwise we construct a
@@ -2016,8 +2020,8 @@ float8_regr_accum(PG_FUNCTION_ARGS)
    CHECKFLOATVAL(sumY2, isinf(transvalues[4]) || isinf(newvalY), true);
    sumXY += newvalX * newvalY;
    CHECKFLOATVAL(sumXY, isinf(transvalues[5]) || isinf(newvalX) ||
-                   isinf(newvalY), true);
-   
+                 isinf(newvalY), true);
+
    /*
     * If we're invoked by nodeAgg, we can cheat and modify our first
     * parameter in-place to reduce palloc overhead. Otherwise we construct a
@@ -2136,7 +2140,7 @@ float8_regr_sxy(PG_FUNCTION_ARGS)
 
    numerator = N * sumXY - sumX * sumY;
    CHECKFLOATVAL(numerator, isinf(sumXY) || isinf(sumX) ||
-                   isinf(sumY), true);
+                 isinf(sumY), true);
 
    /* A negative result is valid here */
 
@@ -2204,7 +2208,7 @@ float8_covar_pop(PG_FUNCTION_ARGS)
 
    numerator = N * sumXY - sumX * sumY;
    CHECKFLOATVAL(numerator, isinf(sumXY) || isinf(sumX) ||
-                   isinf(sumY), true);
+                 isinf(sumY), true);
 
    PG_RETURN_FLOAT8(numerator / (N * N));
 }
@@ -2232,7 +2236,7 @@ float8_covar_samp(PG_FUNCTION_ARGS)
 
    numerator = N * sumXY - sumX * sumY;
    CHECKFLOATVAL(numerator, isinf(sumXY) || isinf(sumX) ||
-                   isinf(sumY), true);
+                 isinf(sumY), true);
 
    PG_RETURN_FLOAT8(numerator / (N * (N - 1.0)));
 }
@@ -2270,7 +2274,7 @@ float8_corr(PG_FUNCTION_ARGS)
    CHECKFLOATVAL(numeratorY, isinf(sumY2) || isinf(sumY), true);
    numeratorXY = N * sumXY - sumX * sumY;
    CHECKFLOATVAL(numeratorXY, isinf(sumXY) || isinf(sumX) ||
-                   isinf(sumY), true);
+                 isinf(sumY), true);
    if (numeratorX <= 0 || numeratorY <= 0)
        PG_RETURN_NULL();
 
@@ -2310,7 +2314,7 @@ float8_regr_r2(PG_FUNCTION_ARGS)
    CHECKFLOATVAL(numeratorY, isinf(sumY2) || isinf(sumY), true);
    numeratorXY = N * sumXY - sumX * sumY;
    CHECKFLOATVAL(numeratorXY, isinf(sumXY) || isinf(sumX) ||
-                   isinf(sumY), true);
+                 isinf(sumY), true);
    if (numeratorX <= 0)
        PG_RETURN_NULL();
    /* per spec, horizontal line produces 1.0 */
@@ -2349,7 +2353,7 @@ float8_regr_slope(PG_FUNCTION_ARGS)
    CHECKFLOATVAL(numeratorX, isinf(sumX2) || isinf(sumX), true);
    numeratorXY = N * sumXY - sumX * sumY;
    CHECKFLOATVAL(numeratorXY, isinf(sumXY) || isinf(sumX) ||
-                   isinf(sumY), true);
+                 isinf(sumY), true);
    if (numeratorX <= 0)
        PG_RETURN_NULL();
 
@@ -2384,7 +2388,7 @@ float8_regr_intercept(PG_FUNCTION_ARGS)
    CHECKFLOATVAL(numeratorX, isinf(sumX2) || isinf(sumX), true);
    numeratorXXY = sumY * sumX2 - sumX * sumXY;
    CHECKFLOATVAL(numeratorXXY, isinf(sumY) || isinf(sumX2) ||
-                   isinf(sumX) || isinf(sumXY), true);
+                 isinf(sumX) || isinf(sumXY), true);
    if (numeratorX <= 0)
        PG_RETURN_NULL();
 
@@ -2437,7 +2441,7 @@ float48mul(PG_FUNCTION_ARGS)
 
    result = arg1 * arg2;
    CHECKFLOATVAL(result, isinf(arg1) || isinf(arg2),
-                   arg1 == 0 || arg2 == 0);
+                 arg1 == 0 || arg2 == 0);
    PG_RETURN_FLOAT8(result);
 }
 
@@ -2500,7 +2504,7 @@ float84mul(PG_FUNCTION_ARGS)
    result = arg1 * arg2;
 
    CHECKFLOATVAL(result, isinf(arg1) || isinf(arg2),
-                   arg1 == 0 || arg2 == 0);
+                 arg1 == 0 || arg2 == 0);
    PG_RETURN_FLOAT8(result);
 }
 
@@ -2659,11 +2663,11 @@ float84ge(PG_FUNCTION_ARGS)
 Datum
 width_bucket_float8(PG_FUNCTION_ARGS)
 {
-   float8      operand = PG_GETARG_FLOAT8(0);
-   float8      bound1  = PG_GETARG_FLOAT8(1);
-   float8      bound2  = PG_GETARG_FLOAT8(2);
-   int32       count   = PG_GETARG_INT32(3);
-   int32       result;
+   float8      operand = PG_GETARG_FLOAT8(0);
+   float8      bound1 = PG_GETARG_FLOAT8(1);
+   float8      bound2 = PG_GETARG_FLOAT8(2);
+   int32       count = PG_GETARG_INT32(3);
+   int32       result;
 
    if (count <= 0.0)
        ereport(ERROR,
@@ -2673,7 +2677,7 @@ width_bucket_float8(PG_FUNCTION_ARGS)
    if (isnan(operand) || isnan(bound1) || isnan(bound2))
        ereport(ERROR,
                (errcode(ERRCODE_INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION),
-                errmsg("operand, lower bound and upper bound cannot be NaN")));
+             errmsg("operand, lower bound and upper bound cannot be NaN")));
 
    /* Note that we allow "operand" to be infinite */
    if (is_infinite(bound1) || is_infinite(bound2))
@@ -2718,7 +2722,7 @@ width_bucket_float8(PG_FUNCTION_ARGS)
        ereport(ERROR,
                (errcode(ERRCODE_INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION),
                 errmsg("lower bound cannot equal upper bound")));
-       result = 0;     /* keep the compiler quiet */
+       result = 0;             /* keep the compiler quiet */
    }
 
    PG_RETURN_INT32(result);
index f7879bafc504c56665fcdcdf3b4f5f754d51e1a1..9e54217f4f0975686f0d311b698d1636f36999a5 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/format_type.c,v 1.47 2007/04/02 03:49:39 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/format_type.c,v 1.48 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -334,7 +334,7 @@ format_type_internal(Oid type_oid, int32 typemod,
 static char *
 printTypmod(const char *typname, int32 typmod, Oid typmodout)
 {
-   char    *res;
+   char       *res;
 
    /* Shouldn't be called if typmod is -1 */
    Assert(typmod >= 0);
@@ -348,7 +348,7 @@ printTypmod(const char *typname, int32 typmod, Oid typmodout)
    else
    {
        /* Use the type-specific typmodout procedure */
-       char *tmstr;
+       char       *tmstr;
 
        tmstr = DatumGetCString(OidFunctionCall1(typmodout,
                                                 Int32GetDatum(typmod)));
index f9ccd461d87145eb8fe8dc8ebf529bfc5e8d3012..d0e8ac2bc62670f2e1da6520d3683912623f0afb 100644 (file)
@@ -1,7 +1,7 @@
 /* -----------------------------------------------------------------------
  * formatting.c
  *
- * $PostgreSQL: pgsql/src/backend/utils/adt/formatting.c,v 1.131 2007/08/04 01:26:53 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/formatting.c,v 1.132 2007/11/15 21:14:39 momjian Exp $
  *
  *
  *  Portions Copyright (c) 1999-2007, PostgreSQL Global Development Group
@@ -703,7 +703,7 @@ static const KeyWord DCH_keywords[] = {
    {"HH24", 4, dch_time, DCH_HH24, TRUE},      /* H */
    {"HH12", 4, dch_time, DCH_HH12, TRUE},
    {"HH", 2, dch_time, DCH_HH, TRUE},
-   {"IDDD", 4, dch_date, DCH_IDDD, TRUE},  /* I */
+   {"IDDD", 4, dch_date, DCH_IDDD, TRUE},      /* I */
    {"ID", 2, dch_date, DCH_ID, TRUE},
    {"IW", 2, dch_date, DCH_IW, TRUE},
    {"IYYY", 4, dch_date, DCH_IYYY, TRUE},
@@ -749,7 +749,7 @@ static const KeyWord DCH_keywords[] = {
    {"hh24", 4, dch_time, DCH_HH24, TRUE},      /* h */
    {"hh12", 4, dch_time, DCH_HH12, TRUE},
    {"hh", 2, dch_time, DCH_HH, TRUE},
-   {"iddd", 4, dch_date, DCH_IDDD, TRUE},  /* i */
+   {"iddd", 4, dch_date, DCH_IDDD, TRUE},      /* i */
    {"id", 2, dch_date, DCH_ID, TRUE},
    {"iw", 2, dch_date, DCH_IW, TRUE},
    {"iyyy", 4, dch_date, DCH_IYYY, TRUE},
@@ -1605,7 +1605,7 @@ localized_str_tolower(char *buff)
 
    return buff;
 }
-#endif /* USE_WIDE_UPPER_LOWER */
+#endif   /* USE_WIDE_UPPER_LOWER */
 
 /* ----------
  * Sequential search with to upper/lower conversion
@@ -2383,7 +2383,7 @@ dch_date(int arg, char *inout, int suf, bool is_to_char, bool is_interval,
        case DCH_Day:
            INVALID_FOR_INTERVAL;
            if (S_TM(suf))
-               sprintf(inout, "%*s", 0, localize_day_full(tm->tm_wday));           
+               sprintf(inout, "%*s", 0, localize_day_full(tm->tm_wday));
            else
                sprintf(inout, "%*s", S_FM(suf) ? 0 : -9, days[tm->tm_wday]);
            return strlen(p_inout);
@@ -2393,7 +2393,7 @@ dch_date(int arg, char *inout, int suf, bool is_to_char, bool is_interval,
            if (S_TM(suf))
            {
                strcpy(workbuff, localize_day_full(tm->tm_wday));
-               sprintf(inout, "%*s", 0, localized_str_tolower(workbuff));              
+               sprintf(inout, "%*s", 0, localized_str_tolower(workbuff));
            }
            else
            {
@@ -2414,7 +2414,7 @@ dch_date(int arg, char *inout, int suf, bool is_to_char, bool is_interval,
                strcpy(inout, days_short[tm->tm_wday]);
                str_toupper(inout);
            }
-           
+
            return strlen(p_inout);
 
        case DCH_Dy:
@@ -2443,10 +2443,10 @@ dch_date(int arg, char *inout, int suf, bool is_to_char, bool is_interval,
        case DCH_IDDD:
            if (is_to_char)
            {
-               sprintf(inout, "%0*d", S_FM(suf) ? 0 : 3, 
-                   (arg == DCH_DDD) ? 
-                   tm->tm_yday :
-                   date2isoyearday(tm->tm_year, tm->tm_mon, tm->tm_mday));
+               sprintf(inout, "%0*d", S_FM(suf) ? 0 : 3,
+                       (arg == DCH_DDD) ?
+                       tm->tm_yday :
+                     date2isoyearday(tm->tm_year, tm->tm_mon, tm->tm_mday));
                if (S_THth(suf))
                    str_numth(p_inout, inout, S_TH_TYPE(suf));
                return strlen(p_inout);
@@ -2573,9 +2573,9 @@ dch_date(int arg, char *inout, int suf, bool is_to_char, bool is_interval,
        case DCH_CC:
            if (is_to_char)
            {
-               if (is_interval)            /* straight calculation */
+               if (is_interval)    /* straight calculation */
                    i = tm->tm_year / 100;
-               else                        /* century 21 starts in 2001 */
+               else    /* century 21 starts in 2001 */
                    i = (tm->tm_year - 1) / 100 + 1;
                if (i <= 99 && i >= -99)
                    sprintf(inout, "%0*d", S_FM(suf) ? 0 : 2, i);
@@ -2645,7 +2645,8 @@ dch_date(int arg, char *inout, int suf, bool is_to_char, bool is_interval,
            }
            else
            {
-               int *field;
+               int        *field;
+
                field = (arg == DCH_YYYY) ? &tmfc->year : &tmfc->iyear;
 
                if (S_FM(suf) || is_next_separator(node))
@@ -2680,7 +2681,8 @@ dch_date(int arg, char *inout, int suf, bool is_to_char, bool is_interval,
            }
            else
            {
-               int *field;
+               int        *field;
+
                field = (arg == DCH_YYY) ? &tmfc->year : &tmfc->iyear;
 
                sscanf(inout, "%03d", field);
@@ -2715,7 +2717,8 @@ dch_date(int arg, char *inout, int suf, bool is_to_char, bool is_interval,
            }
            else
            {
-               int *field;
+               int        *field;
+
                field = (arg == DCH_YY) ? &tmfc->year : &tmfc->iyear;
 
                sscanf(inout, "%02d", field);
@@ -2750,7 +2753,8 @@ dch_date(int arg, char *inout, int suf, bool is_to_char, bool is_interval,
            }
            else
            {
-               int *field;
+               int        *field;
+
                field = (arg == DCH_Y) ? &tmfc->year : &tmfc->iyear;
 
                sscanf(inout, "%1d", field);
@@ -3064,7 +3068,7 @@ localize_month(int index)
            m = _("Apr");
            break;
        case 4:
-           /*------ 
+           /*------
              translator: Translate this as the abbreviation of "May".
              In English, it is both the full month name and the
              abbreviation, so this hack is needed to distinguish
@@ -3481,17 +3485,17 @@ do_to_timestamp(text *date_txt, text *fmt,
    }
 
    /*
-    * Only one year value is used.  If iyear (the ISO year) is defined, it takes precedence.  
-    * Otherwise year (the Gregorian year) is used.
+    * Only one year value is used.  If iyear (the ISO year) is defined, it
+    * takes precedence. Otherwise year (the Gregorian year) is used.
     */
    year = (tmfc.iyear) ? tmfc.iyear : tmfc.year;
 
    if (year)
    {
        /*
-        * If CC and YY (or Y) are provided, use YY as 2 low-order digits
-        * for the year in the given century.  Keep in mind that the 21st
-        * century runs from 2001-2100, not 2000-2099.
+        * If CC and YY (or Y) are provided, use YY as 2 low-order digits for
+        * the year in the given century.  Keep in mind that the 21st century
+        * runs from 2001-2100, not 2000-2099.
         *
         * If a 4-digit year is provided, we use that and ignore CC.
         */
@@ -3525,15 +3529,16 @@ do_to_timestamp(text *date_txt, text *fmt,
 
    if (tmfc.iw)
    {
-       /* 
-        * Since the user has employed the IW field, it is assumed that the value in tmfc.d 
-        * is in ISO day-of-week form (1 = Monday), as set by the ID field.  Mixing IW and D 
-        * will yield weird results.
+       /*
+        * Since the user has employed the IW field, it is assumed that the
+        * value in tmfc.d is in ISO day-of-week form (1 = Monday), as set by
+        * the ID field.  Mixing IW and D will yield weird results.
         *
-        * tmfc.iyear must have been set (e.g., with IYYY) for this to work properly (an ISO week
-        * without an ISO year is meaningless).
+        * tmfc.iyear must have been set (e.g., with IYYY) for this to work
+        * properly (an ISO week without an ISO year is meaningless).
         *
-        * If tmfc.d is not set, then the date is left at the beginning of the ISO week (Monday).
+        * If tmfc.d is not set, then the date is left at the beginning of the
+        * ISO week (Monday).
         */
        if (tmfc.d)
        {
@@ -3556,14 +3561,15 @@ do_to_timestamp(text *date_txt, text *fmt,
    if (tmfc.ddd && (tm->tm_mon <= 1 || tm->tm_mday <= 1))
    {
        /*
-        * If the iyear field is set, the value of ddd is taken to be an ISO day-of-year.
-        * Otherwise, it is a Gregorian day-of-year.
-        * Either way, since the month and day fields have not been set by some other means,
-        * the value of ddd will be used to compute them.
+        * If the iyear field is set, the value of ddd is taken to be an ISO
+        * day-of-year. Otherwise, it is a Gregorian day-of-year. Either way,
+        * since the month and day fields have not been set by some other
+        * means, the value of ddd will be used to compute them.
         */
        if (tmfc.iyear)
        {
-           int j0;     /* zeroth day of the ISO year, in Julian */
+           int         j0;     /* zeroth day of the ISO year, in Julian */
+
            j0 = isoweek2j(tmfc.iyear, 1) - 1;
 
            j2date(j0 + tmfc.ddd, &tm->tm_year, &tm->tm_mon, &tm->tm_mday);
@@ -3580,7 +3586,7 @@ do_to_timestamp(text *date_txt, text *fmt,
            if (!tm->tm_year)
                ereport(ERROR,
                        (errcode(ERRCODE_INVALID_DATETIME_FORMAT),
-               errmsg("cannot calculate day of year without year information")));
+                        errmsg("cannot calculate day of year without year information")));
 
            y = ysum[isleap(tm->tm_year)];
 
@@ -3909,6 +3915,7 @@ NUM_prepare_locale(NUMProc *Np)
         */
        if (lconv->decimal_point && *lconv->decimal_point)
            Np->decimal = lconv->decimal_point;
+
        else
            Np->decimal = ".";
 
@@ -3917,10 +3924,10 @@ NUM_prepare_locale(NUMProc *Np)
 
        /*
         * Number thousands separator
-        * 
-        * Some locales (e.g. broken glibc pt_BR), have a comma for
-        * decimal, but "" for thousands_sep, so we might make the
-        * thousands_sep comma too.  2007-02-12
+        *
+        * Some locales (e.g. broken glibc pt_BR), have a comma for decimal,
+        * but "" for thousands_sep, so we might make the thousands_sep comma
+        * too.  2007-02-12
         */
        if (lconv->thousands_sep && *lconv->thousands_sep)
            Np->L_thousands_sep = lconv->thousands_sep;
@@ -3943,6 +3950,7 @@ NUM_prepare_locale(NUMProc *Np)
        Np->L_negative_sign = "-";
        Np->L_positive_sign = "+";
        Np->decimal = ".";
+
        Np->L_thousands_sep = ",";
        Np->L_currency_symbol = " ";
    }
@@ -4809,7 +4817,7 @@ do { \
  */
 #define NUM_TOCHAR_finish \
 do { \
-   NUM_processor(format, &Num, VARDATA(result), numstr, plen, sign, true); \
+   NUM_processor(format, &Num, VARDATA(result), numstr, plen, sign, true); \
                                    \
    if (shouldFree)                 \
        pfree(format);              \
@@ -4843,7 +4851,7 @@ numeric_to_number(PG_FUNCTION_ARGS)
 
    len = VARSIZE(fmt) - VARHDRSZ;
 
-   if (len <= 0 || len >= INT_MAX/NUM_MAX_ITEM_SIZ)
+   if (len <= 0 || len >= INT_MAX / NUM_MAX_ITEM_SIZ)
        PG_RETURN_NULL();
 
    format = NUM_cache(len, &Num, VARDATA(fmt), &shouldFree);
index 33a781bb30e2c2d1f3d8b5019968dab9551e8c7d..b2e603a46affabfa5e683ad751bc9d4ee5dcb865 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/geo_ops.c,v 1.96 2007/03/05 23:29:14 momjian Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/geo_ops.c,v 1.97 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -5085,7 +5085,8 @@ point_inside(Point *p, int npts, Point *plist)
    int         i = 0;
    double      x,
                y;
-   int         cross, total_cross = 0;
+   int         cross,
+               total_cross = 0;
 
    if (npts <= 0)
        return 0;
@@ -5107,7 +5108,7 @@ point_inside(Point *p, int npts, Point *plist)
        if ((cross = lseg_crossing(x, y, prev_x, prev_y)) == POINT_ON_POLYGON)
            return 2;
        total_cross += cross;
-       
+
        prev_x = x;
        prev_y = y;
    }
@@ -5139,18 +5140,18 @@ lseg_crossing(double x, double y, double prev_x, double prev_y)
    int         y_sign;
 
    if (FPzero(y))
-   {   /* y == 0, on X axis */
-       if (FPzero(x))  /* (x,y) is (0,0)? */
+   {                           /* y == 0, on X axis */
+       if (FPzero(x))          /* (x,y) is (0,0)? */
            return POINT_ON_POLYGON;
        else if (FPgt(x, 0))
-       {   /* x > 0 */
-           if (FPzero(prev_y)) /* y and prev_y are zero */
+       {                       /* x > 0 */
+           if (FPzero(prev_y)) /* y and prev_y are zero */
                /* prev_x > 0? */
                return FPgt(prev_x, 0) ? 0 : POINT_ON_POLYGON;
            return FPlt(prev_y, 0) ? 1 : -1;
        }
        else
-       {   /* x < 0, x not on positive X axis */
+       {                       /* x < 0, x not on positive X axis */
            if (FPzero(prev_y))
                /* prev_x < 0? */
                return FPlt(prev_x, 0) ? 0 : POINT_ON_POLYGON;
@@ -5158,7 +5159,7 @@ lseg_crossing(double x, double y, double prev_x, double prev_y)
        }
    }
    else
-   {   /* y != 0 */
+   {                           /* y != 0 */
        /* compute y crossing direction from previous point */
        y_sign = FPgt(y, 0) ? 1 : -1;
 
@@ -5167,9 +5168,9 @@ lseg_crossing(double x, double y, double prev_x, double prev_y)
            return FPlt(prev_x, 0) ? 0 : y_sign;
        else if (FPgt(y_sign * prev_y, 0))
            /* both above or below X axis */
-           return 0;   /* same sign */
+           return 0;           /* same sign */
        else
-       {   /* y and prev_y cross X-axis */
+       {                       /* y and prev_y cross X-axis */
            if (FPge(x, 0) && FPgt(prev_x, 0))
                /* both non-negative so cross positive X-axis */
                return 2 * y_sign;
index 4c4ca2c19363e59d67fde32ee341aa30579a8589..edac82d698cc607363ba33e87d50714004403cbf 100644 (file)
@@ -11,7 +11,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/like.c,v 1.71 2007/09/22 03:58:34 adunstan Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/like.c,v 1.72 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -38,7 +38,7 @@ static int    UTF8_MatchText(char *t, int tlen, char *p, int plen);
 
 static int SB_IMatchText(char *t, int tlen, char *p, int plen);
 
-static int GenericMatchText(char *s, int slen, charp, int plen);
+static int GenericMatchText(char *s, int slen, char *p, int plen);
 static int Generic_Text_IC_like(text *str, text *pat);
 
 /*--------------------
@@ -116,13 +116,13 @@ wchareq(char *p1, char *p2)
 /* setup to compile like_match.c for UTF8 encoding, using fast NextChar */
 
 #define NextChar(p, plen) \
-   do { (p)++; (plen)--; } while ((plen) > 0 && (*(p) & 0xC0) == 0x80 ) 
+   do { (p)++; (plen)--; } while ((plen) > 0 && (*(p) & 0xC0) == 0x80 )
 #define MatchText  UTF8_MatchText
 
 #include "like_match.c"
 
 static inline int
-GenericMatchText(char *s, int slen, charp, int plen)
+GenericMatchText(char *s, int slen, char *p, int plen)
 {
    if (pg_database_encoding_max_length() == 1)
        return SB_MatchText(s, slen, p, plen);
@@ -140,9 +140,10 @@ Generic_Text_IC_like(text *str, text *pat)
    int         slen,
                plen;
 
-   /* For efficiency reasons, in the single byte case we don't call
-    * lower() on the pattern and text, but instead call to_lower on each
-    * character.  In the multi-byte case we don't have much choice :-(
+   /*
+    * For efficiency reasons, in the single byte case we don't call lower()
+    * on the pattern and text, but instead call to_lower on each character.
+    * In the multi-byte case we don't have much choice :-(
     */
 
    if (pg_database_encoding_max_length() > 1)
@@ -312,7 +313,7 @@ nameiclike(PG_FUNCTION_ARGS)
    text       *strtext;
 
    strtext = DatumGetTextP(DirectFunctionCall1(name_text,
-                                                   NameGetDatum(str)));
+                                               NameGetDatum(str)));
    result = (Generic_Text_IC_like(strtext, pat) == LIKE_TRUE);
 
    PG_RETURN_BOOL(result);
@@ -327,7 +328,7 @@ nameicnlike(PG_FUNCTION_ARGS)
    text       *strtext;
 
    strtext = DatumGetTextP(DirectFunctionCall1(name_text,
-                                                   NameGetDatum(str)));
+                                               NameGetDatum(str)));
    result = (Generic_Text_IC_like(strtext, pat) != LIKE_TRUE);
 
    PG_RETURN_BOOL(result);
@@ -385,8 +386,7 @@ like_escape_bytea(PG_FUNCTION_ARGS)
 {
    bytea      *pat = PG_GETARG_BYTEA_PP(0);
    bytea      *esc = PG_GETARG_BYTEA_PP(1);
-   bytea      *result = SB_do_like_escape((text *)pat, (text *)esc);
+   bytea      *result = SB_do_like_escape((text *) pat, (text *) esc);
 
-   PG_RETURN_BYTEA_P((bytea *)result);
+   PG_RETURN_BYTEA_P((bytea *) result);
 }
-
index f2ee0bae0ec434c19dd329e413fe409e1573c895..eadb80a750f8079d3f7b54ac06a1efcdd5046c82 100644 (file)
@@ -11,7 +11,7 @@
  *
  * Before the inclusion, we need to define following macros:
  *
- * NextChar 
+ * NextChar
  * MatchText - to name of function wanted
  * do_like_escape - name of function if wanted - needs CHAREQ and CopyAdvChar
  * MATCH_LOWER - define iff using to_lower on text chars
@@ -19,7 +19,7 @@
  * Copyright (c) 1996-2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/like_match.c,v 1.18 2007/09/22 03:58:34 adunstan Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/like_match.c,v 1.19 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -84,11 +84,11 @@ MatchText(char *t, int tlen, char *p, int plen)
        return LIKE_TRUE;
 
    /*
-    * In this loop, we advance by char when matching wildcards (and thus
-    * on recursive entry to this function we are properly char-synced). On
-    * other occasions it is safe to advance by byte, as the text and pattern
-    * will be in lockstep. This allows us to perform all comparisons  between
-    * the text and pattern on a byte by byte basis, even for multi-byte
+    * In this loop, we advance by char when matching wildcards (and thus on
+    * recursive entry to this function we are properly char-synced). On other
+    * occasions it is safe to advance by byte, as the text and pattern will
+    * be in lockstep. This allows us to perform all comparisons  between the
+    * text and pattern on a byte by byte basis, even for multi-byte
     * encodings.
     */
 
@@ -98,15 +98,15 @@ MatchText(char *t, int tlen, char *p, int plen)
        {
            /* Next byte must match literally, whatever it is */
            NextByte(p, plen);
-           if ((plen <= 0) || *p != *t )
+           if ((plen <= 0) || *p != *t)
                return LIKE_FALSE;
        }
        else if (*p == '%')
        {
            /*
-            * % processing is essentially a search for a match for what 
-            * follows the %, plus a recursive match of the remainder.
-            * We succeed if and only if both conditions are met.
+            * % processing is essentially a search for a match for what
+            * follows the %, plus a recursive match of the remainder. We
+            * succeed if and only if both conditions are met.
             */
 
            /* %% is the same as % according to the SQL standard */
@@ -141,9 +141,9 @@ MatchText(char *t, int tlen, char *p, int plen)
                while (tlen > 0)
                {
                    int         matched = MatchText(t, tlen, p, plen);
-                       
+
                    if (matched != LIKE_FALSE)
-                           return matched; /* TRUE or ABORT */
+                       return matched; /* TRUE or ABORT */
 
                    NextChar(t, tlen);
                }
@@ -151,7 +151,7 @@ MatchText(char *t, int tlen, char *p, int plen)
            else
            {
 
-               char firstpat = TCHAR(*p) ;
+               char        firstpat = TCHAR(*p);
 
                if (*p == '\\')
                {
@@ -169,9 +169,9 @@ MatchText(char *t, int tlen, char *p, int plen)
                    if (TCHAR(*t) == firstpat)
                    {
                        int         matched = MatchText(t, tlen, p, plen);
-                       
+
                        if (matched != LIKE_FALSE)
-                           return matched; /* TRUE or ABORT */
+                           return matched;     /* TRUE or ABORT */
                    }
 
                    NextChar(t, tlen);
@@ -199,17 +199,16 @@ MatchText(char *t, int tlen, char *p, int plen)
             */
            return LIKE_FALSE;
        }
+
        /*
         * It is safe to use NextByte instead of NextChar here, even for
-        * multi-byte character sets, because we are not following 
-        * immediately after a wildcard character.
-        * If we are in the middle of a multibyte character, we must 
-        * already have matched at least one byte of the character from 
-        * both text and pattern; so we cannot get out-of-sync
-        * on character boundaries.  And we know that no backend-legal 
-        * encoding allows ASCII characters such as '%' to appear as 
-        * non-first bytes of characters, so we won't mistakenly detect 
-        * a new wildcard.
+        * multi-byte character sets, because we are not following immediately
+        * after a wildcard character. If we are in the middle of a multibyte
+        * character, we must already have matched at least one byte of the
+        * character from both text and pattern; so we cannot get out-of-sync
+        * on character boundaries.  And we know that no backend-legal
+        * encoding allows ASCII characters such as '%' to appear as non-first
+        * bytes of characters, so we won't mistakenly detect a new wildcard.
         */
        NextByte(t, tlen);
        NextByte(p, plen);
@@ -332,7 +331,7 @@ do_like_escape(text *pat, text *esc)
 
    return result;
 }
-#endif /* do_like_escape */
+#endif   /* do_like_escape */
 
 #ifdef CHAREQ
 #undef CHAREQ
@@ -350,4 +349,5 @@ do_like_escape(text *pat, text *esc)
 
 #ifdef MATCH_LOWER
 #undef MATCH_LOWER
+
 #endif
index e78d74f9efe0459865241c57f201ec950bf7a220..78b8c1bf8ccfe69d7bc9572a6639122dfe206fef 100644 (file)
@@ -6,7 +6,7 @@
  * Copyright (c) 2002-2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *     $PostgreSQL: pgsql/src/backend/utils/adt/lockfuncs.c,v 1.29 2007/09/05 18:10:48 tgl Exp $
+ *     $PostgreSQL: pgsql/src/backend/utils/adt/lockfuncs.c,v 1.30 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -53,7 +53,7 @@ VXIDGetDatum(BackendId bid, LocalTransactionId lxid)
     * The representation is "<bid>/<lxid>", decimal and unsigned decimal
     * respectively.  Note that elog.c also knows how to format a vxid.
     */
-   char vxidstr[32];
+   char        vxidstr[32];
 
    snprintf(vxidstr, sizeof(vxidstr), "%d/%u", bid, lxid);
 
index 10c1285bd600ddd30d1745636a563923dc4ab057..7eb6ffe306f78a1200a765fb3c603890d0d650d5 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * PostgreSQL type definitions for the INET and CIDR types.
  *
- * $PostgreSQL: pgsql/src/backend/utils/adt/network.c,v 1.71 2007/06/05 21:31:06 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/network.c,v 1.72 2007/11/15 21:14:39 momjian Exp $
  *
  * Jon Postel RIP 16 Oct 1998
  */
@@ -29,7 +29,7 @@ static int    ip_addrsize(inet *inetptr);
 static inet *internal_inetpl(inet *ip, int64 addend);
 
 /*
- * Access macros.  We use VARDATA_ANY so that we can process short-header
+ * Access macros.  We use VARDATA_ANY so that we can process short-header
  * varlena values without detoasting them.  This requires a trick:
  * VARDATA_ANY assumes the varlena header is already filled in, which is
  * not the case when constructing a new value (until SET_INET_VARSIZE is
@@ -1466,9 +1466,9 @@ inetmi(PG_FUNCTION_ARGS)
  * XXX This should go away someday!
  *
  * This is a kluge needed because we don't yet support zones in stored inet
- * values.  Since the result of getnameinfo() might include a zone spec,
+ * values. Since the result of getnameinfo() might include a zone spec,
  * call this to remove it anywhere we want to feed getnameinfo's output to
- * network_in.  Beats failing entirely.
+ * network_in. Beats failing entirely.
  *
  * An alternative approach would be to let network_in ignore %-parts for
  * itself, but that would mean we'd silently drop zone specs in user input,
@@ -1480,7 +1480,7 @@ clean_ipv6_addr(int addr_family, char *addr)
 #ifdef HAVE_IPV6
    if (addr_family == AF_INET6)
    {
-       char *pct = strchr(addr, '%');
+       char       *pct = strchr(addr, '%');
 
        if (pct)
            *pct = '\0';
index e40e0470fb710445e13b0c258b2075fe8a8a529d..5a22269d09d9f1b4737bfb61162225f07f9ec7d5 100644 (file)
@@ -14,7 +14,7 @@
  * Copyright (c) 1998-2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/numeric.c,v 1.106 2007/07/09 16:13:57 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/numeric.c,v 1.107 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -472,7 +472,7 @@ numeric_send(PG_FUNCTION_ARGS)
  * scale of the attribute have to be applied on the value.
  */
 Datum
-numeric(PG_FUNCTION_ARGS)
+numeric        (PG_FUNCTION_ARGS)
 {
    Numeric     num = PG_GETARG_NUMERIC(0);
    int32       typmod = PG_GETARG_INT32(1);
@@ -542,8 +542,8 @@ numeric(PG_FUNCTION_ARGS)
 Datum
 numerictypmodin(PG_FUNCTION_ARGS)
 {
-   ArrayType   *ta = PG_GETARG_ARRAYTYPE_P(0);
-   int32       *tl;
+   ArrayType  *ta = PG_GETARG_ARRAYTYPE_P(0);
+   int32      *tl;
    int         n;
    int32       typmod;
 
@@ -559,8 +559,8 @@ numerictypmodin(PG_FUNCTION_ARGS)
        if (tl[1] < 0 || tl[1] > tl[0])
            ereport(ERROR,
                    (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                    errmsg("NUMERIC scale %d must be between 0 and precision %d",
-                           tl[1], tl[0])));
+               errmsg("NUMERIC scale %d must be between 0 and precision %d",
+                      tl[1], tl[0])));
        typmod = ((tl[0] << 16) | tl[1]) + VARHDRSZ;
    }
    else if (n == 1)
@@ -577,7 +577,7 @@ numerictypmodin(PG_FUNCTION_ARGS)
    {
        ereport(ERROR,
                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                       errmsg("invalid NUMERIC type modifier")));
+                errmsg("invalid NUMERIC type modifier")));
        typmod = 0;             /* keep compiler quiet */
    }
 
@@ -587,8 +587,8 @@ numerictypmodin(PG_FUNCTION_ARGS)
 Datum
 numerictypmodout(PG_FUNCTION_ARGS)
 {
-   int32   typmod = PG_GETARG_INT32(0);
-   char   *res = (char *) palloc(64);
+   int32       typmod = PG_GETARG_INT32(0);
+   char       *res = (char *) palloc(64);
 
    if (typmod >= 0)
        snprintf(res, 64, "(%d,%d)",
@@ -909,7 +909,7 @@ width_bucket_numeric(PG_FUNCTION_ARGS)
        NUMERIC_IS_NAN(bound2))
        ereport(ERROR,
                (errcode(ERRCODE_INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION),
-                errmsg("operand, lower bound and upper bound cannot be NaN")));
+             errmsg("operand, lower bound and upper bound cannot be NaN")));
 
    init_var(&result_var);
    init_var(&count_var);
@@ -1154,29 +1154,28 @@ cmp_numerics(Numeric num1, Numeric num2)
 Datum
 hash_numeric(PG_FUNCTION_ARGS)
 {
-   Numeric     key = PG_GETARG_NUMERIC(0);
-   Datum       digit_hash;
-   Datum       result;
-   int         weight;
-   int         start_offset;
-   int         end_offset;
-   int         i;
-   int         hash_len;
+   Numeric     key = PG_GETARG_NUMERIC(0);
+   Datum       digit_hash;
+   Datum       result;
+   int         weight;
+   int         start_offset;
+   int         end_offset;
+   int         i;
+   int         hash_len;
 
    /* If it's NaN, don't try to hash the rest of the fields */
    if (NUMERIC_IS_NAN(key))
        PG_RETURN_UINT32(0);
 
-   weight       = key->n_weight;
+   weight = key->n_weight;
    start_offset = 0;
-   end_offset   = 0;
+   end_offset = 0;
 
    /*
-    * Omit any leading or trailing zeros from the input to the
-    * hash. The numeric implementation *should* guarantee that
-    * leading and trailing zeros are suppressed, but we're
-    * paranoid. Note that we measure the starting and ending offsets
-    * in units of NumericDigits, not bytes.
+    * Omit any leading or trailing zeros from the input to the hash. The
+    * numeric implementation *should* guarantee that leading and trailing
+    * zeros are suppressed, but we're paranoid. Note that we measure the
+    * starting and ending offsets in units of NumericDigits, not bytes.
     */
    for (i = 0; i < NUMERIC_NDIGITS(key); i++)
    {
@@ -1184,17 +1183,17 @@ hash_numeric(PG_FUNCTION_ARGS)
            break;
 
        start_offset++;
+
        /*
-        * The weight is effectively the # of digits before the
-        * decimal point, so decrement it for each leading zero we
-        * skip.
+        * The weight is effectively the # of digits before the decimal point,
+        * so decrement it for each leading zero we skip.
         */
        weight--;
    }
 
    /*
-    * If there are no non-zero digits, then the value of the number
-    * is zero, regardless of any other fields.
+    * If there are no non-zero digits, then the value of the number is zero,
+    * regardless of any other fields.
     */
    if (NUMERIC_NDIGITS(key) == start_offset)
        PG_RETURN_UINT32(-1);
@@ -1211,14 +1210,14 @@ hash_numeric(PG_FUNCTION_ARGS)
    Assert(start_offset + end_offset < NUMERIC_NDIGITS(key));
 
    /*
-    * Note that we don't hash on the Numeric's scale, since two
-    * numerics can compare equal but have different scales. We also
-    * don't hash on the sign, although we could: since a sign
-    * difference implies inequality, this shouldn't affect correctness.
+    * Note that we don't hash on the Numeric's scale, since two numerics can
+    * compare equal but have different scales. We also don't hash on the
+    * sign, although we could: since a sign difference implies inequality,
+    * this shouldn't affect correctness.
     */
    hash_len = NUMERIC_NDIGITS(key) - start_offset - end_offset;
    digit_hash = hash_any((unsigned char *) (NUMERIC_DIGITS(key) + start_offset),
-                          hash_len * sizeof(NumericDigit));
+                         hash_len * sizeof(NumericDigit));
 
    /* Mix in the weight, via XOR */
    result = digit_hash ^ weight;
@@ -2436,9 +2435,9 @@ numeric_stddev_internal(ArrayType *transarray,
    else
    {
        if (sample)
-           mul_var(&vN, &vNminus1, &vNminus1, 0);  /* N * (N - 1) */
+           mul_var(&vN, &vNminus1, &vNminus1, 0);      /* N * (N - 1) */
        else
-           mul_var(&vN, &vN, &vNminus1, 0);        /* N * N */
+           mul_var(&vN, &vN, &vNminus1, 0);    /* N * N */
        rscale = select_div_scale(&vsumX2, &vNminus1);
        div_var(&vsumX2, &vNminus1, &vsumX, rscale, true);      /* variance */
        if (!variance)
index 56fe7a607f63732857a5850f564262dcd43990df..4bf1e54466aaeb4ee70417d75674601ed8effef6 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/oracle_compat.c,v 1.73 2007/09/22 05:35:42 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/oracle_compat.c,v 1.74 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -46,8 +46,8 @@
  */
 #if defined(HAVE_WCSTOMBS) && defined(HAVE_TOWLOWER)
 #define USE_WIDE_UPPER_LOWER
-char *wstring_lower (char *str);
-char *wstring_upper(char *str);
+char      *wstring_lower(char *str);
+char      *wstring_upper(char *str);
 #endif
 
 static text *dotrim(const char *string, int stringlen,
@@ -229,7 +229,7 @@ win32_utf8_wcstotext(const wchar_t *str)
                 errmsg("UTF-16 to UTF-8 translation failed: %lu",
                        GetLastError())));
 
-   SET_VARSIZE(result, nbytes + VARHDRSZ - 1);     /* -1 to ignore null */
+   SET_VARSIZE(result, nbytes + VARHDRSZ - 1); /* -1 to ignore null */
 
    return result;
 }
@@ -261,21 +261,21 @@ win32_wcstotext(const wchar_t *str, int ncodes)
 #endif   /* WIN32 */
 
 #ifdef USE_WIDE_UPPER_LOWER
-/* 
- * string_upper and string_lower are used for correct multibyte upper/lower 
+/*
+ * string_upper and string_lower are used for correct multibyte upper/lower
  * transformations localized strings. Returns pointers to transformated
  * string.
  */
 char *
 wstring_upper(char *str)
 {
-   wchar_t     *workspace;
-   text        *in_text;
-   text        *out_text;
-   char        *result;    
-   int     nbytes = strlen(str);
-   int i;
-   
+   wchar_t    *workspace;
+   text       *in_text;
+   text       *out_text;
+   char       *result;
+   int         nbytes = strlen(str);
+   int         i;
+
    in_text = palloc(nbytes + VARHDRSZ);
    memcpy(VARDATA(in_text), str, nbytes);
    SET_VARSIZE(in_text, nbytes + VARHDRSZ);
@@ -286,7 +286,7 @@ wstring_upper(char *str)
        workspace[i] = towupper(workspace[i]);
 
    out_text = wcstotext(workspace, i);
-   
+
    nbytes = VARSIZE(out_text) - VARHDRSZ;
    result = palloc(nbytes + 1);
    memcpy(result, VARDATA(out_text), nbytes);
@@ -296,20 +296,20 @@ wstring_upper(char *str)
    pfree(workspace);
    pfree(in_text);
    pfree(out_text);
-   
+
    return result;
 }
 
 char *
 wstring_lower(char *str)
 {
-   wchar_t     *workspace;
-   text        *in_text;
-   text        *out_text;
-   char        *result;    
-   int     nbytes = strlen(str);
-   int i;
-   
+   wchar_t    *workspace;
+   text       *in_text;
+   text       *out_text;
+   char       *result;
+   int         nbytes = strlen(str);
+   int         i;
+
    in_text = palloc(nbytes + VARHDRSZ);
    memcpy(VARDATA(in_text), str, nbytes);
    SET_VARSIZE(in_text, nbytes + VARHDRSZ);
@@ -320,8 +320,8 @@ wstring_lower(char *str)
        workspace[i] = towlower(workspace[i]);
 
    out_text = wcstotext(workspace, i);
-   
-       nbytes = VARSIZE(out_text) - VARHDRSZ;
+
+   nbytes = VARSIZE(out_text) - VARHDRSZ;
    result = palloc(nbytes + 1);
    memcpy(result, VARDATA(out_text), nbytes);
 
@@ -330,10 +330,10 @@ wstring_lower(char *str)
    pfree(workspace);
    pfree(in_text);
    pfree(out_text);
-   
+
    return result;
 }
-#endif /* USE_WIDE_UPPER_LOWER */
+#endif   /* USE_WIDE_UPPER_LOWER */
 
 /********************************************************************
  *
@@ -979,13 +979,13 @@ byteatrim(PG_FUNCTION_ARGS)
               *ptr2,
               *ptr2start,
               *end2;
-   int         m, 
-               stringlen, 
+   int         m,
+               stringlen,
                setlen;
 
    stringlen = VARSIZE_ANY_EXHDR(string);
    setlen = VARSIZE_ANY_EXHDR(set);
-   
+
    if (stringlen <= 0 || setlen <= 0)
        PG_RETURN_BYTEA_P(string);
 
@@ -1178,8 +1178,8 @@ translate(PG_FUNCTION_ARGS)
    to_ptr = VARDATA_ANY(to);
 
    /*
-    * The worst-case expansion is to substitute a max-length character for
-    * single-byte character at each position of the string.
+    * The worst-case expansion is to substitute a max-length character for a
+    * single-byte character at each position of the string.
     */
    worst_len = pg_database_encoding_max_length() * m;
 
@@ -1242,9 +1242,9 @@ translate(PG_FUNCTION_ARGS)
    SET_VARSIZE(result, retlen + VARHDRSZ);
 
    /*
-    * The function result is probably much bigger than needed, if we're
-    * using a multibyte encoding, but it's not worth reallocating it;
-    * the result probably won't live long anyway.
+    * The function result is probably much bigger than needed, if we're using
+    * a multibyte encoding, but it's not worth reallocating it; the result
+    * probably won't live long anyway.
     */
 
    PG_RETURN_TEXT_P(result);
@@ -1262,13 +1262,13 @@ translate(PG_FUNCTION_ARGS)
  *
  *  Returns the decimal representation of the first character from
  *  string.
- *   If the string is empty we return 0.
- *   If the database encoding is UTF8, we return the Unicode codepoint. 
- *   If the database encoding is any other multi-byte encoding, we
- *   return the value of the first byte if it is an ASCII character
- *   (range 1 .. 127), or raise an error.
- *   For all other encodings we return the value of the first byte,
- *   (range 1..255).
+ *  If the string is empty we return 0.
+ *  If the database encoding is UTF8, we return the Unicode codepoint.
+ *  If the database encoding is any other multi-byte encoding, we
+ *  return the value of the first byte if it is an ASCII character
+ *  (range 1 .. 127), or raise an error.
+ *  For all other encodings we return the value of the first byte,
+ *  (range 1..255).
  *
  ********************************************************************/
 
@@ -1276,7 +1276,7 @@ Datum
 ascii(PG_FUNCTION_ARGS)
 {
    text       *string = PG_GETARG_TEXT_PP(0);
-   int encoding = GetDatabaseEncoding();
+   int         encoding = GetDatabaseEncoding();
    unsigned char *data;
 
    if (VARSIZE_ANY_EXHDR(string) <= 0)
@@ -1288,7 +1288,9 @@ ascii(PG_FUNCTION_ARGS)
    {
        /* return the code point for Unicode */
 
-       int result = 0, tbytes = 0, i;
+       int         result = 0,
+                   tbytes = 0,
+                   i;
 
        if (*data >= 0xF0)
        {
@@ -1302,16 +1304,16 @@ ascii(PG_FUNCTION_ARGS)
        }
        else
        {
-           Assert (*data > 0xC0);
+           Assert(*data > 0xC0);
            result = *data & 0x1f;
            tbytes = 1;
        }
 
-       Assert (tbytes > 0);
+       Assert(tbytes > 0);
 
        for (i = 1; i <= tbytes; i++)
        {
-           Assert ((data[i] & 0xC0) == 0x80);
+           Assert((data[i] & 0xC0) == 0x80);
            result = (result << 6) + (data[i] & 0x3f);
        }
 
@@ -1352,23 +1354,23 @@ ascii(PG_FUNCTION_ARGS)
  ********************************************************************/
 
 Datum
-chr(PG_FUNCTION_ARGS)
+chr            (PG_FUNCTION_ARGS)
 {
    uint32      cvalue = PG_GETARG_UINT32(0);
    text       *result;
-   int encoding = GetDatabaseEncoding();
+   int         encoding = GetDatabaseEncoding();
 
    if (encoding == PG_UTF8 && cvalue > 127)
    {
        /* for Unicode we treat the argument as a code point */
-       int bytes ;
-       char *wch;
+       int         bytes;
+       char       *wch;
 
        /* We only allow valid Unicode code points */
        if (cvalue > 0x001fffff)
            ereport(ERROR,
                    (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
-                    errmsg("requested character too large for encoding: %d", 
+                    errmsg("requested character too large for encoding: %d",
                            cvalue)));
 
        if (cvalue > 0xffff)
@@ -1400,15 +1402,16 @@ chr(PG_FUNCTION_ARGS)
            wch[2] = 0x80 | ((cvalue >> 6) & 0x3F);
            wch[3] = 0x80 | (cvalue & 0x3F);
        }
-       
+
    }
 
    else
    {
-       bool is_mb;
+       bool        is_mb;
 
-       /* Error out on arguments that make no sense or that we
-        * can't validly represent in the encoding.
+       /*
+        * Error out on arguments that make no sense or that we can't validly
+        * represent in the encoding.
         */
 
        if (cvalue == 0)
@@ -1418,12 +1421,12 @@ chr(PG_FUNCTION_ARGS)
 
        is_mb = pg_encoding_max_length(encoding) > 1;
 
-       if ((is_mb && (cvalue > 255)) || (! is_mb && (cvalue > 127)))
+       if ((is_mb && (cvalue > 255)) || (!is_mb && (cvalue > 127)))
            ereport(ERROR,
                    (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
                     errmsg("requested character too large for encoding: %d",
                            cvalue)));
-       
+
 
        result = (text *) palloc(VARHDRSZ + 1);
        SET_VARSIZE(result, VARHDRSZ + 1);
index f843232ba6440a563947d8294e7d6ac70521cf35..10f7b4389ede4949bb48ee91cb1e75703b1a911d 100644 (file)
  *
  * Copyright (c) 1999-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/backend/utils/adt/pg_lzcompress.c,v 1.27 2007/08/04 21:53:00 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/pg_lzcompress.c,v 1.28 2007/11/15 21:14:39 momjian Exp $
  * ----------
  */
 #include "postgres.h"
@@ -222,7 +222,7 @@ static const PGLZ_Strategy strategy_default_data = {
    10                          /* Lower good match size by 10% at every
                                 * lookup loop iteration */
 };
-const PGLZ_Strategy * const PGLZ_strategy_default = &strategy_default_data;
+const PGLZ_Strategy *const PGLZ_strategy_default = &strategy_default_data;
 
 
 static const PGLZ_Strategy strategy_always_data = {
@@ -233,7 +233,7 @@ static const PGLZ_Strategy strategy_always_data = {
                                 * is found */
    6                           /* Look harder for a good match */
 };
-const PGLZ_Strategy * const PGLZ_strategy_always = &strategy_always_data;
+const PGLZ_Strategy *const PGLZ_strategy_always = &strategy_always_data;
 
 
 /* ----------
@@ -605,8 +605,8 @@ pglz_compress(const char *source, int32 slen, PGLZ_Header *dest,
    }
 
    /*
-    * Write out the last control byte and check that we haven't overrun
-    * the output size allowed by the strategy.
+    * Write out the last control byte and check that we haven't overrun the
+    * output size allowed by the strategy.
     */
    *ctrlp = ctrlb;
    result_size = bp - bstart;
@@ -697,8 +697,8 @@ pglz_decompress(const PGLZ_Header *source, char *dest)
 
    /*
     * Check we decompressed the right amount, else die.  This is a FATAL
-    * condition if we tromped on more memory than expected (we assume we
-    * have not tromped on shared memory, though, so need not PANIC).
+    * condition if we tromped on more memory than expected (we assume we have
+    * not tromped on shared memory, though, so need not PANIC).
     */
    destsize = (char *) bp - dest;
    if (destsize != source->rawsize)
index f162381745caf8fc57f8421aa2b0335dafd99231..3e4faea4746cd90b471e72468d84f54c46847947 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/pgstatfuncs.c,v 1.46 2007/09/25 20:03:38 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/pgstatfuncs.c,v 1.47 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -190,32 +190,32 @@ pg_stat_get_tuples_hot_updated(PG_FUNCTION_ARGS)
 
 Datum
 pg_stat_get_live_tuples(PG_FUNCTION_ARGS)
-{ 
-   Oid     relid = PG_GETARG_OID(0);
-   int64   result;
-   PgStat_StatTabEntry *tabentry;
+{
+   Oid         relid = PG_GETARG_OID(0);
+   int64       result;
+   PgStat_StatTabEntry *tabentry;
+
    if ((tabentry = pgstat_fetch_stat_tabentry(relid)) == NULL)
        result = 0;
    else
        result = (int64) (tabentry->n_live_tuples);
-        
+
    PG_RETURN_INT64(result);
 }
 
-        
+
 Datum
 pg_stat_get_dead_tuples(PG_FUNCTION_ARGS)
 {
-   Oid     relid = PG_GETARG_OID(0);
-   int64   result;
-   PgStat_StatTabEntry *tabentry;
+   Oid         relid = PG_GETARG_OID(0);
+   int64       result;
+   PgStat_StatTabEntry *tabentry;
 
    if ((tabentry = pgstat_fetch_stat_tabentry(relid)) == NULL)
        result = 0;
    else
        result = (int64) (tabentry->n_dead_tuples);
-        
+
    PG_RETURN_INT64(result);
 }
 
index 744b55069fd52446d85cd5059485e4f547b92981..3b84a831bde7fc9fa8ed4abf3c0680824fbff937 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/regexp.c,v 1.75 2007/09/22 04:37:53 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/regexp.c,v 1.76 2007/11/15 21:14:39 momjian Exp $
  *
  *     Alistair Crooks added the code for the regex caching
  *     agc - cached the regular expressions used - there's a good chance
@@ -48,7 +48,7 @@ typedef struct pg_re_flags
 {
    int         cflags;         /* compile flags for Spencer's regex code */
    bool        glob;           /* do it globally (for each occurrence) */
-} pg_re_flags;
+}  pg_re_flags;
 
 /* cross-call state for regexp_matches(), also regexp_split() */
 typedef struct regexp_matches_ctx
@@ -63,7 +63,7 @@ typedef struct regexp_matches_ctx
    /* workspace for build_regexp_matches_result() */
    Datum      *elems;          /* has npatterns elements */
    bool       *nulls;          /* has npatterns elements */
-} regexp_matches_ctx;
+}  regexp_matches_ctx;
 
 /*
  * We cache precompiled regular expressions using a "self organizing list"
@@ -109,13 +109,13 @@ static cached_re_str re_array[MAX_CACHED_RES];    /* cached re's */
 
 /* Local functions */
 static regexp_matches_ctx *setup_regexp_matches(text *orig_str, text *pattern,
-                                               text *flags,
-                                               bool force_glob,
-                                               bool use_subpatterns,
-                                               bool ignore_degenerate);
-static void cleanup_regexp_matches(regexp_matches_ctx *matchctx);
-static ArrayType *build_regexp_matches_result(regexp_matches_ctx *matchctx);
-static Datum build_regexp_split_result(regexp_matches_ctx *splitctx);
+                    text *flags,
+                    bool force_glob,
+                    bool use_subpatterns,
+                    bool ignore_degenerate);
+static void cleanup_regexp_matches(regexp_matches_ctx * matchctx);
+static ArrayType *build_regexp_matches_result(regexp_matches_ctx * matchctx);
+static Datum build_regexp_split_result(regexp_matches_ctx * splitctx);
 
 
 /*
@@ -196,9 +196,9 @@ RE_compile_and_cache(text *text_re, int cflags)
 
    /*
     * We use malloc/free for the cre_pat field because the storage has to
-    * persist across transactions, and because we want to get control back
-    * on out-of-memory.  The Max() is because some malloc implementations
-    * return NULL for malloc(0).
+    * persist across transactions, and because we want to get control back on
+    * out-of-memory.  The Max() is because some malloc implementations return
+    * NULL for malloc(0).
     */
    re_temp.cre_pat = malloc(Max(text_re_len, 1));
    if (re_temp.cre_pat == NULL)
@@ -286,7 +286,7 @@ RE_wchar_execute(regex_t *re, pg_wchar *data, int data_len,
  * dat_len --- the length of the data string
  * nmatch, pmatch  --- optional return area for match details
  *
- * Data is given in the database encoding.  We internally
+ * Data is given in the database encoding. We internally
  * convert to array of pg_wchar which is what Spencer's regex package wants.
  */
 static bool
@@ -345,7 +345,7 @@ RE_compile_and_execute(text *text_re, char *dat, int dat_len,
  * don't want some have to reject them after the fact.
  */
 static void
-parse_re_flags(pg_re_flags *flags, text *opts)
+parse_re_flags(pg_re_flags * flags, text *opts)
 {
    /* regex_flavor is always folded into the compile flags */
    flags->cflags = regex_flavor;
@@ -353,9 +353,9 @@ parse_re_flags(pg_re_flags *flags, text *opts)
 
    if (opts)
    {
-       char   *opt_p = VARDATA_ANY(opts);
-       int     opt_len = VARSIZE_ANY_EXHDR(opts);
-       int     i;
+       char       *opt_p = VARDATA_ANY(opts);
+       int         opt_len = VARSIZE_ANY_EXHDR(opts);
+       int         i;
 
        for (i = 0; i < opt_len; i++)
        {
@@ -364,42 +364,42 @@ parse_re_flags(pg_re_flags *flags, text *opts)
                case 'g':
                    flags->glob = true;
                    break;
-               case 'b':   /* BREs (but why???) */
+               case 'b':       /* BREs (but why???) */
                    flags->cflags &= ~(REG_ADVANCED | REG_EXTENDED | REG_QUOTE);
                    break;
-               case 'c':   /* case sensitive */
+               case 'c':       /* case sensitive */
                    flags->cflags &= ~REG_ICASE;
                    break;
-               case 'e':   /* plain EREs */
+               case 'e':       /* plain EREs */
                    flags->cflags |= REG_EXTENDED;
                    flags->cflags &= ~(REG_ADVANCED | REG_QUOTE);
                    break;
-               case 'i':   /* case insensitive */
+               case 'i':       /* case insensitive */
                    flags->cflags |= REG_ICASE;
                    break;
-               case 'm':   /* Perloid synonym for n */
-               case 'n':   /* \n affects ^ $ . [^ */
+               case 'm':       /* Perloid synonym for n */
+               case 'n':       /* \n affects ^ $ . [^ */
                    flags->cflags |= REG_NEWLINE;
                    break;
-               case 'p':   /* ~Perl, \n affects . [^ */
+               case 'p':       /* ~Perl, \n affects . [^ */
                    flags->cflags |= REG_NLSTOP;
                    flags->cflags &= ~REG_NLANCH;
                    break;
-               case 'q':   /* literal string */
+               case 'q':       /* literal string */
                    flags->cflags |= REG_QUOTE;
                    flags->cflags &= ~(REG_ADVANCED | REG_EXTENDED);
                    break;
-               case 's':   /* single line, \n ordinary */
+               case 's':       /* single line, \n ordinary */
                    flags->cflags &= ~REG_NEWLINE;
                    break;
-               case 't':   /* tight syntax */
+               case 't':       /* tight syntax */
                    flags->cflags &= ~REG_EXPANDED;
                    break;
-               case 'w':   /* weird, \n affects ^ $ only */
+               case 'w':       /* weird, \n affects ^ $ only */
                    flags->cflags &= ~REG_NLSTOP;
                    flags->cflags |= REG_NLANCH;
                    break;
-               case 'x':   /* expanded syntax */
+               case 'x':       /* expanded syntax */
                    flags->cflags |= REG_EXPANDED;
                    break;
                default:
@@ -785,14 +785,14 @@ similar_escape(PG_FUNCTION_ARGS)
 Datum
 regexp_matches(PG_FUNCTION_ARGS)
 {
-   FuncCallContext     *funcctx;
-   regexp_matches_ctx  *matchctx;
+   FuncCallContext *funcctx;
+   regexp_matches_ctx *matchctx;
 
    if (SRF_IS_FIRSTCALL())
    {
-       text *pattern = PG_GETARG_TEXT_PP(1);
-       text *flags   = PG_GETARG_TEXT_PP_IF_EXISTS(2);
-       MemoryContext        oldcontext;
+       text       *pattern = PG_GETARG_TEXT_PP(1);
+       text       *flags = PG_GETARG_TEXT_PP_IF_EXISTS(2);
+       MemoryContext oldcontext;
 
        funcctx = SRF_FIRSTCALL_INIT();
        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
@@ -814,7 +814,7 @@ regexp_matches(PG_FUNCTION_ARGS)
 
    if (matchctx->next_match < matchctx->nmatches)
    {
-       ArrayType *result_ary;
+       ArrayType  *result_ary;
 
        result_ary = build_regexp_matches_result(matchctx);
        matchctx->next_match++;
@@ -855,8 +855,8 @@ setup_regexp_matches(text *orig_str, text *pattern, text *flags,
    int         orig_len;
    pg_wchar   *wide_str;
    int         wide_len;
-   pg_re_flags re_flags;
-   regex_t    *cpattern;
+   pg_re_flags re_flags;
+   regex_t    *cpattern;
    regmatch_t *pmatch;
    int         pmatch_len;
    int         array_len;
@@ -880,7 +880,7 @@ setup_regexp_matches(text *orig_str, text *pattern, text *flags,
        if (re_flags.glob)
            ereport(ERROR,
                    (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                    errmsg("regexp_split does not support the global option")));
+                errmsg("regexp_split does not support the global option")));
        /* but we find all the matches anyway */
        re_flags.glob = true;
    }
@@ -917,8 +917,8 @@ setup_regexp_matches(text *orig_str, text *pattern, text *flags,
    {
        /*
         * If requested, ignore degenerate matches, which are zero-length
-        * matches occurring at the start or end of a string or just after
-        * previous match.
+        * matches occurring at the start or end of a string or just after a
+        * previous match.
         */
        if (!ignore_degenerate ||
            (pmatch[0].rm_so < wide_len &&
@@ -929,13 +929,13 @@ setup_regexp_matches(text *orig_str, text *pattern, text *flags,
            {
                array_len *= 2;
                matchctx->match_locs = (int *) repalloc(matchctx->match_locs,
-                                                       sizeof(int) * array_len);
+                                                   sizeof(int) * array_len);
            }
 
            /* save this match's locations */
            if (use_subpatterns)
            {
-               int i;
+               int         i;
 
                for (i = 1; i <= matchctx->npatterns; i++)
                {
@@ -957,10 +957,10 @@ setup_regexp_matches(text *orig_str, text *pattern, text *flags,
            break;
 
        /*
-        * Advance search position.  Normally we start just after the end
-        * of the previous match, but always advance at least one character
-        * (the special case can occur if the pattern matches zero characters
-        * just after the prior match or at the end of the string).
+        * Advance search position.  Normally we start just after the end of
+        * the previous match, but always advance at least one character (the
+        * special case can occur if the pattern matches zero characters just
+        * after the prior match or at the end of the string).
         */
        if (start_search < pmatch[0].rm_eo)
            start_search = pmatch[0].rm_eo;
@@ -981,7 +981,7 @@ setup_regexp_matches(text *orig_str, text *pattern, text *flags,
  * cleanup_regexp_matches - release memory of a regexp_matches_ctx
  */
 static void
-cleanup_regexp_matches(regexp_matches_ctx *matchctx)
+cleanup_regexp_matches(regexp_matches_ctx * matchctx)
 {
    pfree(matchctx->orig_str);
    pfree(matchctx->match_locs);
@@ -996,12 +996,12 @@ cleanup_regexp_matches(regexp_matches_ctx *matchctx)
  * build_regexp_matches_result - build output array for current match
  */
 static ArrayType *
-build_regexp_matches_result(regexp_matches_ctx *matchctx)
+build_regexp_matches_result(regexp_matches_ctx * matchctx)
 {
    Datum      *elems = matchctx->elems;
    bool       *nulls = matchctx->nulls;
-   int         dims[1];
-   int         lbs[1];
+   int         dims[1];
+   int         lbs[1];
    int         loc;
    int         i;
 
@@ -1009,8 +1009,8 @@ build_regexp_matches_result(regexp_matches_ctx *matchctx)
    loc = matchctx->next_match * matchctx->npatterns * 2;
    for (i = 0; i < matchctx->npatterns; i++)
    {
-       int so = matchctx->match_locs[loc++];
-       int eo = matchctx->match_locs[loc++];
+       int         so = matchctx->match_locs[loc++];
+       int         eo = matchctx->match_locs[loc++];
 
        if (so < 0 || eo < 0)
        {
@@ -1020,7 +1020,7 @@ build_regexp_matches_result(regexp_matches_ctx *matchctx)
        else
        {
            elems[i] = DirectFunctionCall3(text_substr,
-                                          PointerGetDatum(matchctx->orig_str),
+                                        PointerGetDatum(matchctx->orig_str),
                                           Int32GetDatum(so + 1),
                                           Int32GetDatum(eo - so));
            nulls[i] = false;
@@ -1043,14 +1043,14 @@ build_regexp_matches_result(regexp_matches_ctx *matchctx)
 Datum
 regexp_split_to_table(PG_FUNCTION_ARGS)
 {
-   FuncCallContext  *funcctx;
+   FuncCallContext *funcctx;
    regexp_matches_ctx *splitctx;
 
    if (SRF_IS_FIRSTCALL())
    {
-       text            *pattern = PG_GETARG_TEXT_PP(1);
-       text            *flags   = PG_GETARG_TEXT_PP_IF_EXISTS(2);
-       MemoryContext    oldcontext;
+       text       *pattern = PG_GETARG_TEXT_PP(1);
+       text       *flags = PG_GETARG_TEXT_PP_IF_EXISTS(2);
+       MemoryContext oldcontext;
 
        funcctx = SRF_FIRSTCALL_INIT();
        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
@@ -1068,7 +1068,7 @@ regexp_split_to_table(PG_FUNCTION_ARGS)
 
    if (splitctx->next_match <= splitctx->nmatches)
    {
-       Datum result = build_regexp_split_result(splitctx);
+       Datum       result = build_regexp_split_result(splitctx);
 
        splitctx->next_match++;
        SRF_RETURN_NEXT(funcctx, result);
@@ -1081,7 +1081,8 @@ regexp_split_to_table(PG_FUNCTION_ARGS)
 }
 
 /* This is separate to keep the opr_sanity regression test from complaining */
-Datum regexp_split_to_table_no_flags(PG_FUNCTION_ARGS)
+Datum
+regexp_split_to_table_no_flags(PG_FUNCTION_ARGS)
 {
    return regexp_split_to_table(fcinfo);
 }
@@ -1091,10 +1092,11 @@ Datum regexp_split_to_table_no_flags(PG_FUNCTION_ARGS)
  *     Split the string at matches of the pattern, returning the
  *     split-out substrings as an array.
  */
-Datum regexp_split_to_array(PG_FUNCTION_ARGS)
+Datum
+regexp_split_to_array(PG_FUNCTION_ARGS)
 {
-   ArrayBuildState     *astate = NULL;
-   regexp_matches_ctx  *splitctx;
+   ArrayBuildState *astate = NULL;
+   regexp_matches_ctx *splitctx;
 
    splitctx = setup_regexp_matches(PG_GETARG_TEXT_PP(0),
                                    PG_GETARG_TEXT_PP(1),
@@ -1112,16 +1114,17 @@ Datum regexp_split_to_array(PG_FUNCTION_ARGS)
    }
 
    /*
-    * We don't call cleanup_regexp_matches here; it would try to pfree
-    * the input string, which we didn't copy.  The space is not in a
-    * long-lived memory context anyway.
+    * We don't call cleanup_regexp_matches here; it would try to pfree the
+    * input string, which we didn't copy.  The space is not in a long-lived
+    * memory context anyway.
     */
 
    PG_RETURN_ARRAYTYPE_P(makeArrayResult(astate, CurrentMemoryContext));
 }
 
 /* This is separate to keep the opr_sanity regression test from complaining */
-Datum regexp_split_to_array_no_flags(PG_FUNCTION_ARGS)
+Datum
+regexp_split_to_array_no_flags(PG_FUNCTION_ARGS)
 {
    return regexp_split_to_array(fcinfo);
 }
@@ -1133,10 +1136,10 @@ Datum regexp_split_to_array_no_flags(PG_FUNCTION_ARGS)
  * or the string after the last match when next_match == nmatches.
  */
 static Datum
-build_regexp_split_result(regexp_matches_ctx *splitctx)
+build_regexp_split_result(regexp_matches_ctx * splitctx)
 {
-   int     startpos;
-   int     endpos;
+   int         startpos;
+   int         endpos;
 
    if (splitctx->next_match > 0)
        startpos = splitctx->match_locs[splitctx->next_match * 2 - 1];
index e49f323daa88592b2c5a3ea7178d6473e2eefd4e..1d1282097664288fc98449a2ee6f4ef17c4dda74 100644 (file)
@@ -13,7 +13,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/regproc.c,v 1.103 2007/08/21 01:11:18 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/regproc.c,v 1.104 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1207,7 +1207,7 @@ regdictionaryin(PG_FUNCTION_ARGS)
        strspn(dict_name_or_oid, "0123456789") == strlen(dict_name_or_oid))
    {
        result = DatumGetObjectId(DirectFunctionCall1(oidin,
-                                         CStringGetDatum(dict_name_or_oid)));
+                                        CStringGetDatum(dict_name_or_oid)));
        PG_RETURN_OID(result);
    }
 
@@ -1249,8 +1249,8 @@ regdictionaryout(PG_FUNCTION_ARGS)
        char       *nspname;
 
        /*
-        * Would this dictionary be found by regdictionaryin?
-        * If not, qualify it.
+        * Would this dictionary be found by regdictionaryin? If not, qualify
+        * it.
         */
        if (TSDictionaryIsVisible(dictid))
            nspname = NULL;
index e3a01ed76a901765db7d465c89777194c1acb6fe..5a27f08f3c3e5b044d6681e98f42b09bb45e5d7f 100644 (file)
@@ -15,7 +15,7 @@
  *
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/backend/utils/adt/ri_triggers.c,v 1.97 2007/09/11 00:06:42 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/ri_triggers.c,v 1.98 2007/11/15 21:14:39 momjian Exp $
  *
  * ----------
  */
@@ -72,8 +72,8 @@
 #define MAX_QUOTED_NAME_LEN  (NAMEDATALEN*2+3)
 #define MAX_QUOTED_REL_NAME_LEN  (MAX_QUOTED_NAME_LEN*2)
 
-#define RIAttName(rel, attnum)  NameStr(*attnumAttName(rel, attnum))
-#define RIAttType(rel, attnum)  SPI_gettypeid(RelationGetDescr(rel), attnum)
+#define RIAttName(rel, attnum) NameStr(*attnumAttName(rel, attnum))
+#define RIAttType(rel, attnum) SPI_gettypeid(RelationGetDescr(rel), attnum)
 
 #define RI_TRIGTYPE_INSERT 1
 #define RI_TRIGTYPE_UPDATE 2
@@ -100,12 +100,15 @@ typedef struct RI_ConstraintInfo
    char        confdeltype;    /* foreign key's ON DELETE action */
    char        confmatchtype;  /* foreign key's match type */
    int         nkeys;          /* number of key columns */
-   int16       pk_attnums[RI_MAX_NUMKEYS]; /* attnums of referenced cols */
-   int16       fk_attnums[RI_MAX_NUMKEYS]; /* attnums of referencing cols */
-   Oid         pf_eq_oprs[RI_MAX_NUMKEYS]; /* equality operators (PK = FK) */
-   Oid         pp_eq_oprs[RI_MAX_NUMKEYS]; /* equality operators (PK = PK) */
-   Oid         ff_eq_oprs[RI_MAX_NUMKEYS]; /* equality operators (FK = FK) */
-} RI_ConstraintInfo;
+   int16       pk_attnums[RI_MAX_NUMKEYS];     /* attnums of referenced cols */
+   int16       fk_attnums[RI_MAX_NUMKEYS];     /* attnums of referencing cols */
+   Oid         pf_eq_oprs[RI_MAX_NUMKEYS];     /* equality operators (PK =
+                                                * FK) */
+   Oid         pp_eq_oprs[RI_MAX_NUMKEYS];     /* equality operators (PK =
+                                                * PK) */
+   Oid         ff_eq_oprs[RI_MAX_NUMKEYS];     /* equality operators (FK =
+                                                * FK) */
+}  RI_ConstraintInfo;
 
 
 /* ----------
@@ -147,7 +150,7 @@ typedef struct RI_CompareKey
 {
    Oid         eq_opr;         /* the equality operator to apply */
    Oid         typeid;         /* the data type to apply it to */
-} RI_CompareKey;
+}  RI_CompareKey;
 
 
 /* ----------
@@ -157,10 +160,10 @@ typedef struct RI_CompareKey
 typedef struct RI_CompareHashEntry
 {
    RI_CompareKey key;
-   bool        valid;              /* successfully initialized? */
-   FmgrInfo    eq_opr_finfo;       /* call info for equality fn */
+   bool        valid;          /* successfully initialized? */
+   FmgrInfo    eq_opr_finfo;   /* call info for equality fn */
    FmgrInfo    cast_func_finfo;    /* in case we must coerce input */
-} RI_CompareHashEntry;
+}  RI_CompareHashEntry;
 
 
 /* ----------
@@ -178,30 +181,30 @@ static HTAB *ri_compare_cache = NULL;
 static void quoteOneName(char *buffer, const char *name);
 static void quoteRelationName(char *buffer, Relation rel);
 static void ri_GenerateQual(StringInfo buf,
-                           const char *sep,
-                           const char *leftop, Oid leftoptype,
-                           Oid opoid,
-                           const char *rightop, Oid rightoptype);
+               const char *sep,
+               const char *leftop, Oid leftoptype,
+               Oid opoid,
+               const char *rightop, Oid rightoptype);
 static int ri_NullCheck(Relation rel, HeapTuple tup,
             RI_QueryKey *key, int pairidx);
 static void ri_BuildQueryKeyFull(RI_QueryKey *key,
-                                const RI_ConstraintInfo *riinfo,
-                                int32 constr_queryno);
+                    const RI_ConstraintInfo * riinfo,
+                    int32 constr_queryno);
 static void ri_BuildQueryKeyPkCheck(RI_QueryKey *key,
-                                   const RI_ConstraintInfo *riinfo,
-                                   int32 constr_queryno);
+                       const RI_ConstraintInfo * riinfo,
+                       int32 constr_queryno);
 static bool ri_KeysEqual(Relation rel, HeapTuple oldtup, HeapTuple newtup,
-                        const RI_ConstraintInfo *riinfo, bool rel_is_pk);
+            const RI_ConstraintInfo * riinfo, bool rel_is_pk);
 static bool ri_AllKeysUnequal(Relation rel, HeapTuple oldtup, HeapTuple newtup,
-                 const RI_ConstraintInfo *riinfo, bool rel_is_pk);
+                 const RI_ConstraintInfo * riinfo, bool rel_is_pk);
 static bool ri_OneKeyEqual(Relation rel, int column,
               HeapTuple oldtup, HeapTuple newtup,
-              const RI_ConstraintInfo *riinfo, bool rel_is_pk);
+              const RI_ConstraintInfo * riinfo, bool rel_is_pk);
 static bool ri_AttributesEqual(Oid eq_opr, Oid typeid,
-                              Datum oldvalue, Datum newvalue);
+                  Datum oldvalue, Datum newvalue);
 static bool ri_Check_Pk_Match(Relation pk_rel, Relation fk_rel,
                  HeapTuple old_row,
-                 const RI_ConstraintInfo *riinfo);
+                 const RI_ConstraintInfo * riinfo);
 
 static void ri_InitHashTables(void);
 static SPIPlanPtr ri_FetchPreparedPlan(RI_QueryKey *key);
@@ -210,7 +213,7 @@ static RI_CompareHashEntry *ri_HashCompareOp(Oid eq_opr, Oid typeid);
 
 static void ri_CheckTrigger(FunctionCallInfo fcinfo, const char *funcname,
                int tgkind);
-static void ri_FetchConstraintInfo(RI_ConstraintInfo *riinfo,
+static void ri_FetchConstraintInfo(RI_ConstraintInfo * riinfo,
                       Trigger *trigger, Relation trig_rel, bool rel_is_pk);
 static SPIPlanPtr ri_PlanCheck(const char *querystr, int nargs, Oid *argtypes,
             RI_QueryKey *qkey, Relation fk_rel, Relation pk_rel,
@@ -258,7 +261,7 @@ RI_FKey_check(PG_FUNCTION_ARGS)
     * Get arguments.
     */
    ri_FetchConstraintInfo(&riinfo,
-                          trigdata->tg_trigger, trigdata->tg_relation, false);
+                        trigdata->tg_trigger, trigdata->tg_relation, false);
 
    if (TRIGGER_FIRED_BY_UPDATE(trigdata->tg_event))
    {
@@ -284,9 +287,9 @@ RI_FKey_check(PG_FUNCTION_ARGS)
     * here because we know that AfterTriggerExecute just fetched the tuple
     * successfully, so there cannot be a VACUUM compaction in progress on the
     * page (either heap_fetch would have waited for the VACUUM, or the
-    * VACUUM's LockBufferForCleanup would be waiting for us to drop pin).
-    * And since this is a row inserted by our open transaction, no one else
-    * can be entitled to change its xmin/xmax.
+    * VACUUM's LockBufferForCleanup would be waiting for us to drop pin). And
+    * since this is a row inserted by our open transaction, no one else can
+    * be entitled to change its xmin/xmax.
     */
    Assert(new_row_buf != InvalidBuffer);
    if (!HeapTupleSatisfiesVisibility(new_row, SnapshotSelf, new_row_buf))
@@ -462,8 +465,8 @@ RI_FKey_check(PG_FUNCTION_ARGS)
        querysep = "WHERE";
        for (i = 0; i < riinfo.nkeys; i++)
        {
-           Oid     pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
-           Oid     fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
+           Oid         pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
+           Oid         fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
 
            quoteOneName(attname,
                         RIAttName(pk_rel, riinfo.pk_attnums[i]));
@@ -538,7 +541,7 @@ RI_FKey_check_upd(PG_FUNCTION_ARGS)
 static bool
 ri_Check_Pk_Match(Relation pk_rel, Relation fk_rel,
                  HeapTuple old_row,
-                 const RI_ConstraintInfo *riinfo)
+                 const RI_ConstraintInfo * riinfo)
 {
    SPIPlanPtr  qplan;
    RI_QueryKey qkey;
@@ -624,7 +627,7 @@ ri_Check_Pk_Match(Relation pk_rel, Relation fk_rel,
        querysep = "WHERE";
        for (i = 0; i < riinfo->nkeys; i++)
        {
-           Oid     pk_type = RIAttType(pk_rel, riinfo->pk_attnums[i]);
+           Oid         pk_type = RIAttType(pk_rel, riinfo->pk_attnums[i]);
 
            quoteOneName(attname,
                         RIAttName(pk_rel, riinfo->pk_attnums[i]));
@@ -780,8 +783,8 @@ RI_FKey_noaction_del(PG_FUNCTION_ARGS)
                querysep = "WHERE";
                for (i = 0; i < riinfo.nkeys; i++)
                {
-                   Oid     pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
-                   Oid     fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
+                   Oid         pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
+                   Oid         fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
 
                    quoteOneName(attname,
                                 RIAttName(fk_rel, riinfo.fk_attnums[i]));
@@ -968,8 +971,8 @@ RI_FKey_noaction_upd(PG_FUNCTION_ARGS)
                querysep = "WHERE";
                for (i = 0; i < riinfo.nkeys; i++)
                {
-                   Oid     pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
-                   Oid     fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
+                   Oid         pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
+                   Oid         fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
 
                    quoteOneName(attname,
                                 RIAttName(fk_rel, riinfo.fk_attnums[i]));
@@ -1130,8 +1133,8 @@ RI_FKey_cascade_del(PG_FUNCTION_ARGS)
                querysep = "WHERE";
                for (i = 0; i < riinfo.nkeys; i++)
                {
-                   Oid     pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
-                   Oid     fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
+                   Oid         pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
+                   Oid         fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
 
                    quoteOneName(attname,
                                 RIAttName(fk_rel, riinfo.fk_attnums[i]));
@@ -1313,8 +1316,8 @@ RI_FKey_cascade_upd(PG_FUNCTION_ARGS)
                qualsep = "WHERE";
                for (i = 0, j = riinfo.nkeys; i < riinfo.nkeys; i++, j++)
                {
-                   Oid     pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
-                   Oid     fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
+                   Oid         pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
+                   Oid         fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
 
                    quoteOneName(attname,
                                 RIAttName(fk_rel, riinfo.fk_attnums[i]));
@@ -1489,8 +1492,8 @@ RI_FKey_restrict_del(PG_FUNCTION_ARGS)
                querysep = "WHERE";
                for (i = 0; i < riinfo.nkeys; i++)
                {
-                   Oid     pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
-                   Oid     fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
+                   Oid         pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
+                   Oid         fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
 
                    quoteOneName(attname,
                                 RIAttName(fk_rel, riinfo.fk_attnums[i]));
@@ -1672,8 +1675,8 @@ RI_FKey_restrict_upd(PG_FUNCTION_ARGS)
                querysep = "WHERE";
                for (i = 0; i < riinfo.nkeys; i++)
                {
-                   Oid     pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
-                   Oid     fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
+                   Oid         pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
+                   Oid         fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
 
                    quoteOneName(attname,
                                 RIAttName(fk_rel, riinfo.fk_attnums[i]));
@@ -1839,8 +1842,8 @@ RI_FKey_setnull_del(PG_FUNCTION_ARGS)
                qualsep = "WHERE";
                for (i = 0; i < riinfo.nkeys; i++)
                {
-                   Oid     pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
-                   Oid     fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
+                   Oid         pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
+                   Oid         fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
 
                    quoteOneName(attname,
                                 RIAttName(fk_rel, riinfo.fk_attnums[i]));
@@ -2041,11 +2044,12 @@ RI_FKey_setnull_upd(PG_FUNCTION_ARGS)
                qualsep = "WHERE";
                for (i = 0; i < riinfo.nkeys; i++)
                {
-                   Oid     pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
-                   Oid     fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
+                   Oid         pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
+                   Oid         fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
 
                    quoteOneName(attname,
                                 RIAttName(fk_rel, riinfo.fk_attnums[i]));
+
                    /*
                     * MATCH <unspecified> - only change columns corresponding
                     * to changed columns in pk_rel's key
@@ -2226,8 +2230,8 @@ RI_FKey_setdefault_del(PG_FUNCTION_ARGS)
                qualsep = "WHERE";
                for (i = 0; i < riinfo.nkeys; i++)
                {
-                   Oid     pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
-                   Oid     fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
+                   Oid         pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
+                   Oid         fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
 
                    quoteOneName(attname,
                                 RIAttName(fk_rel, riinfo.fk_attnums[i]));
@@ -2419,8 +2423,8 @@ RI_FKey_setdefault_upd(PG_FUNCTION_ARGS)
                qualsep = "WHERE";
                for (i = 0; i < riinfo.nkeys; i++)
                {
-                   Oid     pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
-                   Oid     fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
+                   Oid         pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
+                   Oid         fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
 
                    quoteOneName(attname,
                                 RIAttName(fk_rel, riinfo.fk_attnums[i]));
@@ -2685,8 +2689,8 @@ RI_Initial_Check(Trigger *trigger, Relation fk_rel, Relation pk_rel)
    sep = "(";
    for (i = 0; i < riinfo.nkeys; i++)
    {
-       Oid     pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
-       Oid     fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
+       Oid         pk_type = RIAttType(pk_rel, riinfo.pk_attnums[i]);
+       Oid         fk_type = RIAttType(fk_rel, riinfo.fk_attnums[i]);
 
        quoteOneName(pkattname + 3,
                     RIAttName(pk_rel, riinfo.pk_attnums[i]));
@@ -2941,7 +2945,7 @@ ri_GenerateQual(StringInfo buf,
  * ----------
  */
 static void
-ri_BuildQueryKeyFull(RI_QueryKey *key, const RI_ConstraintInfo *riinfo,
+ri_BuildQueryKeyFull(RI_QueryKey *key, const RI_ConstraintInfo * riinfo,
                     int32 constr_queryno)
 {
    int         i;
@@ -3018,7 +3022,7 @@ ri_CheckTrigger(FunctionCallInfo fcinfo, const char *funcname, int tgkind)
  * Fetch the pg_constraint entry for the FK constraint, and fill *riinfo
  */
 static void
-ri_FetchConstraintInfo(RI_ConstraintInfo *riinfo,
+ri_FetchConstraintInfo(RI_ConstraintInfo * riinfo,
                       Trigger *trigger, Relation trig_rel, bool rel_is_pk)
 {
    Oid         constraintOid = trigger->tgconstraint;
@@ -3030,15 +3034,15 @@ ri_FetchConstraintInfo(RI_ConstraintInfo *riinfo,
    int         numkeys;
 
    /*
-    * Check that the FK constraint's OID is available; it might not be
-    * if we've been invoked via an ordinary trigger or an old-style
-    * "constraint trigger".
+    * Check that the FK constraint's OID is available; it might not be if
+    * we've been invoked via an ordinary trigger or an old-style "constraint
+    * trigger".
     */
    if (!OidIsValid(constraintOid))
        ereport(ERROR,
                (errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
-          errmsg("no pg_constraint entry for trigger \"%s\" on table \"%s\"",
-                 trigger->tgname, RelationGetRelationName(trig_rel)),
+         errmsg("no pg_constraint entry for trigger \"%s\" on table \"%s\"",
+                trigger->tgname, RelationGetRelationName(trig_rel)),
                 errhint("Remove this referential integrity trigger and its mates, then do ALTER TABLE ADD CONSTRAINT.")));
 
    /* OK, fetch the tuple */
@@ -3078,14 +3082,14 @@ ri_FetchConstraintInfo(RI_ConstraintInfo *riinfo,
 
    /*
     * We expect the arrays to be 1-D arrays of the right types; verify that.
-    * We don't need to use deconstruct_array() since the array data is
-    * just going to look like a C array of values.
+    * We don't need to use deconstruct_array() since the array data is just
+    * going to look like a C array of values.
     */
    adatum = SysCacheGetAttr(CONSTROID, tup,
                             Anum_pg_constraint_conkey, &isNull);
    if (isNull)
        elog(ERROR, "null conkey for constraint %u", constraintOid);
-   arr = DatumGetArrayTypeP(adatum);           /* ensure not toasted */
+   arr = DatumGetArrayTypeP(adatum);   /* ensure not toasted */
    numkeys = ARR_DIMS(arr)[0];
    if (ARR_NDIM(arr) != 1 ||
        numkeys < 0 ||
@@ -3100,7 +3104,7 @@ ri_FetchConstraintInfo(RI_ConstraintInfo *riinfo,
                             Anum_pg_constraint_confkey, &isNull);
    if (isNull)
        elog(ERROR, "null confkey for constraint %u", constraintOid);
-   arr = DatumGetArrayTypeP(adatum);           /* ensure not toasted */
+   arr = DatumGetArrayTypeP(adatum);   /* ensure not toasted */
    numkeys = ARR_DIMS(arr)[0];
    if (ARR_NDIM(arr) != 1 ||
        numkeys != riinfo->nkeys ||
@@ -3114,7 +3118,7 @@ ri_FetchConstraintInfo(RI_ConstraintInfo *riinfo,
                             Anum_pg_constraint_conpfeqop, &isNull);
    if (isNull)
        elog(ERROR, "null conpfeqop for constraint %u", constraintOid);
-   arr = DatumGetArrayTypeP(adatum);           /* ensure not toasted */
+   arr = DatumGetArrayTypeP(adatum);   /* ensure not toasted */
    numkeys = ARR_DIMS(arr)[0];
    if (ARR_NDIM(arr) != 1 ||
        numkeys != riinfo->nkeys ||
@@ -3128,7 +3132,7 @@ ri_FetchConstraintInfo(RI_ConstraintInfo *riinfo,
                             Anum_pg_constraint_conppeqop, &isNull);
    if (isNull)
        elog(ERROR, "null conppeqop for constraint %u", constraintOid);
-   arr = DatumGetArrayTypeP(adatum);           /* ensure not toasted */
+   arr = DatumGetArrayTypeP(adatum);   /* ensure not toasted */
    numkeys = ARR_DIMS(arr)[0];
    if (ARR_NDIM(arr) != 1 ||
        numkeys != riinfo->nkeys ||
@@ -3142,7 +3146,7 @@ ri_FetchConstraintInfo(RI_ConstraintInfo *riinfo,
                             Anum_pg_constraint_conffeqop, &isNull);
    if (isNull)
        elog(ERROR, "null conffeqop for constraint %u", constraintOid);
-   arr = DatumGetArrayTypeP(adatum);           /* ensure not toasted */
+   arr = DatumGetArrayTypeP(adatum);   /* ensure not toasted */
    numkeys = ARR_DIMS(arr)[0];
    if (ARR_NDIM(arr) != 1 ||
        numkeys != riinfo->nkeys ||
@@ -3482,7 +3486,7 @@ ri_ReportViolation(RI_QueryKey *qkey, const char *constrname,
  * ----------
  */
 static void
-ri_BuildQueryKeyPkCheck(RI_QueryKey *key, const RI_ConstraintInfo *riinfo,
+ri_BuildQueryKeyPkCheck(RI_QueryKey *key, const RI_ConstraintInfo * riinfo,
                        int32 constr_queryno)
 {
    int         i;
@@ -3632,7 +3636,7 @@ ri_HashPreparedPlan(RI_QueryKey *key, SPIPlanPtr plan)
  */
 static bool
 ri_KeysEqual(Relation rel, HeapTuple oldtup, HeapTuple newtup,
-            const RI_ConstraintInfo *riinfo, bool rel_is_pk)
+            const RI_ConstraintInfo * riinfo, bool rel_is_pk)
 {
    TupleDesc   tupdesc = RelationGetDescr(rel);
    const int16 *attnums;
@@ -3690,7 +3694,7 @@ ri_KeysEqual(Relation rel, HeapTuple oldtup, HeapTuple newtup,
  */
 static bool
 ri_AllKeysUnequal(Relation rel, HeapTuple oldtup, HeapTuple newtup,
-                 const RI_ConstraintInfo *riinfo, bool rel_is_pk)
+                 const RI_ConstraintInfo * riinfo, bool rel_is_pk)
 {
    TupleDesc   tupdesc = RelationGetDescr(rel);
    const int16 *attnums;
@@ -3752,7 +3756,7 @@ ri_AllKeysUnequal(Relation rel, HeapTuple oldtup, HeapTuple newtup,
  */
 static bool
 ri_OneKeyEqual(Relation rel, int column, HeapTuple oldtup, HeapTuple newtup,
-              const RI_ConstraintInfo *riinfo, bool rel_is_pk)
+              const RI_ConstraintInfo * riinfo, bool rel_is_pk)
 {
    TupleDesc   tupdesc = RelationGetDescr(rel);
    const int16 *attnums;
@@ -3867,9 +3871,9 @@ ri_HashCompareOp(Oid eq_opr, Oid typeid)
     */
    if (!entry->valid)
    {
-       Oid     lefttype,
-               righttype,
-               castfunc;
+       Oid         lefttype,
+                   righttype,
+                   castfunc;
        CoercionPathType pathtype;
 
        /* We always need to know how to call the equality operator */
@@ -3877,13 +3881,13 @@ ri_HashCompareOp(Oid eq_opr, Oid typeid)
                      TopMemoryContext);
 
        /*
-        * If we chose to use a cast from FK to PK type, we may have to
-        * apply the cast function to get to the operator's input type.
+        * If we chose to use a cast from FK to PK type, we may have to apply
+        * the cast function to get to the operator's input type.
         *
         * XXX eventually it would be good to support array-coercion cases
-        * here and in ri_AttributesEqual().  At the moment there is no
-        * point because cases involving nonidentical array types will
-        * be rejected at constraint creation time.
+        * here and in ri_AttributesEqual().  At the moment there is no point
+        * because cases involving nonidentical array types will be rejected
+        * at constraint creation time.
         *
         * XXX perhaps also consider supporting CoerceViaIO?  No need at the
         * moment since that will never be generated for implicit coercions.
@@ -3891,7 +3895,7 @@ ri_HashCompareOp(Oid eq_opr, Oid typeid)
        op_input_types(eq_opr, &lefttype, &righttype);
        Assert(lefttype == righttype);
        if (typeid == lefttype)
-           castfunc = InvalidOid;              /* simplest case */
+           castfunc = InvalidOid;      /* simplest case */
        else
        {
            pathtype = find_coercion_pathway(lefttype, typeid,
index 0aafb3b139e5af99fae4f7b8ce9e428339c3a797..168da20aa23d0d998774b3eb4752f91ad0108841 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.264 2007/10/13 15:55:40 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.265 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -158,7 +158,7 @@ static Node *get_rule_sortgroupclause(SortClause *srt, List *tlist,
                         bool force_colno,
                         deparse_context *context);
 static char *get_variable(Var *var, int levelsup, bool showstar,
-                         deparse_context *context);
+            deparse_context *context);
 static RangeTblEntry *find_rte_by_refname(const char *refname,
                    deparse_context *context);
 static const char *get_simple_binary_op_name(OpExpr *expr);
@@ -173,10 +173,10 @@ static void get_func_expr(FuncExpr *expr, deparse_context *context,
              bool showimplicit);
 static void get_agg_expr(Aggref *aggref, deparse_context *context);
 static void get_coercion_expr(Node *arg, deparse_context *context,
-                             Oid resulttype, int32 resulttypmod,
-                             Node *parentNode);
+                 Oid resulttype, int32 resulttypmod,
+                 Node *parentNode);
 static void get_const_expr(Const *constval, deparse_context *context,
-                          bool showtype);
+              bool showtype);
 static void get_sublink_expr(SubLink *sublink, deparse_context *context);
 static void get_from_clause(Query *query, const char *prefix,
                deparse_context *context);
@@ -532,8 +532,8 @@ pg_get_triggerdef(PG_FUNCTION_ARGS)
        int         i;
 
        val = DatumGetByteaP(fastgetattr(ht_trig,
-                                       Anum_pg_trigger_tgargs,
-                                       tgrel->rd_att, &isnull));
+                                        Anum_pg_trigger_tgargs,
+                                        tgrel->rd_att, &isnull));
        if (isnull)
            elog(ERROR, "tgargs is null for trigger %u", trigid);
        p = (char *) VARDATA(val);
@@ -604,7 +604,7 @@ pg_get_indexdef_ext(PG_FUNCTION_ARGS)
 
    prettyFlags = pretty ? PRETTYFLAG_PAREN | PRETTYFLAG_INDENT : 0;
    PG_RETURN_TEXT_P(string_to_text(pg_get_indexdef_worker(indexrelid, colno,
-                                                        false, prettyFlags)));
+                                                      false, prettyFlags)));
 }
 
 /* Internal version that returns a palloc'd C string */
@@ -816,7 +816,7 @@ pg_get_indexdef_worker(Oid indexrelid, int colno, bool showTblSpc,
            tblspc = get_rel_tablespace(indexrelid);
            if (OidIsValid(tblspc))
                appendStringInfo(&buf, " TABLESPACE %s",
-                                quote_identifier(get_tablespace_name(tblspc)));
+                             quote_identifier(get_tablespace_name(tblspc)));
        }
 
        /*
@@ -1068,7 +1068,7 @@ pg_get_constraintdef_worker(Oid constraintId, bool fullCommand,
                    tblspc = get_rel_tablespace(indexId);
                    if (OidIsValid(tblspc))
                        appendStringInfo(&buf, " USING INDEX TABLESPACE %s",
-                                        quote_identifier(get_tablespace_name(tblspc)));
+                             quote_identifier(get_tablespace_name(tblspc)));
                }
 
                break;
@@ -1978,7 +1978,7 @@ get_select_query_def(Query *query, deparse_context *context,
                                         TYPECACHE_LT_OPR | TYPECACHE_GT_OPR);
            if (srt->sortop == typentry->lt_opr)
            {
-                /* ASC is default, so emit nothing for it */
+               /* ASC is default, so emit nothing for it */
                if (srt->nulls_first)
                    appendStringInfo(buf, " NULLS FIRST");
            }
@@ -2624,7 +2624,7 @@ get_utility_query_def(Query *query, deparse_context *context)
  * push_plan: set up deparse_namespace to recurse into the tlist of a subplan
  *
  * When expanding an OUTER or INNER reference, we must push new outer/inner
- * subplans in case the referenced expression itself uses OUTER/INNER.  We
+ * subplans in case the referenced expression itself uses OUTER/INNER. We
  * modify the top stack entry in-place to avoid affecting levelsup issues
  * (although in a Plan tree there really shouldn't be any).
  *
@@ -2641,6 +2641,7 @@ push_plan(deparse_namespace *dpns, Plan *subplan)
        dpns->outer_plan = (Plan *) linitial(((Append *) subplan)->appendplans);
    else
        dpns->outer_plan = outerPlan(subplan);
+
    /*
     * For a SubqueryScan, pretend the subplan is INNER referent.  (We don't
     * use OUTER because that could someday conflict with the normal meaning.)
@@ -2697,8 +2698,8 @@ get_variable(Var *var, int levelsup, bool showstar, deparse_context *context)
    else if (var->varno == OUTER && dpns->outer_plan)
    {
        TargetEntry *tle;
-       Plan   *save_outer;
-       Plan   *save_inner;
+       Plan       *save_outer;
+       Plan       *save_inner;
 
        tle = get_tle_by_resno(dpns->outer_plan->targetlist, var->varattno);
        if (!tle)
@@ -2726,8 +2727,8 @@ get_variable(Var *var, int levelsup, bool showstar, deparse_context *context)
    else if (var->varno == INNER && dpns->inner_plan)
    {
        TargetEntry *tle;
-       Plan   *save_outer;
-       Plan   *save_inner;
+       Plan       *save_outer;
+       Plan       *save_inner;
 
        tle = get_tle_by_resno(dpns->inner_plan->targetlist, var->varattno);
        if (!tle)
@@ -2755,7 +2756,7 @@ get_variable(Var *var, int levelsup, bool showstar, deparse_context *context)
    else
    {
        elog(ERROR, "bogus varno: %d", var->varno);
-       return NULL;                    /* keep compiler quiet */
+       return NULL;            /* keep compiler quiet */
    }
 
    /* Identify names to use */
@@ -2900,8 +2901,8 @@ get_name_for_var_field(Var *var, int fieldno,
    else if (var->varno == OUTER && dpns->outer_plan)
    {
        TargetEntry *tle;
-       Plan   *save_outer;
-       Plan   *save_inner;
+       Plan       *save_outer;
+       Plan       *save_inner;
        const char *result;
 
        tle = get_tle_by_resno(dpns->outer_plan->targetlist, var->varattno);
@@ -2923,8 +2924,8 @@ get_name_for_var_field(Var *var, int fieldno,
    else if (var->varno == INNER && dpns->inner_plan)
    {
        TargetEntry *tle;
-       Plan   *save_outer;
-       Plan   *save_inner;
+       Plan       *save_outer;
+       Plan       *save_inner;
        const char *result;
 
        tle = get_tle_by_resno(dpns->inner_plan->targetlist, var->varattno);
@@ -2946,7 +2947,7 @@ get_name_for_var_field(Var *var, int fieldno,
    else
    {
        elog(ERROR, "bogus varno: %d", var->varno);
-       return NULL;                    /* keep compiler quiet */
+       return NULL;            /* keep compiler quiet */
    }
 
    if (attnum == InvalidAttrNumber)
@@ -2958,9 +2959,9 @@ get_name_for_var_field(Var *var, int fieldno,
    /*
     * This part has essentially the same logic as the parser's
     * expandRecordVariable() function, but we are dealing with a different
-    * representation of the input context, and we only need one field name not
-    * a TupleDesc.  Also, we need a special case for deparsing Plan trees,
-    * because the subquery field has been removed from SUBQUERY RTEs.
+    * representation of the input context, and we only need one field name
+    * not a TupleDesc.  Also, we need a special case for deparsing Plan
+    * trees, because the subquery field has been removed from SUBQUERY RTEs.
     */
    expr = (Node *) var;        /* default if we can't drill down */
 
@@ -3020,13 +3021,13 @@ get_name_for_var_field(Var *var, int fieldno,
                    /*
                     * We're deparsing a Plan tree so we don't have complete
                     * RTE entries.  But the only place we'd see a Var
-                    * directly referencing a SUBQUERY RTE is in a SubqueryScan
-                    * plan node, and we can look into the child plan's tlist
-                    * instead.
+                    * directly referencing a SUBQUERY RTE is in a
+                    * SubqueryScan plan node, and we can look into the child
+                    * plan's tlist instead.
                     */
                    TargetEntry *tle;
-                   Plan   *save_outer;
-                   Plan   *save_inner;
+                   Plan       *save_outer;
+                   Plan       *save_inner;
                    const char *result;
 
                    if (!dpns->inner_plan)
@@ -3298,7 +3299,7 @@ isSimpleNode(Node *node, Node *parentNode, int prettyFlags)
                case T_RowExpr: /* other separators */
                case T_CoalesceExpr:    /* own parentheses */
                case T_MinMaxExpr:      /* own parentheses */
-               case T_XmlExpr:         /* own parentheses */
+               case T_XmlExpr: /* own parentheses */
                case T_NullIfExpr:      /* other separators */
                case T_Aggref:  /* own parentheses */
                case T_CaseExpr:        /* other separators */
@@ -3347,7 +3348,7 @@ isSimpleNode(Node *node, Node *parentNode, int prettyFlags)
                case T_RowExpr: /* other separators */
                case T_CoalesceExpr:    /* own parentheses */
                case T_MinMaxExpr:      /* own parentheses */
-               case T_XmlExpr:         /* own parentheses */
+               case T_XmlExpr: /* own parentheses */
                case T_NullIfExpr:      /* other separators */
                case T_Aggref:  /* own parentheses */
                case T_CaseExpr:        /* other separators */
@@ -3970,8 +3971,8 @@ get_rule_expr(Node *node, deparse_context *context,
 
        case T_XmlExpr:
            {
-               XmlExpr *xexpr = (XmlExpr *) node;
-               bool    needcomma = false;
+               XmlExpr    *xexpr = (XmlExpr *) node;
+               bool        needcomma = false;
                ListCell   *arg;
                ListCell   *narg;
                Const      *con;
@@ -4026,8 +4027,8 @@ get_rule_expr(Node *node, deparse_context *context,
                    }
                    forboth(arg, xexpr->named_args, narg, xexpr->arg_names)
                    {
-                       Node    *e = (Node *) lfirst(arg);
-                       char    *argname = strVal(lfirst(narg));
+                       Node       *e = (Node *) lfirst(arg);
+                       char       *argname = strVal(lfirst(narg));
 
                        if (needcomma)
                            appendStringInfoString(buf, ", ");
@@ -4064,7 +4065,7 @@ get_rule_expr(Node *node, deparse_context *context,
                            Assert(!con->constisnull);
                            if (DatumGetBool(con->constvalue))
                                appendStringInfoString(buf,
-                                                      " PRESERVE WHITESPACE");
+                                                    " PRESERVE WHITESPACE");
                            else
                                appendStringInfoString(buf,
                                                       " STRIP WHITESPACE");
@@ -4086,22 +4087,22 @@ get_rule_expr(Node *node, deparse_context *context,
                            con = (Const *) lthird(xexpr->args);
                            Assert(IsA(con, Const));
                            if (con->constisnull)
-                               /* suppress STANDALONE NO VALUE */ ;
+                                /* suppress STANDALONE NO VALUE */ ;
                            else
                            {
                                switch (DatumGetInt32(con->constvalue))
                                {
                                    case XML_STANDALONE_YES:
                                        appendStringInfoString(buf,
-                                                              ", STANDALONE YES");
+                                                        ", STANDALONE YES");
                                        break;
                                    case XML_STANDALONE_NO:
                                        appendStringInfoString(buf,
-                                                              ", STANDALONE NO");
+                                                         ", STANDALONE NO");
                                        break;
                                    case XML_STANDALONE_NO_VALUE:
                                        appendStringInfoString(buf,
-                                                              ", STANDALONE NO VALUE");
+                                                   ", STANDALONE NO VALUE");
                                        break;
                                    default:
                                        break;
@@ -4116,7 +4117,7 @@ get_rule_expr(Node *node, deparse_context *context,
                }
                if (xexpr->op == IS_XMLSERIALIZE)
                    appendStringInfo(buf, " AS %s", format_type_with_typemod(xexpr->type,
-                                                                            xexpr->typmod));
+                                                            xexpr->typmod));
                if (xexpr->op == IS_DOCUMENT)
                    appendStringInfoString(buf, " IS DOCUMENT");
                else
@@ -4435,11 +4436,11 @@ get_coercion_expr(Node *arg, deparse_context *context,
 
    /*
     * Since parse_coerce.c doesn't immediately collapse application of
-    * length-coercion functions to constants, what we'll typically see
-    * in such cases is a Const with typmod -1 and a length-coercion
-    * function right above it.  Avoid generating redundant output.
-    * However, beware of suppressing casts when the user actually wrote
-    * something like 'foo'::text::char(3).
+    * length-coercion functions to constants, what we'll typically see in
+    * such cases is a Const with typmod -1 and a length-coercion function
+    * right above it.  Avoid generating redundant output. However, beware of
+    * suppressing casts when the user actually wrote something like
+    * 'foo'::text::char(3).
     */
    if (arg && IsA(arg, Const) &&
        ((Const *) arg)->consttype == resulttype &&
@@ -4581,6 +4582,7 @@ get_const_expr(Const *constval, deparse_context *context, bool showtype)
            needlabel = false;
            break;
        case NUMERICOID:
+
            /*
             * Float-looking constants will be typed as numeric, but if
             * there's a specific typmod we need to show it.
@@ -5553,7 +5555,8 @@ unflatten_reloptions(char *reloptstring)
 
    if (reloptstring)
    {
-       Datum       sep, relopts;
+       Datum       sep,
+                   relopts;
 
        /*
         * We want to use text_to_array(reloptstring, ', ') --- but
index 9ae33ac456d6aebbcda1a0de099e16ab0fb96d06..299addec85baa6f74eb1019b5bd94af7fcc6d0f4 100644 (file)
@@ -15,7 +15,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/selfuncs.c,v 1.239 2007/11/09 20:10:02 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/selfuncs.c,v 1.240 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -923,8 +923,8 @@ patternsel(PG_FUNCTION_ARGS, Pattern_Type ptype, bool negate)
 
    /*
     * If this is for a NOT LIKE or similar operator, get the corresponding
-    * positive-match operator and work with that.  Set result to the
-    * correct default estimate, too.
+    * positive-match operator and work with that.  Set result to the correct
+    * default estimate, too.
     */
    if (negate)
    {
@@ -1396,7 +1396,7 @@ nulltestsel(PlannerInfo *root, NullTestType nulltesttype,
     * be taken at face value, since it's very likely being used to select the
     * outer-side rows that don't have a match, and thus its selectivity has
     * nothing whatever to do with the statistics of the original table
-    * column.  We do not have nearly enough context here to determine its
+    * column.  We do not have nearly enough context here to determine its
     * true selectivity, so for the moment punt and guess at 0.5.  Eventually
     * the planner should be made to provide enough info about the clause's
     * context to let us do better.
@@ -1539,7 +1539,7 @@ scalararraysel(PlannerInfo *root,
    /* get nominal (after relabeling) element type of rightop */
    nominal_element_type = get_element_type(exprType(rightop));
    if (!OidIsValid(nominal_element_type))
-       return (Selectivity) 0.5;           /* probably shouldn't happen */
+       return (Selectivity) 0.5;       /* probably shouldn't happen */
 
    /* look through any binary-compatible relabeling of rightop */
    rightop = strip_array_coercion(rightop);
@@ -2228,8 +2228,8 @@ mergejoinscansel(PlannerInfo *root, Node *clause,
    Assert(!op_recheck);
 
    /*
-    * Look up the various operators we need.  If we don't find them all,
-    * it probably means the opfamily is broken, but we cope anyway.
+    * Look up the various operators we need.  If we don't find them all, it
+    * probably means the opfamily is broken, but we cope anyway.
     */
    switch (strategy)
    {
@@ -2274,7 +2274,7 @@ mergejoinscansel(PlannerInfo *root, Node *clause,
    /*
     * Now, the fraction of the left variable that will be scanned is the
     * fraction that's <= the right-side maximum value.  But only believe
-    * non-default estimates, else stick with our 1.0.  Also, if the sort
+    * non-default estimates, else stick with our 1.0.  Also, if the sort
     * order is nulls-first, we're going to have to read over any nulls too.
     */
    selec = scalarineqsel(root, leop, false, &leftvar,
@@ -3151,12 +3151,14 @@ convert_string_datum(Datum value, Oid typid)
         * out of a paper bag?
         *
         * XXX: strxfrm doesn't support UTF-8 encoding on Win32, it can return
-        * bogus data or set an error. This is not really a problem unless it 
-        * crashes since it will only give an estimation error and nothing fatal.
+        * bogus data or set an error. This is not really a problem unless it
+        * crashes since it will only give an estimation error and nothing
+        * fatal.
         */
 #if _MSC_VER == 1400           /* VS.Net 2005 */
 
        /*
+        *
         * http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx
         * ?FeedbackID=99694
         */
@@ -3169,9 +3171,10 @@ convert_string_datum(Datum value, Oid typid)
        xfrmlen = strxfrm(NULL, val, 0);
 #endif
 #ifdef WIN32
+
        /*
-        * On Windows, strxfrm returns INT_MAX when an error occurs. Instead of
-        * trying to allocate this much memory (and fail), just return the
+        * On Windows, strxfrm returns INT_MAX when an error occurs. Instead
+        * of trying to allocate this much memory (and fail), just return the
         * original string unmodified as if we were in the C locale.
         */
        if (xfrmlen == INT_MAX)
@@ -4081,9 +4084,9 @@ regex_fixed_prefix(Const *patt_const, bool case_insensitive,
 
    /*
     * If '|' is present in pattern, then there may be multiple alternatives
-    * for the start of the string.  (There are cases where this isn't so,
-    * for instance if the '|' is inside parens, but detecting that reliably
-    * is too hard.)
+    * for the start of the string.  (There are cases where this isn't so, for
+    * instance if the '|' is inside parens, but detecting that reliably is
+    * too hard.)
     */
    if (strchr(patt + pos, '|') != NULL)
    {
@@ -4101,7 +4104,7 @@ regex_fixed_prefix(Const *patt_const, bool case_insensitive,
 
    /*
     * We special-case the syntax '^(...)$' because psql uses it.  But beware:
-    * in BRE mode these parentheses are just ordinary characters.  Also,
+    * in BRE mode these parentheses are just ordinary characters.  Also,
     * sequences beginning "(?" are not what they seem, unless they're "(?:".
     * (We should recognize that, too, because of similar_escape().)
     *
@@ -4171,10 +4174,10 @@ regex_fixed_prefix(Const *patt_const, bool case_insensitive,
        /*
         * Normally, backslash quotes the next character.  But in AREs,
         * backslash followed by alphanumeric is an escape, not a quoted
-        * character.  Must treat it as having multiple possible matches.
-        * In BREs, \( is a parenthesis, so don't trust that either.
-        * Note: since only ASCII alphanumerics are escapes, we don't have
-        * to be paranoid about multibyte here.
+        * character.  Must treat it as having multiple possible matches. In
+        * BREs, \( is a parenthesis, so don't trust that either. Note: since
+        * only ASCII alphanumerics are escapes, we don't have to be paranoid
+        * about multibyte here.
         */
        if (patt[pos] == '\\')
        {
@@ -4598,7 +4601,7 @@ pattern_selectivity(Const *patt, Pattern_Type ptype)
  * that is not a bulletproof guarantee that an extension of the string might
  * not sort after it; an example is that "foo " is less than "foo!", but it
  * is not clear that a "dictionary" sort ordering will consider "foo!" less
- * than "foo bar".  CAUTION: Therefore, this function should be used only for
+ * than "foo bar". CAUTION: Therefore, this function should be used only for
  * estimation purposes when working in a non-C locale.
  *
  * To try to catch most cases where an extended string might otherwise sort
@@ -4624,11 +4627,10 @@ make_greater_string(const Const *str_const, FmgrInfo *ltproc)
    text       *cmptxt = NULL;
 
    /*
-    * Get a modifiable copy of the prefix string in C-string format,
-    * and set up the string we will compare to as a Datum.  In C locale
-    * this can just be the given prefix string, otherwise we need to add
-    * a suffix.  Types NAME and BYTEA sort bytewise so they don't need
-    * a suffix either.
+    * Get a modifiable copy of the prefix string in C-string format, and set
+    * up the string we will compare to as a Datum.  In C locale this can just
+    * be the given prefix string, otherwise we need to add a suffix.  Types
+    * NAME and BYTEA sort bytewise so they don't need a suffix either.
     */
    if (datatype == NAMEOID)
    {
@@ -4662,7 +4664,7 @@ make_greater_string(const Const *str_const, FmgrInfo *ltproc)
 
            if (!suffixchar)
            {
-               char *best;
+               char       *best;
 
                best = "Z";
                if (varstr_cmp(best, 1, "z", 1) < 0)
@@ -4859,8 +4861,8 @@ genericcostestimate(PlannerInfo *root,
 
        foreach(l, index->indpred)
        {
-           Node   *predQual = (Node *) lfirst(l);
-           List   *oneQual = list_make1(predQual);
+           Node       *predQual = (Node *) lfirst(l);
+           List       *oneQual = list_make1(predQual);
 
            if (!predicate_implied_by(oneQual, indexQuals))
                predExtraQuals = list_concat(predExtraQuals, oneQual);
@@ -5018,7 +5020,7 @@ genericcostestimate(PlannerInfo *root,
     * evaluated once at the start of the scan to reduce them to runtime keys
     * to pass to the index AM (see nodeIndexscan.c).  We model the per-tuple
     * CPU costs as cpu_index_tuple_cost plus one cpu_operator_cost per
-    * indexqual operator.  Because we have numIndexTuples as a per-scan
+    * indexqual operator.  Because we have numIndexTuples as a per-scan
     * number, we have to multiply by num_sa_scans to get the correct result
     * for ScalarArrayOpExpr cases.
     *
@@ -5038,17 +5040,17 @@ genericcostestimate(PlannerInfo *root,
    *indexTotalCost += numIndexTuples * num_sa_scans * (cpu_index_tuple_cost + qual_op_cost);
 
    /*
-    * We also add a CPU-cost component to represent the general costs of 
-    * starting an indexscan, such as analysis of btree index keys and
-    * initial tree descent.  This is estimated at 100x cpu_operator_cost,
-    * which is a bit arbitrary but seems the right order of magnitude.
-    * (As noted above, we don't charge any I/O for touching upper tree
-    * levels, but charging nothing at all has been found too optimistic.)
+    * We also add a CPU-cost component to represent the general costs of
+    * starting an indexscan, such as analysis of btree index keys and initial
+    * tree descent.  This is estimated at 100x cpu_operator_cost, which is a
+    * bit arbitrary but seems the right order of magnitude. (As noted above,
+    * we don't charge any I/O for touching upper tree levels, but charging
+    * nothing at all has been found too optimistic.)
     *
-    * Although this is startup cost with respect to any one scan, we add
-    * it to the "total" cost component because it's only very interesting
-    * in the many-ScalarArrayOpExpr-scan case, and there it will be paid
-    * over the life of the scan node.
+    * Although this is startup cost with respect to any one scan, we add it
+    * to the "total" cost component because it's only very interesting in the
+    * many-ScalarArrayOpExpr-scan case, and there it will be paid over the
+    * life of the scan node.
     */
    *indexTotalCost += num_sa_scans * 100.0 * cpu_operator_cost;
 
@@ -5198,7 +5200,7 @@ btcostestimate(PG_FUNCTION_ARGS)
        {
            op_strategy = get_op_opfamily_strategy(clause_op,
                                                   index->opfamily[indexcol]);
-           Assert(op_strategy != 0);       /* not a member of opfamily?? */
+           Assert(op_strategy != 0);   /* not a member of opfamily?? */
            if (op_strategy == BTEqualStrategyNumber)
                eqQualHere = true;
        }
@@ -5234,10 +5236,11 @@ btcostestimate(PG_FUNCTION_ARGS)
                                                  index->rel->relid,
                                                  JOIN_INNER);
        numIndexTuples = btreeSelectivity * index->rel->tuples;
+
        /*
         * As in genericcostestimate(), we have to adjust for any
-        * ScalarArrayOpExpr quals included in indexBoundQuals, and then
-        * round to integer.
+        * ScalarArrayOpExpr quals included in indexBoundQuals, and then round
+        * to integer.
         */
        numIndexTuples = rint(numIndexTuples / num_sa_scans);
    }
@@ -5313,9 +5316,9 @@ btcostestimate(PG_FUNCTION_ARGS)
            varCorrelation = numbers[0];
 
            if (index->ncolumns > 1)
-               *indexCorrelation = - varCorrelation * 0.75;
+               *indexCorrelation = -varCorrelation * 0.75;
            else
-               *indexCorrelation = - varCorrelation;
+               *indexCorrelation = -varCorrelation;
 
            free_attstatsslot(InvalidOid, NULL, 0, numbers, nnumbers);
        }
@@ -5374,7 +5377,7 @@ gincostestimate(PG_FUNCTION_ARGS)
    Cost       *indexTotalCost = (Cost *) PG_GETARG_POINTER(5);
    Selectivity *indexSelectivity = (Selectivity *) PG_GETARG_POINTER(6);
    double     *indexCorrelation = (double *) PG_GETARG_POINTER(7);
-   
+
    genericcostestimate(root, index, indexQuals, outer_rel, 0.0,
                        indexStartupCost, indexTotalCost,
                        indexSelectivity, indexCorrelation);
index 9f5eee5c07b1e3fdce9fe97406e714f835eb5d1f..4ad53a9d3fb6a2521663ac35ceca8021eeb5febe 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/timestamp.c,v 1.182 2007/09/16 15:56:20 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/timestamp.c,v 1.183 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -60,9 +60,9 @@ static TimestampTz timestamp2timestamptz(Timestamp timestamp);
 static int32
 anytimestamp_typmodin(bool istz, ArrayType *ta)
 {
-    int32    typmod;
-   int32    *tl;
-   int     n;
+   int32       typmod;
+   int32      *tl;
+   int         n;
 
    tl = ArrayGetIntegerTypmods(ta, &n);
 
@@ -84,11 +84,12 @@ anytimestamp_typmodin(bool istz, ArrayType *ta)
    {
        ereport(WARNING,
                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                errmsg("TIMESTAMP(%d)%s precision reduced to maximum allowed, %d",
-                       *tl, (istz ? " WITH TIME ZONE" : ""),
-                       MAX_TIMESTAMP_PRECISION)));
+          errmsg("TIMESTAMP(%d)%s precision reduced to maximum allowed, %d",
+                 *tl, (istz ? " WITH TIME ZONE" : ""),
+                 MAX_TIMESTAMP_PRECISION)));
        typmod = MAX_TIMESTAMP_PRECISION;
-   } else
+   }
+   else
        typmod = *tl;
 
    return typmod;
@@ -98,7 +99,7 @@ anytimestamp_typmodin(bool istz, ArrayType *ta)
 static char *
 anytimestamp_typmodout(bool istz, int32 typmod)
 {
-   char    *res = (char *) palloc(64);
+   char       *res = (char *) palloc(64);
    const char *tz = istz ? " with time zone" : " without time zone";
 
    if (typmod >= 0)
@@ -272,7 +273,7 @@ timestamp_send(PG_FUNCTION_ARGS)
 Datum
 timestamptypmodin(PG_FUNCTION_ARGS)
 {
-   ArrayType    *ta = PG_GETARG_ARRAYTYPE_P(0);
+   ArrayType  *ta = PG_GETARG_ARRAYTYPE_P(0);
 
    PG_RETURN_INT32(anytimestamp_typmodin(false, ta));
 }
@@ -280,7 +281,7 @@ timestamptypmodin(PG_FUNCTION_ARGS)
 Datum
 timestamptypmodout(PG_FUNCTION_ARGS)
 {
-   int32 typmod = PG_GETARG_INT32(0);
+   int32       typmod = PG_GETARG_INT32(0);
 
    PG_RETURN_CSTRING(anytimestamp_typmodout(false, typmod));
 }
@@ -534,7 +535,7 @@ timestamptz_send(PG_FUNCTION_ARGS)
 Datum
 timestamptztypmodin(PG_FUNCTION_ARGS)
 {
-   ArrayType    *ta = PG_GETARG_ARRAYTYPE_P(0);
+   ArrayType  *ta = PG_GETARG_ARRAYTYPE_P(0);
 
    PG_RETURN_INT32(anytimestamp_typmodin(true, ta));
 }
@@ -542,7 +543,7 @@ timestamptztypmodin(PG_FUNCTION_ARGS)
 Datum
 timestamptztypmodout(PG_FUNCTION_ARGS)
 {
-   int32 typmod = PG_GETARG_INT32(0);
+   int32       typmod = PG_GETARG_INT32(0);
 
    PG_RETURN_CSTRING(anytimestamp_typmodout(true, typmod));
 }
@@ -714,16 +715,15 @@ interval_send(PG_FUNCTION_ARGS)
 Datum
 intervaltypmodin(PG_FUNCTION_ARGS)
 {
-   ArrayType   *ta = PG_GETARG_ARRAYTYPE_P(0);
-   int32       *tl;
-    int            n;
+   ArrayType  *ta = PG_GETARG_ARRAYTYPE_P(0);
+   int32      *tl;
+   int         n;
    int32       typmod;
 
    tl = ArrayGetIntegerTypmods(ta, &n);
 
    /*
-    * tl[0] - opt_interval
-    * tl[1] - Iconst (optional)
+    * tl[0] - opt_interval tl[1] - Iconst (optional)
     *
     * Note we must validate tl[0] even though it's normally guaranteed
     * correct by the grammar --- consider SELECT 'foo'::"interval"(1000).
@@ -768,13 +768,13 @@ intervaltypmodin(PG_FUNCTION_ARGS)
            ereport(ERROR,
                    (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
                     errmsg("INTERVAL(%d) precision must not be negative",
-                            tl[1])));
+                           tl[1])));
        if (tl[1] > MAX_INTERVAL_PRECISION)
        {
            ereport(WARNING,
                    (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                   errmsg("INTERVAL(%d) precision reduced to maximum allowed, %d",
-                   tl[1], MAX_INTERVAL_PRECISION)));
+             errmsg("INTERVAL(%d) precision reduced to maximum allowed, %d",
+                    tl[1], MAX_INTERVAL_PRECISION)));
            typmod = INTERVAL_TYPMOD(MAX_INTERVAL_PRECISION, tl[0]);
        }
        else
@@ -784,7 +784,7 @@ intervaltypmodin(PG_FUNCTION_ARGS)
    {
        ereport(ERROR,
                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                       errmsg("invalid INTERVAL type modifier")));
+                errmsg("invalid INTERVAL type modifier")));
        typmod = 0;             /* keep compiler quiet */
    }
 
@@ -794,10 +794,10 @@ intervaltypmodin(PG_FUNCTION_ARGS)
 Datum
 intervaltypmodout(PG_FUNCTION_ARGS)
 {
-   int32 typmod = PG_GETARG_INT32(0);
+   int32       typmod = PG_GETARG_INT32(0);
    char       *res = (char *) palloc(64);
-   int         fields;
-   int         precision;
+   int         fields;
+   int         precision;
    const char *fieldstr;
 
    if (typmod < 0)
@@ -1305,13 +1305,13 @@ timestamptz_to_time_t(TimestampTz t)
  * Produce a C-string representation of a TimestampTz.
  *
  * This is mostly for use in emitting messages.  The primary difference
- * from timestamptz_out is that we force the output format to ISO.  Note
+ * from timestamptz_out is that we force the output format to ISO. Note
  * also that the result is in a static buffer, not pstrdup'd.
  */
 const char *
 timestamptz_to_str(TimestampTz t)
 {
-   static char buf[MAXDATELEN + 1];
+   static char buf[MAXDATELEN + 1];
    int         tz;
    struct pg_tm tt,
               *tm = &tt;
@@ -1494,7 +1494,7 @@ recalc_t:
    if ((Timestamp) utime == dt)
    {
        struct pg_tm *tx = pg_localtime(&utime,
-                                 attimezone ? attimezone : session_timezone);
+                                attimezone ? attimezone : session_timezone);
 
        tm->tm_year = tx->tm_year + 1900;
        tm->tm_mon = tx->tm_mon + 1;
@@ -2129,17 +2129,17 @@ interval_hash(PG_FUNCTION_ARGS)
    uint32      mhash;
 
    /*
-    * To avoid any problems with padding bytes in the struct,
-    * we figure the field hashes separately and XOR them.  This also
-    * provides a convenient framework for dealing with the fact that
-    * the time field might be either double or int64.
+    * To avoid any problems with padding bytes in the struct, we figure the
+    * field hashes separately and XOR them.  This also provides a convenient
+    * framework for dealing with the fact that the time field might be either
+    * double or int64.
     */
 #ifdef HAVE_INT64_TIMESTAMP
    thash = DatumGetUInt32(DirectFunctionCall1(hashint8,
                                               Int64GetDatumFast(key->time)));
 #else
    thash = DatumGetUInt32(DirectFunctionCall1(hashfloat8,
-                                              Float8GetDatumFast(key->time)));
+                                            Float8GetDatumFast(key->time)));
 #endif
    thash ^= DatumGetUInt32(hash_uint32(key->day));
    /* Shift so "k days" and "k months" don't hash to the same thing */
@@ -3664,8 +3664,8 @@ interval_trunc(PG_FUNCTION_ARGS)
 
 /* isoweek2j()
  *
- *     Return the Julian day which corresponds to the first day (Monday) of the given ISO 8601 year and week.
- *     Julian days are used to convert between ISO week dates and Gregorian dates.
+ * Return the Julian day which corresponds to the first day (Monday) of the given ISO 8601 year and week.
+ * Julian days are used to convert between ISO week dates and Gregorian dates.
  */
 int
 isoweek2j(int year, int week)
@@ -3700,14 +3700,14 @@ isoweek2date(int woy, int *year, int *mon, int *mday)
 
 /* isoweekdate2date()
  *
- *     Convert an ISO 8601 week date (ISO year, ISO week and day of week) into a Gregorian date.
- *     Populates year, mon, and mday with the correct Gregorian values.
- *     year must be passed in as the ISO year.
+ * Convert an ISO 8601 week date (ISO year, ISO week and day of week) into a Gregorian date.
+ * Populates year, mon, and mday with the correct Gregorian values.
+ * year must be passed in as the ISO year.
  */
 void
 isoweekdate2date(int isoweek, int isowday, int *year, int *mon, int *mday)
 {
-   int jday;
+   int         jday;
 
    jday = isoweek2j(*year, isoweek);
    jday += isowday - 1;
@@ -3827,8 +3827,8 @@ date2isoyear(int year, int mon, int mday)
 
 /* date2isoyearday()
  *
- *     Returns the ISO 8601 day-of-year, given a Gregorian year, month and day.
- *     Possible return values are 1 through 371 (364 in non-leap years).
+ * Returns the ISO 8601 day-of-year, given a Gregorian year, month and day.
+ * Possible return values are 1 through 371 (364 in non-leap years).
  */
 int
 date2isoyearday(int year, int mon, int mday)
index 075c921d4059dc652ca5afe797a36dd4d146382f..d6b9965d1cc13bd6238fbb809e05596f5ae8abce 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/tsginidx.c,v 1.5 2007/10/20 21:06:20 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/tsginidx.c,v 1.6 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -113,7 +113,7 @@ typedef struct
 {
    QueryItem  *frst;
    bool       *mapped_check;
-} GinChkVal;
+}  GinChkVal;
 
 static bool
 checkcondition_gin(void *checkval, QueryOperand * val)
@@ -127,6 +127,7 @@ Datum
 gin_ts_consistent(PG_FUNCTION_ARGS)
 {
    bool       *check = (bool *) PG_GETARG_POINTER(0);
+
    /* StrategyNumber strategy = PG_GETARG_UINT16(1); */
    TSQuery     query = PG_GETARG_TSQUERY(2);
    bool        res = FALSE;
@@ -141,8 +142,8 @@ gin_ts_consistent(PG_FUNCTION_ARGS)
        /*
         * check-parameter array has one entry for each value (operand) in the
         * query. We expand that array into mapped_check, so that there's one
-        * entry in mapped_check for every node in the query, including 
-        * operators, to allow quick lookups in checkcondition_gin. Only the 
+        * entry in mapped_check for every node in the query, including
+        * operators, to allow quick lookups in checkcondition_gin. Only the
         * entries corresponding operands are actually used.
         */
 
index f8e84cb266874ee00d6235b7fa5162c0d5f1ffe4..457468ee0ea1fbe94ad7e4ff73582e2d05ef49da 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/tsquery.c,v 1.8 2007/10/21 22:29:56 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/tsquery.c,v 1.9 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -29,18 +29,20 @@ struct TSQueryParserStateData
    char       *buffer;         /* entire string we are scanning */
    char       *buf;            /* current scan point */
    int         state;
-   int         count;          /* nesting count, incremented by (, 
-                                  decremented by ) */
+   int         count;          /* nesting count, incremented by (,
+                                * decremented by ) */
 
    /* polish (prefix) notation in list, filled in by push* functions */
    List       *polstr;
 
-   /* Strings from operands are collected in op. curop is a pointer to
-    * the end of used space of op. */
+   /*
+    * Strings from operands are collected in op. curop is a pointer to the
+    * end of used space of op.
+    */
    char       *op;
    char       *curop;
-   int         lenop; /* allocated size of op */
-   int         sumlen; /* used size of op */
+   int         lenop;          /* allocated size of op */
+   int         sumlen;         /* used size of op */
 
    /* state for value's parser */
    TSVectorParseState valstate;
@@ -96,14 +98,15 @@ get_weight(char *buf, int16 *weight)
 /*
  * token types for parsing
  */
-typedef enum {
+typedef enum
+{
    PT_END = 0,
    PT_ERR = 1,
    PT_VAL = 2,
    PT_OPR = 3,
    PT_OPEN = 4,
    PT_CLOSE = 5,
-} ts_tokentype;
+}  ts_tokentype;
 
 /*
  * get token from query string
@@ -112,7 +115,7 @@ typedef enum {
  * *strval, *lenval and *weight are filled in when return value is PT_VAL
  */
 static ts_tokentype
-gettoken_query(TSQueryParserState state, 
+gettoken_query(TSQueryParserState state,
               int8 *operator,
               int *lenval, char **strval, int16 *weight)
 {
@@ -146,7 +149,10 @@ gettoken_query(TSQueryParserState state,
                }
                else if (!t_isspace(state->buf))
                {
-                   /* We rely on the tsvector parser to parse the value for us */
+                   /*
+                    * We rely on the tsvector parser to parse the value for
+                    * us
+                    */
                    reset_tsvector_parser(state->valstate, state->buf);
                    if (gettoken_tsvector(state->valstate, strval, lenval, NULL, NULL, &state->buf))
                    {
@@ -215,7 +221,7 @@ pushOperator(TSQueryParserState state, int8 oper)
    QueryOperator *tmp;
 
    Assert(oper == OP_NOT || oper == OP_AND || oper == OP_OR);
-   
+
    tmp = (QueryOperator *) palloc(sizeof(QueryOperator));
    tmp->type = QI_OPR;
    tmp->oper = oper;
@@ -275,7 +281,7 @@ pushValue(TSQueryParserState state, char *strval, int lenval, int2 weight)
    /* append the value string to state.op, enlarging buffer if needed first */
    while (state->curop - state->op + lenval + 1 >= state->lenop)
    {
-       int used = state->curop - state->op;
+       int         used = state->curop - state->op;
 
        state->lenop *= 2;
        state->op = (char *) repalloc((void *) state->op, state->lenop);
@@ -312,7 +318,7 @@ pushStop(TSQueryParserState state)
  * See parse_tsquery for explanation of pushval.
  */
 static void
-makepol(TSQueryParserState state, 
+makepol(TSQueryParserState state,
        PushFunction pushval,
        Datum opaque)
 {
@@ -345,7 +351,7 @@ makepol(TSQueryParserState state,
                    pushOperator(state, OP_OR);
                else
                {
-                   if (lenstack == STACKDEPTH)         /* internal error */
+                   if (lenstack == STACKDEPTH) /* internal error */
                        elog(ERROR, "tsquery stack too small");
                    opstack[lenstack] = operator;
                    lenstack++;
@@ -384,7 +390,7 @@ makepol(TSQueryParserState state,
 }
 
 static void
-findoprnd_recurse(QueryItem *ptr, uint32 *pos, int nnodes)
+findoprnd_recurse(QueryItem * ptr, uint32 *pos, int nnodes)
 {
    /* since this function recurses, it could be driven to stack overflow. */
    check_stack_depth();
@@ -393,14 +399,12 @@ findoprnd_recurse(QueryItem *ptr, uint32 *pos, int nnodes)
        elog(ERROR, "malformed tsquery; operand not found");
 
    if (ptr[*pos].type == QI_VAL ||
-       ptr[*pos].type == QI_VALSTOP) /* need to handle VALSTOP here,
-                                      * they haven't been cleaned
-                                      * away yet.
-                                      */
+       ptr[*pos].type == QI_VALSTOP)   /* need to handle VALSTOP here, they
+                                        * haven't been cleaned away yet. */
    {
        (*pos)++;
    }
-   else 
+   else
    {
        Assert(ptr[*pos].type == QI_OPR);
 
@@ -412,8 +416,8 @@ findoprnd_recurse(QueryItem *ptr, uint32 *pos, int nnodes)
        }
        else
        {
-           QueryOperator  *curitem = &ptr[*pos].operator;
-           int tmp = *pos;
+           QueryOperator *curitem = &ptr[*pos].operator;
+           int         tmp = *pos;
 
            Assert(curitem->oper == OP_AND || curitem->oper == OP_OR);
 
@@ -428,12 +432,12 @@ findoprnd_recurse(QueryItem *ptr, uint32 *pos, int nnodes)
 
 /*
  * Fills in the left-fields previously left unfilled. The input
- * QueryItems must be in polish (prefix) notation. 
+ * QueryItems must be in polish (prefix) notation.
  */
 static void
-findoprnd(QueryItem *ptr, int size)
+findoprnd(QueryItem * ptr, int size)
 {
-   uint32 pos;
+   uint32      pos;
 
    pos = 0;
    findoprnd_recurse(ptr, &pos, size);
@@ -451,14 +455,14 @@ findoprnd(QueryItem *ptr, int size)
  * with pushStop, otherwise the prefix notation representation will be broken,
  * having an operator with no operand.
  *
- * opaque is passed on to pushval as is, pushval can use it to store its 
+ * opaque is passed on to pushval as is, pushval can use it to store its
  * private state.
  *
  * The returned query might contain QI_STOPVAL nodes. The caller is responsible
  * for cleaning them up (with clean_fakeval)
  */
 TSQuery
-parse_tsquery(char *buf, 
+parse_tsquery(char *buf,
              PushFunction pushval,
              Datum opaque,
              bool isplain)
@@ -513,9 +517,9 @@ parse_tsquery(char *buf,
    i = 0;
    foreach(cell, state.polstr)
    {
-       QueryItem *item = (QueryItem *) lfirst(cell);
+       QueryItem  *item = (QueryItem *) lfirst(cell);
 
-       switch(item->type)
+       switch (item->type)
        {
            case QI_VAL:
                memcpy(&ptr[i], item, sizeof(QueryOperand));
@@ -572,7 +576,7 @@ typedef struct
    char       *cur;
    char       *op;
    int         buflen;
-} INFIX;
+}  INFIX;
 
 /* Makes sure inf->buf is large enough for adding 'addsize' bytes */
 #define RESIZEBUF(inf, addsize) \
@@ -699,7 +703,7 @@ infix(INFIX * in, bool first)
 
        /* print operator & right operand */
        RESIZEBUF(in, 3 + (nrm.cur - nrm.buf));
-       switch(op)
+       switch (op)
        {
            case OP_OR:
                sprintf(in->cur, " | %s", nrm.buf);
@@ -708,7 +712,7 @@ infix(INFIX * in, bool first)
                sprintf(in->cur, " & %s", nrm.buf);
                break;
            default:
-               /* OP_NOT is handled in above if-branch*/
+               /* OP_NOT is handled in above if-branch */
                elog(ERROR, "unexpected operator type %d", op);
        }
        in->cur = strchr(in->cur, '\0');
@@ -752,13 +756,13 @@ tsqueryout(PG_FUNCTION_ARGS)
  * Binary Input / Output functions. The binary format is as follows:
  *
  * uint32   number of operators/operands in the query
- * 
+ *
  * Followed by the operators and operands, in prefix notation. For each
  * operand:
  *
  * uint8   type, QI_VAL
  * uint8   weight
- *             operand text in client encoding, null-terminated
+ *         operand text in client encoding, null-terminated
  *
  * For each operator:
  * uint8   type, QI_OPR
@@ -779,7 +783,7 @@ tsquerysend(PG_FUNCTION_ARGS)
    {
        pq_sendint(&buf, item->type, sizeof(item->type));
 
-       switch(item->type)
+       switch (item->type)
        {
            case QI_VAL:
                pq_sendint(&buf, item->operand.weight, sizeof(uint8));
@@ -832,12 +836,12 @@ tsqueryrecv(PG_FUNCTION_ARGS)
 
        if (item->type == QI_VAL)
        {
-           size_t val_len; /* length after recoding to server encoding */
-           uint8 weight;
+           size_t      val_len;    /* length after recoding to server encoding */
+           uint8       weight;
            const char *val;
-           pg_crc32 valcrc;
+           pg_crc32    valcrc;
 
-           weight   = (uint8) pq_getmsgint(buf, sizeof(uint8));
+           weight = (uint8) pq_getmsgint(buf, sizeof(uint8));
            val = pq_getmsgstring(buf);
            val_len = strlen(val);
 
@@ -848,7 +852,7 @@ tsqueryrecv(PG_FUNCTION_ARGS)
 
            if (val_len > MAXSTRLEN)
                elog(ERROR, "invalid tsquery; operand too long");
-               
+
            if (datalen > MAXSTRPOS)
                elog(ERROR, "invalid tsquery; total operand length exceeded");
 
@@ -863,17 +867,18 @@ tsqueryrecv(PG_FUNCTION_ARGS)
            item->operand.length = val_len;
            item->operand.distance = datalen;
 
-           /* 
+           /*
             * Operand strings are copied to the final struct after this loop;
             * here we just collect them to an array
             */
            operands[i] = val;
 
            datalen += val_len + 1;     /* + 1 for the '\0' terminator */
-       } 
+       }
        else if (item->type == QI_OPR)
        {
-           int8 oper;
+           int8        oper;
+
            oper = (int8) pq_getmsgint(buf, sizeof(int8));
            if (oper != OP_NOT && oper != OP_OR && oper != OP_AND)
                elog(ERROR, "invalid tsquery; unknown operator type %d", (int) oper);
@@ -882,7 +887,7 @@ tsqueryrecv(PG_FUNCTION_ARGS)
 
            item->operator.oper = oper;
        }
-       else 
+       else
            elog(ERROR, "unknown tsquery node type %d", item->type);
 
        item++;
@@ -893,9 +898,9 @@ tsqueryrecv(PG_FUNCTION_ARGS)
    item = GETQUERY(query);
    ptr = GETOPERAND(query);
 
-   /* 
-    * Fill in the left-pointers. Checks that the tree is well-formed
-    * as a side-effect.
+   /*
+    * Fill in the left-pointers. Checks that the tree is well-formed as a
+    * side-effect.
     */
    findoprnd(item, size);
 
index 62de4ee6ec74c66ccdc9c41f3e6bbe475d07becd..a4ec1bff5917e5e79359f7755ccbd16a1f52cc77 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/tsquery_cleanup.c,v 1.5 2007/09/20 23:27:11 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/tsquery_cleanup.c,v 1.6 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -24,7 +24,7 @@ typedef struct NODE
    struct NODE *left;
    struct NODE *right;
    QueryItem  *valnode;
-} NODE;
+}  NODE;
 
 /*
  * make query tree from plain view of query
@@ -51,9 +51,9 @@ maketree(QueryItem * in)
 typedef struct
 {
    QueryItem  *ptr;
-   int     len; /* allocated size of ptr */
-   int     cur; /* number of elements in ptr */
-} PLAINTREE;
+   int         len;            /* allocated size of ptr */
+   int         cur;            /* number of elements in ptr */
+}  PLAINTREE;
 
 static void
 plainnode(PLAINTREE * state, NODE * node)
@@ -77,7 +77,7 @@ plainnode(PLAINTREE * state, NODE * node)
    }
    else
    {
-       int cur = state->cur;
+       int         cur = state->cur;
 
        state->cur++;
        plainnode(state, node->right);
@@ -157,7 +157,7 @@ clean_NOT_intree(NODE * node)
    else
    {
        NODE       *res = node;
-       
+
        Assert(node->valnode->operator.oper == OP_AND);
 
        node->left = clean_NOT_intree(node->left);
@@ -201,10 +201,13 @@ clean_NOT(QueryItem * ptr, int *len)
 /*
  * output values for result output parameter of clean_fakeval_intree
  */
-#define V_UNKNOWN  0 /* the expression can't be evaluated statically */
-#define V_TRUE     1 /* the expression is always true (not implemented) */
-#define V_FALSE        2 /* the expression is always false (not implemented) */
-#define V_STOP     3 /* the expression is a stop word */
+#define V_UNKNOWN  0           /* the expression can't be evaluated
+                                * statically */
+#define V_TRUE     1           /* the expression is always true (not
+                                * implemented) */
+#define V_FALSE        2           /* the expression is always false (not
+                                * implemented) */
+#define V_STOP     3           /* the expression is a stop word */
 
 /*
  * Clean query tree from values which is always in
@@ -221,8 +224,7 @@ clean_fakeval_intree(NODE * node, char *result)
 
    if (node->valnode->type == QI_VAL)
        return node;
-   else 
-   if (node->valnode->type == QI_VALSTOP)
+   else if (node->valnode->type == QI_VALSTOP)
    {
        pfree(node);
        *result = V_STOP;
index 0deca10075c2b31bff52f9b4180d1e7b5db94a8d..2d79920960f732570dc6f37f3975837599ed7b6c 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/tsquery_gist.c,v 1.1 2007/08/21 01:11:19 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/tsquery_gist.c,v 1.2 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -142,7 +142,7 @@ typedef struct
 {
    OffsetNumber pos;
    int4        cost;
-} SPLITCOST;
+}  SPLITCOST;
 
 static int
 comparecost(const void *a, const void *b)
index 51f05a0d69e82d57383496c270e721c6965a5a1c..1dedf138b296788f27cf5bb549eb6a7c7132bbc0 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/tsquery_rewrite.c,v 1.8 2007/11/13 22:14:50 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/tsquery_rewrite.c,v 1.9 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -43,16 +43,16 @@ addone(int *counters, int last, int total)
  * by returning either node or a copy of subs.
  */
 static QTNode *
-findeq(QTNode *node, QTNode *ex, QTNode *subs, bool *isfind)
+findeq(QTNode * node, QTNode * ex, QTNode * subs, bool *isfind)
 {
 
-   if ((node->sign & ex->sign) != ex->sign || 
+   if ((node->sign & ex->sign) != ex->sign ||
        node->valnode->type != ex->valnode->type)
        return node;
 
    if (node->flags & QTN_NOCHANGE)
        return node;
-   
+
    if (node->valnode->type == QI_OPR)
    {
        if (node->valnode->operator.oper != ex->valnode->operator.oper)
@@ -77,9 +77,8 @@ findeq(QTNode *node, QTNode *ex, QTNode *subs, bool *isfind)
        {
            /*
             * AND and NOT are commutative, so we check if a subset of the
-            * children match. For example, if tnode is A | B | C, and 
-            * ex is B | C, we have a match after we convert tnode to
-            * A | (B | C).
+            * children match. For example, if tnode is A | B | C, and ex is B
+            * | C, we have a match after we convert tnode to A | (B | C).
             */
            int        *counters = (int *) palloc(sizeof(int) * node->nchild);
            int         i;
@@ -149,7 +148,7 @@ findeq(QTNode *node, QTNode *ex, QTNode *subs, bool *isfind)
            pfree(counters);
        }
    }
-   else 
+   else
    {
        Assert(node->valnode->type == QI_VAL);
 
@@ -175,7 +174,7 @@ findeq(QTNode *node, QTNode *ex, QTNode *subs, bool *isfind)
 }
 
 static QTNode *
-dofindsubquery(QTNode *root, QTNode *ex, QTNode *subs, bool *isfind)
+dofindsubquery(QTNode * root, QTNode * ex, QTNode * subs, bool *isfind)
 {
    /* since this function recurses, it could be driven to stack overflow. */
    check_stack_depth();
@@ -234,7 +233,7 @@ dropvoidsubtree(QTNode * root)
 }
 
 QTNode *
-findsubquery(QTNode *root, QTNode *ex, QTNode *subs, bool *isfind)
+findsubquery(QTNode * root, QTNode * ex, QTNode * subs, bool *isfind)
 {
    bool        DidFind = false;
 
index 07561920024dd824abcebe5d63da349d6bd15646..8d13db8c98c1f03306097d3ffec2b3f076d6810e 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/tsquery_util.c,v 1.5 2007/10/23 01:44:39 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/tsquery_util.c,v 1.6 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -91,13 +91,13 @@ QTNodeCompare(QTNode * an, QTNode * bn)
 
    if (an->valnode->type != bn->valnode->type)
        return (an->valnode->type > bn->valnode->type) ? -1 : 1;
-   
+
    if (an->valnode->type == QI_OPR)
    {
        QueryOperator *ao = &an->valnode->operator;
        QueryOperator *bo = &bn->valnode->operator;
 
-       if(ao->oper != bo->oper)
+       if (ao->oper != bo->oper)
            return (ao->oper > bo->oper) ? -1 : 1;
 
        if (an->nchild != bn->nchild)
@@ -169,9 +169,9 @@ QTNEq(QTNode * a, QTNode * b)
 /*
  * Remove unnecessary intermediate nodes. For example:
  *
- *  OR          OR
- * a  OR    -> a b c
- *   b  c      
+ * OR          OR
+ * a  OR   -> a b c
+ *  b  c
  */
 void
 QTNTernary(QTNode * in)
@@ -205,7 +205,7 @@ QTNTernary(QTNode * in)
            memcpy(in->child + i, cc->child, cc->nchild * sizeof(QTNode *));
            i += cc->nchild - 1;
 
-           if(cc->flags & QTN_NEEDFREE)
+           if (cc->flags & QTN_NEEDFREE)
                pfree(cc->valnode);
            pfree(cc);
        }
@@ -285,10 +285,10 @@ typedef struct
    QueryItem  *curitem;
    char       *operand;
    char       *curoperand;
-} QTN2QTState;
+}  QTN2QTState;
 
 static void
-fillQT(QTN2QTState *state, QTNode *in)
+fillQT(QTN2QTState * state, QTNode * in)
 {
    /* since this function recurses, it could be driven to stack overflow. */
    check_stack_depth();
@@ -325,7 +325,7 @@ fillQT(QTN2QTState *state, QTNode *in)
 }
 
 TSQuery
-QTN2QT(QTNode *in)
+QTN2QT(QTNode * in)
 {
    TSQuery     out;
    int         len;
@@ -348,7 +348,7 @@ QTN2QT(QTNode *in)
 }
 
 QTNode *
-QTNCopy(QTNode *in)
+QTNCopy(QTNode * in)
 {
    QTNode     *out;
 
@@ -383,7 +383,7 @@ QTNCopy(QTNode *in)
 }
 
 void
-QTNClearFlags(QTNode *in, uint32 flags)
+QTNClearFlags(QTNode * in, uint32 flags)
 {
    /* since this function recurses, it could be driven to stack overflow. */
    check_stack_depth();
index 297724710fffbcdb250de945219579a9d67cf7c4..a918ee3d3cac689515f1f815308f6128b7981a5d 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/tsrank.c,v 1.9 2007/11/14 23:43:27 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/tsrank.c,v 1.10 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -58,7 +58,7 @@ cnt_length(TSVector t)
 
    while (ptr < end)
    {
-       int clen = POSDATALEN(t, ptr);
+       int         clen = POSDATALEN(t, ptr);
 
        if (clen == 0)
            len += 1;
@@ -72,7 +72,7 @@ cnt_length(TSVector t)
 }
 
 static int
-WordECompareQueryItem(char *eval, char *qval, WordEntry *ptr, QueryOperand *item)
+WordECompareQueryItem(char *eval, char *qval, WordEntry * ptr, QueryOperand * item)
 {
    if (ptr->len == item->length)
        return strncmp(
@@ -88,7 +88,7 @@ WordECompareQueryItem(char *eval, char *qval, WordEntry *ptr, QueryOperand *item
  * is the TSQuery containing 'item'. Returns NULL if not found.
  */
 static WordEntry *
-find_wordentry(TSVector t, TSQuery q, QueryOperand *item)
+find_wordentry(TSVector t, TSQuery q, QueryOperand * item)
 {
    WordEntry  *StopLow = ARRPTR(t);
    WordEntry  *StopHigh = (WordEntry *) STRPTR(t);
@@ -141,8 +141,8 @@ compareQueryOperand(const void *a, const void *b, void *arg)
 static QueryOperand **
 SortAndUniqItems(TSQuery q, int *size)
 {
-   char *operand = GETOPERAND(q);
-   QueryItem item = GETQUERY(q);
+   char       *operand = GETOPERAND(q);
+   QueryItem  *item = GETQUERY(q);
    QueryOperand **res,
              **ptr,
              **prevptr;
@@ -186,14 +186,14 @@ SortAndUniqItems(TSQuery q, int *size)
 
 /* A dummy WordEntryPos array to use when haspos is false */
 static WordEntryPosVector POSNULL = {
-   1, /* Number of elements that follow */
-   { 0 }
+   1,                          /* Number of elements that follow */
+   {0}
 };
 
 static float
 calc_rank_and(float *w, TSVector t, TSQuery q)
 {
-   WordEntryPosVector   **pos;
+   WordEntryPosVector **pos;
    int         i,
                k,
                l,
@@ -469,7 +469,7 @@ typedef struct
    int16       nitem;
    uint8       wclass;
    int32       pos;
-} DocRepresentation;
+}  DocRepresentation;
 
 static int
 compareDocR(const void *va, const void *vb)
@@ -482,19 +482,20 @@ compareDocR(const void *va, const void *vb)
    return (a->pos > b->pos) ? 1 : -1;
 }
 
-typedef struct 
+typedef struct
 {
    TSQuery     query;
    bool       *operandexist;
-} QueryRepresentation;
+}  QueryRepresentation;
 
-#define    QR_GET_OPERAND_EXISTS(q, v)     ( (q)->operandexist[ ((QueryItem*)(v)) - GETQUERY((q)->query) ] )
-#define QR_SET_OPERAND_EXISTS(q, v)     QR_GET_OPERAND_EXISTS(q,v) = true
+#define QR_GET_OPERAND_EXISTS(q, v)        ( (q)->operandexist[ ((QueryItem*)(v)) - GETQUERY((q)->query) ] )
+#define QR_SET_OPERAND_EXISTS(q, v)  QR_GET_OPERAND_EXISTS(q,v) = true
 
 static bool
-checkcondition_QueryOperand(void *checkval, QueryOperand *val)
+checkcondition_QueryOperand(void *checkval, QueryOperand * val)
 {
-   QueryRepresentation *qr = (QueryRepresentation*)checkval;
+   QueryRepresentation *qr = (QueryRepresentation *) checkval;
+
    return QR_GET_OPERAND_EXISTS(qr, val);
 }
 
@@ -505,22 +506,24 @@ typedef struct
    int         q;
    DocRepresentation *begin;
    DocRepresentation *end;
-} Extention;
+}  Extention;
 
 
 static bool
-Cover(DocRepresentation *doc, int len, QueryRepresentation  *qr, Extention *ext)
+Cover(DocRepresentation * doc, int len, QueryRepresentation * qr, Extention * ext)
 {
    DocRepresentation *ptr;
    int         lastpos = ext->pos;
    int         i;
    bool        found = false;
 
-   /* since this function recurses, it could be driven to stack overflow.
-    * (though any decent compiler will optimize away the tail-recursion.   */
+   /*
+    * since this function recurses, it could be driven to stack overflow.
+    * (though any decent compiler will optimize away the tail-recursion.
+    */
    check_stack_depth();
 
-   memset( qr->operandexist, 0, sizeof(bool)*qr->query->size );
+   memset(qr->operandexist, 0, sizeof(bool) * qr->query->size);
 
    ext->p = 0x7fffffff;
    ext->q = 0;
@@ -531,10 +534,10 @@ Cover(DocRepresentation *doc, int len, QueryRepresentation  *qr, Extention *ext)
    {
        for (i = 0; i < ptr->nitem; i++)
        {
-           if(ptr->item[i]->type == QI_VAL)
+           if (ptr->item[i]->type == QI_VAL)
                QR_SET_OPERAND_EXISTS(qr, ptr->item[i]);
        }
-       if (TS_execute(GETQUERY(qr->query), (void*)qr, false, checkcondition_QueryOperand))
+       if (TS_execute(GETQUERY(qr->query), (void *) qr, false, checkcondition_QueryOperand))
        {
            if (ptr->pos > ext->q)
            {
@@ -551,7 +554,7 @@ Cover(DocRepresentation *doc, int len, QueryRepresentation  *qr, Extention *ext)
    if (!found)
        return false;
 
-   memset( qr->operandexist, 0, sizeof(bool)*qr->query->size );
+   memset(qr->operandexist, 0, sizeof(bool) * qr->query->size);
 
    ptr = doc + lastpos;
 
@@ -559,9 +562,9 @@ Cover(DocRepresentation *doc, int len, QueryRepresentation  *qr, Extention *ext)
    while (ptr >= doc + ext->pos)
    {
        for (i = 0; i < ptr->nitem; i++)
-           if(ptr->item[i]->type  == QI_VAL)
+           if (ptr->item[i]->type == QI_VAL)
                QR_SET_OPERAND_EXISTS(qr, ptr->item[i]);
-       if (TS_execute(GETQUERY(qr->query), (void*)qr, true, checkcondition_QueryOperand))
+       if (TS_execute(GETQUERY(qr->query), (void *) qr, true, checkcondition_QueryOperand))
        {
            if (ptr->pos < ext->p)
            {
@@ -588,7 +591,7 @@ Cover(DocRepresentation *doc, int len, QueryRepresentation  *qr, Extention *ext)
 }
 
 static DocRepresentation *
-get_docrep(TSVector txt, QueryRepresentation *qr, int *doclen)
+get_docrep(TSVector txt, QueryRepresentation * qr, int *doclen)
 {
    QueryItem  *item = GETQUERY(qr->query);
    WordEntry  *entry;
@@ -610,10 +613,10 @@ get_docrep(TSVector txt, QueryRepresentation *qr, int *doclen)
 
        if (item[i].type != QI_VAL)
            continue;
-       
+
        curoperand = &item[i].operand;
-       
-       if(QR_GET_OPERAND_EXISTS(qr, &item[i]))
+
+       if (QR_GET_OPERAND_EXISTS(qr, &item[i]))
            continue;
 
        entry = find_wordentry(txt, qr->query, curoperand);
@@ -655,10 +658,13 @@ get_docrep(TSVector txt, QueryRepresentation *qr, int *doclen)
                        (item[k].type == QI_VAL &&
                         compareQueryOperand(&kptr, &iptr, operand) == 0))
                    {
-                       /* if k == i, we've already checked above that it's type == Q_VAL */
+                       /*
+                        * if k == i, we've already checked above that it's
+                        * type == Q_VAL
+                        */
                        doc[cur].item[doc[cur].nitem] = item + k;
                        doc[cur].nitem++;
-                       QR_SET_OPERAND_EXISTS( qr, item+k );
+                       QR_SET_OPERAND_EXISTS(qr, item + k);
                    }
                }
            }
@@ -699,7 +705,7 @@ calc_rank_cd(float4 *arrdata, TSVector txt, TSQuery query, int method)
                PrevExtPos = 0.0,
                CurExtPos = 0.0;
    int         NExtent = 0;
-   QueryRepresentation qr;
+   QueryRepresentation qr;
 
 
    for (i = 0; i < lengthof(weights); i++)
@@ -713,12 +719,12 @@ calc_rank_cd(float4 *arrdata, TSVector txt, TSQuery query, int method)
    }
 
    qr.query = query;
-   qr.operandexist = (bool*)palloc0(sizeof(bool) * query->size);
+   qr.operandexist = (bool *) palloc0(sizeof(bool) * query->size);
 
    doc = get_docrep(txt, &qr, &doclen);
    if (!doc)
    {
-       pfree( qr.operandexist );
+       pfree(qr.operandexist);
        return 0.0;
    }
 
@@ -782,7 +788,7 @@ calc_rank_cd(float4 *arrdata, TSVector txt, TSQuery query, int method)
 
    pfree(doc);
 
-   pfree( qr.operandexist );
+   pfree(qr.operandexist);
 
    return (float4) Wdoc;
 }
index cb90274943b8edc3d41d3897f5163ae38548bd14..7977214b49448d6763ce678f4ad9ab43a6526f97 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/tsvector.c,v 1.6 2007/10/23 00:51:23 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/tsvector.c,v 1.7 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -25,15 +25,15 @@ typedef struct
    WordEntry   entry;          /* must be first! */
    WordEntryPos *pos;
    int         poslen;         /* number of elements in pos */
-} WordEntryIN;
+}  WordEntryIN;
 
 
 /* Compare two WordEntryPos values for qsort */
 static int
 comparePos(const void *a, const void *b)
 {
-   int apos = WEP_GETPOS(*(const WordEntryPos *) a);
-   int bpos = WEP_GETPOS(*(const WordEntryPos *) b);
+   int         apos = WEP_GETPOS(*(const WordEntryPos *) a);
+   int         bpos = WEP_GETPOS(*(const WordEntryPos *) b);
 
    if (apos == bpos)
        return 0;
@@ -102,7 +102,7 @@ compareentry(const void *va, const void *vb, void *arg)
 static int
 uniqueentry(WordEntryIN * a, int l, char *buf, int *outbuflen)
 {
-   int     buflen;
+   int         buflen;
    WordEntryIN *ptr,
               *res;
 
@@ -137,7 +137,7 @@ uniqueentry(WordEntryIN * a, int l, char *buf, int *outbuflen)
            if (res->entry.haspos)
            {
                /* append ptr's positions to res's positions */
-               int newlen = ptr->poslen + res->poslen;
+               int         newlen = ptr->poslen + res->poslen;
 
                res->pos = (WordEntryPos *)
                    repalloc(res->pos, newlen * sizeof(WordEntryPos));
@@ -184,7 +184,7 @@ tsvectorin(PG_FUNCTION_ARGS)
    TSVectorParseState state;
    WordEntryIN *arr;
    int         totallen;
-   int         arrlen;  /* allocated size of arr */
+   int         arrlen;         /* allocated size of arr */
    WordEntry  *inarr;
    int         len = 0;
    TSVector    in;
@@ -197,17 +197,17 @@ tsvectorin(PG_FUNCTION_ARGS)
    int         stroff;
 
    /*
-    * Tokens are appended to tmpbuf, cur is a pointer
-    * to the end of used space in tmpbuf.
+    * Tokens are appended to tmpbuf, cur is a pointer to the end of used
+    * space in tmpbuf.
     */
    char       *tmpbuf;
    char       *cur;
-   int         buflen = 256; /* allocated size of tmpbuf */
+   int         buflen = 256;   /* allocated size of tmpbuf */
 
    pg_verifymbstr(buf, strlen(buf), false);
 
    state = init_tsvector_parser(buf, false, false);
-   
+
    arrlen = 64;
    arr = (WordEntryIN *) palloc(sizeof(WordEntryIN) * arrlen);
    cur = tmpbuf = (char *) palloc(buflen);
@@ -219,7 +219,7 @@ tsvectorin(PG_FUNCTION_ARGS)
                    (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
                     errmsg("word is too long (%ld bytes, max %ld bytes)",
                            (long) toklen,
-                           (long) (MAXSTRLEN-1))));
+                           (long) (MAXSTRLEN - 1))));
 
        if (cur - tmpbuf > MAXSTRPOS)
            ereport(ERROR,
@@ -237,7 +237,7 @@ tsvectorin(PG_FUNCTION_ARGS)
        }
        while ((cur - tmpbuf) + toklen >= buflen)
        {
-           int dist = cur - tmpbuf;
+           int         dist = cur - tmpbuf;
 
            buflen *= 2;
            tmpbuf = (char *) repalloc((void *) tmpbuf, buflen);
@@ -394,11 +394,11 @@ tsvectorout(PG_FUNCTION_ARGS)
  * Binary Input / Output functions. The binary format is as follows:
  *
  * uint32  number of lexemes
- * 
+ *
  * for each lexeme:
  *     lexeme text in client encoding, null-terminated
- *         uint16  number of positions
- *         for each position:
+ *     uint16  number of positions
+ *     for each position:
  *         uint16 WordEntryPos
  */
 
@@ -416,10 +416,11 @@ tsvectorsend(PG_FUNCTION_ARGS)
    pq_sendint(&buf, vec->size, sizeof(int32));
    for (i = 0; i < vec->size; i++)
    {
-       uint16 npos;
+       uint16      npos;
 
-       /* the strings in the TSVector array are not null-terminated, so 
-        * we have to send the null-terminator separately
+       /*
+        * the strings in the TSVector array are not null-terminated, so we
+        * have to send the null-terminator separately
         */
        pq_sendtext(&buf, STRPTR(vec) + weptr->pos, weptr->len);
        pq_sendbyte(&buf, '\0');
@@ -427,7 +428,7 @@ tsvectorsend(PG_FUNCTION_ARGS)
        npos = POSDATALEN(vec, weptr);
        pq_sendint(&buf, npos, sizeof(uint16));
 
-       if(npos > 0)
+       if (npos > 0)
        {
            WordEntryPos *wepptr = POSDATAPTR(vec, weptr);
 
@@ -447,11 +448,11 @@ tsvectorrecv(PG_FUNCTION_ARGS)
    TSVector    vec;
    int         i;
    int32       nentries;
-   int         datalen; /* number of bytes used in the variable size area
-                         * after fixed size TSVector header and WordEntries
-                         */
+   int         datalen;        /* number of bytes used in the variable size
+                                * area after fixed size TSVector header and
+                                * WordEntries */
    Size        hdrlen;
-   Size        len;  /* allocated size of vec */
+   Size        len;            /* allocated size of vec */
 
    nentries = pq_getmsgint(buf, sizeof(int32));
    if (nentries < 0 || nentries > (MaxAllocSize / sizeof(WordEntry)))
@@ -459,7 +460,7 @@ tsvectorrecv(PG_FUNCTION_ARGS)
 
    hdrlen = DATAHDRSIZE + sizeof(WordEntry) * nentries;
 
-   len = hdrlen * 2; /* times two to make room for lexemes */
+   len = hdrlen * 2;           /* times two to make room for lexemes */
    vec = (TSVector) palloc0(len);
    vec->size = nentries;
 
@@ -467,8 +468,8 @@ tsvectorrecv(PG_FUNCTION_ARGS)
    for (i = 0; i < nentries; i++)
    {
        const char *lexeme;
-       uint16 npos;
-       size_t lex_len;
+       uint16      npos;
+       size_t      lex_len;
 
        lexeme = pq_getmsgstring(buf);
        npos = (uint16) pq_getmsgint(buf, sizeof(uint16));
@@ -480,7 +481,7 @@ tsvectorrecv(PG_FUNCTION_ARGS)
            elog(ERROR, "invalid tsvector; lexeme too long");
 
        if (datalen > MAXSTRPOS)
-           elog(ERROR, "invalid tsvector; maximum total lexeme length exceeded"); 
+           elog(ERROR, "invalid tsvector; maximum total lexeme length exceeded");
 
        if (npos > MAXNUMPOS)
            elog(ERROR, "unexpected number of positions");
@@ -518,8 +519,8 @@ tsvectorrecv(PG_FUNCTION_ARGS)
 
            /*
             * Pad to 2-byte alignment if necessary. Though we used palloc0
-            * for the initial allocation, subsequent repalloc'd memory
-            * areas are not initialized to zero.
+            * for the initial allocation, subsequent repalloc'd memory areas
+            * are not initialized to zero.
             */
            if (datalen != SHORTALIGN(datalen))
            {
index 5ee8bb78422b95717147b3646e3d8afa377ead9d..d1d4a79295387d057cba5b7286bb588a36c91cfc 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/tsvector_parser.c,v 1.2 2007/10/21 22:29:56 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/tsvector_parser.c,v 1.3 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
  */
 struct TSVectorParseStateData
 {
-   char   *prsbuf;             /* next input character */
-   char   *bufstart;           /* whole string (used only for errors) */
-   char   *word;               /* buffer to hold the current word */
-   int     len;                /* size in bytes allocated for 'word' */
-   int     eml;                /* max bytes per character */
-   bool    oprisdelim;         /* treat ! | * ( ) as delimiters? */
-   bool    is_tsquery;         /* say "tsquery" not "tsvector" in errors? */
+   char       *prsbuf;         /* next input character */
+   char       *bufstart;       /* whole string (used only for errors) */
+   char       *word;           /* buffer to hold the current word */
+   int         len;            /* size in bytes allocated for 'word' */
+   int         eml;            /* max bytes per character */
+   bool        oprisdelim;     /* treat ! | * ( ) as delimiters? */
+   bool        is_tsquery;     /* say "tsquery" not "tsvector" in errors? */
 };
 
 
@@ -67,7 +67,7 @@ init_tsvector_parser(char *input, bool oprisdelim, bool is_tsquery)
 void
 reset_tsvector_parser(TSVectorParseState state, char *input)
 {
-   state->prsbuf = input;  
+   state->prsbuf = input;
 }
 
 /*
@@ -142,11 +142,11 @@ prssyntaxerror(TSVectorParseState state)
  * Get next token from string being parsed. Returns true if successful,
  * false if end of input string is reached.  On success, these output
  * parameters are filled in:
- * 
- * *strval         pointer to token
- * *lenval         length of *strval
+ *
+ * *strval     pointer to token
+ * *lenval     length of *strval
  * *pos_ptr        pointer to a palloc'd array of positions and weights
- *                 associated with the token. If the caller is not interested
+ *             associated with the token. If the caller is not interested
  *             in the information, NULL can be supplied. Otherwise
  *             the caller is responsible for pfreeing the array.
  * *poslen     number of elements in *pos_ptr
@@ -155,21 +155,22 @@ prssyntaxerror(TSVectorParseState state)
  * Pass NULL for unwanted output parameters.
  */
 bool
-gettoken_tsvector(TSVectorParseState state, 
+gettoken_tsvector(TSVectorParseState state,
                  char **strval, int *lenval,
-                 WordEntryPos **pos_ptr, int *poslen,
+                 WordEntryPos ** pos_ptr, int *poslen,
                  char **endptr)
 {
-   int oldstate    = 0;
-   char *curpos    = state->word;
-   int statecode   = WAITWORD;
+   int         oldstate = 0;
+   char       *curpos = state->word;
+   int         statecode = WAITWORD;
 
-   /* pos is for collecting the comma delimited list of positions followed
-    * by the actual token. 
+   /*
+    * pos is for collecting the comma delimited list of positions followed by
+    * the actual token.
     */
    WordEntryPos *pos = NULL;
-   int npos        = 0; /* elements of pos used */
-   int posalen     = 0; /* allocated size of pos */
+   int         npos = 0;       /* elements of pos used */
+   int         posalen = 0;    /* allocated size of pos */
 
    while (1)
    {
@@ -357,7 +358,7 @@ gettoken_tsvector(TSVectorParseState state,
            else if (!t_isdigit(state->prsbuf))
                PRSSYNTAXERROR;
        }
-       else                    /* internal error */
+       else    /* internal error */
            elog(ERROR, "internal error in gettoken_tsvector");
 
        /* get next char */
index f4267dfbdb4d9e22b0af4dfde0fe8793f01ea41e..4fc2276ece7f682d51d83b94bdbf0a2b4ff97776 100644 (file)
@@ -14,7 +14,7 @@
  * Author: Jan Wieck, Afilias USA INC.
  * 64-bit txids: Marko Kreen, Skype Technologies
  *
- * $PostgreSQL: pgsql/src/backend/utils/adt/txid.c,v 1.1 2007/10/13 23:06:26 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/txid.c,v 1.2 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -57,16 +57,15 @@ typedef struct
    /*
     * 4-byte length hdr, should not be touched directly.
     *
-    * Explicit embedding is ok as we want always correct
-    * alignment anyway.
+    * Explicit embedding is ok as we want always correct alignment anyway.
     */
-    int32       __varsz;
-   
-    uint32      nxip;      /* number of txids in xip array */
-    txid       xmin;
-    txid       xmax;
-    txid       xip[1];     /* in-progress txids, xmin <= xip[i] < xmax */
-}   TxidSnapshot;
+   int32       __varsz;
+
+   uint32      nxip;           /* number of txids in xip array */
+   txid        xmin;
+   txid        xmax;
+   txid        xip[1];         /* in-progress txids, xmin <= xip[i] < xmax */
+}  TxidSnapshot;
 
 #define TXID_SNAPSHOT_SIZE(nxip) \
    (offsetof(TxidSnapshot, xip) + sizeof(txid) * (nxip))
@@ -76,8 +75,8 @@ typedef struct
  */
 typedef struct
 {
-   TransactionId   last_xid;
-   uint32          epoch;
+   TransactionId last_xid;
+   uint32      epoch;
 }  TxidEpoch;
 
 
@@ -85,7 +84,7 @@ typedef struct
  * Fetch epoch data from xact.c.
  */
 static void
-load_xid_epoch(TxidEpoch *state)
+load_xid_epoch(TxidEpoch * state)
 {
    GetNextXidAndEpoch(&state->last_xid, &state->epoch);
 }
@@ -94,10 +93,10 @@ load_xid_epoch(TxidEpoch *state)
  * do a TransactionId -> txid conversion for an XID near the given epoch
  */
 static txid
-convert_xid(TransactionId xid, const TxidEpoch *state)
+convert_xid(TransactionId xid, const TxidEpoch * state)
 {
 #ifndef INT64_IS_BUSTED
-   uint64 epoch;
+   uint64      epoch;
 
    /* return special xid's as-is */
    if (!TransactionIdIsNormal(xid))
@@ -113,10 +112,10 @@ convert_xid(TransactionId xid, const TxidEpoch *state)
        epoch++;
 
    return (epoch << 32) | xid;
-#else /* INT64_IS_BUSTED */
+#else                          /* INT64_IS_BUSTED */
    /* we can't do anything with the epoch, so ignore it */
    return (txid) xid & MAX_TXID;
-#endif /* INT64_IS_BUSTED */
+#endif   /* INT64_IS_BUSTED */
 }
 
 /*
@@ -125,8 +124,8 @@ convert_xid(TransactionId xid, const TxidEpoch *state)
 static int
 cmp_txid(const void *aa, const void *bb)
 {
-   txid    a = *(const txid *) aa;
-   txid    b = *(const txid *) bb;
+   txid        a = *(const txid *) aa;
+   txid        b = *(const txid *) bb;
 
    if (a < b)
        return -1;
@@ -142,7 +141,7 @@ cmp_txid(const void *aa, const void *bb)
  * will not be used.
  */
 static void
-sort_snapshot(TxidSnapshot *snap)
+sort_snapshot(TxidSnapshot * snap)
 {
    if (snap->nxip > 1)
        qsort(snap->xip, snap->nxip, sizeof(txid), cmp_txid);
@@ -152,7 +151,7 @@ sort_snapshot(TxidSnapshot *snap)
  * check txid visibility.
  */
 static bool
-is_visible_txid(txid value, const TxidSnapshot *snap)
+is_visible_txid(txid value, const TxidSnapshot * snap)
 {
    if (value < snap->xmin)
        return true;
@@ -161,7 +160,7 @@ is_visible_txid(txid value, const TxidSnapshot *snap)
 #ifdef USE_BSEARCH_IF_NXIP_GREATER
    else if (snap->nxip > USE_BSEARCH_IF_NXIP_GREATER)
    {
-       void *res;
+       void       *res;
 
        res = bsearch(&value, snap->xip, snap->nxip, sizeof(txid), cmp_txid);
        /* if found, transaction is still in progress */
@@ -170,7 +169,7 @@ is_visible_txid(txid value, const TxidSnapshot *snap)
 #endif
    else
    {
-       uint32 i;
+       uint32      i;
 
        for (i = 0; i < snap->nxip; i++)
        {
@@ -189,32 +188,32 @@ static StringInfo
 buf_init(txid xmin, txid xmax)
 {
    TxidSnapshot snap;
-   StringInfo buf;
+   StringInfo  buf;
 
    snap.xmin = xmin;
    snap.xmax = xmax;
    snap.nxip = 0;
 
    buf = makeStringInfo();
-   appendBinaryStringInfo(buf, (char *)&snap, TXID_SNAPSHOT_SIZE(0));
+   appendBinaryStringInfo(buf, (char *) &snap, TXID_SNAPSHOT_SIZE(0));
    return buf;
 }
 
 static void
 buf_add_txid(StringInfo buf, txid xid)
 {
-   TxidSnapshot *snap = (TxidSnapshot *)buf->data;
+   TxidSnapshot *snap = (TxidSnapshot *) buf->data;
 
    /* do this before possible realloc */
    snap->nxip++;
 
-   appendBinaryStringInfo(buf, (char *)&xid, sizeof(xid));
+   appendBinaryStringInfo(buf, (char *) &xid, sizeof(xid));
 }
 
 static TxidSnapshot *
 buf_finalize(StringInfo buf)
 {
-   TxidSnapshot *snap = (TxidSnapshot *)buf->data;
+   TxidSnapshot *snap = (TxidSnapshot *) buf->data;
 
    SET_VARSIZE(snap, buf->len);
 
@@ -233,13 +232,13 @@ buf_finalize(StringInfo buf)
 static txid
 str2txid(const char *s, const char **endp)
 {
-   txid val = 0;
-   txid cutoff = MAX_TXID / 10;
-   txid cutlim = MAX_TXID % 10;
+   txid        val = 0;
+   txid        cutoff = MAX_TXID / 10;
+   txid        cutlim = MAX_TXID % 10;
 
    for (; *s; s++)
    {
-       unsigned d;
+       unsigned    d;
 
        if (*s < '0' || *s > '9')
            break;
@@ -269,10 +268,11 @@ parse_snapshot(const char *str)
 {
    txid        xmin;
    txid        xmax;
-   txid        last_val = 0, val;
+   txid        last_val = 0,
+               val;
    const char *str_start = str;
    const char *endp;
-   StringInfo  buf;
+   StringInfo  buf;
 
    xmin = str2txid(str, &endp);
    if (*endp != ':')
@@ -301,7 +301,7 @@ parse_snapshot(const char *str)
        /* require the input to be in order */
        if (val < xmin || val >= xmax || val <= last_val)
            goto bad_format;
-       
+
        buf_add_txid(buf, val);
        last_val = val;
 
@@ -334,8 +334,8 @@ bad_format:
 Datum
 txid_current(PG_FUNCTION_ARGS)
 {
-   txid val;
-   TxidEpoch state;
+   txid        val;
+   TxidEpoch   state;
 
    load_xid_epoch(&state);
 
@@ -355,9 +355,11 @@ Datum
 txid_current_snapshot(PG_FUNCTION_ARGS)
 {
    TxidSnapshot *snap;
-   uint32 nxip, i, size;
-   TxidEpoch state;
-   Snapshot cur;
+   uint32      nxip,
+               i,
+               size;
+   TxidEpoch   state;
+   Snapshot    cur;
 
    cur = ActiveSnapshot;
    if (cur == NULL)
@@ -408,9 +410,9 @@ txid_snapshot_in(PG_FUNCTION_ARGS)
 Datum
 txid_snapshot_out(PG_FUNCTION_ARGS)
 {
-   TxidSnapshot   *snap = (TxidSnapshot *) PG_GETARG_VARLENA_P(0);
-   StringInfoData  str;
-   uint32          i;
+   TxidSnapshot *snap = (TxidSnapshot *) PG_GETARG_VARLENA_P(0);
+   StringInfoData str;
+   uint32      i;
 
    initStringInfo(&str);
 
@@ -437,14 +439,15 @@ txid_snapshot_out(PG_FUNCTION_ARGS)
 Datum
 txid_snapshot_recv(PG_FUNCTION_ARGS)
 {
-   StringInfo  buf = (StringInfo) PG_GETARG_POINTER(0);
+   StringInfo  buf = (StringInfo) PG_GETARG_POINTER(0);
    TxidSnapshot *snap;
-   txid last = 0;
-   int nxip;
-   int i;
-   int avail;
-   int expect;
-   txid xmin, xmax;
+   txid        last = 0;
+   int         nxip;
+   int         i;
+   int         avail;
+   int         expect;
+   txid        xmin,
+               xmax;
 
    /*
     * load nxip and check for nonsense.
@@ -470,7 +473,8 @@ txid_snapshot_recv(PG_FUNCTION_ARGS)
 
    for (i = 0; i < nxip; i++)
    {
-       txid cur =  pq_getmsgint64(buf);
+       txid        cur = pq_getmsgint64(buf);
+
        if (cur <= last || cur < xmin || cur >= xmax)
            goto bad_format;
        snap->xip[i] = cur;
@@ -480,7 +484,7 @@ txid_snapshot_recv(PG_FUNCTION_ARGS)
 
 bad_format:
    elog(ERROR, "invalid snapshot data");
-   return (Datum)NULL;
+   return (Datum) NULL;
 }
 
 /*
@@ -493,9 +497,9 @@ bad_format:
 Datum
 txid_snapshot_send(PG_FUNCTION_ARGS)
 {
-   TxidSnapshot *snap = (TxidSnapshot *)PG_GETARG_VARLENA_P(0);
+   TxidSnapshot *snap = (TxidSnapshot *) PG_GETARG_VARLENA_P(0);
    StringInfoData buf;
-   uint32 i;
+   uint32      i;
 
    pq_begintypsend(&buf);
    pq_sendint(&buf, snap->nxip, 4);
@@ -514,9 +518,9 @@ txid_snapshot_send(PG_FUNCTION_ARGS)
 Datum
 txid_visible_in_snapshot(PG_FUNCTION_ARGS)
 {
-   txid value = PG_GETARG_INT64(0);
+   txid        value = PG_GETARG_INT64(0);
    TxidSnapshot *snap = (TxidSnapshot *) PG_GETARG_VARLENA_P(1);
-   
+
    PG_RETURN_BOOL(is_visible_txid(value, snap));
 }
 
@@ -556,10 +560,11 @@ txid_snapshot_xip(PG_FUNCTION_ARGS)
 {
    FuncCallContext *fctx;
    TxidSnapshot *snap;
-   txid value;
+   txid        value;
 
    /* on first call initialize snap_state and get copy of snapshot */
-   if (SRF_IS_FIRSTCALL()) {
+   if (SRF_IS_FIRSTCALL())
+   {
        TxidSnapshot *arg = (TxidSnapshot *) PG_GETARG_VARLENA_P(0);
 
        fctx = SRF_FIRSTCALL_INIT();
@@ -574,10 +579,13 @@ txid_snapshot_xip(PG_FUNCTION_ARGS)
    /* return values one-by-one */
    fctx = SRF_PERCALL_SETUP();
    snap = fctx->user_fctx;
-   if (fctx->call_cntr < snap->nxip) {
+   if (fctx->call_cntr < snap->nxip)
+   {
        value = snap->xip[fctx->call_cntr];
        SRF_RETURN_NEXT(fctx, Int64GetDatum(value));
-   } else {
+   }
+   else
+   {
        SRF_RETURN_DONE(fctx);
    }
 }
index 24b05f34266fa01e78cf7454eff0122df50694f0..24ce92e751a7ed701c3f2529e69ab44c63c2ea9e 100644 (file)
@@ -6,7 +6,7 @@
  * Copyright (c) 2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/uuid.c,v 1.4 2007/06/05 21:31:06 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/uuid.c,v 1.5 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 /* pg_uuid_t is declared to be struct pg_uuid_t in uuid.h */
 struct pg_uuid_t
 {
-    unsigned char  data[UUID_LEN];
+   unsigned char data[UUID_LEN];
 };
 
-static void string_to_uuid(const char *source, pg_uuid_t *uuid);
-static int uuid_internal_cmp(const pg_uuid_t *arg1, const pg_uuid_t *arg2);
+static void string_to_uuid(const char *source, pg_uuid_t * uuid);
+static int uuid_internal_cmp(const pg_uuid_t * arg1, const pg_uuid_t * arg2);
 
 Datum
 uuid_in(PG_FUNCTION_ARGS)
 {
-   char        *uuid_str = PG_GETARG_CSTRING(0);
-   pg_uuid_t   *uuid;
+   char       *uuid_str = PG_GETARG_CSTRING(0);
+   pg_uuid_t  *uuid;
 
    uuid = (pg_uuid_t *) palloc(sizeof(*uuid));
    string_to_uuid(uuid_str, uuid);
@@ -44,22 +44,21 @@ uuid_in(PG_FUNCTION_ARGS)
 Datum
 uuid_out(PG_FUNCTION_ARGS)
 {
-   pg_uuid_t           *uuid = PG_GETARG_UUID_P(0);
+   pg_uuid_t  *uuid = PG_GETARG_UUID_P(0);
    static const char hex_chars[] = "0123456789abcdef";
-   StringInfoData       buf;
-   int                  i;
+   StringInfoData buf;
+   int         i;
 
    initStringInfo(&buf);
    for (i = 0; i < UUID_LEN; i++)
    {
-       int hi;
-       int lo;
+       int         hi;
+       int         lo;
 
        /*
         * We print uuid values as a string of 8, 4, 4, 4, and then 12
-        * hexadecimal characters, with each group is separated by a
-        * hyphen ("-"). Therefore, add the hyphens at the appropriate
-        * places here.
+        * hexadecimal characters, with each group is separated by a hyphen
+        * ("-"). Therefore, add the hyphens at the appropriate places here.
         */
        if (i == 4 || i == 6 || i == 8 || i == 10)
            appendStringInfoChar(&buf, '-');
@@ -81,11 +80,11 @@ uuid_out(PG_FUNCTION_ARGS)
  * two formats into the latter format before further processing.
  */
 static void
-string_to_uuid(const char *source, pg_uuid_t *uuid)
+string_to_uuid(const char *source, pg_uuid_t * uuid)
 {
-   char        hex_buf[32];    /* not NUL terminated */
-   int         i;
-   int         src_len;
+   char        hex_buf[32];    /* not NUL terminated */
+   int         i;
+   int         src_len;
 
    src_len = strlen(source);
    if (src_len != 32 && src_len != 36 && src_len != 38)
@@ -102,7 +101,7 @@ string_to_uuid(const char *source, pg_uuid_t *uuid)
            if (str[0] != '{' || str[37] != '}')
                goto syntax_error;
 
-           str++;  /* skip the first character */
+           str++;              /* skip the first character */
        }
 
        if (str[8] != '-' || str[13] != '-' ||
@@ -118,7 +117,7 @@ string_to_uuid(const char *source, pg_uuid_t *uuid)
 
    for (i = 0; i < UUID_LEN; i++)
    {
-       char str_buf[3];
+       char        str_buf[3];
 
        memcpy(str_buf, &hex_buf[i * 2], 2);
        if (!isxdigit((unsigned char) str_buf[0]) ||
@@ -132,17 +131,17 @@ string_to_uuid(const char *source, pg_uuid_t *uuid)
    return;
 
 syntax_error:
-       ereport(ERROR,
-               (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
-                errmsg("invalid input syntax for uuid: \"%s\"",
-                       source)));
+   ereport(ERROR,
+           (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
+            errmsg("invalid input syntax for uuid: \"%s\"",
+                   source)));
 }
 
 Datum
 uuid_recv(PG_FUNCTION_ARGS)
 {
-   StringInfo   buffer = (StringInfo) PG_GETARG_POINTER(0);
-   pg_uuid_t   *uuid;
+   StringInfo  buffer = (StringInfo) PG_GETARG_POINTER(0);
+   pg_uuid_t  *uuid;
 
    uuid = (pg_uuid_t *) palloc(UUID_LEN);
    memcpy(uuid->data, pq_getmsgbytes(buffer, UUID_LEN), UUID_LEN);
@@ -152,8 +151,8 @@ uuid_recv(PG_FUNCTION_ARGS)
 Datum
 uuid_send(PG_FUNCTION_ARGS)
 {
-   pg_uuid_t               *uuid = PG_GETARG_UUID_P(0);
-   StringInfoData       buffer;
+   pg_uuid_t  *uuid = PG_GETARG_UUID_P(0);
+   StringInfoData buffer;
 
    pq_begintypsend(&buffer);
    pq_sendbytes(&buffer, (char *) uuid->data, UUID_LEN);
@@ -162,7 +161,7 @@ uuid_send(PG_FUNCTION_ARGS)
 
 /* internal uuid compare function */
 static int
-uuid_internal_cmp(const pg_uuid_t *arg1, const pg_uuid_t *arg2)
+uuid_internal_cmp(const pg_uuid_t * arg1, const pg_uuid_t * arg2)
 {
    return memcmp(arg1->data, arg2->data, UUID_LEN);
 }
@@ -170,8 +169,8 @@ uuid_internal_cmp(const pg_uuid_t *arg1, const pg_uuid_t *arg2)
 Datum
 uuid_lt(PG_FUNCTION_ARGS)
 {
-   pg_uuid_t   *arg1 = PG_GETARG_UUID_P(0);
-   pg_uuid_t   *arg2 = PG_GETARG_UUID_P(1);
+   pg_uuid_t  *arg1 = PG_GETARG_UUID_P(0);
+   pg_uuid_t  *arg2 = PG_GETARG_UUID_P(1);
 
    PG_RETURN_BOOL(uuid_internal_cmp(arg1, arg2) < 0);
 }
@@ -179,8 +178,8 @@ uuid_lt(PG_FUNCTION_ARGS)
 Datum
 uuid_le(PG_FUNCTION_ARGS)
 {
-   pg_uuid_t   *arg1 = PG_GETARG_UUID_P(0);
-   pg_uuid_t   *arg2 = PG_GETARG_UUID_P(1);
+   pg_uuid_t  *arg1 = PG_GETARG_UUID_P(0);
+   pg_uuid_t  *arg2 = PG_GETARG_UUID_P(1);
 
    PG_RETURN_BOOL(uuid_internal_cmp(arg1, arg2) <= 0);
 }
@@ -188,8 +187,8 @@ uuid_le(PG_FUNCTION_ARGS)
 Datum
 uuid_eq(PG_FUNCTION_ARGS)
 {
-   pg_uuid_t   *arg1 = PG_GETARG_UUID_P(0);
-   pg_uuid_t   *arg2 = PG_GETARG_UUID_P(1);
+   pg_uuid_t  *arg1 = PG_GETARG_UUID_P(0);
+   pg_uuid_t  *arg2 = PG_GETARG_UUID_P(1);
 
    PG_RETURN_BOOL(uuid_internal_cmp(arg1, arg2) == 0);
 }
@@ -197,8 +196,8 @@ uuid_eq(PG_FUNCTION_ARGS)
 Datum
 uuid_ge(PG_FUNCTION_ARGS)
 {
-   pg_uuid_t   *arg1 = PG_GETARG_UUID_P(0);
-   pg_uuid_t   *arg2 = PG_GETARG_UUID_P(1);
+   pg_uuid_t  *arg1 = PG_GETARG_UUID_P(0);
+   pg_uuid_t  *arg2 = PG_GETARG_UUID_P(1);
 
    PG_RETURN_BOOL(uuid_internal_cmp(arg1, arg2) >= 0);
 }
@@ -206,8 +205,8 @@ uuid_ge(PG_FUNCTION_ARGS)
 Datum
 uuid_gt(PG_FUNCTION_ARGS)
 {
-   pg_uuid_t   *arg1 = PG_GETARG_UUID_P(0);
-   pg_uuid_t   *arg2 = PG_GETARG_UUID_P(1);
+   pg_uuid_t  *arg1 = PG_GETARG_UUID_P(0);
+   pg_uuid_t  *arg2 = PG_GETARG_UUID_P(1);
 
    PG_RETURN_BOOL(uuid_internal_cmp(arg1, arg2) > 0);
 }
@@ -215,8 +214,8 @@ uuid_gt(PG_FUNCTION_ARGS)
 Datum
 uuid_ne(PG_FUNCTION_ARGS)
 {
-   pg_uuid_t   *arg1 = PG_GETARG_UUID_P(0);
-   pg_uuid_t   *arg2 = PG_GETARG_UUID_P(1);
+   pg_uuid_t  *arg1 = PG_GETARG_UUID_P(0);
+   pg_uuid_t  *arg2 = PG_GETARG_UUID_P(1);
 
    PG_RETURN_BOOL(uuid_internal_cmp(arg1, arg2) != 0);
 }
@@ -225,8 +224,8 @@ uuid_ne(PG_FUNCTION_ARGS)
 Datum
 uuid_cmp(PG_FUNCTION_ARGS)
 {
-   pg_uuid_t   *arg1 = PG_GETARG_UUID_P(0);
-   pg_uuid_t   *arg2 = PG_GETARG_UUID_P(1);
+   pg_uuid_t  *arg1 = PG_GETARG_UUID_P(0);
+   pg_uuid_t  *arg2 = PG_GETARG_UUID_P(1);
 
    PG_RETURN_INT32(uuid_internal_cmp(arg1, arg2));
 }
@@ -235,6 +234,7 @@ uuid_cmp(PG_FUNCTION_ARGS)
 Datum
 uuid_hash(PG_FUNCTION_ARGS)
 {
-   pg_uuid_t   *key = PG_GETARG_UUID_P(0);
+   pg_uuid_t  *key = PG_GETARG_UUID_P(0);
+
    return hash_any(key->data, UUID_LEN);
 }
index b6ab6bb1e7ff1b28efc7a6c6a37b47af64a12e3e..6d5b5a0c16e72f4b4e73a6ae869ef82c1cf58626 100644 (file)
@@ -9,7 +9,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/varbit.c,v 1.55 2007/08/21 02:40:06 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/varbit.c,v 1.56 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -28,9 +28,9 @@
 static int32
 anybit_typmodin(ArrayType *ta, const char *typename)
 {
-   int32    typmod;
-   int32   *tl;
-   int     n;
+   int32       typmod;
+   int32      *tl;
+   int         n;
 
    tl = ArrayGetIntegerTypmods(ta, &n);
 
@@ -63,7 +63,7 @@ anybit_typmodin(ArrayType *ta, const char *typename)
 static char *
 anybit_typmodout(int32 typmod)
 {
-   char    *res = (char *) palloc(64);
+   char       *res = (char *) palloc(64);
 
    if (typmod >= 0)
        snprintf(res, 64, "(%d)", typmod);
@@ -380,7 +380,7 @@ bit(PG_FUNCTION_ARGS)
 Datum
 bittypmodin(PG_FUNCTION_ARGS)
 {
-   ArrayType    *ta = PG_GETARG_ARRAYTYPE_P(0);
+   ArrayType  *ta = PG_GETARG_ARRAYTYPE_P(0);
 
    PG_RETURN_INT32(anybit_typmodin(ta, "bit"));
 }
@@ -388,7 +388,7 @@ bittypmodin(PG_FUNCTION_ARGS)
 Datum
 bittypmodout(PG_FUNCTION_ARGS)
 {
-   int32 typmod = PG_GETARG_INT32(0);
+   int32       typmod = PG_GETARG_INT32(0);
 
    PG_RETURN_CSTRING(anybit_typmodout(typmod));
 }
@@ -680,7 +680,7 @@ varbit(PG_FUNCTION_ARGS)
 Datum
 varbittypmodin(PG_FUNCTION_ARGS)
 {
-   ArrayType    *ta = PG_GETARG_ARRAYTYPE_P(0);
+   ArrayType  *ta = PG_GETARG_ARRAYTYPE_P(0);
 
    PG_RETURN_INT32(anybit_typmodin(ta, "varbit"));
 }
@@ -688,7 +688,7 @@ varbittypmodin(PG_FUNCTION_ARGS)
 Datum
 varbittypmodout(PG_FUNCTION_ARGS)
 {
-   int32 typmod = PG_GETARG_INT32(0);
+   int32       typmod = PG_GETARG_INT32(0);
 
    PG_RETURN_CSTRING(anybit_typmodout(typmod));
 }
index 43315dd9ebce913c899e6da670d1a324987f54c3..2682dea8bc3fea0a34fcf5ae180a912da0f8b714 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/varchar.c,v 1.124 2007/06/15 20:56:51 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/varchar.c,v 1.125 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -27,9 +27,9 @@
 static int32
 anychar_typmodin(ArrayType *ta, const char *typename)
 {
-   int32   typmod;
-   int32   *tl;
-   int     n;
+   int32       typmod;
+   int32      *tl;
+   int         n;
 
    tl = ArrayGetIntegerTypmods(ta, &n);
 
@@ -53,9 +53,9 @@ anychar_typmodin(ArrayType *ta, const char *typename)
                        typename, MaxAttrSize)));
 
    /*
-    * For largely historical reasons, the typmod is VARHDRSZ plus the
-    * number of characters; there is enough client-side code that knows
-    * about that that we'd better not change it.
+    * For largely historical reasons, the typmod is VARHDRSZ plus the number
+    * of characters; there is enough client-side code that knows about that
+    * that we'd better not change it.
     */
    typmod = VARHDRSZ + *tl;
 
@@ -66,7 +66,7 @@ anychar_typmodin(ArrayType *ta, const char *typename)
 static char *
 anychar_typmodout(int32 typmod)
 {
-   char    *res = (char *) palloc(64);
+   char       *res = (char *) palloc(64);
 
    if (typmod > VARHDRSZ)
        snprintf(res, 64, "(%d)", (int) (typmod - VARHDRSZ));
@@ -314,24 +314,24 @@ bpchar(PG_FUNCTION_ARGS)
        len = maxmblen;
 
        /*
-        * At this point, maxlen is the necessary byte length,
-        * not the number of CHARACTERS!
+        * At this point, maxlen is the necessary byte length, not the number
+        * of CHARACTERS!
         */
        maxlen = len;
    }
    else
    {
        /*
-        * At this point, maxlen is the necessary byte length,
-        * not the number of CHARACTERS!
+        * At this point, maxlen is the necessary byte length, not the number
+        * of CHARACTERS!
         */
        maxlen = len + (maxlen - charlen);
    }
 
    Assert(maxlen >= len);
 
-   result = palloc(maxlen+VARHDRSZ);
-   SET_VARSIZE(result, maxlen+VARHDRSZ);
+   result = palloc(maxlen + VARHDRSZ);
+   SET_VARSIZE(result, maxlen + VARHDRSZ);
    r = VARDATA(result);
 
    memcpy(r, s, len);
@@ -369,7 +369,7 @@ Datum
 bpchar_name(PG_FUNCTION_ARGS)
 {
    BpChar     *s = PG_GETARG_BPCHAR_PP(0);
-   char       *s_data;
+   char       *s_data;
    Name        result;
    int         len;
 
@@ -422,7 +422,7 @@ name_bpchar(PG_FUNCTION_ARGS)
 Datum
 bpchartypmodin(PG_FUNCTION_ARGS)
 {
-   ArrayType   *ta = PG_GETARG_ARRAYTYPE_P(0);
+   ArrayType  *ta = PG_GETARG_ARRAYTYPE_P(0);
 
    PG_RETURN_INT32(anychar_typmodin(ta, "char"));
 }
@@ -430,7 +430,7 @@ bpchartypmodin(PG_FUNCTION_ARGS)
 Datum
 bpchartypmodout(PG_FUNCTION_ARGS)
 {
-   int32 typmod = PG_GETARG_INT32(0);
+   int32       typmod = PG_GETARG_INT32(0);
 
    PG_RETURN_CSTRING(anychar_typmodout(typmod));
 }
@@ -579,10 +579,11 @@ varchar(PG_FUNCTION_ARGS)
    int32       typmod = PG_GETARG_INT32(1);
    bool        isExplicit = PG_GETARG_BOOL(2);
    VarChar    *result;
-   int32       len, maxlen;
+   int32       len,
+               maxlen;
    size_t      maxmblen;
    int         i;
-   char       *s_data;
+   char       *s_data;
 
    len = VARSIZE_ANY_EXHDR(source);
    s_data = VARDATA_ANY(source);
@@ -603,8 +604,8 @@ varchar(PG_FUNCTION_ARGS)
            if (s_data[i] != ' ')
                ereport(ERROR,
                        (errcode(ERRCODE_STRING_DATA_RIGHT_TRUNCATION),
-                        errmsg("value too long for type character varying(%d)",
-                               maxlen)));
+                     errmsg("value too long for type character varying(%d)",
+                            maxlen)));
    }
 
    result = palloc(maxmblen + VARHDRSZ);
@@ -617,7 +618,7 @@ varchar(PG_FUNCTION_ARGS)
 Datum
 varchartypmodin(PG_FUNCTION_ARGS)
 {
-   ArrayType   *ta = PG_GETARG_ARRAYTYPE_P(0);
+   ArrayType  *ta = PG_GETARG_ARRAYTYPE_P(0);
 
    PG_RETURN_INT32(anychar_typmodin(ta, "varchar"));
 }
@@ -625,7 +626,7 @@ varchartypmodin(PG_FUNCTION_ARGS)
 Datum
 varchartypmodout(PG_FUNCTION_ARGS)
 {
-   int32 typmod = PG_GETARG_INT32(0);
+   int32       typmod = PG_GETARG_INT32(0);
 
    PG_RETURN_CSTRING(anychar_typmodout(typmod));
 }
@@ -671,7 +672,7 @@ bpcharlen(PG_FUNCTION_ARGS)
 Datum
 bpcharoctetlen(PG_FUNCTION_ARGS)
 {
-   Datum      arg = PG_GETARG_DATUM(0);
+   Datum       arg = PG_GETARG_DATUM(0);
 
    /* We need not detoast the input at all */
    PG_RETURN_INT32(toast_raw_datum_size(arg) - VARHDRSZ);
index 5ef1b0c3377e626e31e34d0e1c56fc8760d2ed35..e71bb81f83800a27deef97dc31b2c8a6d53dd3d7 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/varlena.c,v 1.159 2007/09/22 04:40:03 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/varlena.c,v 1.160 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -40,7 +40,7 @@ typedef struct
    pg_wchar   *wstr2;          /* note: these are palloc'd */
    int         len1;           /* string lengths in logical characters */
    int         len2;
-} TextPositionState;
+}  TextPositionState;
 
 #define DatumGetUnknownP(X)            ((unknown *) PG_DETOAST_DATUM(X))
 #define DatumGetUnknownPCopy(X)        ((unknown *) PG_DETOAST_DATUM_COPY(X))
@@ -60,9 +60,9 @@ typedef struct
 static int text_cmp(text *arg1, text *arg2);
 static int32 text_length(Datum str);
 static int text_position(text *t1, text *t2);
-static void text_position_setup(text *t1, text *t2, TextPositionState *state);
-static int text_position_next(int start_pos, TextPositionState *state);
-static void text_position_cleanup(TextPositionState *state);
+static void text_position_setup(text *t1, text *t2, TextPositionState * state);
+static int text_position_next(int start_pos, TextPositionState * state);
+static void text_position_cleanup(TextPositionState * state);
 static text *text_substring(Datum str,
               int32 start,
               int32 length,
@@ -414,7 +414,7 @@ text_length(Datum str)
    {
        text       *t = DatumGetTextPP(str);
 
-       PG_RETURN_INT32(pg_mbstrlen_with_len(VARDATA_ANY(t), 
+       PG_RETURN_INT32(pg_mbstrlen_with_len(VARDATA_ANY(t),
                                             VARSIZE_ANY_EXHDR(t)));
    }
 }
@@ -680,8 +680,8 @@ text_substring(Datum str, int32 start, int32 length, bool length_not_specified)
        }
 
        /*
-        * If we're working with an untoasted source, no need to do an
-        * extra copying step.
+        * If we're working with an untoasted source, no need to do an extra
+        * copying step.
         */
        if (VARATT_IS_COMPRESSED(str) || VARATT_IS_EXTERNAL(str))
            slice = DatumGetTextPSlice(str, slice_start, slice_size);
@@ -807,7 +807,7 @@ text_position(text *t1, text *t2)
  */
 
 static void
-text_position_setup(text *t1, text *t2, TextPositionState *state)
+text_position_setup(text *t1, text *t2, TextPositionState * state)
 {
    int         len1 = VARSIZE_ANY_EXHDR(t1);
    int         len2 = VARSIZE_ANY_EXHDR(t2);
@@ -841,7 +841,7 @@ text_position_setup(text *t1, text *t2, TextPositionState *state)
 }
 
 static int
-text_position_next(int start_pos, TextPositionState *state)
+text_position_next(int start_pos, TextPositionState * state)
 {
    int         pos = 0,
                p,
@@ -899,7 +899,7 @@ text_position_next(int start_pos, TextPositionState *state)
 }
 
 static void
-text_position_cleanup(TextPositionState *state)
+text_position_cleanup(TextPositionState * state)
 {
    if (state->use_wchar)
    {
@@ -1064,7 +1064,7 @@ text_cmp(text *arg1, text *arg2)
 
    len1 = VARSIZE_ANY_EXHDR(arg1);
    len2 = VARSIZE_ANY_EXHDR(arg2);
-   
+
    return varstr_cmp(a1p, len1, a2p, len2);
 }
 
@@ -2219,7 +2219,7 @@ check_replace_text_has_escape_char(const text *replace_text)
  * appendStringInfoRegexpSubstr
  *
  * Append replace_text to str, substituting regexp back references for
- * \n escapes.  start_ptr is the start of the match in the source string,
+ * \n escapes. start_ptr is the start of the match in the source string,
  * at logical character position data_pos.
  */
 static void
@@ -2302,8 +2302,8 @@ appendStringInfoRegexpSubstr(StringInfo str, text *replace_text,
        if (so != -1 && eo != -1)
        {
            /*
-            * Copy the text that is back reference of regexp.  Note so and
-            * eo are counted in characters not bytes.
+            * Copy the text that is back reference of regexp.  Note so and eo
+            * are counted in characters not bytes.
             */
            char       *chunk_start;
            int         chunk_len;
@@ -2386,8 +2386,8 @@ replace_text_regexp(text *src_text, void *regexp,
        }
 
        /*
-        * Copy the text to the left of the match position.  Note we are
-        * given character not byte indexes.
+        * Copy the text to the left of the match position.  Note we are given
+        * character not byte indexes.
         */
        if (pmatch[0].rm_so - data_pos > 0)
        {
@@ -2396,9 +2396,10 @@ replace_text_regexp(text *src_text, void *regexp,
            chunk_len = charlen_to_bytelen(start_ptr,
                                           pmatch[0].rm_so - data_pos);
            appendBinaryStringInfo(&buf, start_ptr, chunk_len);
+
            /*
-            * Advance start_ptr over that text, to avoid multiple rescans
-            * of it if the replace_text contains multiple back-references.
+            * Advance start_ptr over that text, to avoid multiple rescans of
+            * it if the replace_text contains multiple back-references.
             */
            start_ptr += chunk_len;
            data_pos = pmatch[0].rm_so;
index e9d9703c9f76ebe222a471f1e8f047bbd33af732..98fe39871f50695fdcf955a090bea382bd17aa0f 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/utils/adt/xml.c,v 1.56 2007/11/10 19:29:54 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/xml.c,v 1.57 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -19,7 +19,7 @@
  * fail.  For one thing, this avoids having to manage variant catalog
  * installations.  But it also has nice effects such as that you can
  * dump a database containing XML type data even if the server is not
- * linked with libxml.  Thus, make sure xml_out() works even if nothing
+ * linked with libxml. Thus, make sure xml_out() works even if nothing
  * else does.
  */
 
@@ -49,7 +49,7 @@
 #include <libxml/xmlwriter.h>
 #include <libxml/xpath.h>
 #include <libxml/xpathInternals.h>
-#endif /* USE_LIBXML */
+#endif   /* USE_LIBXML */
 
 #include "catalog/namespace.h"
 #include "catalog/pg_type.h"
@@ -81,40 +81,39 @@ XmlOptionType xmloption;
 
 static StringInfo xml_err_buf = NULL;
 
-static void    xml_init(void);
-static void    *xml_palloc(size_t size);
-static void    *xml_repalloc(void *ptr, size_t size);
-static void    xml_pfree(void *ptr);
-static char    *xml_pstrdup(const char *string);
-static void    xml_ereport(int level, int sqlcode, const char *msg);
-static void    xml_errorHandler(void *ctxt, const char *msg, ...);
-static void    xml_ereport_by_code(int level, int sqlcode,
-                                   const char *msg, int errcode);
+static void xml_init(void);
+static void *xml_palloc(size_t size);
+static void *xml_repalloc(void *ptr, size_t size);
+static void xml_pfree(void *ptr);
+static char *xml_pstrdup(const char *string);
+static void xml_ereport(int level, int sqlcode, const char *msg);
+static void xml_errorHandler(void *ctxt, const char *msg,...);
+static void xml_ereport_by_code(int level, int sqlcode,
+                   const char *msg, int errcode);
 static xmlChar *xml_text2xmlChar(text *in);
-static int     parse_xml_decl(const xmlChar *str, size_t *lenp,
-                              xmlChar **version, xmlChar **encoding, int *standalone);
-static bool        print_xml_decl(StringInfo buf, const xmlChar *version,
-                              pg_enc encoding, int standalone);
+static int parse_xml_decl(const xmlChar * str, size_t *lenp,
+              xmlChar ** version, xmlChar ** encoding, int *standalone);
+static bool print_xml_decl(StringInfo buf, const xmlChar * version,
+              pg_enc encoding, int standalone);
 static xmlDocPtr xml_parse(text *data, XmlOptionType xmloption_arg,
-                          bool preserve_whitespace, xmlChar *encoding);
-static text        *xml_xmlnodetoxmltype(xmlNodePtr cur);
-
-#endif /* USE_LIBXML */
+         bool preserve_whitespace, xmlChar * encoding);
+static text *xml_xmlnodetoxmltype(xmlNodePtr cur);
+#endif   /* USE_LIBXML */
 
 static StringInfo query_to_xml_internal(const char *query, char *tablename,
                      const char *xmlschema, bool nulls, bool tableforest,
                      const char *targetns, bool top_level);
 static const char *map_sql_table_to_xmlschema(TupleDesc tupdesc, Oid relid,
-                          bool nulls, bool tableforest, const char *targetns);
+                        bool nulls, bool tableforest, const char *targetns);
 static const char *map_sql_schema_to_xmlschema_types(Oid nspid,
                                  List *relid_list, bool nulls,
                                  bool tableforest, const char *targetns);
 static const char *map_sql_catalog_to_xmlschema_types(List *nspid_list,
                                   bool nulls, bool tableforest,
                                   const char *targetns);
-static const char * map_sql_type_to_xml_name(Oid typeoid, int typmod);
-static const char * map_sql_typecoll_to_xmlschema_types(List *tupdesc_list);
-static const char * map_sql_type_to_xmlschema_type(Oid typeoid, int typmod);
+static const char *map_sql_type_to_xml_name(Oid typeoid, int typmod);
+static const char *map_sql_typecoll_to_xmlschema_types(List *tupdesc_list);
+static const char *map_sql_type_to_xmlschema_type(Oid typeoid, int typmod);
 static void SPI_sql_row_to_xmlelement(int rownum, StringInfo result,
                          char *tablename, bool nulls, bool tableforest,
                          const char *targetns, bool top_level);
@@ -140,9 +139,9 @@ static void SPI_sql_row_to_xmlelement(int rownum, StringInfo result,
 #ifdef USE_LIBXML
 
 static int
-xmlChar_to_encoding(xmlChar *encoding_name)
+xmlChar_to_encoding(xmlChar * encoding_name)
 {
-   int     encoding = pg_char_to_encoding((char *) encoding_name);
+   int         encoding = pg_char_to_encoding((char *) encoding_name);
 
    if (encoding < 0)
        ereport(ERROR,
@@ -151,7 +150,6 @@ xmlChar_to_encoding(xmlChar *encoding_name)
                        (char *) encoding_name)));
    return encoding;
 }
-
 #endif
 
 
@@ -159,10 +157,10 @@ Datum
 xml_in(PG_FUNCTION_ARGS)
 {
 #ifdef USE_LIBXML
-   char        *s = PG_GETARG_CSTRING(0);
+   char       *s = PG_GETARG_CSTRING(0);
    size_t      len;
-   xmltype     *vardata;
-   xmlDocPtr    doc;
+   xmltype    *vardata;
+   xmlDocPtr   doc;
 
    len = strlen(s);
    vardata = palloc(len + VARHDRSZ);
@@ -170,8 +168,8 @@ xml_in(PG_FUNCTION_ARGS)
    memcpy(VARDATA(vardata), s, len);
 
    /*
-    * Parse the data to check if it is well-formed XML data.  Assume
-    * that ERROR occurred if parsing failed.
+    * Parse the data to check if it is well-formed XML data.  Assume that
+    * ERROR occurred if parsing failed.
     */
    doc = xml_parse(vardata, xmloption, true, NULL);
    xmlFreeDoc(doc);
@@ -188,13 +186,14 @@ xml_in(PG_FUNCTION_ARGS)
 
 
 static char *
-xml_out_internal(xmltype *x, pg_enc target_encoding)
+xml_out_internal(xmltype * x, pg_enc target_encoding)
 {
-   char        *str;
+   char       *str;
    size_t      len;
+
 #ifdef USE_LIBXML
-   xmlChar     *version;
-   xmlChar     *encoding;
+   xmlChar    *version;
+   xmlChar    *encoding;
    int         standalone;
    int         res_code;
 #endif
@@ -206,7 +205,7 @@ xml_out_internal(xmltype *x, pg_enc target_encoding)
 
 #ifdef USE_LIBXML
    if ((res_code = parse_xml_decl((xmlChar *) str,
-                                  &len, &version, &encoding, &standalone)) == 0)
+                              &len, &version, &encoding, &standalone)) == 0)
    {
        StringInfoData buf;
 
@@ -215,9 +214,9 @@ xml_out_internal(xmltype *x, pg_enc target_encoding)
        if (!print_xml_decl(&buf, version, target_encoding, standalone))
        {
            /*
-            * If we are not going to produce an XML declaration, eat
-            * a single newline in the original string to prevent
-            * empty first lines in the output.
+            * If we are not going to produce an XML declaration, eat a single
+            * newline in the original string to prevent empty first lines in
+            * the output.
             */
            if (*(str + len) == '\n')
                len += 1;
@@ -238,13 +237,13 @@ xml_out_internal(xmltype *x, pg_enc target_encoding)
 Datum
 xml_out(PG_FUNCTION_ARGS)
 {
-   xmltype    *x = PG_GETARG_XML_P(0);
+   xmltype    *x = PG_GETARG_XML_P(0);
 
    /*
-    * xml_out removes the encoding property in all cases.  This is
-    * because we cannot control from here whether the datum will be
-    * converted to a different client encoding, so we'd do more harm
-    * than good by including it.
+    * xml_out removes the encoding property in all cases.  This is because we
+    * cannot control from here whether the datum will be converted to a
+    * different client encoding, so we'd do more harm than good by including
+    * it.
     */
    PG_RETURN_CSTRING(xml_out_internal(x, 0));
 }
@@ -255,17 +254,17 @@ xml_recv(PG_FUNCTION_ARGS)
 {
 #ifdef USE_LIBXML
    StringInfo  buf = (StringInfo) PG_GETARG_POINTER(0);
-   xmltype    *result;
+   xmltype    *result;
    char       *str;
    char       *newstr;
    int         nbytes;
    xmlDocPtr   doc;
-   xmlChar    *encoding = NULL;
+   xmlChar    *encoding = NULL;
 
    /*
-    * Read the data in raw format. We don't know yet what the encoding
-    * is, as that information is embedded in the xml declaration; so we
-    * have to parse that before converting to server encoding.
+    * Read the data in raw format. We don't know yet what the encoding is, as
+    * that information is embedded in the xml declaration; so we have to
+    * parse that before converting to server encoding.
     */
    nbytes = buf->len - buf->cursor;
    str = (char *) pq_getmsgbytes(buf, nbytes);
@@ -284,8 +283,8 @@ xml_recv(PG_FUNCTION_ARGS)
    parse_xml_decl((xmlChar *) str, NULL, NULL, &encoding, NULL);
 
    /*
-    * Parse the data to check if it is well-formed XML data.  Assume
-    * that xml_parse will throw ERROR if not.
+    * Parse the data to check if it is well-formed XML data.  Assume that
+    * xml_parse will throw ERROR if not.
     */
    doc = xml_parse(result, xmloption, true, encoding);
    xmlFreeDoc(doc);
@@ -294,7 +293,7 @@ xml_recv(PG_FUNCTION_ARGS)
    newstr = (char *) pg_do_encoding_conversion((unsigned char *) str,
                                                nbytes,
                                                encoding ?
-                                               xmlChar_to_encoding(encoding) :
+                                             xmlChar_to_encoding(encoding) :
                                                PG_UTF8,
                                                GetDatabaseEncoding());
 
@@ -322,13 +321,13 @@ xml_recv(PG_FUNCTION_ARGS)
 Datum
 xml_send(PG_FUNCTION_ARGS)
 {
-   xmltype    *x = PG_GETARG_XML_P(0);
+   xmltype    *x = PG_GETARG_XML_P(0);
    char       *outval;
    StringInfoData buf;
-   
+
    /*
-    * xml_out_internal doesn't convert the encoding, it just prints
-    * the right declaration. pq_sendtext will do the conversion.
+    * xml_out_internal doesn't convert the encoding, it just prints the right
+    * declaration. pq_sendtext will do the conversion.
     */
    outval = xml_out_internal(x, pg_get_client_encoding());
 
@@ -351,8 +350,8 @@ appendStringInfoText(StringInfo str, const text *t)
 static xmltype *
 stringinfo_to_xmltype(StringInfo buf)
 {
-   int32 len;
-   xmltype *result;
+   int32       len;
+   xmltype    *result;
 
    len = buf->len + VARHDRSZ;
    result = palloc(len);
@@ -367,7 +366,7 @@ static xmltype *
 cstring_to_xmltype(const char *string)
 {
    int32       len;
-   xmltype    *result;
+   xmltype    *result;
 
    len = strlen(string) + VARHDRSZ;
    result = palloc(len);
@@ -383,7 +382,7 @@ static xmltype *
 xmlBuffer_to_xmltype(xmlBufferPtr buf)
 {
    int32       len;
-   xmltype    *result;
+   xmltype    *result;
 
    len = xmlBufferLength(buf) + VARHDRSZ;
    result = palloc(len);
@@ -399,11 +398,11 @@ Datum
 xmlcomment(PG_FUNCTION_ARGS)
 {
 #ifdef USE_LIBXML
-   text *arg = PG_GETARG_TEXT_P(0);
-   char *argdata = VARDATA(arg);
-   int len =  VARSIZE(arg) - VARHDRSZ;
+   text       *arg = PG_GETARG_TEXT_P(0);
+   char       *argdata = VARDATA(arg);
+   int         len = VARSIZE(arg) - VARHDRSZ;
    StringInfoData buf;
-   int i;
+   int         i;
 
    /* check for "--" in string or "-" at the end */
    for (i = 1; i < len; i++)
@@ -434,14 +433,14 @@ xmlcomment(PG_FUNCTION_ARGS)
 
 /*
  * TODO: xmlconcat needs to merge the notations and unparsed entities
- * of the argument values.  Not very important in practice, though.
+ * of the argument values. Not very important in practice, though.
  */
 xmltype *
 xmlconcat(List *args)
 {
 #ifdef USE_LIBXML
    int         global_standalone = 1;
-   xmlChar    *global_version = NULL;
+   xmlChar    *global_version = NULL;
    bool        global_version_no_value = false;
    StringInfoData buf;
    ListCell   *v;
@@ -449,9 +448,9 @@ xmlconcat(List *args)
    initStringInfo(&buf);
    foreach(v, args)
    {
-       xmltype    *x = DatumGetXmlP(PointerGetDatum(lfirst(v)));
+       xmltype    *x = DatumGetXmlP(PointerGetDatum(lfirst(v)));
        size_t      len;
-       xmlChar    *version;
+       xmlChar    *version;
        int         standalone;
        char       *str;
 
@@ -534,14 +533,14 @@ texttoxml(PG_FUNCTION_ARGS)
 Datum
 xmltotext(PG_FUNCTION_ARGS)
 {
-   xmltype    *data = PG_GETARG_XML_P(0);
+   xmltype    *data = PG_GETARG_XML_P(0);
 
    PG_RETURN_TEXT_P(xmltotext_with_xmloption(data, xmloption));
 }
 
 
 text *
-xmltotext_with_xmloption(xmltype *data, XmlOptionType xmloption_arg)
+xmltotext_with_xmloption(xmltype * data, XmlOptionType xmloption_arg)
 {
    if (xmloption_arg == XMLOPTION_DOCUMENT && !xml_is_document(data))
        ereport(ERROR,
@@ -554,11 +553,11 @@ xmltotext_with_xmloption(xmltype *data, XmlOptionType xmloption_arg)
 
 
 xmltype *
-xmlelement(XmlExprState *xmlExpr, ExprContext *econtext)
+xmlelement(XmlExprState * xmlExpr, ExprContext *econtext)
 {
 #ifdef USE_LIBXML
-   XmlExpr    *xexpr = (XmlExpr *) xmlExpr->xprstate.expr;
-   xmltype    *result;
+   XmlExpr    *xexpr = (XmlExpr *) xmlExpr->xprstate.expr;
+   xmltype    *result;
    List       *named_arg_strings;
    List       *arg_strings;
    int         i;
@@ -568,16 +567,16 @@ xmlelement(XmlExprState *xmlExpr, ExprContext *econtext)
    xmlTextWriterPtr writer;
 
    /*
-    * We first evaluate all the arguments, then start up libxml and
-    * create the result.  This avoids issues if one of the arguments
-    * involves a call to some other function or subsystem that wants to use
-    * libxml on its own terms.
+    * We first evaluate all the arguments, then start up libxml and create
+    * the result.  This avoids issues if one of the arguments involves a call
+    * to some other function or subsystem that wants to use libxml on its own
+    * terms.
     */
    named_arg_strings = NIL;
    i = 0;
    foreach(arg, xmlExpr->named_args)
    {
-       ExprState   *e = (ExprState *) lfirst(arg);
+       ExprState  *e = (ExprState *) lfirst(arg);
        Datum       value;
        bool        isnull;
        char       *str;
@@ -594,7 +593,7 @@ xmlelement(XmlExprState *xmlExpr, ExprContext *econtext)
    arg_strings = NIL;
    foreach(arg, xmlExpr->args)
    {
-       ExprState   *e = (ExprState *) lfirst(arg);
+       ExprState  *e = (ExprState *) lfirst(arg);
        Datum       value;
        bool        isnull;
        char       *str;
@@ -619,8 +618,8 @@ xmlelement(XmlExprState *xmlExpr, ExprContext *econtext)
 
    forboth(arg, named_arg_strings, narg, xexpr->arg_names)
    {
-       char    *str = (char *) lfirst(arg);
-       char    *argname = strVal(lfirst(narg));
+       char       *str = (char *) lfirst(arg);
+       char       *argname = strVal(lfirst(narg));
 
        if (str)
        {
@@ -633,7 +632,7 @@ xmlelement(XmlExprState *xmlExpr, ExprContext *econtext)
 
    foreach(arg, arg_strings)
    {
-       char    *str = (char *) lfirst(arg);
+       char       *str = (char *) lfirst(arg);
 
        xmlTextWriterWriteRaw(writer, (xmlChar *) str);
    }
@@ -673,22 +672,22 @@ xmltype *
 xmlpi(char *target, text *arg, bool arg_is_null, bool *result_is_null)
 {
 #ifdef USE_LIBXML
-   xmltype *result;
+   xmltype    *result;
    StringInfoData buf;
 
    if (pg_strcasecmp(target, "xml") == 0)
        ereport(ERROR,
-               (errcode(ERRCODE_SYNTAX_ERROR), /* really */
+               (errcode(ERRCODE_SYNTAX_ERROR), /* really */
                 errmsg("invalid XML processing instruction"),
                 errdetail("XML processing instruction target name cannot be \"%s\".", target)));
 
    /*
-    * Following the SQL standard, the null check comes after the
-    * syntax check above.
+    * Following the SQL standard, the null check comes after the syntax check
+    * above.
     */
    *result_is_null = arg_is_null;
    if (*result_is_null)
-       return NULL;        
+       return NULL;
 
    initStringInfo(&buf);
 
@@ -696,14 +695,14 @@ xmlpi(char *target, text *arg, bool arg_is_null, bool *result_is_null)
 
    if (arg != NULL)
    {
-       char *string;
+       char       *string;
 
        string = _textout(arg);
        if (strstr(string, "?>") != NULL)
-       ereport(ERROR,
-               (errcode(ERRCODE_INVALID_XML_PROCESSING_INSTRUCTION),
-                errmsg("invalid XML processing instruction"),
-                errdetail("XML processing instruction cannot contain \"?>\".")));
+           ereport(ERROR,
+                   (errcode(ERRCODE_INVALID_XML_PROCESSING_INSTRUCTION),
+                    errmsg("invalid XML processing instruction"),
+           errdetail("XML processing instruction cannot contain \"?>\".")));
 
        appendStringInfoChar(&buf, ' ');
        appendStringInfoString(&buf, string + strspn(string, " "));
@@ -722,12 +721,12 @@ xmlpi(char *target, text *arg, bool arg_is_null, bool *result_is_null)
 
 
 xmltype *
-xmlroot(xmltype *data, text *version, int standalone)
+xmlroot(xmltype * data, text *version, int standalone)
 {
 #ifdef USE_LIBXML
    char       *str;
    size_t      len;
-   xmlChar    *orig_version;
+   xmlChar    *orig_version;
    int         orig_standalone;
    StringInfoData buf;
 
@@ -781,12 +780,12 @@ Datum
 xmlvalidate(PG_FUNCTION_ARGS)
 {
 #ifdef USE_LIBXML
-   text                *data = PG_GETARG_TEXT_P(0);
-   text                *dtdOrUri = PG_GETARG_TEXT_P(1);
-   bool                result = false;
-   xmlParserCtxtPtr    ctxt = NULL;
-   xmlDocPtr           doc = NULL;
-   xmlDtdPtr           dtd = NULL;
+   text       *data = PG_GETARG_TEXT_P(0);
+   text       *dtdOrUri = PG_GETARG_TEXT_P(1);
+   bool        result = false;
+   xmlParserCtxtPtr ctxt = NULL;
+   xmlDocPtr   doc = NULL;
+   xmlDtdPtr   dtd = NULL;
 
    xml_init();
 
@@ -864,15 +863,15 @@ xmlvalidate(PG_FUNCTION_ARGS)
    PG_END_TRY();
 
    PG_RETURN_BOOL(result);
-#else /* not USE_LIBXML */
+#else                          /* not USE_LIBXML */
    NO_XML_SUPPORT();
    return 0;
-#endif /* not USE_LIBXML */
+#endif   /* not USE_LIBXML */
 }
 
 
 bool
-xml_is_document(xmltype *arg)
+xml_is_document(xmltype * arg)
 {
 #ifdef USE_LIBXML
    bool        result;
@@ -886,7 +885,7 @@ xml_is_document(xmltype *arg)
    }
    PG_CATCH();
    {
-       ErrorData *errdata;
+       ErrorData  *errdata;
        MemoryContext ecxt;
 
        ecxt = MemoryContextSwitchTo(ccxt);
@@ -908,10 +907,10 @@ xml_is_document(xmltype *arg)
        xmlFreeDoc(doc);
 
    return result;
-#else /* not USE_LIBXML */
+#else                          /* not USE_LIBXML */
    NO_XML_SUPPORT();
    return false;
-#endif /* not USE_LIBXML */
+#endif   /* not USE_LIBXML */
 }
 
 
@@ -935,8 +934,8 @@ xml_init(void)
        MemoryContext oldcontext;
 
        /*
-        * Currently, we have no pure UTF-8 support for internals -- check
-        * if we can work.
+        * Currently, we have no pure UTF-8 support for internals -- check if
+        * we can work.
         */
        if (sizeof(char) != sizeof(xmlChar))
            ereport(ERROR,
@@ -970,8 +969,8 @@ xml_init(void)
         * We re-establish the callback functions every time.  This makes it
         * safe for other subsystems (PL/Perl, say) to also use libxml with
         * their own callbacks ... so long as they likewise set up the
-        * callbacks on every use.  It's cheap enough to not be worth
-        * worrying about, anyway.
+        * callbacks on every use.  It's cheap enough to not be worth worrying
+        * about, anyway.
         */
        xmlSetGenericErrorFunc(NULL, xml_errorHandler);
        xmlMemSetup(xml_pfree, xml_palloc, xml_repalloc, xml_pstrdup);
@@ -1007,8 +1006,8 @@ xml_init(void)
            || xmlIsExtender_ch(c))
 
 static int
-parse_xml_decl(const xmlChar *str, size_t *lenp,
-              xmlChar **version, xmlChar **encoding, int *standalone)
+parse_xml_decl(const xmlChar * str, size_t *lenp,
+              xmlChar ** version, xmlChar ** encoding, int *standalone)
 {
    const xmlChar *p;
    const xmlChar *save_p;
@@ -1027,12 +1026,12 @@ parse_xml_decl(const xmlChar *str, size_t *lenp,
 
    p = str;
 
-   if (xmlStrncmp(p, (xmlChar *)"<?xml", 5) != 0)
+   if (xmlStrncmp(p, (xmlChar *) "<?xml", 5) != 0)
        goto finished;
 
    /* if next char is name char, it's a PI like <?xml-stylesheet ...?> */
-   utf8len = strlen((const char *) (p+5));
-   utf8char = xmlGetUTF8Char(p+5, &utf8len);
+   utf8len = strlen((const char *) (p + 5));
+   utf8char = xmlGetUTF8Char(p + 5, &utf8len);
    if (PG_XMLISNAMECHAR(utf8char))
        goto finished;
 
@@ -1041,7 +1040,7 @@ parse_xml_decl(const xmlChar *str, size_t *lenp,
    /* version */
    CHECK_XML_SPACE(p);
    SKIP_XML_SPACE(p);
-   if (xmlStrncmp(p, (xmlChar *)"version", 7) != 0)
+   if (xmlStrncmp(p, (xmlChar *) "version", 7) != 0)
        return XML_ERR_VERSION_MISSING;
    p += 7;
    SKIP_XML_SPACE(p);
@@ -1068,7 +1067,7 @@ parse_xml_decl(const xmlChar *str, size_t *lenp,
    /* encoding */
    save_p = p;
    SKIP_XML_SPACE(p);
-   if (xmlStrncmp(p, (xmlChar *)"encoding", 8) == 0)
+   if (xmlStrncmp(p, (xmlChar *) "encoding", 8) == 0)
    {
        CHECK_XML_SPACE(save_p);
        p += 8;
@@ -1087,7 +1086,7 @@ parse_xml_decl(const xmlChar *str, size_t *lenp,
                return XML_ERR_MISSING_ENCODING;
 
            if (encoding)
-           *encoding = xmlStrndup(p + 1, q - p - 1);
+               *encoding = xmlStrndup(p + 1, q - p - 1);
            p = q + 1;
        }
        else
@@ -1101,7 +1100,7 @@ parse_xml_decl(const xmlChar *str, size_t *lenp,
    /* standalone */
    save_p = p;
    SKIP_XML_SPACE(p);
-   if (xmlStrncmp(p, (xmlChar *)"standalone", 10) == 0)
+   if (xmlStrncmp(p, (xmlChar *) "standalone", 10) == 0)
    {
        CHECK_XML_SPACE(save_p);
        p += 10;
@@ -1110,12 +1109,12 @@ parse_xml_decl(const xmlChar *str, size_t *lenp,
            return XML_ERR_STANDALONE_VALUE;
        p += 1;
        SKIP_XML_SPACE(p);
-       if (xmlStrncmp(p, (xmlChar *)"'yes'", 5) == 0 || xmlStrncmp(p, (xmlChar *)"\"yes\"", 5) == 0)
+       if (xmlStrncmp(p, (xmlChar *) "'yes'", 5) == 0 || xmlStrncmp(p, (xmlChar *) "\"yes\"", 5) == 0)
        {
            *standalone = 1;
            p += 5;
        }
-       else if (xmlStrncmp(p, (xmlChar *)"'no'", 4) == 0 || xmlStrncmp(p, (xmlChar *)"\"no\"", 4) == 0)
+       else if (xmlStrncmp(p, (xmlChar *) "'no'", 4) == 0 || xmlStrncmp(p, (xmlChar *) "\"no\"", 4) == 0)
        {
            *standalone = 0;
            p += 4;
@@ -1129,7 +1128,7 @@ parse_xml_decl(const xmlChar *str, size_t *lenp,
    }
 
    SKIP_XML_SPACE(p);
-   if (xmlStrncmp(p, (xmlChar *)"?>", 2) != 0)
+   if (xmlStrncmp(p, (xmlChar *) "?>", 2) != 0)
        return XML_ERR_XMLDECL_NOT_FINISHED;
    p += 2;
 
@@ -1149,7 +1148,7 @@ finished:
 
 /*
  * Write an XML declaration.  On output, we adjust the XML declaration
- * as follows.  (These rules are the moral equivalent of the clause
+ * as follows. (These rules are the moral equivalent of the clause
  * "Serialization of an XML value" in the SQL standard.)
  *
  * We try to avoid generating an XML declaration if possible.  This is
@@ -1162,7 +1161,7 @@ finished:
  * which is the default version specified in SQL:2003.
  */
 static bool
-print_xml_decl(StringInfo buf, const xmlChar *version,
+print_xml_decl(StringInfo buf, const xmlChar * version,
               pg_enc encoding, int standalone)
 {
    xml_init();
@@ -1181,8 +1180,8 @@ print_xml_decl(StringInfo buf, const xmlChar *version,
        if (encoding && encoding != PG_UTF8)
        {
            /*
-            * XXX might be useful to convert this to IANA names
-            * (ISO-8859-1 instead of LATIN1 etc.); needs field experience
+            * XXX might be useful to convert this to IANA names (ISO-8859-1
+            * instead of LATIN1 etc.); needs field experience
             */
            appendStringInfo(buf, " encoding=\"%s\"",
                             pg_encoding_to_char(encoding));
@@ -1209,15 +1208,15 @@ print_xml_decl(StringInfo buf, const xmlChar *version,
  */
 static xmlDocPtr
 xml_parse(text *data, XmlOptionType xmloption_arg, bool preserve_whitespace,
-         xmlChar *encoding)
+         xmlChar * encoding)
 {
-   int32               len;
-   xmlChar             *string;
-   xmlChar             *utf8string;
-   xmlParserCtxtPtr    ctxt = NULL;
-   xmlDocPtr           doc = NULL;
+   int32       len;
+   xmlChar    *string;
+   xmlChar    *utf8string;
+   xmlParserCtxtPtr ctxt = NULL;
+   xmlDocPtr   doc = NULL;
 
-   len = VARSIZE(data) - VARHDRSZ; /* will be useful later */
+   len = VARSIZE(data) - VARHDRSZ;     /* will be useful later */
    string = xml_text2xmlChar(data);
 
    utf8string = pg_do_encoding_conversion(string,
@@ -1242,16 +1241,15 @@ xml_parse(text *data, XmlOptionType xmloption_arg, bool preserve_whitespace,
        {
            /*
             * Note, that here we try to apply DTD defaults
-            * (XML_PARSE_DTDATTR) according to SQL/XML:10.16.7.d:
-            * 'Default valies defined by internal DTD are applied'.
-            * As for external DTDs, we try to support them too, (see
-            * SQL/XML:10.16.7.e)
+            * (XML_PARSE_DTDATTR) according to SQL/XML:10.16.7.d: 'Default
+            * valies defined by internal DTD are applied'. As for external
+            * DTDs, we try to support them too, (see SQL/XML:10.16.7.e)
             */
            doc = xmlCtxtReadDoc(ctxt, utf8string,
                                 NULL,
                                 "UTF-8",
                                 XML_PARSE_NOENT | XML_PARSE_DTDATTR
-                                | (preserve_whitespace ? 0 : XML_PARSE_NOBLANKS));
+                          | (preserve_whitespace ? 0 : XML_PARSE_NOBLANKS));
            if (doc == NULL)
                xml_ereport(ERROR, ERRCODE_INVALID_XML_DOCUMENT,
                            "invalid XML document");
@@ -1259,16 +1257,16 @@ xml_parse(text *data, XmlOptionType xmloption_arg, bool preserve_whitespace,
        else
        {
            int         res_code;
-           size_t count;
-           xmlChar    *version = NULL;
-           int standalone = -1;
+           size_t      count;
+           xmlChar    *version = NULL;
+           int         standalone = -1;
 
            doc = xmlNewDoc(NULL);
 
            res_code = parse_xml_decl(utf8string, &count, &version, NULL, &standalone);
            if (res_code != 0)
                xml_ereport_by_code(ERROR, ERRCODE_INVALID_XML_CONTENT,
-                                   "invalid XML content: invalid XML declaration", res_code);
+                  "invalid XML content: invalid XML declaration", res_code);
 
            res_code = xmlParseBalancedChunkMemory(doc, NULL, NULL, 0, utf8string + count, NULL);
            if (res_code != 0)
@@ -1307,14 +1305,14 @@ xml_parse(text *data, XmlOptionType xmloption_arg, bool preserve_whitespace,
 static xmlChar *
 xml_text2xmlChar(text *in)
 {
-   int32       len = VARSIZE(in) - VARHDRSZ;
-   xmlChar     *res;
+   int32       len = VARSIZE(in) - VARHDRSZ;
+   xmlChar    *res;
 
    res = palloc(len + 1);
    memcpy(res, VARDATA(in), len);
    res[len] = '\0';
 
-   return(res);
+   return (res);
 }
 
 
@@ -1358,7 +1356,7 @@ xml_pstrdup(const char *string)
 static void
 xml_ereport(int level, int sqlcode, const char *msg)
 {
-   char *detail;
+   char       *detail;
 
    if (xml_err_buf->len > 0)
    {
@@ -1371,11 +1369,11 @@ xml_ereport(int level, int sqlcode, const char *msg)
    /* libxml error messages end in '\n'; get rid of it */
    if (detail)
    {
-       size_t len;
+       size_t      len;
 
        len = strlen(detail);
-       if (len > 0 && detail[len-1] == '\n')
-           detail[len-1] = '\0';
+       if (len > 0 && detail[len - 1] == '\n')
+           detail[len - 1] = '\0';
 
        ereport(level,
                (errcode(sqlcode),
@@ -1428,9 +1426,9 @@ static void
 xml_ereport_by_code(int level, int sqlcode,
                    const char *msg, int code)
 {
-    const char *det;
+   const char *det;
 
-    switch (code)
+   switch (code)
    {
        case XML_ERR_INVALID_CHAR:
            det = "Invalid character value";
@@ -1450,8 +1448,8 @@ xml_ereport_by_code(int level, int sqlcode,
        case XML_ERR_XMLDECL_NOT_FINISHED:
            det = "Parsing XML declaration: '?>' expected";
            break;
-        default:
-            det = "Unrecognized libxml error code: %d";
+       default:
+           det = "Unrecognized libxml error code: %d";
            break;
    }
 
@@ -1468,8 +1466,8 @@ xml_ereport_by_code(int level, int sqlcode,
 static pg_wchar
 sqlchar_to_unicode(char *s)
 {
-   char *utf8string;
-   pg_wchar ret[2];            /* need space for trailing zero */
+   char       *utf8string;
+   pg_wchar    ret[2];         /* need space for trailing zero */
 
    utf8string = (char *) pg_do_encoding_conversion((unsigned char *) s,
                                                    pg_mblen(s),
@@ -1501,7 +1499,7 @@ is_valid_xml_namechar(pg_wchar c)
            || xmlIsCombiningQ(c)
            || xmlIsExtenderQ(c));
 }
-#endif /* USE_LIBXML */
+#endif   /* USE_LIBXML */
 
 
 /*
@@ -1513,11 +1511,11 @@ map_sql_identifier_to_xml_name(char *ident, bool fully_escaped,
 {
 #ifdef USE_LIBXML
    StringInfoData buf;
-   char *p;
+   char       *p;
 
    /*
-    * SQL/XML doesn't make use of this case anywhere, so it's
-    * probably a mistake.
+    * SQL/XML doesn't make use of this case anywhere, so it's probably a
+    * mistake.
     */
    Assert(fully_escaped || !escape_period);
 
@@ -1527,7 +1525,7 @@ map_sql_identifier_to_xml_name(char *ident, bool fully_escaped,
    {
        if (*p == ':' && (p == ident || fully_escaped))
            appendStringInfo(&buf, "_x003A_");
-       else if (*p == '_' && *(p+1) == 'x')
+       else if (*p == '_' && *(p + 1) == 'x')
            appendStringInfo(&buf, "_x005F_");
        else if (fully_escaped && p == ident &&
                 pg_strncasecmp(p, "xml", 3) == 0)
@@ -1541,7 +1539,7 @@ map_sql_identifier_to_xml_name(char *ident, bool fully_escaped,
            appendStringInfo(&buf, "_x002E_");
        else
        {
-           pg_wchar u = sqlchar_to_unicode(p);
+           pg_wchar    u = sqlchar_to_unicode(p);
 
            if ((p == ident)
                ? !is_valid_xml_namefirst(u)
@@ -1553,10 +1551,10 @@ map_sql_identifier_to_xml_name(char *ident, bool fully_escaped,
    }
 
    return buf.data;
-#else /* not USE_LIBXML */
+#else                          /* not USE_LIBXML */
    NO_XML_SUPPORT();
    return NULL;
-#endif /* not USE_LIBXML */
+#endif   /* not USE_LIBXML */
 }
 
 
@@ -1566,7 +1564,7 @@ map_sql_identifier_to_xml_name(char *ident, bool fully_escaped,
 static char *
 unicode_to_sqlchar(pg_wchar c)
 {
-   static unsigned char utf8string[5]; /* need trailing zero */
+   static unsigned char utf8string[5]; /* need trailing zero */
 
    if (c <= 0x7F)
    {
@@ -1605,18 +1603,18 @@ char *
 map_xml_name_to_sql_identifier(char *name)
 {
    StringInfoData buf;
-   char *p;
+   char       *p;
 
    initStringInfo(&buf);
 
    for (p = name; *p; p += pg_mblen(p))
    {
-       if (*p == '_' && *(p+1) == 'x'
-           && isxdigit((unsigned char) *(p+2))
-           && isxdigit((unsigned char) *(p+3))
-           && isxdigit((unsigned char) *(p+4))
-           && isxdigit((unsigned char) *(p+5))
-           && *(p+6) == '_')
+       if (*p == '_' && *(p + 1) == 'x'
+           && isxdigit((unsigned char) *(p + 2))
+           && isxdigit((unsigned char) *(p + 3))
+           && isxdigit((unsigned char) *(p + 4))
+           && isxdigit((unsigned char) *(p + 5))
+           && *(p + 6) == '_')
        {
            unsigned int u;
 
@@ -1643,15 +1641,15 @@ map_sql_value_to_xml_value(Datum value, Oid type)
 
    if (type_is_array(type))
    {
-       ArrayType *array;
-       Oid elmtype;
-       int16 elmlen;
-       bool elmbyval;
-       char elmalign;
+       ArrayType  *array;
+       Oid         elmtype;
+       int16       elmlen;
+       bool        elmbyval;
+       char        elmalign;
        int         num_elems;
        Datum      *elem_values;
        bool       *elem_nulls;
-       int i;
+       int         i;
 
        array = DatumGetArrayTypeP(value);
        elmtype = ARR_ELEMTYPE(array);
@@ -1678,9 +1676,10 @@ map_sql_value_to_xml_value(Datum value, Oid type)
    }
    else
    {
-       Oid typeOut;
-       bool isvarlena;
-       char *p, *str;
+       Oid         typeOut;
+       bool        isvarlena;
+       char       *p,
+                  *str;
 
        /*
         * Special XSD formatting for some data types
@@ -1694,69 +1693,69 @@ map_sql_value_to_xml_value(Datum value, Oid type)
                    return "false";
 
            case DATEOID:
-           {
-               DateADT     date;
-               struct pg_tm tm;
-               char        buf[MAXDATELEN + 1];
+               {
+                   DateADT     date;
+                   struct pg_tm tm;
+                   char        buf[MAXDATELEN + 1];
 
-               date = DatumGetDateADT(value);
-               j2date(date + POSTGRES_EPOCH_JDATE,
-                      &(tm.tm_year), &(tm.tm_mon), &(tm.tm_mday));
-               EncodeDateOnly(&tm, USE_XSD_DATES, buf);
+                   date = DatumGetDateADT(value);
+                   j2date(date + POSTGRES_EPOCH_JDATE,
+                          &(tm.tm_year), &(tm.tm_mon), &(tm.tm_mday));
+                   EncodeDateOnly(&tm, USE_XSD_DATES, buf);
 
-               return pstrdup(buf);
-           }
+                   return pstrdup(buf);
+               }
 
            case TIMESTAMPOID:
-           {
-               Timestamp   timestamp;
-               struct pg_tm tm;
-               fsec_t      fsec;
-               char       *tzn = NULL;
-               char        buf[MAXDATELEN + 1];
-
-               timestamp = DatumGetTimestamp(value);
-
-               /* XSD doesn't support infinite values */
-               if (TIMESTAMP_NOT_FINITE(timestamp))
-                   ereport(ERROR,
-                           (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE),
-                            errmsg("timestamp out of range")));
-               else if (timestamp2tm(timestamp, NULL, &tm, &fsec, NULL, NULL) == 0)
-                   EncodeDateTime(&tm, fsec, NULL, &tzn, USE_XSD_DATES, buf);
-               else
-                   ereport(ERROR,
-                           (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE),
-                            errmsg("timestamp out of range")));
-
-               return pstrdup(buf);
-           }
+               {
+                   Timestamp   timestamp;
+                   struct pg_tm tm;
+                   fsec_t      fsec;
+                   char       *tzn = NULL;
+                   char        buf[MAXDATELEN + 1];
+
+                   timestamp = DatumGetTimestamp(value);
+
+                   /* XSD doesn't support infinite values */
+                   if (TIMESTAMP_NOT_FINITE(timestamp))
+                       ereport(ERROR,
+                               (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE),
+                                errmsg("timestamp out of range")));
+                   else if (timestamp2tm(timestamp, NULL, &tm, &fsec, NULL, NULL) == 0)
+                       EncodeDateTime(&tm, fsec, NULL, &tzn, USE_XSD_DATES, buf);
+                   else
+                       ereport(ERROR,
+                               (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE),
+                                errmsg("timestamp out of range")));
+
+                   return pstrdup(buf);
+               }
 
            case TIMESTAMPTZOID:
-           {
-               TimestampTz timestamp;
-               struct pg_tm tm;
-               int         tz;
-               fsec_t      fsec;
-               char       *tzn = NULL;
-               char        buf[MAXDATELEN + 1];
-
-               timestamp = DatumGetTimestamp(value);
-
-               /* XSD doesn't support infinite values */
-               if (TIMESTAMP_NOT_FINITE(timestamp))
-                   ereport(ERROR,
-                           (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE),
-                            errmsg("timestamp out of range")));
-               else if (timestamp2tm(timestamp, &tz, &tm, &fsec, &tzn, NULL) == 0)
-                   EncodeDateTime(&tm, fsec, &tz, &tzn, USE_XSD_DATES, buf);
-               else
-                   ereport(ERROR,
-                           (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE),
-                            errmsg("timestamp out of range")));
-
-               return pstrdup(buf);
-           }
+               {
+                   TimestampTz timestamp;
+                   struct pg_tm tm;
+                   int         tz;
+                   fsec_t      fsec;
+                   char       *tzn = NULL;
+                   char        buf[MAXDATELEN + 1];
+
+                   timestamp = DatumGetTimestamp(value);
+
+                   /* XSD doesn't support infinite values */
+                   if (TIMESTAMP_NOT_FINITE(timestamp))
+                       ereport(ERROR,
+                               (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE),
+                                errmsg("timestamp out of range")));
+                   else if (timestamp2tm(timestamp, &tz, &tm, &fsec, &tzn, NULL) == 0)
+                       EncodeDateTime(&tm, fsec, &tz, &tzn, USE_XSD_DATES, buf);
+                   else
+                       ereport(ERROR,
+                               (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE),
+                                errmsg("timestamp out of range")));
+
+                   return pstrdup(buf);
+               }
        }
 
        getTypeOutputInfo(type, &typeOut, &isvarlena);
@@ -1770,7 +1769,7 @@ map_sql_value_to_xml_value(Datum value, Oid type)
        {
            xmlBufferPtr buf;
            xmlTextWriterPtr writer;
-           char *result;
+           char       *result;
 
            xml_init();
 
@@ -1787,7 +1786,7 @@ map_sql_value_to_xml_value(Datum value, Oid type)
            xmlBufferFree(buf);
            return result;
        }
-#endif /* USE_LIBXML */
+#endif   /* USE_LIBXML */
 
        for (p = str; *p; p += pg_mblen(p))
        {
@@ -1819,7 +1818,8 @@ map_sql_value_to_xml_value(Datum value, Oid type)
 static char *
 _SPI_strdup(const char *s)
 {
-   char *ret = SPI_palloc(strlen(s) + 1);
+   char       *ret = SPI_palloc(strlen(s) + 1);
+
    strcpy(ret, s);
    return ret;
 }
@@ -1829,7 +1829,7 @@ _SPI_strdup(const char *s)
  * SQL to XML mapping functions
  *
  * What follows below is intentionally organized so that you can read
- * along in the SQL/XML:2003 standard.  The functions are mostly split
+ * along in the SQL/XML:2003 standard. The functions are mostly split
  * up and ordered they way the clauses lay out in the standards
  * document, and the identifiers are also aligned with the standard
  * text.  (SQL/XML:2006 appears to be ordered differently,
@@ -1839,13 +1839,13 @@ _SPI_strdup(const char *s)
  *
  * There are two kinds of mappings: Mapping SQL data (table contents)
  * to XML documents, and mapping SQL structure (the "schema") to XML
- * Schema.  And there are functions that do both at the same time.
+ * Schema. And there are functions that do both at the same time.
  *
  * Then you can map a database, a schema, or a table, each in both
  * ways.  This breaks down recursively: Mapping a database invokes
  * mapping schemas, which invokes mapping tables, which invokes
  * mapping rows, which invokes mapping columns, although you can't
- * call the last two from the outside.  Because of this, there are a
+ * call the last two from the outside. Because of this, there are a
  * number of xyz_internal() functions which are to be called both from
  * the function manager wrapper and from some upper layer in a
  * recursive call.
@@ -1854,7 +1854,7 @@ _SPI_strdup(const char *s)
  * nulls, tableforest, and targetns mean.
  *
  * Some style guidelines for XML output: Use double quotes for quoting
- * XML attributes.  Indent XML elements by two spaces, but remember
+ * XML attributes. Indent XML elements by two spaces, but remember
  * that a lot of code is called recursively at different levels, so
  * it's better not to indent rather than create output that indents
  * and outdents weirdly.  Add newlines to make the output look nice.
@@ -1880,8 +1880,8 @@ query_to_oid_list(const char *query)
 
    for (i = 0; i < SPI_processed; i++)
    {
-       Datum oid;
-       bool isnull;
+       Datum       oid;
+       bool        isnull;
 
        oid = SPI_getbinval(SPI_tuptable->vals[i],
                            SPI_tuptable->tupdesc,
@@ -1907,7 +1907,7 @@ schema_get_xml_visible_tables(Oid nspid)
 }
 
 
-/* 
+/*
  * Including the system schemas is probably not useful for a database
  * mapping.
  */
@@ -1946,7 +1946,7 @@ table_to_xml_internal(Oid relid,
    initStringInfo(&query);
    appendStringInfo(&query, "SELECT * FROM %s",
                     DatumGetCString(DirectFunctionCall1(regclassout,
-                                               ObjectIdGetDatum(relid))));
+                                                 ObjectIdGetDatum(relid))));
    return query_to_xml_internal(query.data, get_rel_name(relid),
                                 xmlschema, nulls, tableforest,
                                 targetns, top_level);
@@ -1962,8 +1962,8 @@ table_to_xml(PG_FUNCTION_ARGS)
    const char *targetns = _textout(PG_GETARG_TEXT_P(3));
 
    PG_RETURN_XML_P(stringinfo_to_xmltype(table_to_xml_internal(relid, NULL,
-                                                       nulls, tableforest,
-                                                       targetns, true)));
+                                                         nulls, tableforest,
+                                                          targetns, true)));
 }
 
 
@@ -1977,7 +1977,7 @@ query_to_xml(PG_FUNCTION_ARGS)
 
    PG_RETURN_XML_P(stringinfo_to_xmltype(query_to_xml_internal(query, NULL,
                                                    NULL, nulls, tableforest,
-                                                   targetns, true)));
+                                                          targetns, true)));
 }
 
 
@@ -2018,12 +2018,12 @@ cursor_to_xml(PG_FUNCTION_ARGS)
  * Write the start tag of the root element of a data mapping.
  *
  * top_level means that this is the very top level of the eventual
- * output.  For example, when the user calls table_to_xml, then a call
+ * output. For example, when the user calls table_to_xml, then a call
  * with a table name to this function is the top level.  When the user
  * calls database_to_xml, then a call with a schema name to this
  * function is not the top level.  If top_level is false, then the XML
  * namespace declarations are omitted, because they supposedly already
- * appeared earlier in the output.  Repeating them is not wrong, but
+ * appeared earlier in the output. Repeating them is not wrong, but
  * it looks ugly.
  */
 static void
@@ -2089,7 +2089,7 @@ query_to_xml_internal(const char *query, char *tablename,
    if (xmlschema)
        appendStringInfo(result, "%s\n\n", xmlschema);
 
-   for(i = 0; i < SPI_processed; i++)
+   for (i = 0; i < SPI_processed; i++)
        SPI_sql_row_to_xmlelement(i, result, tablename, nulls,
                                  tableforest, targetns, top_level);
 
@@ -2110,7 +2110,7 @@ table_to_xmlschema(PG_FUNCTION_ARGS)
    bool        tableforest = PG_GETARG_BOOL(2);
    const char *targetns = _textout(PG_GETARG_TEXT_P(3));
    const char *result;
-   Relation rel;
+   Relation    rel;
 
    rel = heap_open(relid, AccessShareLock);
    result = map_sql_table_to_xmlschema(rel->rd_att, relid, nulls,
@@ -2164,7 +2164,7 @@ cursor_to_xmlschema(PG_FUNCTION_ARGS)
 
    xmlschema = _SPI_strdup(map_sql_table_to_xmlschema(portal->tupDesc,
                                                       InvalidOid, nulls,
-                                                      tableforest, targetns));
+                                                    tableforest, targetns));
    SPI_finish();
 
    PG_RETURN_XML_P(cstring_to_xmltype(xmlschema));
@@ -2187,8 +2187,8 @@ table_to_xml_and_xmlschema(PG_FUNCTION_ARGS)
    heap_close(rel, NoLock);
 
    PG_RETURN_XML_P(stringinfo_to_xmltype(table_to_xml_internal(relid,
-                                           xmlschema, nulls, tableforest,
-                                           targetns, true)));
+                                              xmlschema, nulls, tableforest,
+                                                          targetns, true)));
 }
 
 
@@ -2208,13 +2208,13 @@ query_to_xml_and_xmlschema(PG_FUNCTION_ARGS)
    plan = SPI_prepare(query, 0, NULL);
    portal = SPI_cursor_open(NULL, plan, NULL, NULL, true);
    xmlschema = _SPI_strdup(map_sql_table_to_xmlschema(portal->tupDesc,
-                                  InvalidOid, nulls, tableforest, targetns));
+                                 InvalidOid, nulls, tableforest, targetns));
    SPI_cursor_close(portal);
    SPI_finish();
 
    PG_RETURN_XML_P(stringinfo_to_xmltype(query_to_xml_internal(query, NULL,
-                                   xmlschema, nulls, tableforest,
-                                   targetns, true)));
+                                              xmlschema, nulls, tableforest,
+                                                          targetns, true)));
 }
 
 
@@ -2249,8 +2249,8 @@ schema_to_xml_internal(Oid nspid, const char *xmlschema, bool nulls,
 
    foreach(cell, relid_list)
    {
-       Oid relid = lfirst_oid(cell);
-       StringInfo subres;
+       Oid         relid = lfirst_oid(cell);
+       StringInfo  subres;
 
        subres = table_to_xml_internal(relid, NULL, nulls, tableforest,
                                       targetns, false);
@@ -2283,7 +2283,7 @@ schema_to_xml(PG_FUNCTION_ARGS)
    nspid = LookupExplicitNamespace(schemaname);
 
    PG_RETURN_XML_P(stringinfo_to_xmltype(schema_to_xml_internal(nspid, NULL,
-                                        nulls, tableforest, targetns, true)));
+                                      nulls, tableforest, targetns, true)));
 }
 
 
@@ -2335,9 +2335,9 @@ schema_to_xmlschema_internal(const char *schemaname, bool nulls,
    relid_list = schema_get_xml_visible_tables(nspid);
 
    tupdesc_list = NIL;
-   foreach (cell, relid_list)
+   foreach(cell, relid_list)
    {
-       Relation rel;
+       Relation    rel;
 
        rel = heap_open(lfirst_oid(cell), AccessShareLock);
        tupdesc_list = lappend(tupdesc_list, CreateTupleDescCopy(rel->rd_att));
@@ -2348,8 +2348,8 @@ schema_to_xmlschema_internal(const char *schemaname, bool nulls,
                           map_sql_typecoll_to_xmlschema_types(tupdesc_list));
 
    appendStringInfoString(result,
-                          map_sql_schema_to_xmlschema_types(nspid, relid_list,
-                                                            nulls, tableforest, targetns));
+                        map_sql_schema_to_xmlschema_types(nspid, relid_list,
+                                             nulls, tableforest, targetns));
 
    xsd_schema_element_end(result);
 
@@ -2368,7 +2368,7 @@ schema_to_xmlschema(PG_FUNCTION_ARGS)
    const char *targetns = _textout(PG_GETARG_TEXT_P(3));
 
    PG_RETURN_XML_P(stringinfo_to_xmltype(schema_to_xmlschema_internal(NameStr(*name),
-                                              nulls, tableforest, targetns)));
+                                            nulls, tableforest, targetns)));
 }
 
 
@@ -2390,8 +2390,8 @@ schema_to_xml_and_xmlschema(PG_FUNCTION_ARGS)
                                             tableforest, targetns);
 
    PG_RETURN_XML_P(stringinfo_to_xmltype(schema_to_xml_internal(nspid,
-                                            xmlschema->data, nulls,
-                                            tableforest, targetns, true)));
+                                                     xmlschema->data, nulls,
+                                             tableforest, targetns, true)));
 }
 
 
@@ -2426,8 +2426,8 @@ database_to_xml_internal(const char *xmlschema, bool nulls,
 
    foreach(cell, nspid_list)
    {
-       Oid nspid = lfirst_oid(cell);
-       StringInfo subres;
+       Oid         nspid = lfirst_oid(cell);
+       StringInfo  subres;
 
        subres = schema_to_xml_internal(nspid, NULL, nulls,
                                        tableforest, targetns, false);
@@ -2453,7 +2453,7 @@ database_to_xml(PG_FUNCTION_ARGS)
    const char *targetns = _textout(PG_GETARG_TEXT_P(2));
 
    PG_RETURN_XML_P(stringinfo_to_xmltype(database_to_xml_internal(NULL, nulls,
-                                                  tableforest, targetns)));
+                                                   tableforest, targetns)));
 }
 
 
@@ -2477,9 +2477,9 @@ database_to_xmlschema_internal(bool nulls, bool tableforest,
    nspid_list = database_get_xml_visible_schemas();
 
    tupdesc_list = NIL;
-   foreach (cell, relid_list)
+   foreach(cell, relid_list)
    {
-       Relation rel;
+       Relation    rel;
 
        rel = heap_open(lfirst_oid(cell), AccessShareLock);
        tupdesc_list = lappend(tupdesc_list, CreateTupleDescCopy(rel->rd_att));
@@ -2508,7 +2508,7 @@ database_to_xmlschema(PG_FUNCTION_ARGS)
    const char *targetns = _textout(PG_GETARG_TEXT_P(2));
 
    PG_RETURN_XML_P(stringinfo_to_xmltype(database_to_xmlschema_internal(nulls,
-                                                    tableforest, targetns)));
+                                                   tableforest, targetns)));
 }
 
 
@@ -2523,7 +2523,7 @@ database_to_xml_and_xmlschema(PG_FUNCTION_ARGS)
    xmlschema = database_to_xmlschema_internal(nulls, tableforest, targetns);
 
    PG_RETURN_XML_P(stringinfo_to_xmltype(database_to_xml_internal(xmlschema->data,
-                                              nulls, tableforest, targetns)));
+                                            nulls, tableforest, targetns)));
 }
 
 
@@ -2576,7 +2576,7 @@ map_sql_table_to_xmlschema(TupleDesc tupdesc, Oid relid, bool nulls,
 
    if (OidIsValid(relid))
    {
-       HeapTuple tuple;
+       HeapTuple   tuple;
        Form_pg_class reltuple;
 
        tuple = SearchSysCache(RELOID,
@@ -2590,14 +2590,14 @@ map_sql_table_to_xmlschema(TupleDesc tupdesc, Oid relid, bool nulls,
                                               true, false);
 
        tabletypename = map_multipart_sql_identifier_to_xml_name("TableType",
-                                                                get_database_name(MyDatabaseId),
-                                                                get_namespace_name(reltuple->relnamespace),
-                                                                NameStr(reltuple->relname));
+                                            get_database_name(MyDatabaseId),
+                                 get_namespace_name(reltuple->relnamespace),
+                                                NameStr(reltuple->relname));
 
        rowtypename = map_multipart_sql_identifier_to_xml_name("RowType",
-                                                              get_database_name(MyDatabaseId),
-                                                              get_namespace_name(reltuple->relnamespace),
-                                                              NameStr(reltuple->relname));
+                                            get_database_name(MyDatabaseId),
+                                 get_namespace_name(reltuple->relnamespace),
+                                                NameStr(reltuple->relname));
 
        ReleaseSysCache(tuple);
    }
@@ -2615,7 +2615,7 @@ map_sql_table_to_xmlschema(TupleDesc tupdesc, Oid relid, bool nulls,
    xsd_schema_element_start(&result, targetns);
 
    appendStringInfoString(&result,
-                          map_sql_typecoll_to_xmlschema_types(list_make1(tupdesc)));
+                  map_sql_typecoll_to_xmlschema_types(list_make1(tupdesc)));
 
    appendStringInfo(&result,
                     "<xsd:complexType name=\"%s\">\n"
@@ -2624,10 +2624,10 @@ map_sql_table_to_xmlschema(TupleDesc tupdesc, Oid relid, bool nulls,
 
    for (i = 0; i < tupdesc->natts; i++)
        appendStringInfo(&result,
-                        "    <xsd:element name=\"%s\" type=\"%s\"%s></xsd:element>\n",
-                        map_sql_identifier_to_xml_name(NameStr(tupdesc->attrs[i]->attname),
-                                                       true, false),
-                        map_sql_type_to_xml_name(tupdesc->attrs[i]->atttypid, -1),
+              "    <xsd:element name=\"%s\" type=\"%s\"%s></xsd:element>\n",
+         map_sql_identifier_to_xml_name(NameStr(tupdesc->attrs[i]->attname),
+                                        true, false),
+                  map_sql_type_to_xml_name(tupdesc->attrs[i]->atttypid, -1),
                         nulls ? " nillable=\"true\"" : " minOccurs=\"0\"");
 
    appendStringInfoString(&result,
@@ -2695,15 +2695,15 @@ map_sql_schema_to_xmlschema_types(Oid nspid, List *relid_list, bool nulls,
        appendStringInfoString(&result,
                               "  <xsd:sequence>\n");
 
-   foreach (cell, relid_list)
+   foreach(cell, relid_list)
    {
-       Oid relid = lfirst_oid(cell);
-       char *relname = get_rel_name(relid);
-       char *xmltn = map_sql_identifier_to_xml_name(relname, true, false);
-       char *tabletypename = map_multipart_sql_identifier_to_xml_name(tableforest ? "RowType" : "TableType",
-                                                                      dbname,
-                                                                      nspname,
-                                                                      relname);
+       Oid         relid = lfirst_oid(cell);
+       char       *relname = get_rel_name(relid);
+       char       *xmltn = map_sql_identifier_to_xml_name(relname, true, false);
+       char       *tabletypename = map_multipart_sql_identifier_to_xml_name(tableforest ? "RowType" : "TableType",
+                                                                     dbname,
+                                                                    nspname,
+                                                                   relname);
 
        if (!tableforest)
            appendStringInfo(&result,
@@ -2762,15 +2762,15 @@ map_sql_catalog_to_xmlschema_types(List *nspid_list, bool nulls,
    appendStringInfoString(&result,
                           "  <xsd:all>\n");
 
-   foreach (cell, nspid_list)
+   foreach(cell, nspid_list)
    {
-       Oid nspid = lfirst_oid(cell);
+       Oid         nspid = lfirst_oid(cell);
        char       *nspname = get_namespace_name(nspid);
-       char *xmlsn = map_sql_identifier_to_xml_name(nspname, true, false);
-       char *schematypename = map_multipart_sql_identifier_to_xml_name("SchemaType",
-                                                                       dbname,
-                                                                       nspname,
-                                                                       NULL);
+       char       *xmlsn = map_sql_identifier_to_xml_name(nspname, true, false);
+       char       *schematypename = map_multipart_sql_identifier_to_xml_name("SchemaType",
+                                                                     dbname,
+                                                                    nspname,
+                                                                      NULL);
 
        appendStringInfo(&result,
                         "    <xsd:element name=\"%s\" type=\"%s\"/>\n",
@@ -2800,7 +2800,7 @@ map_sql_type_to_xml_name(Oid typeoid, int typmod)
 
    initStringInfo(&result);
 
-   switch(typeoid)
+   switch (typeoid)
    {
        case BPCHAROID:
            if (typmod == -1)
@@ -2871,25 +2871,25 @@ map_sql_type_to_xml_name(Oid typeoid, int typmod)
            appendStringInfo(&result, "XML");
            break;
        default:
-       {
-           HeapTuple tuple;
-           Form_pg_type typtuple;
-
-           tuple = SearchSysCache(TYPEOID,
-                                  ObjectIdGetDatum(typeoid),
-                                  0, 0, 0);
-           if (!HeapTupleIsValid(tuple))
-               elog(ERROR, "cache lookup failed for type %u", typeoid);
-           typtuple = (Form_pg_type) GETSTRUCT(tuple);
-
-           appendStringInfoString(&result,
-                                  map_multipart_sql_identifier_to_xml_name((typtuple->typtype == TYPTYPE_DOMAIN) ? "Domain" : "UDT",
-                                                                           get_database_name(MyDatabaseId),
-                                                                           get_namespace_name(typtuple->typnamespace),
-                                                                           NameStr(typtuple->typname)));
-
-           ReleaseSysCache(tuple);
-       }
+           {
+               HeapTuple   tuple;
+               Form_pg_type typtuple;
+
+               tuple = SearchSysCache(TYPEOID,
+                                      ObjectIdGetDatum(typeoid),
+                                      0, 0, 0);
+               if (!HeapTupleIsValid(tuple))
+                   elog(ERROR, "cache lookup failed for type %u", typeoid);
+               typtuple = (Form_pg_type) GETSTRUCT(tuple);
+
+               appendStringInfoString(&result,
+                                      map_multipart_sql_identifier_to_xml_name((typtuple->typtype == TYPTYPE_DOMAIN) ? "Domain" : "UDT",
+                                            get_database_name(MyDatabaseId),
+                                 get_namespace_name(typtuple->typnamespace),
+                                               NameStr(typtuple->typname)));
+
+               ReleaseSysCache(tuple);
+           }
    }
 
    return result.data;
@@ -2911,7 +2911,7 @@ map_sql_typecoll_to_xmlschema_types(List *tupdesc_list)
    /* extract all column types used in the set of TupleDescs */
    foreach(cell0, tupdesc_list)
    {
-       TupleDesc tupdesc = (TupleDesc) lfirst(cell0);
+       TupleDesc   tupdesc = (TupleDesc) lfirst(cell0);
 
        for (i = 0; i < tupdesc->natts; i++)
        {
@@ -2925,8 +2925,8 @@ map_sql_typecoll_to_xmlschema_types(List *tupdesc_list)
    /* add base types of domains */
    foreach(cell0, uniquetypes)
    {
-       Oid typid = lfirst_oid(cell0);
-       Oid basetypid = getBaseType(typid);
+       Oid         typid = lfirst_oid(cell0);
+       Oid         basetypid = getBaseType(typid);
 
        if (basetypid != typid)
            uniquetypes = list_append_unique_oid(uniquetypes, basetypid);
@@ -2951,7 +2951,7 @@ map_sql_typecoll_to_xmlschema_types(List *tupdesc_list)
  * sections 9.11 and 9.15.
  *
  * (The distinction between 9.11 and 9.15 is basically that 9.15 adds
- * a name attribute, which this function does.  The name-less version
+ * a name attribute, which this function does. The name-less version
  * 9.11 doesn't appear to be required anywhere.)
  */
 static const char *
@@ -2976,14 +2976,14 @@ map_sql_type_to_xmlschema_type(Oid typeoid, int typmod)
        appendStringInfo(&result,
                         "<xsd:simpleType name=\"%s\">\n", typename);
 
-       switch(typeoid)
+       switch (typeoid)
        {
            case BPCHAROID:
            case VARCHAROID:
            case TEXTOID:
                if (typmod != -1)
                    appendStringInfo(&result,
-                                    "  <xsd:restriction base=\"xsd:string\">\n"
+                                 "  <xsd:restriction base=\"xsd:string\">\n"
                                     "    <xsd:maxLength value=\"%d\"/>\n"
                                     "  </xsd:restriction>\n",
                                     typmod - VARHDRSZ);
@@ -2993,14 +2993,14 @@ map_sql_type_to_xmlschema_type(Oid typeoid, int typmod)
                appendStringInfo(&result,
                                 "  <xsd:restriction base=\"xsd:%s\">\n"
                                 "  </xsd:restriction>\n",
-                                xmlbinary == XMLBINARY_BASE64 ? "base64Binary" : "hexBinary");
+               xmlbinary == XMLBINARY_BASE64 ? "base64Binary" : "hexBinary");
 
            case NUMERICOID:
                if (typmod != -1)
                    appendStringInfo(&result,
-                                    "  <xsd:restriction base=\"xsd:decimal\">\n"
+                                "  <xsd:restriction base=\"xsd:decimal\">\n"
                                     "    <xsd:totalDigits value=\"%d\"/>\n"
-                                    "    <xsd:fractionDigits value=\"%d\"/>\n"
+                                  "    <xsd:fractionDigits value=\"%d\"/>\n"
                                     "  </xsd:restriction>\n",
                                     ((typmod - VARHDRSZ) >> 16) & 0xffff,
                                     (typmod - VARHDRSZ) & 0xffff);
@@ -3027,16 +3027,16 @@ map_sql_type_to_xmlschema_type(Oid typeoid, int typmod)
            case INT8OID:
                appendStringInfo(&result,
                                 "  <xsd:restriction base=\"xsd:long\">\n"
-                                "    <xsd:maxInclusive value=\"" INT64_FORMAT "\"/>\n"
-                                "    <xsd:minInclusive value=\"" INT64_FORMAT "\"/>\n"
+                      "    <xsd:maxInclusive value=\"" INT64_FORMAT "\"/>\n"
+                      "    <xsd:minInclusive value=\"" INT64_FORMAT "\"/>\n"
                                 "  </xsd:restriction>\n",
-                                (((uint64) 1) << (sizeof(int64) * 8 - 1)) - 1,
+                              (((uint64) 1) << (sizeof(int64) * 8 - 1)) - 1,
                                 (((uint64) 1) << (sizeof(int64) * 8 - 1)));
                break;
 
            case FLOAT4OID:
                appendStringInfo(&result,
-                                "  <xsd:restriction base=\"xsd:float\"></xsd:restriction>\n");
+               "  <xsd:restriction base=\"xsd:float\"></xsd:restriction>\n");
                break;
 
            case FLOAT8OID:
@@ -3051,49 +3051,49 @@ map_sql_type_to_xmlschema_type(Oid typeoid, int typmod)
 
            case TIMEOID:
            case TIMETZOID:
-           {
-               const char *tz = (typeoid == TIMETZOID ? "(+|-)\\p{Nd}{2}:\\p{Nd}{2}" : "");
-
-               if (typmod == -1)
-                   appendStringInfo(&result,
-                                    "  <xsd:restriction base=\"xsd:time\">\n"
-                                    "    <xsd:pattern value=\"\\p{Nd}{2}:\\p{Nd}{2}:\\p{Nd}{2}(.\\p{Nd}+)?%s\"/>\n"
-                                    "  </xsd:restriction>\n", tz);
-               else if (typmod == 0)
-                   appendStringInfo(&result,
-                                    "  <xsd:restriction base=\"xsd:time\">\n"
-                                    "    <xsd:pattern value=\"\\p{Nd}{2}:\\p{Nd}{2}:\\p{Nd}{2}%s\"/>\n"
-                                    "  </xsd:restriction>\n", tz);
-               else
-                   appendStringInfo(&result,
-                                    "  <xsd:restriction base=\"xsd:time\">\n"
-                                    "    <xsd:pattern value=\"\\p{Nd}{2}:\\p{Nd}{2}:\\p{Nd}{2}.\\p{Nd}{%d}%s\"/>\n"
-                                    "  </xsd:restriction>\n", typmod - VARHDRSZ, tz);
-               break;
-           }
+               {
+                   const char *tz = (typeoid == TIMETZOID ? "(+|-)\\p{Nd}{2}:\\p{Nd}{2}" : "");
+
+                   if (typmod == -1)
+                       appendStringInfo(&result,
+                                   "  <xsd:restriction base=\"xsd:time\">\n"
+                                        "    <xsd:pattern value=\"\\p{Nd}{2}:\\p{Nd}{2}:\\p{Nd}{2}(.\\p{Nd}+)?%s\"/>\n"
+                                        "  </xsd:restriction>\n", tz);
+                   else if (typmod == 0)
+                       appendStringInfo(&result,
+                                   "  <xsd:restriction base=\"xsd:time\">\n"
+                                        "    <xsd:pattern value=\"\\p{Nd}{2}:\\p{Nd}{2}:\\p{Nd}{2}%s\"/>\n"
+                                        "  </xsd:restriction>\n", tz);
+                   else
+                       appendStringInfo(&result,
+                                   "  <xsd:restriction base=\"xsd:time\">\n"
+                                        "    <xsd:pattern value=\"\\p{Nd}{2}:\\p{Nd}{2}:\\p{Nd}{2}.\\p{Nd}{%d}%s\"/>\n"
+                           "  </xsd:restriction>\n", typmod - VARHDRSZ, tz);
+                   break;
+               }
 
            case TIMESTAMPOID:
            case TIMESTAMPTZOID:
-           {
-               const char *tz = (typeoid == TIMESTAMPTZOID ? "(+|-)\\p{Nd}{2}:\\p{Nd}{2}" : "");
-
-               if (typmod == -1)
-                   appendStringInfo(&result,
-                                    "  <xsd:restriction base=\"xsd:dateTime\">\n"
-                                    "    <xsd:pattern value=\"\\p{Nd}{4}-\\p{Nd}{2}-\\p{Nd}{2}T\\p{Nd}{2}:\\p{Nd}{2}:\\p{Nd}{2}(.\\p{Nd}+)?%s\"/>\n"
-                                    "  </xsd:restriction>\n", tz);
-               else if (typmod == 0)
-                   appendStringInfo(&result,
-                                    "  <xsd:restriction base=\"xsd:dateTime\">\n"
-                                    "    <xsd:pattern value=\"\\p{Nd}{4}-\\p{Nd}{2}-\\p{Nd}{2}T\\p{Nd}{2}:\\p{Nd}{2}:\\p{Nd}{2}%s\"/>\n"
-                                    "  </xsd:restriction>\n", tz);
-               else
-                   appendStringInfo(&result,
-                                    "  <xsd:restriction base=\"xsd:dateTime\">\n"
-                                    "    <xsd:pattern value=\"\\p{Nd}{4}-\\p{Nd}{2}-\\p{Nd}{2}T\\p{Nd}{2}:\\p{Nd}{2}:\\p{Nd}{2}.\\p{Nd}{%d}%s\"/>\n"
-                                    "  </xsd:restriction>\n", typmod - VARHDRSZ, tz);
-               break;
-           }
+               {
+                   const char *tz = (typeoid == TIMESTAMPTZOID ? "(+|-)\\p{Nd}{2}:\\p{Nd}{2}" : "");
+
+                   if (typmod == -1)
+                       appendStringInfo(&result,
+                               "  <xsd:restriction base=\"xsd:dateTime\">\n"
+                                        "    <xsd:pattern value=\"\\p{Nd}{4}-\\p{Nd}{2}-\\p{Nd}{2}T\\p{Nd}{2}:\\p{Nd}{2}:\\p{Nd}{2}(.\\p{Nd}+)?%s\"/>\n"
+                                        "  </xsd:restriction>\n", tz);
+                   else if (typmod == 0)
+                       appendStringInfo(&result,
+                               "  <xsd:restriction base=\"xsd:dateTime\">\n"
+                                        "    <xsd:pattern value=\"\\p{Nd}{4}-\\p{Nd}{2}-\\p{Nd}{2}T\\p{Nd}{2}:\\p{Nd}{2}:\\p{Nd}{2}%s\"/>\n"
+                                        "  </xsd:restriction>\n", tz);
+                   else
+                       appendStringInfo(&result,
+                               "  <xsd:restriction base=\"xsd:dateTime\">\n"
+                                        "    <xsd:pattern value=\"\\p{Nd}{4}-\\p{Nd}{2}-\\p{Nd}{2}T\\p{Nd}{2}:\\p{Nd}{2}:\\p{Nd}{2}.\\p{Nd}{%d}%s\"/>\n"
+                           "  </xsd:restriction>\n", typmod - VARHDRSZ, tz);
+                   break;
+               }
 
            case DATEOID:
                appendStringInfo(&result,
@@ -3105,14 +3105,14 @@ map_sql_type_to_xmlschema_type(Oid typeoid, int typmod)
            default:
                if (get_typtype(typeoid) == TYPTYPE_DOMAIN)
                {
-                   Oid base_typeoid;
-                   int32 base_typmod = -1;
+                   Oid         base_typeoid;
+                   int32       base_typmod = -1;
 
                    base_typeoid = getBaseTypeAndTypmod(typeoid, &base_typmod);
 
                    appendStringInfo(&result,
                                     "  <xsd:restriction base=\"%s\"/>\n",
-                                    map_sql_type_to_xml_name(base_typeoid, base_typmod));
+                       map_sql_type_to_xml_name(base_typeoid, base_typmod));
                }
                break;
        }
@@ -3126,7 +3126,7 @@ map_sql_type_to_xmlschema_type(Oid typeoid, int typmod)
 
 /*
  * Map an SQL row to an XML element, taking the row from the active
- * SPI cursor.  See also SQL/XML:2003 section 9.12.
+ * SPI cursor. See also SQL/XML:2003 section 9.12.
  */
 static void
 SPI_sql_row_to_xmlelement(int rownum, StringInfo result, char *tablename,
@@ -3151,11 +3151,11 @@ SPI_sql_row_to_xmlelement(int rownum, StringInfo result, char *tablename,
    else
        appendStringInfoString(result, "<row>\n");
 
-   for(i = 1; i <= SPI_tuptable->tupdesc->natts; i++)
+   for (i = 1; i <= SPI_tuptable->tupdesc->natts; i++)
    {
-       char *colname;
-       Datum colval;
-       bool isnull;
+       char       *colname;
+       Datum       colval;
+       bool        isnull;
 
        colname = map_sql_identifier_to_xml_name(SPI_fname(SPI_tuptable->tupdesc, i),
                                                 true, false);
@@ -3172,7 +3172,7 @@ SPI_sql_row_to_xmlelement(int rownum, StringInfo result, char *tablename,
            appendStringInfo(result, "  <%s>%s</%s>\n",
                             colname,
                             map_sql_value_to_xml_value(colval,
-                                                       SPI_gettypeid(SPI_tuptable->tupdesc, i)),
+                                   SPI_gettypeid(SPI_tuptable->tupdesc, i)),
                             colname);
    }
 
@@ -3191,18 +3191,18 @@ SPI_sql_row_to_xmlelement(int rownum, StringInfo result, char *tablename,
  */
 
 #ifdef USE_LIBXML
-/* 
+/*
  * Convert XML node to text (dump subtree in case of element,
  * return value otherwise)
  */
 static text *
 xml_xmlnodetoxmltype(xmlNodePtr cur)
 {
-   xmlChar             *str;
-   xmltype             *result;
-   size_t              len;
-   xmlBufferPtr        buf;
-   
+   xmlChar    *str;
+   xmltype    *result;
+   size_t      len;
+   xmlBufferPtr buf;
+
    if (cur->type == XML_ELEMENT_NODE)
    {
        buf = xmlBufferCreate();
@@ -3218,7 +3218,7 @@ xml_xmlnodetoxmltype(xmlNodePtr cur)
        SET_VARSIZE(result, len + VARHDRSZ);
        memcpy(VARDATA(result), str, len);
    }
-   
+
    return result;
 }
 #endif
@@ -3239,19 +3239,19 @@ xpath(PG_FUNCTION_ARGS)
 {
 #ifdef USE_LIBXML
    text       *xpath_expr_text = PG_GETARG_TEXT_P(0);
-   xmltype    *data = PG_GETARG_XML_P(1);
+   xmltype    *data = PG_GETARG_XML_P(1);
    ArrayType  *namespaces = PG_GETARG_ARRAYTYPE_P(2);
-   ArrayBuildState    *astate = NULL;
-   xmlParserCtxtPtr    ctxt = NULL;
-   xmlDocPtr           doc = NULL;
-   xmlXPathContextPtr  xpathctx = NULL;
-   xmlXPathCompExprPtr xpathcomp = NULL;
-   xmlXPathObjectPtr   xpathobj = NULL;
+   ArrayBuildState *astate = NULL;
+   xmlParserCtxtPtr ctxt = NULL;
+   xmlDocPtr   doc = NULL;
+   xmlXPathContextPtr xpathctx = NULL;
+   xmlXPathCompExprPtr xpathcomp = NULL;
+   xmlXPathObjectPtr xpathobj = NULL;
    char       *datastr;
    int32       len;
    int32       xpath_len;
-   xmlChar    *string;
-   xmlChar    *xpath_expr;
+   xmlChar    *string;
+   xmlChar    *xpath_expr;
    int         i;
    int         res_nitems;
    int         ndim;
@@ -3260,13 +3260,13 @@ xpath(PG_FUNCTION_ARGS)
    int         ns_count;
 
    /*
-    * Namespace mappings are passed as text[].  If an empty array is
-    * passed (ndim = 0, "0-dimensional"), then there are no namespace
-    * mappings.  Else, a 2-dimensional array with length of the
-    * second axis being equal to 2 should be passed, i.e., every
-    * subarray contains 2 elements, the first element defining the
-    * name, the second one the URI.  Example: ARRAY[ARRAY['myns',
-    * 'http://example.com'], ARRAY['myns2', 'http://example2.com']].
+    * Namespace mappings are passed as text[].  If an empty array is passed
+    * (ndim = 0, "0-dimensional"), then there are no namespace mappings.
+    * Else, a 2-dimensional array with length of the second axis being equal
+    * to 2 should be passed, i.e., every subarray contains 2 elements, the
+    * first element defining the name, the second one the URI.  Example:
+    * ARRAY[ARRAY['myns', 'http://example.com'], ARRAY['myns2',
+    * 'http://example2.com']].
     */
    ndim = ARR_NDIM(namespaces);
    if (ndim != 0)
@@ -3287,7 +3287,7 @@ xpath(PG_FUNCTION_ARGS)
                          &ns_names_uris, &ns_names_uris_nulls,
                          &ns_count);
 
-       Assert((ns_count % 2) == 0); /* checked above */
+       Assert((ns_count % 2) == 0);    /* checked above */
        ns_count /= 2;          /* count pairs only */
    }
    else
@@ -3306,11 +3306,10 @@ xpath(PG_FUNCTION_ARGS)
                 errmsg("empty XPath expression")));
 
    /*
-    * To handle both documents and fragments, regardless of the fact
-    * whether the XML datum has a single root (XML well-formedness),
-    * we wrap the XML datum in a dummy element (<x>...</x>) and
-    * extend the XPath expression accordingly.  To do it, throw away
-    * the XML prolog, if any.
+    * To handle both documents and fragments, regardless of the fact whether
+    * the XML datum has a single root (XML well-formedness), we wrap the XML
+    * datum in a dummy element (<x>...</x>) and extend the XPath expression
+    * accordingly.  To do it, throw away the XML prolog, if any.
     */
    if (len >= 5 &&
        xmlStrncmp((xmlChar *) datastr, (xmlChar *) "<?xml", 5) == 0)
@@ -3335,7 +3334,7 @@ xpath(PG_FUNCTION_ARGS)
    string = xmlStrncat(string, (xmlChar *) "</x>", 5);
    len += 7;
    xpath_expr = xmlStrncatNew((xmlChar *) "/x",
-                              (xmlChar *) VARDATA(xpath_expr_text), xpath_len);
+                           (xmlChar *) VARDATA(xpath_expr_text), xpath_len);
    xpath_len += 2;
 
    xml_init();
@@ -3344,9 +3343,10 @@ xpath(PG_FUNCTION_ARGS)
    PG_TRY();
    {
        xmlInitParser();
+
        /*
-        * redundant XML parsing (two parsings for the same value
-        * during one command execution are possible)
+        * redundant XML parsing (two parsings for the same value during one
+        * command execution are possible)
         */
        ctxt = xmlNewParserCtxt();
        if (ctxt == NULL)
@@ -3370,20 +3370,20 @@ xpath(PG_FUNCTION_ARGS)
        {
            for (i = 0; i < ns_count; i++)
            {
-               char *ns_name;
-               char *ns_uri;
+               char       *ns_name;
+               char       *ns_uri;
 
                if (ns_names_uris_nulls[i * 2] ||
                    ns_names_uris_nulls[i * 2 + 1])
                    ereport(ERROR,
                            (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED),
-                            errmsg("neither namespace name nor URI may be null")));
+                     errmsg("neither namespace name nor URI may be null")));
                ns_name = _textout(ns_names_uris[i * 2]);
                ns_uri = _textout(ns_names_uris[i * 2 + 1]);
                if (xmlXPathRegisterNs(xpathctx,
                                       (xmlChar *) ns_name,
                                       (xmlChar *) ns_uri) != 0)
-                   ereport(ERROR, /* is this an internal error??? */
+                   ereport(ERROR,      /* is this an internal error??? */
                            (errmsg("could not register XML namespace with name \"%s\" and URI \"%s\"",
                                    ns_name, ns_uri)));
            }
@@ -3413,6 +3413,7 @@ xpath(PG_FUNCTION_ARGS)
            {
                Datum       elem;
                bool        elemisnull = false;
+
                elem = PointerGetDatum(xml_xmlnodetoxmltype(xpathobj->nodesetval->nodeTab[i]));
                astate = accumArrayResult(astate, elem,
                                          elemisnull, XMLOID,
index 9413d5ad36e47b23bf9956fdc004e07d4c2c2abf..bfaa14771d1c4e7b32e46e24a389f53fe220a70c 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/cache/catcache.c,v 1.138 2007/08/21 01:11:19 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/cache/catcache.c,v 1.139 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1043,10 +1043,10 @@ IndexScanOK(CatCache *cache, ScanKey cur_skey)
    if (cache->id == INDEXRELID)
    {
        /*
-        * Rather than tracking exactly which indexes have to be loaded
-        * before we can use indexscans (which changes from time to time),
-        * just force all pg_index searches to be heap scans until we've
-        * built the critical relcaches.
+        * Rather than tracking exactly which indexes have to be loaded before
+        * we can use indexscans (which changes from time to time), just force
+        * all pg_index searches to be heap scans until we've built the
+        * critical relcaches.
         */
        if (!criticalRelcachesBuilt)
            return false;
index a9b5bd4b1ca8ac1a5347c87faa99ccfd729285bb..844dbc2be0645bea4505a7e960daed75df6c9c1d 100644 (file)
@@ -80,7 +80,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/cache/inval.c,v 1.80 2007/05/02 21:08:46 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/cache/inval.c,v 1.81 2007/11/15 21:14:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -592,7 +592,7 @@ PrepareForTupleInvalidation(Relation relation, HeapTuple tuple)
         * This essentially means that only backends in this same database
         * will react to the relcache flush request.  This is in fact
         * appropriate, since only those backends could see our pg_attribute
-        * change anyway.  It looks a bit ugly though.  (In practice, shared
+        * change anyway.  It looks a bit ugly though.  (In practice, shared
         * relations can't have schema changes after bootstrap, so we should
         * never come here for a shared rel anyway.)
         */
@@ -604,7 +604,7 @@ PrepareForTupleInvalidation(Relation relation, HeapTuple tuple)
 
        /*
         * When a pg_index row is updated, we should send out a relcache inval
-        * for the index relation.  As above, we don't know the shared status
+        * for the index relation.  As above, we don't know the shared status
         * of the index, but in practice it doesn't matter since indexes of
         * shared catalogs can't have such updates.
         */
index d82e7debf5302bf527f4cb7f0e333015d3d18ecf..ac2d026ec78521535b436177fcfaece9f27b7e15 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/cache/lsyscache.c,v 1.153 2007/10/13 15:55:40 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/cache/lsyscache.c,v 1.154 2007/11/15 21:14:40 momjian Exp $
  *
  * NOTES
  *   Eventually, the index information should go through here, too.
@@ -149,13 +149,13 @@ get_opfamily_member(Oid opfamily, Oid lefttype, Oid righttype,
  * (This indicates that the operator is not a valid ordering operator.)
  *
  * Note: the operator could be registered in multiple families, for example
- * if someone were to build a "reverse sort" opfamily.  This would result in
+ * if someone were to build a "reverse sort" opfamily. This would result in
  * uncertainty as to whether "ORDER BY USING op" would default to NULLS FIRST
  * or NULLS LAST, as well as inefficient planning due to failure to match up
  * pathkeys that should be the same.  So we want a determinate result here.
  * Because of the way the syscache search works, we'll use the interpretation
  * associated with the opfamily with smallest OID, which is probably
- * determinate enough.  Since there is no longer any particularly good reason
+ * determinate enough. Since there is no longer any particularly good reason
  * to build reverse-sort opfamilies, it doesn't seem worth expending any
  * additional effort on ensuring consistency.
  */
@@ -238,7 +238,7 @@ get_compare_function_for_ordering_op(Oid opno, Oid *cmpfunc, bool *reverse)
                                     opcintype,
                                     opcintype,
                                     BTORDER_PROC);
-       if (!OidIsValid(*cmpfunc))              /* should not happen */
+       if (!OidIsValid(*cmpfunc))      /* should not happen */
            elog(ERROR, "missing support function %d(%u,%u) in opfamily %u",
                 BTORDER_PROC, opcintype, opcintype, opfamily);
        *reverse = (strategy == BTGreaterStrategyNumber);
@@ -322,7 +322,7 @@ get_ordering_op_for_equality_op(Oid opno, bool use_lhs_type)
        if (aform->amopstrategy == BTEqualStrategyNumber)
        {
            /* Found a suitable opfamily, get matching ordering operator */
-           Oid     typid;
+           Oid         typid;
 
            typid = use_lhs_type ? aform->amoplefttype : aform->amoprighttype;
            result = get_opfamily_member(aform->amopfamily,
@@ -350,7 +350,7 @@ get_ordering_op_for_equality_op(Oid opno, bool use_lhs_type)
  *
  * The planner currently uses simple equal() tests to compare the lists
  * returned by this function, which makes the list order relevant, though
- * strictly speaking it should not be.  Because of the way syscache list
+ * strictly speaking it should not be. Because of the way syscache list
  * searches are handled, in normal operation the result will be sorted by OID
  * so everything works fine.  If running with system index usage disabled,
  * the result ordering is unspecified and hence the planner might fail to
@@ -445,6 +445,7 @@ get_compatible_hash_operators(Oid opno,
                result = true;
                break;
            }
+
            /*
             * Get the matching single-type operator(s).  Failure probably
             * shouldn't happen --- it implies a bogus opfamily --- but
@@ -2162,7 +2163,7 @@ type_is_rowtype(Oid typid)
 
 /*
  * type_is_enum
- *    Returns true if the given type is an enum type.
+ *   Returns true if the given type is an enum type.
  */
 bool
 type_is_enum(Oid typid)
@@ -2239,7 +2240,7 @@ Oid
 get_array_type(Oid typid)
 {
    HeapTuple   tp;
-   Oid result = InvalidOid;
+   Oid         result = InvalidOid;
 
    tp = SearchSysCache(TYPEOID,
                        ObjectIdGetDatum(typid),
@@ -2444,7 +2445,7 @@ get_typmodout(Oid typid)
    else
        return InvalidOid;
 }
-#endif /* NOT_USED */
+#endif   /* NOT_USED */
 
 
 /*             ---------- STATISTICS CACHE ----------                   */
index 2f52ed7a8cc39bf88fed62fb0c5ff0fad83cd695..b299bc659b24c9d1dbed73ab29517e7b27a091b4 100644 (file)
@@ -15,7 +15,7 @@
  * the tables they depend on.  When (and if) the next demand for a cached
  * plan occurs, the query will be replanned.  Note that this could result
  * in an error, for example if a column referenced by the query is no
- * longer present.  The creator of a cached plan can specify whether it
+ * longer present. The creator of a cached plan can specify whether it
  * is allowable for the query to change output tupdesc on replan (this
  * could happen with "SELECT *" for example) --- if so, it's up to the
  * caller to notice changes and cope with them.
@@ -33,7 +33,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/cache/plancache.c,v 1.12 2007/10/11 18:05:27 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/cache/plancache.c,v 1.13 2007/11/15 21:14:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 typedef struct
 {
-   void (*callback) ();
+   void        (*callback) ();
    void       *arg;
-} ScanQueryWalkerContext;
+}  ScanQueryWalkerContext;
 
 typedef struct
 {
    Oid         inval_relid;
    CachedPlan *plan;
-} InvalRelidContext;
+}  InvalRelidContext;
 
 
 static List *cached_plans_list = NIL;
 
-static void StoreCachedPlan(CachedPlanSource *plansource, List *stmt_list,
-                           MemoryContext plan_context);
+static void StoreCachedPlan(CachedPlanSource * plansource, List *stmt_list,
+               MemoryContext plan_context);
 static List *do_planning(List *querytrees, int cursorOptions);
 static void AcquireExecutorLocks(List *stmt_list, bool acquire);
 static void AcquirePlannerLocks(List *stmt_list, bool acquire);
 static void LockRelid(Oid relid, LOCKMODE lockmode, void *arg);
 static void UnlockRelid(Oid relid, LOCKMODE lockmode, void *arg);
 static void ScanQueryForRelids(Query *parsetree,
-                              void (*callback) (),
-                              void *arg);
-static bool ScanQueryWalker(Node *node, ScanQueryWalkerContext *context);
+                  void (*callback) (),
+                  void *arg);
+static bool ScanQueryWalker(Node *node, ScanQueryWalkerContext * context);
 static bool rowmark_member(List *rowMarks, int rt_index);
 static bool plan_list_is_transient(List *stmt_list);
 static void PlanCacheCallback(Datum arg, Oid relid);
 static void InvalRelid(Oid relid, LOCKMODE lockmode,
-                      InvalRelidContext *context);
+          InvalRelidContext * context);
 
 
 /*
@@ -153,7 +153,7 @@ CreateCachedPlan(Node *raw_parse_tree,
    plansource = (CachedPlanSource *) palloc(sizeof(CachedPlanSource));
    plansource->raw_parse_tree = copyObject(raw_parse_tree);
    plansource->query_string = query_string ? pstrdup(query_string) : NULL;
-   plansource->commandTag = commandTag;            /* no copying needed */
+   plansource->commandTag = commandTag;        /* no copying needed */
    if (num_params > 0)
    {
        plansource->param_types = (Oid *) palloc(num_params * sizeof(Oid));
@@ -166,7 +166,7 @@ CreateCachedPlan(Node *raw_parse_tree,
    plansource->fully_planned = fully_planned;
    plansource->fixed_result = fixed_result;
    plansource->search_path = search_path;
-   plansource->generation = 0;         /* StoreCachedPlan will increment */
+   plansource->generation = 0; /* StoreCachedPlan will increment */
    plansource->resultDesc = PlanCacheComputeResultDesc(stmt_list);
    plansource->plan = NULL;
    plansource->context = source_context;
@@ -200,7 +200,7 @@ CreateCachedPlan(Node *raw_parse_tree,
  * avoids extra copy steps during plan construction.  If the query ever does
  * need replanning, we'll generate a separate new CachedPlan at that time, but
  * the CachedPlanSource and the initial CachedPlan share the caller-provided
- * context and go away together when neither is needed any longer.  (Because
+ * context and go away together when neither is needed any longer. (Because
  * the parser and planner generate extra cruft in addition to their real
  * output, this approach means that the context probably contains a bunch of
  * useless junk as well as the useful trees.  Hence, this method is a
@@ -241,14 +241,14 @@ FastCreateCachedPlan(Node *raw_parse_tree,
    plansource = (CachedPlanSource *) palloc(sizeof(CachedPlanSource));
    plansource->raw_parse_tree = raw_parse_tree;
    plansource->query_string = query_string;
-   plansource->commandTag = commandTag;            /* no copying needed */
+   plansource->commandTag = commandTag;        /* no copying needed */
    plansource->param_types = param_types;
    plansource->num_params = num_params;
    plansource->cursor_options = cursor_options;
    plansource->fully_planned = fully_planned;
    plansource->fixed_result = fixed_result;
    plansource->search_path = search_path;
-   plansource->generation = 0;         /* StoreCachedPlan will increment */
+   plansource->generation = 0; /* StoreCachedPlan will increment */
    plansource->resultDesc = PlanCacheComputeResultDesc(stmt_list);
    plansource->plan = NULL;
    plansource->context = context;
@@ -284,7 +284,7 @@ FastCreateCachedPlan(Node *raw_parse_tree,
  * Common subroutine for CreateCachedPlan and RevalidateCachedPlan.
  */
 static void
-StoreCachedPlan(CachedPlanSource *plansource,
+StoreCachedPlan(CachedPlanSource * plansource,
                List *stmt_list,
                MemoryContext plan_context)
 {
@@ -295,8 +295,8 @@ StoreCachedPlan(CachedPlanSource *plansource,
    {
        /*
         * Make a dedicated memory context for the CachedPlan and its
-        * subsidiary data.  It's probably not going to be large, but
-        * just in case, use the default maxsize parameter.
+        * subsidiary data.  It's probably not going to be large, but just in
+        * case, use the default maxsize parameter.
         */
        plan_context = AllocSetContextCreate(CacheMemoryContext,
                                             "CachedPlan",
@@ -345,12 +345,12 @@ StoreCachedPlan(CachedPlanSource *plansource,
  * DropCachedPlan: destroy a cached plan.
  *
  * Actually this only destroys the CachedPlanSource: the referenced CachedPlan
- * is released, but not destroyed until its refcount goes to zero.  That
+ * is released, but not destroyed until its refcount goes to zero. That
  * handles the situation where DropCachedPlan is called while the plan is
  * still in use.
  */
 void
-DropCachedPlan(CachedPlanSource *plansource)
+DropCachedPlan(CachedPlanSource * plansource)
 {
    /* Validity check that we were given a CachedPlanSource */
    Assert(list_member_ptr(cached_plans_list, plansource));
@@ -393,7 +393,7 @@ DropCachedPlan(CachedPlanSource *plansource)
  * is used for that work.
  */
 CachedPlan *
-RevalidateCachedPlan(CachedPlanSource *plansource, bool useResOwner)
+RevalidateCachedPlan(CachedPlanSource * plansource, bool useResOwner)
 {
    CachedPlan *plan;
 
@@ -402,9 +402,8 @@ RevalidateCachedPlan(CachedPlanSource *plansource, bool useResOwner)
 
    /*
     * If the plan currently appears valid, acquire locks on the referenced
-    * objects; then check again.  We need to do it this way to cover the
-    * race condition that an invalidation message arrives before we get
-    * the lock.
+    * objects; then check again.  We need to do it this way to cover the race
+    * condition that an invalidation message arrives before we get the lock.
     */
    plan = plansource->plan;
    if (plan && !plan->dead)
@@ -430,8 +429,8 @@ RevalidateCachedPlan(CachedPlanSource *plansource, bool useResOwner)
            plan->dead = true;
 
        /*
-        * By now, if any invalidation has happened, PlanCacheCallback
-        * will have marked the plan dead.
+        * By now, if any invalidation has happened, PlanCacheCallback will
+        * have marked the plan dead.
         */
        if (plan->dead)
        {
@@ -458,8 +457,8 @@ RevalidateCachedPlan(CachedPlanSource *plansource, bool useResOwner)
     */
    if (!plan)
    {
-       List   *slist;
-       TupleDesc resultDesc;
+       List       *slist;
+       TupleDesc   resultDesc;
 
        /*
         * Restore the search_path that was in use when the plan was made.
@@ -486,7 +485,7 @@ RevalidateCachedPlan(CachedPlanSource *plansource, bool useResOwner)
        }
 
        /*
-        * Check or update the result tupdesc.  XXX should we use a weaker
+        * Check or update the result tupdesc.  XXX should we use a weaker
         * condition than equalTupleDescs() here?
         */
        resultDesc = PlanCacheComputeResultDesc(slist);
@@ -550,12 +549,12 @@ do_planning(List *querytrees, int cursorOptions)
    /*
     * If a snapshot is already set (the normal case), we can just use that
     * for planning.  But if it isn't, we have to tell pg_plan_queries to make
-    * a snap if it needs one.  In that case we should arrange to reset
+    * a snap if it needs one.  In that case we should arrange to reset
     * ActiveSnapshot afterward, to ensure that RevalidateCachedPlan has no
-    * caller-visible effects on the snapshot.  Having to replan is an unusual
+    * caller-visible effects on the snapshot.  Having to replan is an unusual
     * case, and it seems a really bad idea for RevalidateCachedPlan to affect
-    * the snapshot only in unusual cases.  (Besides, the snap might have
-    * been created in a short-lived context.)
+    * the snapshot only in unusual cases.  (Besides, the snap might have been
+    * created in a short-lived context.)
     */
    if (ActiveSnapshot != NULL)
        stmt_list = pg_plan_queries(querytrees, cursorOptions, NULL, false);
@@ -589,10 +588,10 @@ do_planning(List *querytrees, int cursorOptions)
  *
  * Note: useResOwner = false is used for releasing references that are in
  * persistent data structures, such as the parent CachedPlanSource or a
- * Portal.  Transient references should be protected by a resource owner.
+ * Portal. Transient references should be protected by a resource owner.
  */
 void
-ReleaseCachedPlan(CachedPlan *plan, bool useResOwner)
+ReleaseCachedPlan(CachedPlan * plan, bool useResOwner)
 {
    if (useResOwner)
        ResourceOwnerForgetPlanCacheRef(CurrentResourceOwner, plan);
@@ -633,10 +632,10 @@ AcquireExecutorLocks(List *stmt_list, bool acquire)
                continue;
 
            /*
-            * Acquire the appropriate type of lock on each relation OID.
-            * Note that we don't actually try to open the rel, and hence
-            * will not fail if it's been dropped entirely --- we'll just
-            * transiently acquire a non-conflicting lock.
+            * Acquire the appropriate type of lock on each relation OID. Note
+            * that we don't actually try to open the rel, and hence will not
+            * fail if it's been dropped entirely --- we'll just transiently
+            * acquire a non-conflicting lock.
             */
            if (list_member_int(plannedstmt->resultRelations, rt_index))
                lockmode = RowExclusiveLock;
@@ -719,6 +718,7 @@ ScanQueryForRelids(Query *parsetree,
        switch (rte->rtekind)
        {
            case RTE_RELATION:
+
                /*
                 * Determine the lock type required for this RTE.
                 */
@@ -767,7 +767,7 @@ ScanQueryForRelids(Query *parsetree,
  * Walker to find sublink subqueries for ScanQueryForRelids
  */
 static bool
-ScanQueryWalker(Node *node, ScanQueryWalkerContext *context)
+ScanQueryWalker(Node *node, ScanQueryWalkerContext * context)
 {
    if (node == NULL)
        return false;
@@ -782,8 +782,8 @@ ScanQueryWalker(Node *node, ScanQueryWalkerContext *context)
    }
 
    /*
-    * Do NOT recurse into Query nodes, because ScanQueryForRelids
-    * already processed subselects of subselects for us.
+    * Do NOT recurse into Query nodes, because ScanQueryForRelids already
+    * processed subselects of subselects for us.
     */
    return expression_tree_walker(node, ScanQueryWalker,
                                  (void *) context);
@@ -818,20 +818,20 @@ plan_list_is_transient(List *stmt_list)
    foreach(lc, stmt_list)
    {
        PlannedStmt *plannedstmt = (PlannedStmt *) lfirst(lc);
-       
+
        if (!IsA(plannedstmt, PlannedStmt))
            continue;           /* Ignore utility statements */
 
        if (plannedstmt->transientPlan)
            return true;
-   }   
+   }
 
    return false;
 }
 
 /*
  * PlanCacheComputeResultDesc: given a list of either fully-planned statements
- * or Queries, determine the result tupledesc it will produce.  Returns NULL
+ * or Queries, determine the result tupledesc it will produce. Returns NULL
  * if the execution will not return tuples.
  *
  * Note: the result is created or copied into current memory context.
@@ -924,22 +924,22 @@ PlanCacheCallback(Datum arg, Oid relid)
 
                Assert(!IsA(plannedstmt, Query));
                if (!IsA(plannedstmt, PlannedStmt))
-                   continue;           /* Ignore utility statements */
+                   continue;   /* Ignore utility statements */
                if ((relid == InvalidOid) ? plannedstmt->relationOids != NIL :
                    list_member_oid(plannedstmt->relationOids, relid))
                {
                    /* Invalidate the plan! */
                    plan->dead = true;
-                   break;          /* out of stmt_list scan */
+                   break;      /* out of stmt_list scan */
                }
            }
        }
        else
        {
            /*
-            * For not-fully-planned entries we use ScanQueryForRelids,
-            * since a recursive traversal is needed.  The callback API
-            * is a bit tedious but avoids duplication of coding.
+            * For not-fully-planned entries we use ScanQueryForRelids, since
+            * a recursive traversal is needed.  The callback API is a bit
+            * tedious but avoids duplication of coding.
             */
            InvalRelidContext context;
 
@@ -970,7 +970,7 @@ ResetPlanCache(void)
  * ScanQueryForRelids callback function for PlanCacheCallback
  */
 static void
-InvalRelid(Oid relid, LOCKMODE lockmode, InvalRelidContext *context)
+InvalRelid(Oid relid, LOCKMODE lockmode, InvalRelidContext * context)
 {
    if (relid == context->inval_relid || context->inval_relid == InvalidOid)
        context->plan->dead = true;
index 8efa9e6c4e762d2ddf70de27295f37fa46b14e2b..e28a79134e89f467e570f0d2e7a6b76eccbd6866 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.263 2007/09/20 17:56:31 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.264 2007/11/15 21:14:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -932,7 +932,7 @@ RelationInitIndexAccessInfo(Relation relation)
    Datum       indoptionDatum;
    bool        isnull;
    oidvector  *indclass;
-   int2vector  *indoption;
+   int2vector *indoption;
    MemoryContext indexcxt;
    MemoryContext oldcontext;
    int         natts;
@@ -1030,8 +1030,8 @@ RelationInitIndexAccessInfo(Relation relation)
 
    /*
     * indclass cannot be referenced directly through the C struct, because it
-    * comes after the variable-width indkey field.  Must extract the
-    * datum the hard way...
+    * comes after the variable-width indkey field.  Must extract the datum
+    * the hard way...
     */
    indclassDatum = fastgetattr(relation->rd_indextuple,
                                Anum_pg_index_indclass,
@@ -1041,9 +1041,9 @@ RelationInitIndexAccessInfo(Relation relation)
    indclass = (oidvector *) DatumGetPointer(indclassDatum);
 
    /*
-    * Fill the operator and support procedure OID arrays, as well as the
-    * info about opfamilies and opclass input types.  (aminfo and
-    * supportinfo are left as zeroes, and are filled on-the-fly when used)
+    * Fill the operator and support procedure OID arrays, as well as the info
+    * about opfamilies and opclass input types.  (aminfo and supportinfo are
+    * left as zeroes, and are filled on-the-fly when used)
     */
    IndexSupportInitialize(indclass,
                           relation->rd_operator, relation->rd_support,
@@ -1655,8 +1655,8 @@ RelationReloadIndexInfo(Relation relation)
                               ObjectIdGetDatum(RelationGetRelid(relation)),
                               0, 0, 0);
        if (!HeapTupleIsValid(tuple))
-               elog(ERROR, "cache lookup failed for index %u",
-                    RelationGetRelid(relation));
+           elog(ERROR, "cache lookup failed for index %u",
+                RelationGetRelid(relation));
        index = (Form_pg_index) GETSTRUCT(tuple);
 
        relation->rd_index->indisvalid = index->indisvalid;
@@ -2078,7 +2078,7 @@ AtEOXact_RelationCache(bool isCommit)
     * for us to do here, so we keep a static flag that gets set if there is
     * anything to do.  (Currently, this means either a relation is created in
     * the current xact, or one is given a new relfilenode, or an index list
-    * is forced.)  For simplicity, the flag remains set till end of top-level
+    * is forced.)  For simplicity, the flag remains set till end of top-level
     * transaction, even though we could clear it at subtransaction end in
     * some cases.
     */
@@ -2201,7 +2201,8 @@ AtEOSubXact_RelationCache(bool isCommit, SubTransactionId mySubid,
        }
 
        /*
-        * Likewise, update or drop any new-relfilenode-in-subtransaction hint.
+        * Likewise, update or drop any new-relfilenode-in-subtransaction
+        * hint.
         */
        if (relation->rd_newRelfilenodeSubid == mySubid)
        {
@@ -2228,7 +2229,7 @@ AtEOSubXact_RelationCache(bool isCommit, SubTransactionId mySubid,
  * RelationCacheMarkNewRelfilenode
  *
  * Mark the rel as having been given a new relfilenode in the current
- * (sub) transaction.  This is a hint that can be used to optimize
+ * (sub) transaction.  This is a hint that can be used to optimize
  * later operations on the rel in the same transaction.
  */
 void
@@ -3165,9 +3166,9 @@ RelationGetIndexPredicate(Relation relation)
 Bitmapset *
 RelationGetIndexAttrBitmap(Relation relation)
 {
-   Bitmapset   *indexattrs;
-   List        *indexoidlist;
-   ListCell    *l;
+   Bitmapset  *indexattrs;
+   List       *indexoidlist;
+   ListCell   *l;
    MemoryContext oldcxt;
 
    /* Quick exit if we already computed the result. */
@@ -3196,7 +3197,7 @@ RelationGetIndexAttrBitmap(Relation relation)
        Oid         indexOid = lfirst_oid(l);
        Relation    indexDesc;
        IndexInfo  *indexInfo;
-       int         i;
+       int         i;
 
        indexDesc = index_open(indexOid, AccessShareLock);
 
@@ -3206,11 +3207,11 @@ RelationGetIndexAttrBitmap(Relation relation)
        /* Collect simple attribute references */
        for (i = 0; i < indexInfo->ii_NumIndexAttrs; i++)
        {
-           int attrnum = indexInfo->ii_KeyAttrNumbers[i];
+           int         attrnum = indexInfo->ii_KeyAttrNumbers[i];
 
            if (attrnum != 0)
                indexattrs = bms_add_member(indexattrs,
-                       attrnum - FirstLowInvalidHeapAttributeNumber);
+                              attrnum - FirstLowInvalidHeapAttributeNumber);
        }
 
        /* Collect all attributes used in expressions, too */
index 63c57905565a25615357b79daa245c8a315eff87..921431d064930f9f3822e5fdf820351c8e637445 100644 (file)
@@ -12,7 +12,7 @@
  * safe to hold onto a pointer to the cache entry while doing things that
  * might result in recognizing a cache invalidation.  Beware however that
  * subsidiary information might be deleted and reallocated somewhere else
- * if a cache inval and reval happens!  This does not look like it will be
+ * if a cache inval and reval happens! This does not look like it will be
  * a big problem as long as parser and dictionary methods do not attempt
  * any database access.
  *
@@ -20,7 +20,7 @@
  * Copyright (c) 2006-2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/cache/ts_cache.c,v 1.3 2007/09/10 00:57:21 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/cache/ts_cache.c,v 1.4 2007/11/15 21:14:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -143,8 +143,8 @@ lookup_ts_parser_cache(Oid prsId)
    if (entry == NULL || !entry->isvalid)
    {
        /*
-        * If we didn't find one, we want to make one.
-        * But first look up the object to be sure the OID is real.
+        * If we didn't find one, we want to make one. But first look up the
+        * object to be sure the OID is real.
         */
        HeapTuple   tp;
        Form_pg_ts_parser prs;
@@ -245,8 +245,8 @@ lookup_ts_dictionary_cache(Oid dictId)
    if (entry == NULL || !entry->isvalid)
    {
        /*
-        * If we didn't find one, we want to make one.
-        * But first look up the object to be sure the OID is real.
+        * If we didn't find one, we want to make one. But first look up the
+        * object to be sure the OID is real.
         */
        HeapTuple   tpdict,
                    tptmpl;
@@ -325,8 +325,8 @@ lookup_ts_dictionary_cache(Oid dictId)
            MemoryContext oldcontext;
 
            /*
-            * Init method runs in dictionary's private memory context,
-            * and we make sure the options are stored there too
+            * Init method runs in dictionary's private memory context, and we
+            * make sure the options are stored there too
             */
            oldcontext = MemoryContextSwitchTo(entry->dictCtx);
 
@@ -340,7 +340,7 @@ lookup_ts_dictionary_cache(Oid dictId)
 
            entry->dictData =
                DatumGetPointer(OidFunctionCall1(template->tmplinit,
-                                           PointerGetDatum(dictoptions)));
+                                             PointerGetDatum(dictoptions)));
 
            MemoryContextSwitchTo(oldcontext);
        }
@@ -410,8 +410,8 @@ lookup_ts_config_cache(Oid cfgId)
    if (entry == NULL || !entry->isvalid)
    {
        /*
-        * If we didn't find one, we want to make one.
-        * But first look up the object to be sure the OID is real.
+        * If we didn't find one, we want to make one. But first look up the
+        * object to be sure the OID is real.
         */
        HeapTuple   tp;
        Form_pg_ts_config cfg;
@@ -492,7 +492,7 @@ lookup_ts_config_cache(Oid cfgId)
        while ((maptup = index_getnext(mapscan, ForwardScanDirection)) != NULL)
        {
            Form_pg_ts_config_map cfgmap = (Form_pg_ts_config_map) GETSTRUCT(maptup);
-           int     toktype = cfgmap->maptokentype;
+           int         toktype = cfgmap->maptokentype;
 
            if (toktype <= 0 || toktype > MAXTOKENTYPE)
                elog(ERROR, "maptokentype value %d is out of range", toktype);
index a8a240991167defcc025fab7cb0df220bc8bc69c..c80f3f6b0d53ff50fd150fcf6dad7cf6636f7948 100644 (file)
@@ -36,7 +36,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/cache/typcache.c,v 1.25 2007/04/02 03:49:39 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/cache/typcache.c,v 1.26 2007/11/15 21:14:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -169,7 +169,7 @@ lookup_type_cache(Oid type_id, int flags)
                  TYPECACHE_BTREE_OPFAMILY)) &&
        typentry->btree_opf == InvalidOid)
    {
-       Oid     opclass;
+       Oid         opclass;
 
        opclass = GetDefaultOpClass(type_id, BTREE_AM_OID);
        if (OidIsValid(opclass))
index c8ba87efabfff3911e33edba4307f8042ce4225a..bb010162ba442b83947ff542bc9f112f72039f80 100644 (file)
@@ -42,7 +42,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.197 2007/09/27 18:15:36 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.198 2007/11/15 21:14:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -250,9 +250,9 @@ errstart(int elevel, const char *filename, int lineno,
 
        /*
         * If we recurse more than once, the problem might be something broken
-        * in a context traceback routine.  Abandon them too.  We also
-        * abandon attempting to print the error statement (which, if long,
-        * could itself be the source of the recursive failure).
+        * in a context traceback routine.  Abandon them too.  We also abandon
+        * attempting to print the error statement (which, if long, could
+        * itself be the source of the recursive failure).
         */
        if (recursion_depth > 2)
        {
@@ -1129,10 +1129,10 @@ pg_re_throw(void)
        /*
         * If we get here, elog(ERROR) was thrown inside a PG_TRY block, which
         * we have now exited only to discover that there is no outer setjmp
-        * handler to pass the error to.  Had the error been thrown outside the
-        * block to begin with, we'd have promoted the error to FATAL, so the
-        * correct behavior is to make it FATAL now; that is, emit it and then
-        * call proc_exit.
+        * handler to pass the error to.  Had the error been thrown outside
+        * the block to begin with, we'd have promoted the error to FATAL, so
+        * the correct behavior is to make it FATAL now; that is, emit it and
+        * then call proc_exit.
         */
        ErrorData  *edata = &errordata[errordata_stack_depth];
 
@@ -1497,7 +1497,7 @@ log_line_prefix(StringInfo buf)
                }
                break;
            case 'c':
-               appendStringInfo(buf, "%lx.%x", (long)(MyStartTime),MyProcPid);
+               appendStringInfo(buf, "%lx.%x", (long) (MyStartTime), MyProcPid);
                break;
            case 'p':
                appendStringInfo(buf, "%d", MyProcPid);
@@ -1517,14 +1517,14 @@ log_line_prefix(StringInfo buf)
 
                    /*
                     * Normally we print log timestamps in log_timezone, but
-                    * during startup we could get here before that's set.
-                    * If so, fall back to gmt_timezone (which guc.c ensures
-                    * is set up before Log_line_prefix can become nonempty).
+                    * during startup we could get here before that's set. If
+                    * so, fall back to gmt_timezone (which guc.c ensures is
+                    * set up before Log_line_prefix can become nonempty).
                     */
                    tz = log_timezone ? log_timezone : gmt_timezone;
 
                    pg_strftime(formatted_log_time, FORMATTED_TS_LEN,
-                               /* leave room for milliseconds... */
+                   /* leave room for milliseconds... */
                                "%Y-%m-%d %H:%M:%S     %Z",
                                pg_localtime(&stamp_time, tz));
 
@@ -1618,25 +1618,25 @@ log_line_prefix(StringInfo buf)
  * We use the PostgreSQL defaults for CSV, i.e. quote = escape = '"'
  */
 
-static inline void 
-appendCSVLiteral(StringInfo buf, const chardata)
+static inline void
+appendCSVLiteral(StringInfo buf, const char *data)
 {
-  const char * p = data;
-  char c;
-
-  appendStringInfoCharMacro(buf, '"');
-  while ( (c = *p++) != '\0' )
-  {
-      if (c == '"')
-          appendStringInfoCharMacro(buf, '"');
-      appendStringInfoCharMacro(buf, c);
-  }
-  appendStringInfoCharMacro(buf, '"');
+   const char *p = data;
+   char        c;
+
+   appendStringInfoCharMacro(buf, '"');
+   while ((c = *p++) != '\0')
+   {
+       if (c == '"')
+           appendStringInfoCharMacro(buf, '"');
+       appendStringInfoCharMacro(buf, c);
+   }
+   appendStringInfoCharMacro(buf, '"');
 }
 
-/* 
- * Constructs the error message, depending on the Errordata it gets, 
- * in CSV (comma separated values) format. The COPY command 
+/*
+ * Constructs the error message, depending on the Errordata it gets,
+ * in CSV (comma separated values) format. The COPY command
  * can then be used to load the messages into a table.
  */
 static void
@@ -1645,42 +1645,43 @@ write_csvlog(ErrorData *edata)
    StringInfoData msgbuf;
    StringInfoData buf;
 
-    /* static counter for line numbers */
-    static long log_line_number = 0;
-
-    /* has counter been reset in current process? */
-    static int  log_my_pid = 0;
-
-    /*
-     * This is one of the few places where we'd rather not inherit a static
-     * variable's value from the postmaster.  But since we will, reset it when
-     * MyProcPid changes.
-     */
-    if (log_my_pid != MyProcPid)
-    {
-        log_line_number = 0;
-        log_my_pid = MyProcPid;
+   /* static counter for line numbers */
+   static long log_line_number = 0;
+
+   /* has counter been reset in current process? */
+   static int  log_my_pid = 0;
+
+   /*
+    * This is one of the few places where we'd rather not inherit a static
+    * variable's value from the postmaster.  But since we will, reset it when
+    * MyProcPid changes.
+    */
+   if (log_my_pid != MyProcPid)
+   {
+       log_line_number = 0;
+       log_my_pid = MyProcPid;
        formatted_start_time[0] = '\0';
-    }
-    log_line_number++;
+   }
+   log_line_number++;
 
    initStringInfo(&msgbuf);
    initStringInfo(&buf);
 
-   /* 
-    * The format of the log output in CSV format:
-    * timestamp with milliseconds, username, databasename, session id,
-    * host and port number, process id, process line number, command tag, 
-    * session start time, virtual transaction id, regular transaction id,
-    * error severity, sql state code, error message.
+   /*
+    * The format of the log output in CSV format: timestamp with
+    * milliseconds, username, databasename, session id, host and port number,
+    * process id, process line number, command tag, session start time,
+    * virtual transaction id, regular transaction id, error severity, sql
+    * state code, error message.
     */
-  
+
    /* timestamp_with_milliseconds */
-   /* 
-    * Check if the timestamp is already calculated for the syslog message,
-    * if it is, then no need to calculate it again, will use the same,
-    * else get the current timestamp. This is done to put same timestamp
-    * in both syslog and csvlog messages.
+
+   /*
+    * Check if the timestamp is already calculated for the syslog message, if
+    * it is, then no need to calculate it again, will use the same, else get
+    * the current timestamp. This is done to put same timestamp in both
+    * syslog and csvlog messages.
     */
    if (formatted_log_time[0] == '\0')
    {
@@ -1688,20 +1689,20 @@ write_csvlog(ErrorData *edata)
        pg_time_t   stamp_time;
        pg_tz      *tz;
        char        msbuf[8];
-       
+
        gettimeofday(&tv, NULL);
        stamp_time = (pg_time_t) tv.tv_sec;
-       
+
        /*
-        * Normally we print log timestamps in log_timezone, but
-        * during startup we could get here before that's set.
-        * If so, fall back to gmt_timezone (which guc.c ensures
-        * is set up before Log_line_prefix can become nonempty).
+        * Normally we print log timestamps in log_timezone, but during
+        * startup we could get here before that's set. If so, fall back to
+        * gmt_timezone (which guc.c ensures is set up before Log_line_prefix
+        * can become nonempty).
         */
        tz = log_timezone ? log_timezone : gmt_timezone;
-       
+
        pg_strftime(formatted_log_time, FORMATTED_TS_LEN,
-                   /* leave room for milliseconds... */
+       /* leave room for milliseconds... */
                    "%Y-%m-%d %H:%M:%S     %Z",
                    pg_localtime(&stamp_time, tz));
 
@@ -1716,6 +1717,7 @@ write_csvlog(ErrorData *edata)
    if (MyProcPort)
    {
        const char *username = MyProcPort->user_name;
+
        if (username == NULL || *username == '\0')
            username = _("[unknown]");
 
@@ -1730,7 +1732,7 @@ write_csvlog(ErrorData *edata)
 
        if (dbname == NULL || *dbname == '\0')
            dbname = _("[unknown]");
-       
+
        appendCSVLiteral(&buf, dbname);
    }
    appendStringInfoChar(&buf, ',');
@@ -1761,7 +1763,7 @@ write_csvlog(ErrorData *edata)
    if (MyProcPort)
    {
        const char *psdisp;
-       int         displen;
+       int         displen;
 
        psdisp = get_ps_display(&displen);
        appendStringInfo(&msgbuf, "%.*s", displen, psdisp);
@@ -1798,7 +1800,7 @@ write_csvlog(ErrorData *edata)
 
    /* SQL state code */
    appendStringInfo(&buf, "%s,", unpack_sql_state(edata->sqlerrcode));
+
    /* Error message and cursor position if any */
    get_csv_error_message(&buf, edata);
 
@@ -1808,8 +1810,8 @@ write_csvlog(ErrorData *edata)
    if (am_syslogger)
        write_syslogger_file(buf.data, buf.len, LOG_DESTINATION_CSVLOG);
    else
-       write_pipe_chunks(buf.data, buf.len, LOG_DESTINATION_CSVLOG); 
-   
+       write_pipe_chunks(buf.data, buf.len, LOG_DESTINATION_CSVLOG);
+
    pfree(msgbuf.data);
    pfree(buf.data);
 }
@@ -1821,16 +1823,16 @@ write_csvlog(ErrorData *edata)
 static void
 get_csv_error_message(StringInfo buf, ErrorData *edata)
 {
-   char *msg = edata->message ? edata->message : _("missing error text");
-   char c;
+   char       *msg = edata->message ? edata->message : _("missing error text");
+   char        c;
 
    appendStringInfoCharMacro(buf, '"');
 
-   while ( (c = *msg++) != '\0' )
+   while ((c = *msg++) != '\0')
    {
-      if (c == '"')
-          appendStringInfoCharMacro(buf, '"');
-      appendStringInfoCharMacro(buf, c);
+       if (c == '"')
+           appendStringInfoCharMacro(buf, '"');
+       appendStringInfoCharMacro(buf, c);
    }
 
    if (edata->cursorpos > 0)
@@ -2010,13 +2012,14 @@ send_message_to_server_log(ErrorData *edata)
    if ((Log_destination & LOG_DESTINATION_STDERR) || whereToSendOutput == DestDebug)
    {
        /*
-        * Use the chunking protocol if we know the syslogger should
-        * be catching stderr output, and we are not ourselves the
-        * syslogger.  Otherwise, just do a vanilla write to stderr.
+        * Use the chunking protocol if we know the syslogger should be
+        * catching stderr output, and we are not ourselves the syslogger.
+        * Otherwise, just do a vanilla write to stderr.
         */
        if (redirection_done && !am_syslogger)
            write_pipe_chunks(buf.data, buf.len, LOG_DESTINATION_STDERR);
 #ifdef WIN32
+
        /*
         * In a win32 service environment, there is no usable stderr. Capture
         * anything going there and write it to the eventlog instead.
@@ -2040,18 +2043,20 @@ send_message_to_server_log(ErrorData *edata)
    {
        if (redirection_done || am_syslogger)
        {
-           /* send CSV data if it's safe to do so (syslogger doesn't need
-            * the pipe). First get back the space in the message buffer.
+           /*
+            * send CSV data if it's safe to do so (syslogger doesn't need the
+            * pipe). First get back the space in the message buffer.
             */
            pfree(buf.data);
            write_csvlog(edata);
        }
        else
        {
-           char * msg = _("Not safe to send CSV data\n");
-           write(fileno(stderr),msg,strlen(msg));
-           if ( ! (Log_destination & LOG_DESTINATION_STDERR) &&
-                whereToSendOutput != DestDebug)
+           char       *msg = _("Not safe to send CSV data\n");
+
+           write(fileno(stderr), msg, strlen(msg));
+           if (!(Log_destination & LOG_DESTINATION_STDERR) &&
+               whereToSendOutput != DestDebug)
            {
                /* write message to stderr unless we just sent it above */
                write(fileno(stderr), buf.data, buf.len);
@@ -2073,7 +2078,7 @@ write_pipe_chunks(char *data, int len, int dest)
 {
    PipeProtoChunk p;
 
-   int fd = fileno(stderr);
+   int         fd = fileno(stderr);
 
    Assert(len > 0);
 
@@ -2325,9 +2330,9 @@ useful_strerror(int errnum)
    if (str == NULL || *str == '\0')
    {
        snprintf(errorstr_buf, sizeof(errorstr_buf),
-                /*------
-                  translator: This string will be truncated at 47
-                  characters expanded. */
+       /*------
+         translator: This string will be truncated at 47
+         characters expanded. */
                 _("operating system error %d"), errnum);
        str = errorstr_buf;
    }
index ea5cd4bf2dfe75dcfe127576b6368ca34f519589..8ef2f2094e16ce0cae1bc0d446b0d3b12b2d6f34 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/fmgr/fmgr.c,v 1.110 2007/09/11 00:06:42 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/fmgr/fmgr.c,v 1.111 2007/11/15 21:14:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -68,7 +68,7 @@ typedef struct
    /* fn_oid is the hash key and so must be first! */
    Oid         fn_oid;         /* OID of an external C function */
    TransactionId fn_xmin;      /* for checking up-to-dateness */
-   ItemPointerData fn_tid;
+   ItemPointerData fn_tid;
    PGFunction  user_fn;        /* the function's address */
    const Pg_finfo_record *inforec;     /* address of its info record */
 } CFuncHashTabEntry;
@@ -835,7 +835,7 @@ fmgr_oldstyle(PG_FUNCTION_ARGS)
 
 
 /*
- * Support for security-definer and proconfig-using functions.  We support
+ * Support for security-definer and proconfig-using functions. We support
  * both of these features using the same call handler, because they are
  * often used together and it would be inefficient (as well as notationally
  * messy) to have two levels of call handler involved.
@@ -850,11 +850,11 @@ struct fmgr_security_definer_cache
 /*
  * Function handler for security-definer/proconfig functions.  We extract the
  * OID of the actual function and do a fmgr lookup again.  Then we fetch the
- * pg_proc row and copy the owner ID and proconfig fields.  (All this info
+ * pg_proc row and copy the owner ID and proconfig fields. (All this info
  * is cached for the duration of the current query.)  To execute a call,
  * we temporarily replace the flinfo with the cached/looked-up one, while
  * keeping the outer fcinfo (which contains all the actual arguments, etc.)
- * intact.  This is not re-entrant, but then the fcinfo itself can't be used
+ * intact. This is not re-entrant, but then the fcinfo itself can't be used
  * re-entrantly anyway.
  */
 static Datum
@@ -2204,8 +2204,8 @@ get_call_expr_argtype(Node *expr, int argnum)
 
    /*
     * special hack for ScalarArrayOpExpr and ArrayCoerceExpr: what the
-    * underlying function will actually get passed is the element type of
-    * the array.
+    * underlying function will actually get passed is the element type of the
+    * array.
     */
    if (IsA(expr, ScalarArrayOpExpr) &&
        argnum == 1)
index d59f35a5486520816e02d48606250a222bbdc5de..bdddaa2c3d00b6b136b8c182149f329b4f64c434 100644 (file)
@@ -26,7 +26,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/hash/dynahash.c,v 1.76 2007/09/11 16:17:46 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/hash/dynahash.c,v 1.77 2007/11/15 21:14:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -946,7 +946,7 @@ hash_search_with_hash_value(HTAB *hashp,
             * to check cheaper conditions first.
             */
            if (!IS_PARTITIONED(hctl) &&
-               hctl->nentries / (long) (hctl->max_bucket + 1) >= hctl->ffactor &&
+           hctl->nentries / (long) (hctl->max_bucket + 1) >= hctl->ffactor &&
                !has_seq_scans(hashp))
            {
                /*
@@ -1397,7 +1397,7 @@ my_log2(long num)
 /************************* SEQ SCAN TRACKING ************************/
 
 /*
- * We track active hash_seq_search scans here.  The need for this mechanism
+ * We track active hash_seq_search scans here. The need for this mechanism
  * comes from the fact that a scan will get confused if a bucket split occurs
  * while it's in progress: it might visit entries twice, or even miss some
  * entirely (if it's partway through the same bucket that splits).  Hence
@@ -1417,7 +1417,7 @@ my_log2(long num)
  *
  * This arrangement is reasonably robust if a transient hashtable is deleted
  * without notifying us.  The absolute worst case is we might inhibit splits
- * in another table created later at exactly the same address.  We will give
+ * in another table created later at exactly the same address. We will give
  * a warning at transaction end for reference leaks, so any bugs leading to
  * lack of notification should be easy to catch.
  */
@@ -1445,7 +1445,7 @@ register_seq_scan(HTAB *hashp)
 static void
 deregister_seq_scan(HTAB *hashp)
 {
-   int     i;
+   int         i;
 
    /* Search backward since it's most likely at the stack top */
    for (i = num_seq_scans - 1; i >= 0; i--)
@@ -1466,7 +1466,7 @@ deregister_seq_scan(HTAB *hashp)
 static bool
 has_seq_scans(HTAB *hashp)
 {
-   int     i;
+   int         i;
 
    for (i = 0; i < num_seq_scans; i++)
    {
@@ -1491,7 +1491,7 @@ AtEOXact_HashTables(bool isCommit)
     */
    if (isCommit)
    {
-       int     i;
+       int         i;
 
        for (i = 0; i < num_seq_scans; i++)
        {
@@ -1506,7 +1506,7 @@ AtEOXact_HashTables(bool isCommit)
 void
 AtEOSubXact_HashTables(bool isCommit, int nestDepth)
 {
-   int     i;
+   int         i;
 
    /*
     * Search backward to make cleanup easy.  Note we must check all entries,
index 8a51ebed83742f43aa305a9afea2a7fd80c0e47c..3cc5cb0c4f580e06923b66dfab8f4c0367bd7594 100644 (file)
@@ -23,7 +23,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/utils/init/flatfiles.c,v 1.28 2007/10/15 15:11:29 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/init/flatfiles.c,v 1.29 2007/11/15 21:14:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -169,7 +169,7 @@ name_okay(const char *str)
  * so we can set or update the XID wrap limit.
  *
  * Also, if "startup" is true, we tell relcache.c to clear out the relcache
- * init file in each database.  That's a bit nonmodular, but scanning
+ * init file in each database. That's a bit nonmodular, but scanning
  * pg_database twice during system startup seems too high a price for keeping
  * things better separated.
  */
@@ -223,8 +223,8 @@ write_database_file(Relation drel, bool startup)
        datfrozenxid = dbform->datfrozenxid;
 
        /*
-        * Identify the oldest datfrozenxid.  This must match
-        * the logic in vac_truncate_clog() in vacuum.c.
+        * Identify the oldest datfrozenxid.  This must match the logic in
+        * vac_truncate_clog() in vacuum.c.
         */
        if (TransactionIdIsNormal(datfrozenxid))
        {
@@ -261,7 +261,7 @@ write_database_file(Relation drel, bool startup)
         */
        if (startup)
        {
-           char *dbpath = GetDatabasePath(datoid, dattablespace);
+           char       *dbpath = GetDatabasePath(datoid, dattablespace);
 
            RelationCacheInitFileRemove(dbpath);
            pfree(dbpath);
@@ -437,10 +437,10 @@ write_auth_file(Relation rel_authid, Relation rel_authmem)
         * We can't use heap_getattr() here because during startup we will not
         * have any tupdesc for pg_authid.  Fortunately it's not too hard to
         * work around this.  rolpassword is the first possibly-null field so
-        * we can compute its offset directly.  Note that this only works
+        * we can compute its offset directly.  Note that this only works
         * reliably because the preceding field (rolconnlimit) is int4, and
-        * therefore rolpassword is always 4-byte-aligned, and will be at
-        * the same offset no matter whether it uses 1-byte or 4-byte header.
+        * therefore rolpassword is always 4-byte-aligned, and will be at the
+        * same offset no matter whether it uses 1-byte or 4-byte header.
         */
        tp = (char *) tup + tup->t_hoff;
        off = offsetof(FormData_pg_authid, rolpassword);
@@ -634,21 +634,21 @@ write_auth_file(Relation rel_authid, Relation rel_authmem)
    for (curr_role = 0; curr_role < total_roles; curr_role++)
    {
        auth_entry *arole = &auth_info[curr_role];
-           ListCell   *mem;
+       ListCell   *mem;
 
-           fputs_quote(arole->rolname, fp);
-           fputs(" ", fp);
-           fputs_quote(arole->rolpassword, fp);
-           fputs(" ", fp);
-           fputs_quote(arole->rolvaliduntil, fp);
+       fputs_quote(arole->rolname, fp);
+       fputs(" ", fp);
+       fputs_quote(arole->rolpassword, fp);
+       fputs(" ", fp);
+       fputs_quote(arole->rolvaliduntil, fp);
 
-           foreach(mem, arole->member_of)
-           {
-               fputs(" ", fp);
-               fputs_quote((char *) lfirst(mem), fp);
-           }
+       foreach(mem, arole->member_of)
+       {
+           fputs(" ", fp);
+           fputs_quote((char *) lfirst(mem), fp);
+       }
 
-           fputs("\n", fp);
+       fputs("\n", fp);
    }
 
    if (FreeFile(fp))
@@ -845,10 +845,10 @@ AtEOXact_UpdateFlatFiles(bool isCommit)
    SendPostmasterSignal(PMSIGNAL_PASSWORD_CHANGE);
 
    /*
-    * Force synchronous commit, to minimize the window between changing
-    * the flat files on-disk and marking the transaction committed.  It's
-    * not great that there is any window at all, but definitely we don't
-    * want to make it larger than necessary.
+    * Force synchronous commit, to minimize the window between changing the
+    * flat files on-disk and marking the transaction committed.  It's not
+    * great that there is any window at all, but definitely we don't want to
+    * make it larger than necessary.
     */
    ForceSyncCommit();
 }
index 37ce52401c6a2f63ccbecec4f5c06a4280e51858..cf59cda8bd2bd48900cddb28197d0b8524c8b92b 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/init/globals.c,v 1.102 2007/08/02 23:39:44 adunstan Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/init/globals.c,v 1.103 2007/11/15 21:14:40 momjian Exp $
  *
  * NOTES
  *   Globals used all over the place should be declared here and not
@@ -33,7 +33,7 @@ volatile uint32 InterruptHoldoffCount = 0;
 volatile uint32 CritSectionCount = 0;
 
 int            MyProcPid;
-time_t      MyStartTime;
+time_t     MyStartTime;
 struct Port *MyProcPort;
 long       MyCancelKey;
 
index d1bc2af876d7d006ddf15021ca350097c3cbd805..43a7e346393b02e1af0066a462cb2c9fc4194a8c 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.178 2007/09/11 00:06:42 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.179 2007/11/15 21:14:40 momjian Exp $
  *
  *
  *-------------------------------------------------------------------------
@@ -107,8 +107,8 @@ FindMyDatabase(const char *name, Oid *db_id, Oid *db_tablespace)
 /*
  * FindMyDatabaseByOid
  *
- * As above, but the actual database Id is known.  Return its name and the 
- * tablespace OID.  Return TRUE if found, FALSE if not.  The same restrictions
+ * As above, but the actual database Id is known.  Return its name and the
+ * tablespace OID. Return TRUE if found, FALSE if not.  The same restrictions
  * as FindMyDatabase apply.
  */
 static bool
@@ -320,7 +320,7 @@ BaseInit(void)
  *     Initialize POSTGRES.
  *
  * The database can be specified by name, using the in_dbname parameter, or by
- * OID, using the dboid parameter.  In the latter case, the computed database
+ * OID, using the dboid parameter. In the latter case, the computed database
  * name is passed out to the caller as a palloc'ed string in out_dbname.
  *
  * In bootstrap mode no parameters are used.
@@ -361,9 +361,10 @@ InitPostgres(const char *in_dbname, Oid dboid, const char *username,
    else
    {
        /*
-        * Find tablespace of the database we're about to open. Since we're not
-        * yet up and running we have to use one of the hackish FindMyDatabase
-        * variants, which look in the flat-file copy of pg_database.
+        * Find tablespace of the database we're about to open. Since we're
+        * not yet up and running we have to use one of the hackish
+        * FindMyDatabase variants, which look in the flat-file copy of
+        * pg_database.
         *
         * If the in_dbname param is NULL, lookup database by OID.
         */
index 5b1ceb49c20cc3d593bbb92498e9ce19e30e3fe2..a2ff4a9093215cfdf9d0e14669447bc5b73e8116 100644 (file)
@@ -5,7 +5,7 @@
  * Copyright (c) 2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/euc_jis_2004_and_shift_jis_2004/euc_jis_2004_and_shift_jis_2004.c,v 1.1 2007/03/25 11:56:02 ishii Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/euc_jis_2004_and_shift_jis_2004/euc_jis_2004_and_shift_jis_2004.c,v 1.2 2007/11/15 21:14:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -76,7 +76,7 @@ euc_jis_20042shift_jis_2004(const unsigned char *euc, unsigned char *p, int len)
 {
    int         c1,
                ku,
-       ten;
+               ten;
    int         l;
 
    while (len > 0)
@@ -104,7 +104,7 @@ euc_jis_20042shift_jis_2004(const unsigned char *euc, unsigned char *p, int len)
        {
            *p++ = euc[1];
        }
-       else if (c1 == SS3 && l == 3)       /* JIS X 0213 plane 2? */
+       else if (c1 == SS3 && l == 3)   /* JIS X 0213 plane 2? */
        {
            ku = euc[1] - 0xa0;
            ten = euc[2] - 0xa0;
@@ -146,7 +146,7 @@ euc_jis_20042shift_jis_2004(const unsigned char *euc, unsigned char *p, int len)
                *p++ = ten + 0x9e;
        }
 
-       else if (l == 2)    /* JIS X 0213 plane 1? */
+       else if (l == 2)        /* JIS X 0213 plane 1? */
        {
            ku = c1 - 0xa0;
            ten = euc[1] - 0xa0;
@@ -187,26 +187,29 @@ euc_jis_20042shift_jis_2004(const unsigned char *euc, unsigned char *p, int len)
  * *ku = 0: "ku" = even
  * *ku = 1: "ku" = odd
  */
-static int get_ten(int b, int *ku)
+static int
+get_ten(int b, int *ku)
 {
-   int ten;
+   int         ten;
 
    if (b >= 0x40 && b <= 0x7e)
    {
        ten = b - 0x3f;
        *ku = 1;
-   } else if (b >= 0x80 && b <= 0x9e)
+   }
+   else if (b >= 0x80 && b <= 0x9e)
    {
        ten = b - 0x40;
        *ku = 1;
-   } else if (b >= 0x9f && b <= 0xfc)
+   }
+   else if (b >= 0x9f && b <= 0xfc)
    {
        ten = b - 0x9e;
        *ku = 0;
    }
    else
    {
-       ten = -1;       /* error */
+       ten = -1;               /* error */
    }
    return ten;
 }
@@ -219,8 +222,10 @@ static void
 shift_jis_20042euc_jis_2004(const unsigned char *sjis, unsigned char *p, int len)
 {
    int         c1,
-       c2;
-   int         ku, ten, kubun;
+               c2;
+   int         ku,
+               ten,
+               kubun;
    int         plane;
    int         l;
 
@@ -281,7 +286,8 @@ shift_jis_20042euc_jis_2004(const unsigned char *sjis, unsigned char *p, int len
                                            (const char *) sjis, len);
                ku -= kubun;
            }
-           else if (c1 >= 0xf0 && c1 <= 0xf3)  /* plane 2 1,3,4,5,8,12,13,14,15 ku */
+           else if (c1 >= 0xf0 && c1 <= 0xf3)  /* plane 2
+                                                * 1,3,4,5,8,12,13,14,15 ku */
            {
                plane = 2;
                ten = get_ten(c2, &kubun);
@@ -291,16 +297,16 @@ shift_jis_20042euc_jis_2004(const unsigned char *sjis, unsigned char *p, int len
                switch (c1)
                {
                    case 0xf0:
-                       ku = kubun == 0? 8: 1;                      
+                       ku = kubun == 0 ? 8 : 1;
                        break;
                    case 0xf1:
-                       ku = kubun == 0? 4: 3;
+                       ku = kubun == 0 ? 4 : 3;
                        break;
                    case 0xf2:
-                       ku = kubun == 0? 12: 5;
+                       ku = kubun == 0 ? 12 : 5;
                        break;
                    default:
-                       ku = kubun == 0? 14: 13;
+                       ku = kubun == 0 ? 14 : 13;
                        break;
                }
            }
index f0dc157d707ea5517b814cc584e120592c5e59e5..e5d483682352a555cdfef7127c2c264fa1275091 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.c,v 1.16 2007/03/25 11:56:02 ishii Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.c,v 1.17 2007/11/15 21:14:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -46,7 +46,7 @@ big5_to_utf8(PG_FUNCTION_ARGS)
    Assert(PG_GETARG_INT32(1) == PG_UTF8);
    Assert(len >= 0);
 
-   LocalToUtf(src, dest, LUmapBIG5, NULL, 
+   LocalToUtf(src, dest, LUmapBIG5, NULL,
               sizeof(LUmapBIG5) / sizeof(pg_local_to_utf), 0, PG_BIG5, len);
 
    PG_RETURN_VOID();
@@ -63,7 +63,7 @@ utf8_to_big5(PG_FUNCTION_ARGS)
    Assert(PG_GETARG_INT32(1) == PG_BIG5);
    Assert(len >= 0);
 
-   UtfToLocal(src, dest, ULmapBIG5, NULL, 
+   UtfToLocal(src, dest, ULmapBIG5, NULL,
               sizeof(ULmapBIG5) / sizeof(pg_utf_to_local), 0, PG_BIG5, len);
 
    PG_RETURN_VOID();
index 4ff61b90e3794d8d72918ee899cf9fdd1924ac36..de4f9d2415e885597608558883c172f150a71a01 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c,v 1.19 2007/03/25 11:56:02 ishii Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c,v 1.20 2007/11/15 21:14:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -47,8 +47,8 @@ utf8_to_koi8r(PG_FUNCTION_ARGS)
    Assert(PG_GETARG_INT32(1) == PG_KOI8R);
    Assert(len >= 0);
 
-   UtfToLocal(src, dest, ULmapKOI8R, NULL, 
-              sizeof(ULmapKOI8R) / sizeof(pg_utf_to_local), 0, PG_KOI8R, len);
+   UtfToLocal(src, dest, ULmapKOI8R, NULL,
+            sizeof(ULmapKOI8R) / sizeof(pg_utf_to_local), 0, PG_KOI8R, len);
 
    PG_RETURN_VOID();
 }
@@ -65,7 +65,7 @@ koi8r_to_utf8(PG_FUNCTION_ARGS)
    Assert(len >= 0);
 
    LocalToUtf(src, dest, LUmapKOI8R, NULL,
-              sizeof(LUmapKOI8R) / sizeof(pg_local_to_utf), 0, PG_KOI8R, len);
+            sizeof(LUmapKOI8R) / sizeof(pg_local_to_utf), 0, PG_KOI8R, len);
 
    PG_RETURN_VOID();
 }
index d88e152d66497ff4592829d4c43d567c1f252e20..913deb985ceb36e495ccd37fd7e1e9249179c9b8 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.c,v 1.17 2007/03/25 11:56:02 ishii Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.c,v 1.18 2007/11/15 21:14:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -47,7 +47,7 @@ euc_cn_to_utf8(PG_FUNCTION_ARGS)
    Assert(len >= 0);
 
    LocalToUtf(src, dest, LUmapEUC_CN, NULL,
-              sizeof(LUmapEUC_CN) / sizeof(pg_local_to_utf), 0, PG_EUC_CN, len);
+          sizeof(LUmapEUC_CN) / sizeof(pg_local_to_utf), 0, PG_EUC_CN, len);
 
    PG_RETURN_VOID();
 }
@@ -64,7 +64,7 @@ utf8_to_euc_cn(PG_FUNCTION_ARGS)
    Assert(len >= 0);
 
    UtfToLocal(src, dest, ULmapEUC_CN, NULL,
-              sizeof(ULmapEUC_CN) / sizeof(pg_utf_to_local), 0, PG_EUC_CN, len);
+          sizeof(ULmapEUC_CN) / sizeof(pg_utf_to_local), 0, PG_EUC_CN, len);
 
    PG_RETURN_VOID();
 }
index 60a095d810e11e4c6db17a675f7447c9358ae6d0..bcc9ef3d32dca560cb0ce778affb3d24cfa7b645 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_jis_2004/utf8_and_euc_jis_2004.c,v 1.1 2007/03/25 11:56:03 ishii Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_jis_2004/utf8_and_euc_jis_2004.c,v 1.2 2007/11/15 21:14:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -50,7 +50,7 @@ euc_jis_2004_to_utf8(PG_FUNCTION_ARGS)
 
    LocalToUtf(src, dest, LUmapEUC_JIS_2004, LUmapEUC_JIS_2004_combined,
               sizeof(LUmapEUC_JIS_2004) / sizeof(pg_local_to_utf),
-              sizeof(LUmapEUC_JIS_2004_combined) / sizeof(pg_local_to_utf_combined),
+      sizeof(LUmapEUC_JIS_2004_combined) / sizeof(pg_local_to_utf_combined),
               PG_EUC_JIS_2004, len);
 
    PG_RETURN_VOID();
@@ -69,7 +69,7 @@ utf8_to_euc_jis_2004(PG_FUNCTION_ARGS)
 
    UtfToLocal(src, dest, ULmapEUC_JIS_2004, ULmapEUC_JIS_2004_combined,
               sizeof(ULmapEUC_JIS_2004) / sizeof(pg_utf_to_local),
-              sizeof(ULmapEUC_JIS_2004_combined) / sizeof(pg_utf_to_local_combined),
+      sizeof(ULmapEUC_JIS_2004_combined) / sizeof(pg_utf_to_local_combined),
               PG_EUC_JIS_2004, len);
 
    PG_RETURN_VOID();
index 6d12ab256edfb1732b15a6a226d81745d58d8523..35f651b8a5f7551a7655e8aac99b4be2a77ce679 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.c,v 1.17 2007/03/25 11:56:03 ishii Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.c,v 1.18 2007/11/15 21:14:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -47,7 +47,7 @@ euc_jp_to_utf8(PG_FUNCTION_ARGS)
    Assert(len >= 0);
 
    LocalToUtf(src, dest, LUmapEUC_JP, NULL,
-              sizeof(LUmapEUC_JP) / sizeof(pg_local_to_utf), 0, PG_EUC_JP, len);
+          sizeof(LUmapEUC_JP) / sizeof(pg_local_to_utf), 0, PG_EUC_JP, len);
 
    PG_RETURN_VOID();
 }
@@ -64,7 +64,7 @@ utf8_to_euc_jp(PG_FUNCTION_ARGS)
    Assert(len >= 0);
 
    UtfToLocal(src, dest, ULmapEUC_JP, NULL,
-              sizeof(ULmapEUC_JP) / sizeof(pg_utf_to_local), 0, PG_EUC_JP, len);
+          sizeof(ULmapEUC_JP) / sizeof(pg_utf_to_local), 0, PG_EUC_JP, len);
 
    PG_RETURN_VOID();
 }
index de57e30cfe30a6d8e91ace18d5800f56a3c8259f..8572b52244411ba22e643d577751097b13c04129 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.c,v 1.17 2007/03/25 11:56:03 ishii Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.c,v 1.18 2007/11/15 21:14:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -47,7 +47,7 @@ euc_kr_to_utf8(PG_FUNCTION_ARGS)
    Assert(len >= 0);
 
    LocalToUtf(src, dest, LUmapEUC_KR, NULL,
-              sizeof(LUmapEUC_KR) / sizeof(pg_local_to_utf), 0, PG_EUC_KR, len);
+          sizeof(LUmapEUC_KR) / sizeof(pg_local_to_utf), 0, PG_EUC_KR, len);
 
    PG_RETURN_VOID();
 }
@@ -64,7 +64,7 @@ utf8_to_euc_kr(PG_FUNCTION_ARGS)
    Assert(len >= 0);
 
    UtfToLocal(src, dest, ULmapEUC_KR, NULL,
-              sizeof(ULmapEUC_KR) / sizeof(pg_utf_to_local), 0, PG_EUC_KR, len);
+          sizeof(ULmapEUC_KR) / sizeof(pg_utf_to_local), 0, PG_EUC_KR, len);
 
    PG_RETURN_VOID();
 }
index 1e428f4356e7bfd2cb8e47fd5a4bdc3da58c8347..6b481c1e4c5d3762cb50136f3a6ed2d1d4ad60af 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.c,v 1.17 2007/03/25 11:56:03 ishii Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.c,v 1.18 2007/11/15 21:14:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -47,7 +47,7 @@ euc_tw_to_utf8(PG_FUNCTION_ARGS)
    Assert(len >= 0);
 
    LocalToUtf(src, dest, LUmapEUC_TW, NULL,
-              sizeof(LUmapEUC_TW) / sizeof(pg_local_to_utf), 0, PG_EUC_TW, len);
+          sizeof(LUmapEUC_TW) / sizeof(pg_local_to_utf), 0, PG_EUC_TW, len);
 
    PG_RETURN_VOID();
 }
@@ -64,7 +64,7 @@ utf8_to_euc_tw(PG_FUNCTION_ARGS)
    Assert(len >= 0);
 
    UtfToLocal(src, dest, ULmapEUC_TW, NULL,
-              sizeof(ULmapEUC_TW) / sizeof(pg_utf_to_local), 0, PG_EUC_TW, len);
+          sizeof(ULmapEUC_TW) / sizeof(pg_utf_to_local), 0, PG_EUC_TW, len);
 
    PG_RETURN_VOID();
 }
index e533237bc861257ab4d1acc5d4e13ede410fe3a7..1c14dc7c1933c6366ca5473eb6380a96ec79ba2f 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c,v 1.18 2007/03/25 11:56:03 ishii Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c,v 1.19 2007/11/15 21:14:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -47,7 +47,7 @@ gb18030_to_utf8(PG_FUNCTION_ARGS)
    Assert(len >= 0);
 
    LocalToUtf(src, dest, LUmapGB18030, NULL,
-           sizeof(LUmapGB18030) / sizeof(pg_local_to_utf), 0, PG_GB18030, len);
+        sizeof(LUmapGB18030) / sizeof(pg_local_to_utf), 0, PG_GB18030, len);
 
    PG_RETURN_VOID();
 }
@@ -64,7 +64,7 @@ utf8_to_gb18030(PG_FUNCTION_ARGS)
    Assert(len >= 0);
 
    UtfToLocal(src, dest, ULmapGB18030, NULL,
-           sizeof(ULmapGB18030) / sizeof(pg_utf_to_local), 0, PG_GB18030, len);
+        sizeof(ULmapGB18030) / sizeof(pg_utf_to_local), 0, PG_GB18030, len);
 
    PG_RETURN_VOID();
 }
index e720303605e1d7fe64b670f9cbbef3eb23a1795b..3cc0e9b6f6b80038bb332abe52b595f9b6aa4e70 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c,v 1.26 2007/03/25 11:56:03 ishii Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c,v 1.27 2007/11/15 21:14:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -134,7 +134,7 @@ iso8859_to_utf8(PG_FUNCTION_ARGS)
 
    ereport(ERROR,
            (errcode(ERRCODE_INTERNAL_ERROR),
-      errmsg("unexpected encoding ID %d for ISO 8859 character sets", encoding)));
+            errmsg("unexpected encoding ID %d for ISO 8859 character sets", encoding)));
 
    PG_RETURN_VOID();
 }
@@ -162,7 +162,7 @@ utf8_to_iso8859(PG_FUNCTION_ARGS)
 
    ereport(ERROR,
            (errcode(ERRCODE_INTERNAL_ERROR),
-      errmsg("unexpected encoding ID %d for ISO 8859 character sets", encoding)));
+            errmsg("unexpected encoding ID %d for ISO 8859 character sets", encoding)));
 
    PG_RETURN_VOID();
 }
index b197da61f0eb8b3512e72e2a77704c34543d28df..29ec545297b36610cdefb988b4b9762e51e6a97b 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.c,v 1.17 2007/03/25 11:56:03 ishii Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.c,v 1.18 2007/11/15 21:14:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -47,7 +47,7 @@ johab_to_utf8(PG_FUNCTION_ARGS)
    Assert(len >= 0);
 
    LocalToUtf(src, dest, LUmapJOHAB, NULL,
-              sizeof(LUmapJOHAB) / sizeof(pg_local_to_utf), 0, PG_JOHAB, len);
+            sizeof(LUmapJOHAB) / sizeof(pg_local_to_utf), 0, PG_JOHAB, len);
 
    PG_RETURN_VOID();
 }
@@ -64,7 +64,7 @@ utf8_to_johab(PG_FUNCTION_ARGS)
    Assert(len >= 0);
 
    UtfToLocal(src, dest, ULmapJOHAB, NULL,
-              sizeof(ULmapJOHAB) / sizeof(pg_utf_to_local), 0, PG_JOHAB, len);
+            sizeof(ULmapJOHAB) / sizeof(pg_utf_to_local), 0, PG_JOHAB, len);
 
    PG_RETURN_VOID();
 }
index 887890cabeb23e204d2874fc30b29eff2fb197f2..f691a4a3ef9de3961db97b28d86268d26dee90ef 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_shift_jis_2004/utf8_and_shift_jis_2004.c,v 1.1 2007/03/25 11:56:03 ishii Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_shift_jis_2004/utf8_and_shift_jis_2004.c,v 1.2 2007/11/15 21:14:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -50,7 +50,7 @@ shift_jis_2004_to_utf8(PG_FUNCTION_ARGS)
 
    LocalToUtf(src, dest, LUmapSHIFT_JIS_2004, LUmapSHIFT_JIS_2004_combined,
               sizeof(LUmapSHIFT_JIS_2004) / sizeof(pg_local_to_utf),
-              sizeof(LUmapSHIFT_JIS_2004_combined) / sizeof(pg_local_to_utf_combined),
+    sizeof(LUmapSHIFT_JIS_2004_combined) / sizeof(pg_local_to_utf_combined),
               PG_SHIFT_JIS_2004, len);
 
    PG_RETURN_VOID();
@@ -69,7 +69,7 @@ utf8_to_shift_jis_2004(PG_FUNCTION_ARGS)
 
    UtfToLocal(src, dest, ULmapSHIFT_JIS_2004, ULmapSHIFT_JIS_2004_combined,
               sizeof(ULmapSHIFT_JIS_2004) / sizeof(pg_utf_to_local),
-              sizeof(ULmapSHIFT_JIS_2004_combined) / sizeof(pg_utf_to_local_combined),
+    sizeof(ULmapSHIFT_JIS_2004_combined) / sizeof(pg_utf_to_local_combined),
               PG_SHIFT_JIS_2004, len);
 
    PG_RETURN_VOID();
index 0369283c99096566368da5bce653623ce802536e..3fb43ccc814d024125de0db8633a539d9125fa1e 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c,v 1.10 2007/03/25 11:56:04 ishii Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c,v 1.11 2007/11/15 21:14:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -124,7 +124,7 @@ win_to_utf8(PG_FUNCTION_ARGS)
 
    ereport(ERROR,
            (errcode(ERRCODE_INTERNAL_ERROR),
-            errmsg("unexpected encoding ID %d for WIN character sets", encoding)));
+     errmsg("unexpected encoding ID %d for WIN character sets", encoding)));
 
    PG_RETURN_VOID();
 }
@@ -152,7 +152,7 @@ utf8_to_win(PG_FUNCTION_ARGS)
 
    ereport(ERROR,
            (errcode(ERRCODE_INTERNAL_ERROR),
-            errmsg("unexpected encoding ID %d for WIN character sets", encoding)));
+     errmsg("unexpected encoding ID %d for WIN character sets", encoding)));
 
    PG_RETURN_VOID();
 }
index 9e8f210240dc25dd01449ed39b7a933634f9e870..0167dffc06cb6af53f917ab3a53a74b48d135ff0 100644 (file)
@@ -2,7 +2,7 @@
  * Encoding names and routines for work with it. All
  * in this file is shared bedween FE and BE.
  *
- * $PostgreSQL: pgsql/src/backend/utils/mb/encnames.c,v 1.36 2007/10/15 22:46:27 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/mb/encnames.c,v 1.37 2007/11/15 21:14:40 momjian Exp $
  */
 #ifdef FRONTEND
 #include "postgres_fe.h"
@@ -47,8 +47,8 @@ pg_encname    pg_encname_tbl[] =
                                 * Chinese */
    {
        "eucjis2004", PG_EUC_JIS_2004
-   },                          /* EUC-JIS-2004; Extended UNIX Code fixed Width for
-                                * Japanese, standard JIS X 0213 */
+   },                          /* EUC-JIS-2004; Extended UNIX Code fixed
+                                * Width for Japanese, standard JIS X 0213 */
    {
        "eucjp", PG_EUC_JP
    },                          /* EUC-JP; Extended UNIX Code fixed Width for
@@ -164,8 +164,8 @@ pg_encname  pg_encname_tbl[] =
 
    {
        "shiftjis2004", PG_SHIFT_JIS_2004
-   },                          /* SHIFT-JIS-2004; Shift JIS for
-                                * Japanese, standard JIS X 0213 */
+   },                          /* SHIFT-JIS-2004; Shift JIS for Japanese,
+                                * standard JIS X 0213 */
    {
        "sjis", PG_SJIS
    },                          /* alias for Shift_JIS */
@@ -470,7 +470,7 @@ static char *
 clean_encoding_name(const char *key, char *newkey)
 {
    const char *p;
-   char       *np;
+   char       *np;
 
    for (p = key, np = newkey; *p != '\0'; p++)
    {
index 91f65df36a675fa7da78a6c17f8e8213c63f5557..3cbd05f41a0726ffaf97516b8775cb803cc539e7 100644 (file)
@@ -4,7 +4,7 @@
  * (currently mule internal code (mic) is used)
  * Tatsuo Ishii
  *
- * $PostgreSQL: pgsql/src/backend/utils/mb/mbutils.c,v 1.67 2007/10/13 20:18:41 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/mb/mbutils.c,v 1.68 2007/11/15 21:14:40 momjian Exp $
  */
 #include "postgres.h"
 
@@ -277,8 +277,8 @@ pg_do_encoding_conversion(unsigned char *src, int len,
        ereport(ERROR,
                (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
                 errmsg("out of memory"),
-                errdetail("String of %d bytes is too long for encoding conversion.",
-                          len)));
+        errdetail("String of %d bytes is too long for encoding conversion.",
+                  len)));
 
    result = palloc(len * MAX_CONVERSION_GROWTH + 1);
 
@@ -305,12 +305,13 @@ pg_convert_to(PG_FUNCTION_ARGS)
                            namein, CStringGetDatum(DatabaseEncoding->name));
    Datum       result;
 
-   /* pg_convert expects a bytea as its first argument. We're passing it
-    * a text argument here, relying on the fact that they are both in fact
+   /*
+    * pg_convert expects a bytea as its first argument. We're passing it a
+    * text argument here, relying on the fact that they are both in fact
     * varlena types, and thus structurally identical.
     */
    result = DirectFunctionCall3(
-                pg_convert, string, src_encoding_name, dest_encoding_name);
+                 pg_convert, string, src_encoding_name, dest_encoding_name);
 
    /* free memory allocated by namein */
    pfree((void *) src_encoding_name);
@@ -333,13 +334,14 @@ pg_convert_from(PG_FUNCTION_ARGS)
    Datum       result;
 
    result = DirectFunctionCall3(
-                pg_convert, string, src_encoding_name, dest_encoding_name);
+                 pg_convert, string, src_encoding_name, dest_encoding_name);
 
    /* free memory allocated by namein */
    pfree((void *) src_encoding_name);
 
-   /* pg_convert returns a bytea, which we in turn return as text, relying 
-    * on the fact that they are both in fact varlena types, and thus 
+   /*
+    * pg_convert returns a bytea, which we in turn return as text, relying on
+    * the fact that they are both in fact varlena types, and thus
     * structurally identical. Although not all bytea values are valid text,
     * in this case it will be because we've told pg_convert to return one
     * that is valid as text in the current database encoding.
@@ -378,7 +380,7 @@ pg_convert(PG_FUNCTION_ARGS)
 
    /* make sure that source string is valid and null terminated */
    len = VARSIZE(string) - VARHDRSZ;
-   pg_verify_mbstr(src_encoding,VARDATA(string),len,false);
+   pg_verify_mbstr(src_encoding, VARDATA(string), len, false);
    str = palloc(len + 1);
    memcpy(str, VARDATA(string), len);
    *(str + len) = '\0';
@@ -415,11 +417,11 @@ pg_convert(PG_FUNCTION_ARGS)
 Datum
 length_in_encoding(PG_FUNCTION_ARGS)
 {
-   bytea      *string = PG_GETARG_BYTEA_P(0);
+   bytea      *string = PG_GETARG_BYTEA_P(0);
    char       *src_encoding_name = NameStr(*PG_GETARG_NAME(1));
    int         src_encoding = pg_char_to_encoding(src_encoding_name);
-   int         len = VARSIZE(string) - VARHDRSZ;
-   int         retval;
+   int         len = VARSIZE(string) - VARHDRSZ;
+   int         retval;
 
    if (src_encoding < 0)
        ereport(ERROR,
@@ -429,7 +431,7 @@ length_in_encoding(PG_FUNCTION_ARGS)
 
    retval = pg_verify_mbstr_len(src_encoding, VARDATA(string), len, false);
    PG_RETURN_INT32(retval);
-   
+
 }
 
 /*
@@ -545,8 +547,8 @@ perform_default_encoding_conversion(const char *src, int len, bool is_client_to_
        ereport(ERROR,
                (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
                 errmsg("out of memory"),
-                errdetail("String of %d bytes is too long for encoding conversion.",
-                          len)));
+        errdetail("String of %d bytes is too long for encoding conversion.",
+                  len)));
 
    result = palloc(len * MAX_CONVERSION_GROWTH + 1);
 
index dd5cf210f9b987611d10e102c08a6c8f60e1b42a..348a57e4d6e64fd11151a6cbbca4acc1fb30b36e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * conversion functions between pg_wchar and multibyte streams.
  * Tatsuo Ishii
- * $PostgreSQL: pgsql/src/backend/utils/mb/wchar.c,v 1.65 2007/10/15 22:46:27 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/mb/wchar.c,v 1.66 2007/11/15 21:14:40 momjian Exp $
  *
  */
 /* can be used in either frontend or backend */
@@ -1310,7 +1310,7 @@ pg_wchar_tbl pg_wchar_table[] = {
    {pg_euckr2wchar_with_len, pg_euckr_mblen, pg_euckr_dsplen, pg_euckr_verifier, 3},   /* 3; PG_EUC_KR */
    {pg_euctw2wchar_with_len, pg_euctw_mblen, pg_euctw_dsplen, pg_euctw_verifier, 4},   /* 4; PG_EUC_TW */
    {pg_eucjp2wchar_with_len, pg_eucjp_mblen, pg_eucjp_dsplen, pg_eucjp_verifier, 3},   /* 5; PG_EUC_JIS_2004 */
-   {pg_utf2wchar_with_len, pg_utf_mblen, pg_utf_dsplen, pg_utf8_verifier, 4},          /* 6; PG_UTF8 */
+   {pg_utf2wchar_with_len, pg_utf_mblen, pg_utf_dsplen, pg_utf8_verifier, 4},  /* 6; PG_UTF8 */
    {pg_mule2wchar_with_len, pg_mule_mblen, pg_mule_dsplen, pg_mule_verifier, 4},       /* 7; PG_MULE_INTERNAL */
    {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1},       /* 8; PG_LATIN1 */
    {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1},       /* 9; PG_LATIN2 */
@@ -1343,7 +1343,7 @@ pg_wchar_tbl pg_wchar_table[] = {
    {0, pg_gbk_mblen, pg_gbk_dsplen, pg_gbk_verifier, 2},       /* 36; PG_GBK */
    {0, pg_uhc_mblen, pg_uhc_dsplen, pg_uhc_verifier, 2},       /* 37; PG_UHC */
    {0, pg_gb18030_mblen, pg_gb18030_dsplen, pg_gb18030_verifier, 4},   /* 38; PG_GB18030 */
-   {0, pg_johab_mblen, pg_johab_dsplen, pg_johab_verifier, 3}, /* 39; PG_JOHAB */
+   {0, pg_johab_mblen, pg_johab_dsplen, pg_johab_verifier, 3}, /* 39; PG_JOHAB */
    {0, pg_sjis_mblen, pg_sjis_dsplen, pg_sjis_verifier, 2}     /* 40; PG_SHIFT_JIS_2004 */
 };
 
@@ -1427,7 +1427,7 @@ pg_database_encoding_max_length(void)
 bool
 pg_verifymbstr(const char *mbstr, int len, bool noError)
 {
-   return 
+   return
        pg_verify_mbstr_len(GetDatabaseEncoding(), mbstr, len, noError) >= 0;
 }
 
@@ -1441,22 +1441,22 @@ pg_verify_mbstr(int encoding, const char *mbstr, int len, bool noError)
    return pg_verify_mbstr_len(encoding, mbstr, len, noError) >= 0;
 }
 
-/* 
+/*
  * Verify mbstr to make sure that it is validly encoded in the specified
  * encoding.
  *
  * mbstr is not necessarily zero terminated; length of mbstr is
  * specified by len.
  *
- * If OK, return length of string in the encoding. 
+ * If OK, return length of string in the encoding.
  * If a problem is found, return -1 when noError is
  * true; when noError is false, ereport() a descriptive message.
- */ 
+ */
 int
 pg_verify_mbstr_len(int encoding, const char *mbstr, int len, bool noError)
 {
    mbverifier  mbverify;
-   int mb_len;
+   int         mb_len;
 
    Assert(PG_VALID_ENCODING(encoding));
 
@@ -1476,7 +1476,7 @@ pg_verify_mbstr_len(int encoding, const char *mbstr, int len, bool noError)
 
    /* fetch function pointer just once */
    mbverify = pg_wchar_table[encoding].mbverify;
-   
+
    mb_len = 0;
 
    while (len > 0)
index 02d5fd4bbe6f59f2049cd5a1736e6b920d02500d..3ce3d4ed0476407ee7570ae034380ca5865ae164 100644 (file)
@@ -10,7 +10,7 @@
  * Written by Peter Eisentraut <[email protected]>.
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.425 2007/11/11 19:22:49 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.426 2007/11/15 21:14:41 momjian Exp $
  *
  *--------------------------------------------------------------------
  */
@@ -142,7 +142,7 @@ static const char *assign_syslog_ident(const char *ident,
 static const char *assign_defaultxactisolevel(const char *newval, bool doit,
                           GucSource source);
 static const char *assign_session_replication_role(const char *newval, bool doit,
-                          GucSource source);
+                               GucSource source);
 static const char *assign_log_min_messages(const char *newval, bool doit,
                        GucSource source);
 static const char *assign_client_min_messages(const char *newval,
@@ -1052,14 +1052,14 @@ static struct config_bool ConfigureNamesBool[] =
        false, NULL, NULL
    },
 
-    {
-        {"archive_mode", PGC_POSTMASTER, WAL_SETTINGS,
-            gettext_noop("Allows archiving of WAL files using archive_command."),
-            NULL
-        },
-        &XLogArchiveMode,
-        false, NULL, NULL
-    },
+   {
+       {"archive_mode", PGC_POSTMASTER, WAL_SETTINGS,
+           gettext_noop("Allows archiving of WAL files using archive_command."),
+           NULL
+       },
+       &XLogArchiveMode,
+       false, NULL, NULL
+   },
 
    {
        {"allow_system_table_mods", PGC_POSTMASTER, DEVELOPER_OPTIONS,
@@ -1181,7 +1181,7 @@ static struct config_int ConfigureNamesInt[] =
            GUC_UNIT_MS
        },
        &DeadlockTimeout,
-       1000, 1, INT_MAX/1000, NULL, NULL
+       1000, 1, INT_MAX / 1000, NULL, NULL
    },
 
    /*
@@ -1193,8 +1193,8 @@ static struct config_int ConfigureNamesInt[] =
     *
     * MaxBackends is limited to INT_MAX/4 because some places compute
     * 4*MaxBackends without any overflow check.  This check is made on
-    * assign_maxconnections, since MaxBackends is computed as MaxConnections +
-    * autovacuum_max_workers.
+    * assign_maxconnections, since MaxBackends is computed as MaxConnections
+    * autovacuum_max_workers.
     *
     * Likewise we have to limit NBuffers to INT_MAX/2.
     */
@@ -2448,7 +2448,7 @@ static struct config_string ConfigureNamesString[] =
        &SSLCipherSuites,
        "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH", NULL, NULL
    },
-#endif /* USE_SSL */
+#endif   /* USE_SSL */
 
    /* End-of-list marker */
    {
@@ -2499,7 +2499,7 @@ static void ReportGUCOption(struct config_generic * record);
 static void ShowGUCConfigOption(const char *name, DestReceiver *dest);
 static void ShowAllGUCConfig(DestReceiver *dest);
 static char *_ShowOption(struct config_generic * record, bool use_units);
-static bool is_newvalue_equal(struct config_generic *record, const char *newvalue);
+static bool is_newvalue_equal(struct config_generic * record, const char *newvalue);
 
 
 /*
@@ -2630,7 +2630,7 @@ set_stack_value(struct config_generic * gconf, union config_var_value * val)
  * Support for discarding a no-longer-needed value in a stack entry
  */
 static void
-discard_stack_value(struct config_generic *gconf, union config_var_value *val)
+discard_stack_value(struct config_generic * gconf, union config_var_value * val)
 {
    switch (gconf->vartype)
    {
@@ -2806,8 +2806,8 @@ add_placeholder_variable(const char *name, int elevel)
 
    /*
     * The char* is allocated at the end of the struct since we have no
-    * 'static' place to point to.  Note that the current value, as well
-    * as the boot and reset values, start out NULL.
+    * 'static' place to point to.  Note that the current value, as well as
+    * the boot and reset values, start out NULL.
     */
    var->variable = (char **) (var + 1);
 
@@ -2969,8 +2969,8 @@ InitializeGUCOptions(void)
    long        stack_rlimit;
 
    /*
-    * Before log_line_prefix could possibly receive a nonempty setting,
-    * make sure that timezone processing is minimally alive (see elog.c).
+    * Before log_line_prefix could possibly receive a nonempty setting, make
+    * sure that timezone processing is minimally alive (see elog.c).
     */
    pg_timezone_pre_initialize();
 
@@ -3094,7 +3094,7 @@ InitializeGUCOptions(void)
 
    /*
     * For historical reasons, some GUC parameters can receive defaults from
-    * environment variables.  Process those settings.  NB: if you add or
+    * environment variables.  Process those settings.  NB: if you add or
     * remove anything here, see also ProcessConfigFile().
     */
 
@@ -3118,11 +3118,11 @@ InitializeGUCOptions(void)
    stack_rlimit = get_stack_depth_rlimit();
    if (stack_rlimit > 0)
    {
-       int     new_limit = (stack_rlimit - STACK_DEPTH_SLOP) / 1024L;
+       int         new_limit = (stack_rlimit - STACK_DEPTH_SLOP) / 1024L;
 
        if (new_limit > 100)
        {
-           char    limbuf[16];
+           char        limbuf[16];
 
            new_limit = Min(new_limit, 2048);
            sprintf(limbuf, "%d", new_limit);
@@ -3470,9 +3470,9 @@ void
 AtStart_GUC(void)
 {
    /*
-    * The nest level should be 0 between transactions; if it isn't,
-    * somebody didn't call AtEOXact_GUC, or called it with the wrong
-    * nestLevel.  We throw a warning but make no other effort to clean up.
+    * The nest level should be 0 between transactions; if it isn't, somebody
+    * didn't call AtEOXact_GUC, or called it with the wrong nestLevel.  We
+    * throw a warning but make no other effort to clean up.
     */
    if (GUCNestLevel != 0)
        elog(WARNING, "GUC nest level = %d at transaction start",
@@ -3482,7 +3482,7 @@ AtStart_GUC(void)
 
 /*
  * Enter a new nesting level for GUC values.  This is called at subtransaction
- * start and when entering a function that has proconfig settings.  NOTE that
+ * start and when entering a function that has proconfig settings. NOTE that
  * we must not risk error here, else subtransaction start will be unhappy.
  */
 int
@@ -3520,9 +3520,9 @@ AtEOXact_GUC(bool isCommit, int nestLevel)
        GucStack   *stack;
 
        /*
-        * Process and pop each stack entry within the nest level.  To
-        * simplify fmgr_security_definer(), we allow failure exit from
-        * function-with-SET-options to be recovered at the surrounding
+        * Process and pop each stack entry within the nest level.  To
+        * simplify fmgr_security_definer(), we allow failure exit from a
+        * function-with-SET-options to be recovered at the surrounding
         * transaction or subtransaction abort; so there could be more than
         * one stack entry to pop.
         */
@@ -3540,7 +3540,7 @@ AtEOXact_GUC(bool isCommit, int nestLevel)
             * stack entries to avoid leaking memory.  If we do set one of
             * those flags, unused fields will be cleaned up after restoring.
             */
-           if (!isCommit)          /* if abort, always restore prior value */
+           if (!isCommit)      /* if abort, always restore prior value */
                restorePrior = true;
            else if (stack->state == GUC_SAVE)
                restorePrior = true;
@@ -3554,7 +3554,7 @@ AtEOXact_GUC(bool isCommit, int nestLevel)
                    /* we keep the current active value */
                    discard_stack_value(gconf, &stack->prior);
                }
-               else        /* must be GUC_LOCAL */
+               else    /* must be GUC_LOCAL */
                    restorePrior = true;
            }
            else if (prev == NULL ||
@@ -3567,13 +3567,13 @@ AtEOXact_GUC(bool isCommit, int nestLevel)
            else
            {
                /*
-                * We have to merge this stack entry into prev.
-                * See README for discussion of this bit.
+                * We have to merge this stack entry into prev. See README for
+                * discussion of this bit.
                 */
                switch (stack->state)
                {
                    case GUC_SAVE:
-                       Assert(false); /* can't get here */
+                       Assert(false);  /* can't get here */
 
                    case GUC_SET:
                        /* next level always becomes SET */
@@ -3631,98 +3631,99 @@ AtEOXact_GUC(bool isCommit, int nestLevel)
                switch (gconf->vartype)
                {
                    case PGC_BOOL:
-                   {
-                       struct config_bool *conf = (struct config_bool *) gconf;
-                       bool        newval = newvalue.boolval;
-
-                       if (*conf->variable != newval)
                        {
-                           if (conf->assign_hook)
-                               if (!(*conf->assign_hook) (newval,
-                                                          true, PGC_S_OVERRIDE))
-                                   elog(LOG, "failed to commit %s",
-                                        conf->gen.name);
-                           *conf->variable = newval;
-                           changed = true;
+                           struct config_bool *conf = (struct config_bool *) gconf;
+                           bool        newval = newvalue.boolval;
+
+                           if (*conf->variable != newval)
+                           {
+                               if (conf->assign_hook)
+                                   if (!(*conf->assign_hook) (newval,
+                                                      true, PGC_S_OVERRIDE))
+                                       elog(LOG, "failed to commit %s",
+                                            conf->gen.name);
+                               *conf->variable = newval;
+                               changed = true;
+                           }
+                           break;
                        }
-                       break;
-                   }
                    case PGC_INT:
-                   {
-                       struct config_int *conf = (struct config_int *) gconf;
-                       int         newval = newvalue.intval;
-
-                       if (*conf->variable != newval)
                        {
-                           if (conf->assign_hook)
-                               if (!(*conf->assign_hook) (newval,
-                                                          true, PGC_S_OVERRIDE))
-                                   elog(LOG, "failed to commit %s",
-                                        conf->gen.name);
-                           *conf->variable = newval;
-                           changed = true;
+                           struct config_int *conf = (struct config_int *) gconf;
+                           int         newval = newvalue.intval;
+
+                           if (*conf->variable != newval)
+                           {
+                               if (conf->assign_hook)
+                                   if (!(*conf->assign_hook) (newval,
+                                                      true, PGC_S_OVERRIDE))
+                                       elog(LOG, "failed to commit %s",
+                                            conf->gen.name);
+                               *conf->variable = newval;
+                               changed = true;
+                           }
+                           break;
                        }
-                       break;
-                   }
                    case PGC_REAL:
-                   {
-                       struct config_real *conf = (struct config_real *) gconf;
-                       double      newval = newvalue.realval;
-
-                       if (*conf->variable != newval)
                        {
-                           if (conf->assign_hook)
-                               if (!(*conf->assign_hook) (newval,
-                                                          true, PGC_S_OVERRIDE))
-                                   elog(LOG, "failed to commit %s",
-                                        conf->gen.name);
-                           *conf->variable = newval;
-                           changed = true;
+                           struct config_real *conf = (struct config_real *) gconf;
+                           double      newval = newvalue.realval;
+
+                           if (*conf->variable != newval)
+                           {
+                               if (conf->assign_hook)
+                                   if (!(*conf->assign_hook) (newval,
+                                                      true, PGC_S_OVERRIDE))
+                                       elog(LOG, "failed to commit %s",
+                                            conf->gen.name);
+                               *conf->variable = newval;
+                               changed = true;
+                           }
+                           break;
                        }
-                       break;
-                   }
                    case PGC_STRING:
-                   {
-                       struct config_string *conf = (struct config_string *) gconf;
-                       char       *newval = newvalue.stringval;
-
-                       if (*conf->variable != newval)
                        {
-                           if (conf->assign_hook && newval)
+                           struct config_string *conf = (struct config_string *) gconf;
+                           char       *newval = newvalue.stringval;
+
+                           if (*conf->variable != newval)
                            {
-                               const char *newstr;
-
-                               newstr = (*conf->assign_hook) (newval, true,
-                                                              PGC_S_OVERRIDE);
-                               if (newstr == NULL)
-                                   elog(LOG, "failed to commit %s",
-                                        conf->gen.name);
-                               else if (newstr != newval)
+                               if (conf->assign_hook && newval)
                                {
-                                   /*
-                                    * If newval should now be freed, it'll be
-                                    * taken care of below.
-                                    *
-                                    * See notes in set_config_option about
-                                    * casting
-                                    */
-                                   newval = (char *) newstr;
+                                   const char *newstr;
+
+                                   newstr = (*conf->assign_hook) (newval, true,
+                                                            PGC_S_OVERRIDE);
+                                   if (newstr == NULL)
+                                       elog(LOG, "failed to commit %s",
+                                            conf->gen.name);
+                                   else if (newstr != newval)
+                                   {
+                                       /*
+                                        * If newval should now be freed,
+                                        * it'll be taken care of below.
+                                        *
+                                        * See notes in set_config_option
+                                        * about casting
+                                        */
+                                       newval = (char *) newstr;
+                                   }
                                }
+
+                               set_string_field(conf, conf->variable, newval);
+                               changed = true;
                            }
 
-                           set_string_field(conf, conf->variable, newval);
-                           changed = true;
+                           /*
+                            * Release stacked values if not used anymore. We
+                            * could use discard_stack_value() here, but since
+                            * we have type-specific code anyway, might as
+                            * well inline it.
+                            */
+                           set_string_field(conf, &stack->prior.stringval, NULL);
+                           set_string_field(conf, &stack->masked.stringval, NULL);
+                           break;
                        }
-                       /*
-                        * Release stacked values if not used anymore.
-                        * We could use discard_stack_value() here, but since
-                        * we have type-specific code anyway, might as well
-                        * inline it.
-                        */
-                       set_string_field(conf, &stack->prior.stringval, NULL);
-                       set_string_field(conf, &stack->masked.stringval, NULL);
-                       break;
-                   }
                }
 
                gconf->source = newsource;
@@ -3735,7 +3736,7 @@ AtEOXact_GUC(bool isCommit, int nestLevel)
            /* Report new value if we changed it */
            if (changed && (gconf->flags & GUC_REPORT))
                ReportGUCOption(gconf);
-       } /* end of stack-popping loop */
+       }                       /* end of stack-popping loop */
 
        if (stack != NULL)
            still_dirty = true;
@@ -4196,10 +4197,10 @@ set_config_option(const char *name, const char *value,
    }
 
    /*
-    * If source is postgresql.conf, mark the found record with GUC_IS_IN_FILE.
-    * This is for the convenience of ProcessConfigFile.  Note that we do it
-    * even if changeVal is false, since ProcessConfigFile wants the marking
-    * to occur during its testing pass.
+    * If source is postgresql.conf, mark the found record with
+    * GUC_IS_IN_FILE. This is for the convenience of ProcessConfigFile.  Note
+    * that we do it even if changeVal is false, since ProcessConfigFile wants
+    * the marking to occur during its testing pass.
     */
    if (source == PGC_S_FILE)
        record->status |= GUC_IS_IN_FILE;
@@ -4229,7 +4230,7 @@ set_config_option(const char *name, const char *value,
                /*
                 * We are reading a PGC_POSTMASTER var from postgresql.conf.
                 * We can't change the setting, so give a warning if the DBA
-                * tries to change it.  (Throwing an error would be more
+                * tries to change it.  (Throwing an error would be more
                 * consistent, but seems overly rigid.)
                 */
                if (changeVal && !is_newvalue_equal(record, value))
@@ -4304,10 +4305,10 @@ set_config_option(const char *name, const char *value,
    }
 
    /*
-    * Should we set reset/stacked values?  (If so, the behavior is not
-    * transactional.)  This is done either when we get a default
-    * value from the database's/user's/client's default settings or
-    * when we reset a value to its default.
+    * Should we set reset/stacked values?  (If so, the behavior is not
+    * transactional.)  This is done either when we get a default value from
+    * the database's/user's/client's default settings or when we reset a
+    * value to its default.
     */
    makeDefault = changeVal && (source <= PGC_S_OVERRIDE) &&
        ((value != NULL) || source == PGC_S_DEFAULT);
@@ -4414,8 +4415,8 @@ set_config_option(const char *name, const char *value,
                    {
                        ereport(elevel,
                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                                errmsg("invalid value for parameter \"%s\": \"%s\"",
-                                       name, value),
+                        errmsg("invalid value for parameter \"%s\": \"%s\"",
+                               name, value),
                                 hintmsg ? errhint(hintmsg) : 0));
                        return false;
                    }
@@ -4920,7 +4921,7 @@ flatten_set_variable_args(const char *name, List *args)
 void
 ExecSetVariableStmt(VariableSetStmt *stmt)
 {
-   GucAction action = stmt->is_local ? GUC_ACTION_LOCAL : GUC_ACTION_SET;
+   GucAction   action = stmt->is_local ? GUC_ACTION_LOCAL : GUC_ACTION_SET;
 
    switch (stmt->kind)
    {
@@ -4934,9 +4935,10 @@ ExecSetVariableStmt(VariableSetStmt *stmt)
                              true);
            break;
        case VAR_SET_MULTI:
+
            /*
-            * Special case for special SQL syntax that effectively sets
-            * more than one variable per statement.
+            * Special case for special SQL syntax that effectively sets more
+            * than one variable per statement.
             */
            if (strcmp(stmt->name, "TRANSACTION") == 0)
            {
@@ -5121,7 +5123,7 @@ init_custom_variable(const char *name,
  * variable into the GUC variable array, replacing any placeholder.
  */
 static void
-define_custom_variable(struct config_generic *variable)
+define_custom_variable(struct config_generic * variable)
 {
    const char *name = variable->name;
    const char **nameAddr = &name;
@@ -5153,8 +5155,8 @@ define_custom_variable(struct config_generic *variable)
    pHolder = (struct config_string *) (*res);
 
    /*
-    * Replace the placeholder.
-    * We aren't changing the name, so no re-sorting is necessary
+    * Replace the placeholder. We aren't changing the name, so no re-sorting
+    * is necessary
     */
    *res = variable;
 
@@ -5900,7 +5902,7 @@ _ShowOption(struct config_generic * record, bool use_units)
  * effects of canonicalization of string values by assign_hooks.
  */
 static bool
-is_newvalue_equal(struct config_generic *record, const char *newvalue)
+is_newvalue_equal(struct config_generic * record, const char *newvalue)
 {
    /* newvalue == NULL isn't supported */
    Assert(newvalue != NULL);
@@ -6175,7 +6177,7 @@ ParseLongOption(const char *string, char **name, char **value)
 
 /*
  * Handle options fetched from pg_database.datconfig, pg_authid.rolconfig,
- * pg_proc.proconfig, etc.  Caller must specify proper context/source/action.
+ * pg_proc.proconfig, etc. Caller must specify proper context/source/action.
  *
  * The array parameter must be an array of TEXT (it must not be NULL).
  */
@@ -6418,7 +6420,7 @@ assign_log_destination(const char *value, bool doit, GucSource source)
        if (pg_strcasecmp(tok, "stderr") == 0)
            newlogdest |= LOG_DESTINATION_STDERR;
        else if (pg_strcasecmp(tok, "csvlog") == 0)
-           newlogdest |= LOG_DESTINATION_CSVLOG;
+           newlogdest |= LOG_DESTINATION_CSVLOG;
 #ifdef HAVE_SYSLOG
        else if (pg_strcasecmp(tok, "syslog") == 0)
            newlogdest |= LOG_DESTINATION_SYSLOG;
@@ -6527,7 +6529,7 @@ assign_defaultxactisolevel(const char *newval, bool doit, GucSource source)
 static const char *
 assign_session_replication_role(const char *newval, bool doit, GucSource source)
 {
-   int     newrole;
+   int         newrole;
 
    if (pg_strcasecmp(newval, "origin") == 0)
        newrole = SESSION_REPLICATION_ROLE_ORIGIN;
index 9f6774e5f7ca4451f646bd314ad915ca328bb937..23bdaf4bde99f7f3f45b1eee910a4caba811e0ab 100644 (file)
@@ -5,7 +5,7 @@
  * to contain some useful information. Mechanism differs wildly across
  * platforms.
  *
- * $PostgreSQL: pgsql/src/backend/utils/misc/ps_status.c,v 1.35 2007/02/16 21:34:04 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/misc/ps_status.c,v 1.36 2007/11/15 21:14:41 momjian Exp $
  *
  * Copyright (c) 2000-2007, PostgreSQL Global Development Group
  * various details abducted from various places
@@ -155,7 +155,7 @@ save_ps_display_args(int argc, char **argv)
 
        ps_buffer = argv[0];
        last_status_len = ps_buffer_size = end_of_area - argv[0];
-       
+
        /*
         * move the environment out of the way
         */
index 7d080af86de4ec9c43c0dcc633015b9d202a7ed9..d1848854cf6a366b4a53aac0e81549dd1a8de6fb 100644 (file)
@@ -11,7 +11,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/mmgr/aset.c,v 1.74 2007/08/12 20:39:14 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/mmgr/aset.c,v 1.75 2007/11/15 21:14:41 momjian Exp $
  *
  * NOTE:
  * This is a new (Feb. 05, 1999) implementation of the allocation set
@@ -330,13 +330,13 @@ AllocSetContextCreate(MemoryContext parent,
    context->nextBlockSize = initBlockSize;
 
    /*
-    * Compute the allocation chunk size limit for this context.  It can't
-    * be more than ALLOC_CHUNK_LIMIT because of the fixed number of
-    * freelists.  If maxBlockSize is small then requests exceeding the
-    * maxBlockSize should be treated as large chunks, too.  We have to
-    * have allocChunkLimit a power of two, because the requested and
-    * actually-allocated sizes of any chunk must be on the same side of
-    * the limit, else we get confused about whether the chunk is "big".
+    * Compute the allocation chunk size limit for this context.  It can't be
+    * more than ALLOC_CHUNK_LIMIT because of the fixed number of freelists.
+    * If maxBlockSize is small then requests exceeding the maxBlockSize
+    * should be treated as large chunks, too.  We have to have
+    * allocChunkLimit a power of two, because the requested and
+    * actually-allocated sizes of any chunk must be on the same side of the
+    * limit, else we get confused about whether the chunk is "big".
     */
    context->allocChunkLimit = ALLOC_CHUNK_LIMIT;
    while (context->allocChunkLimit >
@@ -935,9 +935,9 @@ AllocSetRealloc(MemoryContext context, void *pointer, Size size)
         * Small-chunk case.  We just do this by brute force, ie, allocate a
         * new chunk and copy the data.  Since we know the existing data isn't
         * huge, this won't involve any great memcpy expense, so it's not
-        * worth being smarter.  (At one time we tried to avoid memcpy when
-        * it was possible to enlarge the chunk in-place, but that turns out
-        * to misbehave unpleasantly for repeated cycles of
+        * worth being smarter.  (At one time we tried to avoid memcpy when it
+        * was possible to enlarge the chunk in-place, but that turns out to
+        * misbehave unpleasantly for repeated cycles of
         * palloc/repalloc/pfree: the eventually freed chunks go into the
         * wrong freelist for the next initial palloc request, and so we leak
         * memory indefinitely.  See pgsql-hackers archives for 2007-08-11.)
index 412e41952c21b1fbac9621a55db6ae7a12f8ef5e..676012e32935883193af04b043c9c25c72fe77b7 100644 (file)
@@ -12,7 +12,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/mmgr/portalmem.c,v 1.103 2007/04/26 23:24:44 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/mmgr/portalmem.c,v 1.104 2007/11/15 21:14:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -161,7 +161,7 @@ PortalListGetPrimaryStmt(List *stmts)
 
    foreach(lc, stmts)
    {
-       Node   *stmt = (Node *) lfirst(lc);
+       Node       *stmt = (Node *) lfirst(lc);
 
        if (IsA(stmt, PlannedStmt))
        {
@@ -292,16 +292,16 @@ PortalDefineQuery(Portal portal,
                  const char *sourceText,
                  const char *commandTag,
                  List *stmts,
-                 CachedPlan *cplan)
+                 CachedPlan * cplan)
 {
    AssertArg(PortalIsValid(portal));
    AssertState(portal->status == PORTAL_NEW);
 
    Assert(commandTag != NULL || stmts == NIL);
 
-   portal->prepStmtName = prepStmtName ? 
+   portal->prepStmtName = prepStmtName ?
        MemoryContextStrdup(PortalGetHeapMemory(portal), prepStmtName) : NULL;
-   portal->sourceText = sourceText ? 
+   portal->sourceText = sourceText ?
        MemoryContextStrdup(PortalGetHeapMemory(portal), sourceText) : NULL;
    portal->commandTag = commandTag;
    portal->stmts = stmts;
@@ -468,7 +468,8 @@ PortalHashTableDeleteAll(void)
    hash_seq_init(&status, PortalHashTable);
    while ((hentry = hash_seq_search(&status)) != NULL)
    {
-       Portal portal = hentry->portal;
+       Portal      portal = hentry->portal;
+
        if (portal->status != PORTAL_ACTIVE)
            PortalDrop(portal, false);
    }
@@ -883,8 +884,8 @@ pg_cursor(PG_FUNCTION_ARGS)
    oldcontext = MemoryContextSwitchTo(per_query_ctx);
 
    /*
-    * build tupdesc for result tuples. This must match the definition of
-    * the pg_cursors view in system_views.sql
+    * build tupdesc for result tuples. This must match the definition of the
+    * pg_cursors view in system_views.sql
     */
    tupdesc = CreateTemplateTupleDesc(6, false);
    TupleDescInitEntry(tupdesc, (AttrNumber) 1, "name",
index 92fe4742c7c573fe2d30f1ae5ac2ffbd3cf10a91..a88fe9c05eefc373105a9e756a91f40af2da44be 100644 (file)
@@ -14,7 +14,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/resowner/resowner.c,v 1.24 2007/03/13 00:33:42 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/resowner/resowner.c,v 1.25 2007/11/15 21:14:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -95,7 +95,7 @@ static void ResourceOwnerReleaseInternal(ResourceOwner owner,
                             bool isCommit,
                             bool isTopLevel);
 static void PrintRelCacheLeakWarning(Relation rel);
-static void PrintPlanCacheLeakWarning(CachedPlan *plan);
+static void PrintPlanCacheLeakWarning(CachedPlan * plan);
 static void PrintTupleDescLeakWarning(TupleDesc tupdesc);
 
 
@@ -811,7 +811,7 @@ ResourceOwnerEnlargePlanCacheRefs(ResourceOwner owner)
  * Caller must have previously done ResourceOwnerEnlargePlanCacheRefs()
  */
 void
-ResourceOwnerRememberPlanCacheRef(ResourceOwner owner, CachedPlan *plan)
+ResourceOwnerRememberPlanCacheRef(ResourceOwner owner, CachedPlan * plan)
 {
    Assert(owner->nplanrefs < owner->maxplanrefs);
    owner->planrefs[owner->nplanrefs] = plan;
@@ -822,7 +822,7 @@ ResourceOwnerRememberPlanCacheRef(ResourceOwner owner, CachedPlan *plan)
  * Forget that a plancache reference is owned by a ResourceOwner
  */
 void
-ResourceOwnerForgetPlanCacheRef(ResourceOwner owner, CachedPlan *plan)
+ResourceOwnerForgetPlanCacheRef(ResourceOwner owner, CachedPlan * plan)
 {
    CachedPlan **planrefs = owner->planrefs;
    int         np1 = owner->nplanrefs - 1;
@@ -849,7 +849,7 @@ ResourceOwnerForgetPlanCacheRef(ResourceOwner owner, CachedPlan *plan)
  * Debugging subroutine
  */
 static void
-PrintPlanCacheLeakWarning(CachedPlan *plan)
+PrintPlanCacheLeakWarning(CachedPlan * plan)
 {
    elog(WARNING, "plancache reference leak: plan %p not closed", plan);
 }
index 0c63d1e142fc1376324e82719048f3e210202691..fd442d93c1807fdea894a2c7f7dc8a4a90b4ce8f 100644 (file)
@@ -91,7 +91,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/sort/tuplesort.c,v 1.79 2007/10/29 21:31:28 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/sort/tuplesort.c,v 1.80 2007/11/15 21:14:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -246,8 +246,8 @@ struct Tuplesortstate
                                        int tapenum, unsigned int len);
 
    /*
-    * Function to reverse the sort direction from its current state.
-    * (We could dispense with this if we wanted to enforce that all variants
+    * Function to reverse the sort direction from its current state. (We
+    * could dispense with this if we wanted to enforce that all variants
     * represent the sort key information alike.)
     */
    void        (*reversedirection) (Tuplesortstate *state);
@@ -572,8 +572,8 @@ tuplesort_begin_heap(TupleDesc tupDesc,
 
    for (i = 0; i < nkeys; i++)
    {
-       Oid     sortFunction;
-       bool    reverse;
+       Oid         sortFunction;
+       bool        reverse;
 
        AssertArg(attNums[i] != 0);
        AssertArg(sortOperators[i] != 0);
@@ -699,7 +699,7 @@ tuplesort_begin_datum(Oid datumType,
  *
  * Advise tuplesort that at most the first N result tuples are required.
  *
- * Must be called before inserting any tuples.  (Actually, we could allow it
+ * Must be called before inserting any tuples. (Actually, we could allow it
  * as long as the sort hasn't spilled to disk, but there seems no need for
  * delayed calls at the moment.)
  *
@@ -721,7 +721,7 @@ tuplesort_set_bound(Tuplesortstate *state, int64 bound)
 #endif
 
    /* We want to be able to compute bound * 2, so limit the setting */
-   if (bound > (int64) (INT_MAX/2))
+   if (bound > (int64) (INT_MAX / 2))
        return;
 
    state->bounded = true;
@@ -927,16 +927,16 @@ puttuple_common(Tuplesortstate *state, SortTuple *tuple)
            state->memtuples[state->memtupcount++] = *tuple;
 
            /*
-            * Check if it's time to switch over to a bounded heapsort.
-            * We do so if the input tuple count exceeds twice the desired
-            * tuple count (this is a heuristic for where heapsort becomes
-            * cheaper than a quicksort), or if we've just filled workMem
-            * and have enough tuples to meet the bound.
+            * Check if it's time to switch over to a bounded heapsort. We do
+            * so if the input tuple count exceeds twice the desired tuple
+            * count (this is a heuristic for where heapsort becomes cheaper
+            * than a quicksort), or if we've just filled workMem and have
+            * enough tuples to meet the bound.
             *
-            * Note that once we enter TSS_BOUNDED state we will always try
-            * to complete the sort that way.  In the worst case, if later
-            * input tuples are larger than earlier ones, this might cause
-            * us to exceed workMem significantly.
+            * Note that once we enter TSS_BOUNDED state we will always try to
+            * complete the sort that way.  In the worst case, if later input
+            * tuples are larger than earlier ones, this might cause us to
+            * exceed workMem significantly.
             */
            if (state->bounded &&
                (state->memtupcount > state->bound * 2 ||
@@ -970,14 +970,14 @@ puttuple_common(Tuplesortstate *state, SortTuple *tuple)
            break;
 
        case TSS_BOUNDED:
+
            /*
-            * We don't want to grow the array here, so check whether the
-            * new tuple can be discarded before putting it in.  This should
-            * be a good speed optimization, too, since when there are many
-            * more input tuples than the bound, most input tuples can be
-            * discarded with just this one comparison.  Note that because
-            * we currently have the sort direction reversed, we must check
-            * for <= not >=.
+            * We don't want to grow the array here, so check whether the new
+            * tuple can be discarded before putting it in.  This should be a
+            * good speed optimization, too, since when there are many more
+            * input tuples than the bound, most input tuples can be discarded
+            * with just this one comparison.  Note that because we currently
+            * have the sort direction reversed, we must check for <= not >=.
             */
            if (COMPARETUP(state, tuple, &state->memtuples[0]) <= 0)
            {
@@ -1065,8 +1065,8 @@ tuplesort_performsort(Tuplesortstate *state)
 
            /*
             * We were able to accumulate all the tuples required for output
-            * in memory, using a heap to eliminate excess tuples.  Now we have
-            * to transform the heap to a properly-sorted array.
+            * in memory, using a heap to eliminate excess tuples.  Now we
+            * have to transform the heap to a properly-sorted array.
             */
            sort_bounded_heap(state);
            state->current = 0;
@@ -1140,7 +1140,7 @@ tuplesort_gettuple_common(Tuplesortstate *state, bool forward,
 
                /*
                 * Complain if caller tries to retrieve more tuples than
-                * originally asked for in a bounded sort.  This is because
+                * originally asked for in a bounded sort.  This is because
                 * returning EOF here might be the wrong thing.
                 */
                if (state->bounded && state->current >= state->bound)
@@ -2139,11 +2139,11 @@ tuplesort_explain(Tuplesortstate *state)
    /*
     * Note: it might seem we should print both memory and disk usage for a
     * disk-based sort.  However, the current code doesn't track memory space
-    * accurately once we have begun to return tuples to the caller (since
-    * we don't account for pfree's the caller is expected to do), so we
-    * cannot rely on availMem in a disk sort.  This does not seem worth the
-    * overhead to fix.  Is it worth creating an API for the memory context
-    * code to tell us how much is actually used in sortcontext?
+    * accurately once we have begun to return tuples to the caller (since we
+    * don't account for pfree's the caller is expected to do), so we cannot
+    * rely on availMem in a disk sort.  This does not seem worth the overhead
+    * to fix.  Is it worth creating an API for the memory context code to
+    * tell us how much is actually used in sortcontext?
     */
    if (state->tapeset)
        spaceUsed = LogicalTapeSetBlocks(state->tapeset) * (BLCKSZ / 1024);
@@ -2209,8 +2209,8 @@ tuplesort_explain(Tuplesortstate *state)
 static void
 make_bounded_heap(Tuplesortstate *state)
 {
-   int     tupcount = state->memtupcount;
-   int     i;
+   int         tupcount = state->memtupcount;
+   int         i;
 
    Assert(state->status == TSS_INITIAL);
    Assert(state->bounded);
@@ -2220,10 +2220,10 @@ make_bounded_heap(Tuplesortstate *state)
    REVERSEDIRECTION(state);
 
    state->memtupcount = 0;     /* make the heap empty */
-   for (i=0; i<tupcount; i++)
+   for (i = 0; i < tupcount; i++)
    {
        if (state->memtupcount >= state->bound &&
-           COMPARETUP(state, &state->memtuples[i], &state->memtuples[0]) <= 0)
+         COMPARETUP(state, &state->memtuples[i], &state->memtuples[0]) <= 0)
        {
            /* New tuple would just get thrown out, so skip it */
            free_sort_tuple(state, &state->memtuples[i]);
@@ -2232,7 +2232,7 @@ make_bounded_heap(Tuplesortstate *state)
        {
            /* Insert next tuple into heap */
            /* Must copy source tuple to avoid possible overwrite */
-           SortTuple stup = state->memtuples[i];
+           SortTuple   stup = state->memtuples[i];
 
            tuplesort_heap_insert(state, &stup, 0, false);
 
@@ -2255,7 +2255,7 @@ make_bounded_heap(Tuplesortstate *state)
 static void
 sort_bounded_heap(Tuplesortstate *state)
 {
-   int     tupcount = state->memtupcount;
+   int         tupcount = state->memtupcount;
 
    Assert(state->status == TSS_BOUNDED);
    Assert(state->bounded);
@@ -2268,7 +2268,7 @@ sort_bounded_heap(Tuplesortstate *state)
     */
    while (state->memtupcount > 1)
    {
-       SortTuple stup = state->memtuples[0];
+       SortTuple   stup = state->memtuples[0];
 
        /* this sifts-up the next-largest entry and decreases memtupcount */
        tuplesort_heap_siftup(state, false);
@@ -2393,7 +2393,7 @@ markrunend(Tuplesortstate *state, int tapenum)
 
 
 /*
- * Set up for an external caller of ApplySortFunction.  This function
+ * Set up for an external caller of ApplySortFunction. This function
  * basically just exists to localize knowledge of the encoding of sk_flags
  * used in this module.
  */
@@ -2403,7 +2403,7 @@ SelectSortFunction(Oid sortOperator,
                   Oid *sortFunction,
                   int *sortFlags)
 {
-   bool    reverse;
+   bool        reverse;
 
    if (!get_compare_function_for_ordering_op(sortOperator,
                                              sortFunction, &reverse))
index 372dacaed46c290dc9248f612162cada8cb1dd6c..9972b50c2197f0355865acd370f9ed44c3f12cd9 100644 (file)
@@ -38,7 +38,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/sort/tuplestore.c,v 1.34 2007/08/02 17:48:52 neilc Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/sort/tuplestore.c,v 1.35 2007/11/15 21:14:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -261,11 +261,11 @@ Tuplestorestate *
 tuplestore_begin_heap(bool randomAccess, bool interXact, int maxKBytes)
 {
    Tuplestorestate *state;
-   int     eflags;
+   int         eflags;
 
    /*
-    * This interpretation of the meaning of randomAccess is compatible
-    * with the pre-8.3 behavior of tuplestores.
+    * This interpretation of the meaning of randomAccess is compatible with
+    * the pre-8.3 behavior of tuplestores.
     */
    eflags = randomAccess ?
        (EXEC_FLAG_BACKWARD | EXEC_FLAG_REWIND | EXEC_FLAG_MARK) :
@@ -288,7 +288,7 @@ tuplestore_begin_heap(bool randomAccess, bool interXact, int maxKBytes)
  * into the tuplestore.
  *
  * eflags is a bitmask following the meanings used for executor node
- * startup flags (see executor.h).  tuplestore pays attention to these bits:
+ * startup flags (see executor.h). tuplestore pays attention to these bits:
  *     EXEC_FLAG_REWIND        need rewind to start
  *     EXEC_FLAG_BACKWARD      need backward fetch
  *     EXEC_FLAG_MARK          need mark/restore
@@ -723,10 +723,11 @@ tuplestore_markpos(Tuplestorestate *state)
    {
        case TSS_INMEM:
            state->markpos_current = state->current;
+
            /*
             * We can truncate the tuplestore if neither backward scan nor
-            * rewind capability are required by the caller.  There will
-            * never be a need to back up past the mark point.
+            * rewind capability are required by the caller.  There will never
+            * be a need to back up past the mark point.
             *
             * Note: you might think we could remove all the tuples before
             * "current", since that one is the next to be returned.  However,
@@ -826,10 +827,10 @@ tuplestore_trim(Tuplestorestate *state, int ntuples)
    }
 
    /*
-    * Slide the array down and readjust pointers.  This may look pretty
+    * Slide the array down and readjust pointers.  This may look pretty
     * stupid, but we expect that there will usually not be very many
-    * tuple-pointers to move, so this isn't that expensive; and it keeps
-    * lot of other logic simple.
+    * tuple-pointers to move, so this isn't that expensive; and it keeps a
+    * lot of other logic simple.
     *
     * In fact, in the current usage for merge joins, it's demonstrable that
     * there will always be exactly one non-removed tuple; so optimize that
@@ -896,7 +897,7 @@ writetup_heap(Tuplestorestate *state, void *tup)
 
    if (BufFileWrite(state->myfile, (void *) tuple, tuplen) != (size_t) tuplen)
        elog(ERROR, "write failed");
-   if (state->eflags & EXEC_FLAG_BACKWARD) /* need trailing length word? */
+   if (state->eflags & EXEC_FLAG_BACKWARD)     /* need trailing length word? */
        if (BufFileWrite(state->myfile, (void *) &tuplen,
                         sizeof(tuplen)) != sizeof(tuplen))
            elog(ERROR, "write failed");
@@ -917,7 +918,7 @@ readtup_heap(Tuplestorestate *state, unsigned int len)
    if (BufFileRead(state->myfile, (void *) ((char *) tuple + sizeof(int)),
                    len - sizeof(int)) != (size_t) (len - sizeof(int)))
        elog(ERROR, "unexpected end of data");
-   if (state->eflags & EXEC_FLAG_BACKWARD) /* need trailing length word? */
+   if (state->eflags & EXEC_FLAG_BACKWARD)     /* need trailing length word? */
        if (BufFileRead(state->myfile, (void *) &tuplen,
                        sizeof(tuplen)) != sizeof(tuplen))
            elog(ERROR, "unexpected end of data");
index 5ba76660fddc54398063a60aba427ea88f58d264..a26823fe4411603d86190014fe4bdcf9dbe5a75d 100644 (file)
@@ -15,7 +15,7 @@
  * this module.
  *
  * To allow reusing existing combo cids, we also keep a hash table that
- * maps cmin,cmax pairs to combo cids.  This keeps the data structure size
+ * maps cmin,cmax pairs to combo cids. This keeps the data structure size
  * reasonable in most cases, since the number of unique pairs used by any
  * one transaction is likely to be small.
  *
@@ -34,7 +34,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/time/combocid.c,v 1.1 2007/02/09 03:35:34 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/time/combocid.c,v 1.2 2007/11/15 21:14:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -54,17 +54,17 @@ static HTAB *comboHash = NULL;
 /* Key and entry structures for the hash table */
 typedef struct
 {
-   CommandId cmin;
-   CommandId cmax;
-} ComboCidKeyData;
+   CommandId   cmin;
+   CommandId   cmax;
+}  ComboCidKeyData;
 
 typedef ComboCidKeyData *ComboCidKey;
 
 typedef struct
 {
    ComboCidKeyData key;
-   CommandId combocid;
-} ComboCidEntryData;
+   CommandId   combocid;
+}  ComboCidEntryData;
 
 typedef ComboCidEntryData *ComboCidEntry;
 
@@ -77,8 +77,8 @@ typedef ComboCidEntryData *ComboCidEntry;
  * To convert a combo cid to cmin and cmax, you do a simple array lookup.
  */
 static ComboCidKey comboCids = NULL;
-static int usedComboCids = 0;          /* number of elements in comboCids */
-static int sizeComboCids = 0;          /* allocated size of array */
+static int usedComboCids = 0;  /* number of elements in comboCids */
+static int sizeComboCids = 0;  /* allocated size of array */
 
 /* Initial size of the array */
 #define CCID_ARRAY_SIZE            100
@@ -102,7 +102,7 @@ static CommandId GetRealCmax(CommandId combocid);
 CommandId
 HeapTupleHeaderGetCmin(HeapTupleHeader tup)
 {
-   CommandId cid = HeapTupleHeaderGetRawCommandId(tup);
+   CommandId   cid = HeapTupleHeaderGetRawCommandId(tup);
 
    Assert(!(tup->t_infomask & HEAP_MOVED));
    Assert(TransactionIdIsCurrentTransactionId(HeapTupleHeaderGetXmin(tup)));
@@ -116,7 +116,7 @@ HeapTupleHeaderGetCmin(HeapTupleHeader tup)
 CommandId
 HeapTupleHeaderGetCmax(HeapTupleHeader tup)
 {
-   CommandId cid = HeapTupleHeaderGetRawCommandId(tup);
+   CommandId   cid = HeapTupleHeaderGetRawCommandId(tup);
 
    /* We do not store cmax when locking a tuple */
    Assert(!(tup->t_infomask & (HEAP_MOVED | HEAP_IS_LOCKED)));
@@ -155,7 +155,7 @@ HeapTupleHeaderAdjustCmax(HeapTupleHeader tup,
    if (!(tup->t_infomask & HEAP_XMIN_COMMITTED) &&
        TransactionIdIsCurrentTransactionId(HeapTupleHeaderGetXmin(tup)))
    {
-       CommandId cmin = HeapTupleHeaderGetRawCommandId(tup);
+       CommandId   cmin = HeapTupleHeaderGetRawCommandId(tup);
 
        *cmax = GetComboCommandId(cmin, *cmax);
        *iscombo = true;
@@ -174,8 +174,8 @@ void
 AtEOXact_ComboCid(void)
 {
    /*
-    * Don't bother to pfree. These are allocated in TopTransactionContext,
-    * so they're going to go away at the end of transaction anyway.
+    * Don't bother to pfree. These are allocated in TopTransactionContext, so
+    * they're going to go away at the end of transaction anyway.
     */
    comboHash = NULL;
 
@@ -195,18 +195,18 @@ AtEOXact_ComboCid(void)
 static CommandId
 GetComboCommandId(CommandId cmin, CommandId cmax)
 {
-   CommandId combocid;
+   CommandId   combocid;
    ComboCidKeyData key;
    ComboCidEntry entry;
-   bool found;
+   bool        found;
 
    /*
-    * Create the hash table and array the first time we need to use
-    * combo cids in the transaction.
+    * Create the hash table and array the first time we need to use combo
+    * cids in the transaction.
     */
    if (comboHash == NULL)
    {
-       HASHCTL hash_ctl;
+       HASHCTL     hash_ctl;
 
        memset(&hash_ctl, 0, sizeof(hash_ctl));
        hash_ctl.keysize = sizeof(ComboCidKeyData);
@@ -243,13 +243,13 @@ GetComboCommandId(CommandId cmin, CommandId cmax)
    }
 
    /*
-    * We have to create a new combo cid. Check that there's room
-    * for it in the array, and grow it if there isn't.
+    * We have to create a new combo cid. Check that there's room for it in
+    * the array, and grow it if there isn't.
     */
    if (usedComboCids >= sizeComboCids)
    {
        /* We need to grow the array */
-       int     newsize = sizeComboCids * 2;
+       int         newsize = sizeComboCids * 2;
 
        comboCids = (ComboCidKeyData *)
            repalloc(comboCids, sizeof(ComboCidKeyData) * newsize);
index e5401861455af67bf42d675618f30d280d4951ff..4c128e4446b0c209226af66fee781db583cc3cc8 100644 (file)
@@ -31,7 +31,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/time/tqual.c,v 1.106 2007/09/21 18:24:28 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/time/tqual.c,v 1.107 2007/11/15 21:14:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -95,12 +95,12 @@ static bool XidInMVCCSnapshot(TransactionId xid, Snapshot snapshot);
  * buffer, so we can't use the LSN to interlock this; we have to just refrain
  * from setting the hint bit until some future re-examination of the tuple.
  *
- * We can always set hint bits when marking a transaction aborted.  (Some
+ * We can always set hint bits when marking a transaction aborted. (Some
  * code in heapam.c relies on that!)
  *
  * Also, if we are cleaning up HEAP_MOVED_IN or HEAP_MOVED_OFF entries, then
  * we can always set the hint bits, since VACUUM FULL always uses synchronous
- * commits and doesn't move tuples that weren't previously hinted.  (This is
+ * commits and doesn't move tuples that weren't previously hinted. (This is
  * not known by this subroutine, but is applied by its callers.)
  *
  * Normal commits may be asynchronous, so for those we need to get the LSN
@@ -116,7 +116,7 @@ SetHintBits(HeapTupleHeader tuple, Buffer buffer,
    if (TransactionIdIsValid(xid))
    {
        /* NB: xid must be known committed here! */
-       XLogRecPtr  commitLSN = TransactionIdGetCommitLSN(xid);
+       XLogRecPtr  commitLSN = TransactionIdGetCommitLSN(xid);
 
        if (XLogNeedsFlush(commitLSN))
            return;             /* not flushed yet, so don't set hint */
@@ -1127,10 +1127,11 @@ HeapTupleSatisfiesVacuum(HeapTupleHeader tuple, TransactionId OldestXmin,
                        InvalidTransactionId);
            return HEAPTUPLE_DEAD;
        }
+
        /*
         * At this point the xmin is known committed, but we might not have
-        * been able to set the hint bit yet; so we can no longer Assert
-        * that it's set.
+        * been able to set the hint bit yet; so we can no longer Assert that
+        * it's set.
         */
    }
 
@@ -1146,8 +1147,8 @@ HeapTupleSatisfiesVacuum(HeapTupleHeader tuple, TransactionId OldestXmin,
        /*
         * "Deleting" xact really only locked it, so the tuple is live in any
         * case.  However, we should make sure that either XMAX_COMMITTED or
-        * XMAX_INVALID gets set once the xact is gone, to reduce the costs
-        * of examining the tuple for future xacts.  Also, marking dead
+        * XMAX_INVALID gets set once the xact is gone, to reduce the costs of
+        * examining the tuple for future xacts.  Also, marking dead
         * MultiXacts as invalid here provides defense against MultiXactId
         * wraparound (see also comments in heap_freeze_tuple()).
         */
@@ -1198,10 +1199,11 @@ HeapTupleSatisfiesVacuum(HeapTupleHeader tuple, TransactionId OldestXmin,
                        InvalidTransactionId);
            return HEAPTUPLE_LIVE;
        }
+
        /*
         * At this point the xmax is known committed, but we might not have
-        * been able to set the hint bit yet; so we can no longer Assert
-        * that it's set.
+        * been able to set the hint bit yet; so we can no longer Assert that
+        * it's set.
         */
    }
 
index e3713cd64c89e54b46e2e118ff940cb8dfb07d29..ff579fb9191dccbf4d0c986b6f7b32b84a0b189f 100644 (file)
@@ -42,7 +42,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  * Portions taken from FreeBSD.
  *
- * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.149 2007/10/25 20:22:53 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.150 2007/11/15 21:14:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -165,7 +165,7 @@ static void exit_nicely(void);
 static char *get_id(void);
 static char *get_encoding_id(char *encoding_name);
 static char *get_short_version(void);
-static int  check_data_dir(char *dir);
+static int check_data_dir(char *dir);
 static bool mkdatadir(const char *subdir);
 static void set_input(char **dest, char *filename);
 static void check_input(char *path);
@@ -625,7 +625,7 @@ exit_nicely(void)
        else if (found_existing_xlogdir)
        {
            fprintf(stderr,
-                   _("%s: removing contents of transaction log directory \"%s\"\n"),
+           _("%s: removing contents of transaction log directory \"%s\"\n"),
                    progname, xlog_dir);
            if (!rmtree(xlog_dir, false))
                fprintf(stderr, _("%s: failed to remove contents of transaction log directory\n"),
@@ -642,7 +642,7 @@ exit_nicely(void)
 
        if (made_new_xlogdir || found_existing_xlogdir)
            fprintf(stderr,
-             _("%s: transaction log directory \"%s\" not removed at user's request\n"),
+                   _("%s: transaction log directory \"%s\" not removed at user's request\n"),
                    progname, xlog_dir);
    }
 
@@ -723,8 +723,8 @@ get_encoding_id(char *encoding_name)
  */
 struct tsearch_config_match
 {
-   const char   *tsconfname;
-   const char   *langname;
+   const char *tsconfname;
+   const char *langname;
 };
 
 static const struct tsearch_config_match tsearch_config_languages[] =
@@ -775,8 +775,8 @@ find_matching_ts_config(const char *lc_type)
               *ptr;
 
    /*
-    * Convert lc_ctype to a language name by stripping everything after
-    * an underscore.  Just for paranoia, we also stop at '.' or '@'.
+    * Convert lc_ctype to a language name by stripping everything after an
+    * underscore.  Just for paranoia, we also stop at '.' or '@'.
     */
    if (lc_type == NULL)
        langname = xstrdup("");
@@ -940,7 +940,7 @@ check_input(char *path)
        if (errno == ENOENT)
            fprintf(stderr,
                    _("%s: file \"%s\" does not exist\n"
-                     "This means you have a corrupted installation or identified\n"
+              "This means you have a corrupted installation or identified\n"
                      "the wrong directory with the invocation option -L.\n"),
                    progname, path);
        else
@@ -1127,10 +1127,10 @@ test_config_settings(void)
    n_buffers = test_buffs;
    n_fsm_pages = FSM_FOR_BUFS(n_buffers);
 
-   if ((n_buffers * (BLCKSZ/1024)) % 1024 == 0)
-       printf("%dMB/%d\n", (n_buffers * (BLCKSZ/1024)) / 1024, n_fsm_pages);
+   if ((n_buffers * (BLCKSZ / 1024)) % 1024 == 0)
+       printf("%dMB/%d\n", (n_buffers * (BLCKSZ / 1024)) / 1024, n_fsm_pages);
    else
-       printf("%dkB/%d\n", n_buffers * (BLCKSZ/1024), n_fsm_pages);
+       printf("%dkB/%d\n", n_buffers * (BLCKSZ / 1024), n_fsm_pages);
 }
 
 /*
@@ -1153,12 +1153,12 @@ setup_config(void)
    snprintf(repltok, sizeof(repltok), "max_connections = %d", n_connections);
    conflines = replace_token(conflines, "#max_connections = 100", repltok);
 
-   if ((n_buffers * (BLCKSZ/1024)) % 1024 == 0)
+   if ((n_buffers * (BLCKSZ / 1024)) % 1024 == 0)
        snprintf(repltok, sizeof(repltok), "shared_buffers = %dMB",
-                (n_buffers * (BLCKSZ/1024)) / 1024);
+                (n_buffers * (BLCKSZ / 1024)) / 1024);
    else
        snprintf(repltok, sizeof(repltok), "shared_buffers = %dkB",
-                n_buffers * (BLCKSZ/1024));
+                n_buffers * (BLCKSZ / 1024));
    conflines = replace_token(conflines, "#shared_buffers = 32MB", repltok);
 
    snprintf(repltok, sizeof(repltok), "max_fsm_pages = %d", n_fsm_pages);
@@ -1204,7 +1204,7 @@ setup_config(void)
             "default_text_search_config = 'pg_catalog.%s'",
             escape_quotes(default_text_search_config));
    conflines = replace_token(conflines,
-                       "#default_text_search_config = 'pg_catalog.simple'",
+                        "#default_text_search_config = 'pg_catalog.simple'",
                              repltok);
 
    snprintf(path, sizeof(path), "%s/postgresql.conf", pg_data);
@@ -1524,7 +1524,7 @@ static void
 setup_depend(void)
 {
    PG_CMD_DECL;
-   const char    **line;
+   const char **line;
    static const char *pg_depend_setup[] = {
        /*
         * Make PIN entries in pg_depend for all objects made so far in the
@@ -1534,8 +1534,8 @@ setup_depend(void)
         * dependencies seems hard.
         *
         * Note that we deliberately do not pin the system views, which
-        * haven't been created yet.  Also, no conversions, databases,
-        * or tablespaces are pinned.
+        * haven't been created yet.  Also, no conversions, databases, or
+        * tablespaces are pinned.
         *
         * First delete any already-made entries; PINs override all else, and
         * must be the only entries for their objects.
@@ -2104,7 +2104,7 @@ escape_quotes(const char *src)
 
 /* Hack to suppress a warning about %x from some versions of gcc */
 static inline size_t
-my_strftime(char *s, size_t max, const char *fmt, const struct tm *tm)
+my_strftime(char *s, size_t max, const char *fmt, const struct tm * tm)
 {
    return strftime(s, max, fmt, tm);
 }
@@ -2351,7 +2351,7 @@ usage(const char *progname)
             "                            environment)\n"));
    printf(_("  --no-locale               equivalent to --locale=C\n"));
    printf(_("  -T, --text-search-config=CFG\n"
-            "                            default text search configuration\n"));
+        "                            default text search configuration\n"));
    printf(_("  -X, --xlogdir=XLOGDIR     location for the transaction log directory\n"));
    printf(_("  -A, --auth=METHOD         default authentication method for local connections\n"));
    printf(_("  -U, --username=NAME       database superuser name\n"));
@@ -2790,7 +2790,7 @@ main(int argc, char *argv[])
 
    if (strlen(encoding) == 0)
    {
-       int     ctype_enc;
+       int         ctype_enc;
 
        ctype_enc = pg_get_encoding_from_locale(lc_ctype);
 
@@ -2813,8 +2813,8 @@ main(int argc, char *argv[])
                    _("%s: locale %s requires unsupported encoding %s\n"),
                    progname, lc_ctype, pg_encoding_to_char(ctype_enc));
            fprintf(stderr,
-                   _("Encoding %s is not allowed as a server-side encoding.\n"
-                     "Rerun %s with a different locale selection.\n"),
+                 _("Encoding %s is not allowed as a server-side encoding.\n"
+                   "Rerun %s with a different locale selection.\n"),
                    pg_encoding_to_char(ctype_enc), progname);
            exit(1);
        }
@@ -2827,8 +2827,8 @@ main(int argc, char *argv[])
    }
    else
    {
-       int     user_enc;
-       int     ctype_enc;
+       int         user_enc;
+       int         ctype_enc;
 
        encodingid = get_encoding_id(encoding);
        user_enc = atoi(encodingid);
@@ -2839,24 +2839,25 @@ main(int argc, char *argv[])
        if (!(ctype_enc == user_enc ||
              ctype_enc == PG_SQL_ASCII ||
              user_enc == PG_SQL_ASCII
-#ifdef WIN32             
-           /*
-            * On win32, if the encoding chosen is UTF8, all locales are OK 
-            * (assuming the actual locale name passed the checks above). This
-            * is because UTF8 is a pseudo-codepage, that we convert to UTF16
-            * before doing any operations on, and UTF16 supports all locales.
-            */
-           || user_enc == PG_UTF8
+#ifdef WIN32
+
+       /*
+        * On win32, if the encoding chosen is UTF8, all locales are OK
+        * (assuming the actual locale name passed the checks above). This is
+        * because UTF8 is a pseudo-codepage, that we convert to UTF16 before
+        * doing any operations on, and UTF16 supports all locales.
+        */
+             || user_enc == PG_UTF8
 #endif
              ))
        {
            fprintf(stderr, _("%s: encoding mismatch\n"), progname);
            fprintf(stderr,
-           _("The encoding you selected (%s) and the encoding that the\n"
+              _("The encoding you selected (%s) and the encoding that the\n"
              "selected locale uses (%s) do not match.  This would lead to\n"
-             "misbehavior in various character string processing functions.\n"
-             "Rerun %s and either do not specify an encoding explicitly,\n"
-             "or choose a matching combination.\n"),
+           "misbehavior in various character string processing functions.\n"
+              "Rerun %s and either do not specify an encoding explicitly,\n"
+                "or choose a matching combination.\n"),
                    pg_encoding_to_char(user_enc),
                    pg_encoding_to_char(ctype_enc),
                    progname);
@@ -2974,7 +2975,7 @@ main(int argc, char *argv[])
    /* Create transaction log symlink, if required */
    if (strcmp(xlog_dir, "") != 0)
    {
-       char    *linkloc;
+       char       *linkloc;
 
        linkloc = (char *) pg_malloc(strlen(pg_data) + 8 + 2);
        sprintf(linkloc, "%s/pg_xlog", pg_data);
@@ -3022,10 +3023,10 @@ main(int argc, char *argv[])
                /* Present and not empty */
                fprintf(stderr,
                        _("%s: directory \"%s\" exists but is not empty\n"
-                         "If you want to store the transaction log there, either\n"
+                  "If you want to store the transaction log there, either\n"
                          "remove or empty the directory \"%s\".\n"),
                        progname, xlog_dir, xlog_dir);
-               exit(1);            /* no further message needed */
+               exit(1);        /* no further message needed */
 
            default:
                /* Trouble accessing directory */
@@ -3038,7 +3039,7 @@ main(int argc, char *argv[])
        if (symlink(xlog_dir, linkloc) != 0)
        {
            fprintf(stderr, _("%s: could not create symbolic link \"%s\": %s\n"),
-                       progname, linkloc, strerror(errno));
+                   progname, linkloc, strerror(errno));
            exit_nicely();
        }
 #else
index 2f76a926ab8e1cf8876f9205bec04aa3f66834ea..df41305e5e98ac673543d4a4a39659d42cdde2b4 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.88 2007/11/15 19:40:31 petere Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.89 2007/11/15 21:14:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -138,7 +138,7 @@ static pid_t postmasterPID = -1;
 
 static pgpid_t get_pgpid(void);
 static char **readfile(const char *path);
-static int start_postmaster(void);
+static int start_postmaster(void);
 static void read_post_opts(void);
 
 static bool test_postmaster_connection(bool);
@@ -415,7 +415,7 @@ test_postmaster_connection(bool do_checkpoint)
    int         i;
    char        portstr[32];
    char       *p;
-   char        connstr[128]; /* Should be way more than enough! */
+   char        connstr[128];   /* Should be way more than enough! */
 
    *portstr = '\0';
 
@@ -505,14 +505,15 @@ test_postmaster_connection(bool do_checkpoint)
            if (do_checkpoint)
            {
                /*
-                * Increment the wait hint by 6 secs (connection timeout + sleep)
-                * We must do this to indicate to the SCM that our startup time is
-                * changing, otherwise it'll usually send a stop signal after 20
-                * seconds, despite incrementing the checkpoint counter.
+                * Increment the wait hint by 6 secs (connection timeout +
+                * sleep) We must do this to indicate to the SCM that our
+                * startup time is changing, otherwise it'll usually send a
+                * stop signal after 20 seconds, despite incrementing the
+                * checkpoint counter.
                 */
                status.dwWaitHint += 6000;
                status.dwCheckPoint++;
-               SetServiceStatus(hStatus, (LPSERVICE_STATUS) &status);
+               SetServiceStatus(hStatus, (LPSERVICE_STATUS) & status);
            }
 
            else
@@ -528,22 +529,23 @@ test_postmaster_connection(bool do_checkpoint)
 
 
 #if defined(HAVE_GETRLIMIT) && defined(RLIMIT_CORE)
-static void 
+static void
 unlimit_core_size(void)
 {
    struct rlimit lim;
-   getrlimit(RLIMIT_CORE,&lim);
+
+   getrlimit(RLIMIT_CORE, &lim);
    if (lim.rlim_max == 0)
    {
-           write_stderr(_("%s: cannot set core file size limit; disallowed by hard limit\n"), 
-                        progname);
-           return;
+       write_stderr(_("%s: cannot set core file size limit; disallowed by hard limit\n"),
+                    progname);
+       return;
    }
    else if (lim.rlim_max == RLIM_INFINITY || lim.rlim_cur < lim.rlim_max)
    {
        lim.rlim_cur = lim.rlim_max;
-       setrlimit(RLIMIT_CORE,&lim);
-   }   
+       setrlimit(RLIMIT_CORE, &lim);
+   }
 }
 #endif
 
@@ -1166,7 +1168,7 @@ pgwin32_ServiceMain(DWORD argc, LPTSTR * argv)
 
    memset(&pi, 0, sizeof(pi));
 
-        read_post_opts();
+   read_post_opts();
 
    /* Register the control request handler */
    if ((hStatus = RegisterServiceCtrlHandler(register_servicename, pgwin32_ServiceHandler)) == (SERVICE_STATUS_HANDLE) 0)
@@ -1191,15 +1193,18 @@ pgwin32_ServiceMain(DWORD argc, LPTSTR * argv)
        write_eventlog(EVENTLOG_INFORMATION_TYPE, _("Waiting for server startup...\n"));
        if (test_postmaster_connection(true) == false)
        {
-                   write_eventlog(EVENTLOG_INFORMATION_TYPE, _("Timed out waiting for server startup\n"));
-           pgwin32_SetServiceStatus(SERVICE_STOPPED);
+           write_eventlog(EVENTLOG_INFORMATION_TYPE, _("Timed out waiting for server startup\n"));
+           pgwin32_SetServiceStatus(SERVICE_STOPPED);
            return;
        }
        write_eventlog(EVENTLOG_INFORMATION_TYPE, _("Server started and accepting connections\n"));
    }
 
-        /* Save the checkpoint value as it might have been incremented in test_postmaster_connection */
-        check_point_start = status.dwCheckPoint;
+   /*
+    * Save the checkpoint value as it might have been incremented in
+    * test_postmaster_connection
+    */
+   check_point_start = status.dwCheckPoint;
 
    pgwin32_SetServiceStatus(SERVICE_RUNNING);
 
@@ -1473,7 +1478,7 @@ do_help(void)
    printf(_("  %s kill    SIGNALNAME PID\n"), progname);
 #if defined(WIN32) || defined(__CYGWIN__)
    printf(_("  %s register   [-N SERVICENAME] [-U USERNAME] [-P PASSWORD] [-D DATADIR]\n"
-            "                    [-w] [-t SECS] [-o \"OPTIONS\"]\n"), progname);
+        "                    [-w] [-t SECS] [-o \"OPTIONS\"]\n"), progname);
    printf(_("  %s unregister [-N SERVICENAME]\n"), progname);
 #endif
 
index b9451055cffeb3edf1d4bea8559c0d1569726457..a22ad5a0e088d69bbbe20acfc26b2d90dd418a2e 100644 (file)
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/bin/pg_dump/common.c,v 1.99 2007/10/28 19:08:02 tgl Exp $
+ *   $PostgreSQL: pgsql/src/bin/pg_dump/common.c,v 1.100 2007/11/15 21:14:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -41,7 +41,7 @@ static int    numCatalogIds = 0;
 
 /*
  * These variables are static to avoid the notational cruft of having to pass
- * them into findTableByOid() and friends.  For each of these arrays, we
+ * them into findTableByOid() and friends. For each of these arrays, we
  * build a sorted-by-OID index array immediately after it's built, and then
  * we use binary search in findTableByOid() and friends.  (qsort'ing the base
  * arrays themselves would be simpler, but it doesn't work because pg_dump.c
@@ -66,7 +66,7 @@ static void flagInhTables(TableInfo *tbinfo, int numTables,
 static void flagInhAttrs(TableInfo *tbinfo, int numTables,
             InhInfo *inhinfo, int numInherits);
 static DumpableObject **buildIndexArray(void *objArray, int numObjs,
-                                       Size objSize);
+               Size objSize);
 static int DOCatalogIdCompare(const void *p1, const void *p2);
 static void findParentsByOid(TableInfo *self,
                 InhInfo *inhinfo, int numInherits);
@@ -333,10 +333,11 @@ flagInhAttrs(TableInfo *tblinfo, int numTables,
                    if (inhDef != NULL)
                    {
                        defaultsFound = true;
+
                        /*
                         * If any parent has a default and the child doesn't,
-                        * we have to emit an explicit DEFAULT NULL clause
-                        * for the child, else the parent's default will win.
+                        * we have to emit an explicit DEFAULT NULL clause for
+                        * the child, else the parent's default will win.
                         */
                        if (attrDef == NULL)
                        {
@@ -363,6 +364,7 @@ flagInhAttrs(TableInfo *tblinfo, int numTables,
                        if (strcmp(attrDef->adef_expr, inhDef->adef_expr) != 0)
                        {
                            defaultsMatch = false;
+
                            /*
                             * Whenever there is a non-matching parent
                             * default, add a dependency to force the parent
@@ -600,8 +602,8 @@ findObjectByOid(Oid oid, DumpableObject **indexArray, int numObjs)
    DumpableObject **high;
 
    /*
-    * This is the same as findObjectByCatalogId except we assume we need
-    * not look at table OID because the objects are all the same type.
+    * This is the same as findObjectByCatalogId except we assume we need not
+    * look at table OID because the objects are all the same type.
     *
     * We could use bsearch() here, but the notational cruft of calling
     * bsearch is nearly as bad as doing it ourselves; and the generalized
@@ -635,7 +637,7 @@ static DumpableObject **
 buildIndexArray(void *objArray, int numObjs, Size objSize)
 {
    DumpableObject **ptrs;
-   int     i;
+   int         i;
 
    ptrs = (DumpableObject **) malloc(numObjs * sizeof(DumpableObject *));
    for (i = 0; i < numObjs; i++)
@@ -914,7 +916,7 @@ strInArray(const char *pattern, char **arr, int arr_size)
  */
 
 void
-simple_oid_list_append(SimpleOidList *list, Oid val)
+simple_oid_list_append(SimpleOidList * list, Oid val)
 {
    SimpleOidListCell *cell;
 
@@ -930,7 +932,7 @@ simple_oid_list_append(SimpleOidList *list, Oid val)
 }
 
 void
-simple_string_list_append(SimpleStringList *list, const char *val)
+simple_string_list_append(SimpleStringList * list, const char *val)
 {
    SimpleStringListCell *cell;
 
@@ -948,7 +950,7 @@ simple_string_list_append(SimpleStringList *list, const char *val)
 }
 
 bool
-simple_oid_list_member(SimpleOidList *list, Oid val)
+simple_oid_list_member(SimpleOidList * list, Oid val)
 {
    SimpleOidListCell *cell;
 
@@ -961,7 +963,7 @@ simple_oid_list_member(SimpleOidList *list, Oid val)
 }
 
 bool
-simple_string_list_member(SimpleStringList *list, const char *val)
+simple_string_list_member(SimpleStringList * list, const char *val)
 {
    SimpleStringListCell *cell;
 
index c2023383465ce637968e462c296624ed4968e8e0..5c9c3b9924f930c2f6b202e5cecb26ce65bee4dd 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/bin/pg_dump/dumputils.c,v 1.38 2007/11/07 12:24:24 petere Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/dumputils.c,v 1.39 2007/11/15 21:14:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -455,8 +455,8 @@ buildACLCommands(const char *name, const char *type,
     * We still need some hacking though to cover the case where new default
     * public privileges are added in new versions: the REVOKE ALL will revoke
     * them, leading to behavior different from what the old version had,
-    * which is generally not what's wanted.  So add back default privs if
-    * the source database is too old to have had that particular priv.
+    * which is generally not what's wanted.  So add back default privs if the
+    * source database is too old to have had that particular priv.
     */
    if (remoteVersion < 80200 && strcmp(type, "DATABASE") == 0)
    {
@@ -822,9 +822,9 @@ processSQLNamePattern(PGconn *conn, PQExpBuffer buf, const char *pattern,
     * contains "|", else the "^" and "$" will be bound into the first and
     * last alternatives which is not what we want.
     *
-    * Note: the result of this pass is the actual regexp pattern(s) we want to
-    * execute.  Quoting/escaping into SQL literal format will be done below
-    * using appendStringLiteralConn().
+    * Note: the result of this pass is the actual regexp pattern(s) we want
+    * to execute.  Quoting/escaping into SQL literal format will be done
+    * below using appendStringLiteralConn().
     */
    appendPQExpBufferStr(&namebuf, "^(");
 
@@ -833,7 +833,7 @@ processSQLNamePattern(PGconn *conn, PQExpBuffer buf, const char *pattern,
 
    while (*cp)
    {
-       char    ch = *cp;
+       char        ch = *cp;
 
        if (ch == '"')
        {
@@ -875,11 +875,11 @@ processSQLNamePattern(PGconn *conn, PQExpBuffer buf, const char *pattern,
        else if (ch == '$')
        {
            /*
-            * Dollar is always quoted, whether inside quotes or not.
-            * The reason is that it's allowed in SQL identifiers, so
-            * there's a significant use-case for treating it literally,
-            * while because we anchor the pattern automatically there is
-            * no use-case for having it possess its regexp meaning.
+            * Dollar is always quoted, whether inside quotes or not. The
+            * reason is that it's allowed in SQL identifiers, so there's a
+            * significant use-case for treating it literally, while because
+            * we anchor the pattern automatically there is no use-case for
+            * having it possess its regexp meaning.
             */
            appendPQExpBufferStr(&namebuf, "\\$");
            cp++;
@@ -908,8 +908,8 @@ processSQLNamePattern(PGconn *conn, PQExpBuffer buf, const char *pattern,
    }
 
    /*
-    * Now decide what we need to emit.  Note there will be a leading "^("
-    * in the patterns in any case.
+    * Now decide what we need to emit.  Note there will be a leading "^(" in
+    * the patterns in any case.
     */
    if (namebuf.len > 2)
    {
index 16ed5f0e313c4adda3daf4d9fd31ff0bf87abda3..3f858a6b93d3625eeaa9ef778862f558bf309cc7 100644 (file)
@@ -15,7 +15,7 @@
  *
  *
  * IDENTIFICATION
- *     $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.148 2007/10/28 21:55:52 tgl Exp $
+ *     $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.149 2007/11/15 21:14:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -202,7 +202,7 @@ RestoreArchive(Archive *AHX, RestoreOptions *ropt)
 
    /*
     * Setup the output file if necessary.
-    */ 
+    */
    if (ropt->filename || ropt->compression)
        sav = SetOutput(AH, ropt->filename, ropt->compression);
 
@@ -1334,7 +1334,7 @@ WriteOffset(ArchiveHandle *AH, pgoff_t o, int wasSet)
 }
 
 int
-ReadOffset(ArchiveHandle *AH, pgoff_t *o)
+ReadOffset(ArchiveHandle *AH, pgoff_t * o)
 {
    int         i;
    int         off;
@@ -2813,8 +2813,8 @@ dumpTimestamp(ArchiveHandle *AH, const char *msg, time_t tim)
    /*
     * We don't print the timezone on Win32, because the names are long and
     * localized, which means they may contain characters in various random
-    * encodings; this has been seen to cause encoding errors when reading
-    * the dump script.
+    * encodings; this has been seen to cause encoding errors when reading the
+    * dump script.
     */
    if (strftime(buf, sizeof(buf),
 #ifndef WIN32
index 380e0184ef452dba97cf3d51afb4b6c80a851ec0..ddab506bf43c1fe9615888182a8de555bf7d7ff7 100644 (file)
@@ -16,7 +16,7 @@
  *
  *
  * IDENTIFICATION
- *     $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_tar.c,v 1.61 2007/10/28 21:55:52 tgl Exp $
+ *     $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_tar.c,v 1.62 2007/11/15 21:14:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -177,7 +177,7 @@ InitArchiveFmt_Tar(ArchiveHandle *AH)
            ctx->tarFH = fopen(AH->fSpec, PG_BINARY_W);
            if (ctx->tarFH == NULL)
                die_horribly(NULL, modulename,
-                            "could not open TOC file \"%s\" for output: %s\n",
+                          "could not open TOC file \"%s\" for output: %s\n",
                             AH->fSpec, strerror(errno));
        }
        else
@@ -746,11 +746,12 @@ _LoadBlobs(ArchiveHandle *AH, RestoreOptions *ropt)
        else
        {
            tarClose(AH, th);
+
            /*
-            * Once we have found the first blob, stop at the first
-            * non-blob entry (which will be 'blobs.toc').  This coding would
-            * eat all the rest of the archive if there are no blobs ... but
-            * this function shouldn't be called at all in that case.
+            * Once we have found the first blob, stop at the first non-blob
+            * entry (which will be 'blobs.toc').  This coding would eat all
+            * the rest of the archive if there are no blobs ... but this
+            * function shouldn't be called at all in that case.
             */
            if (foundBlob)
                break;
index ba15398c5fb195481899c0647d8b7b6602d51902..2429c4431c71be61cf7049b7d69445e5b6b9ceaa 100644 (file)
@@ -12,7 +12,7 @@
  * by PostgreSQL
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.475 2007/11/08 10:37:54 petere Exp $
+ *   $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.476 2007/11/15 21:14:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -90,15 +90,15 @@ static Oid  g_last_builtin_oid; /* value of the last builtin oid */
  * The string lists record the patterns given by command-line switches,
  * which we then convert to lists of OIDs of matching objects.
  */
-static SimpleStringList schema_include_patterns = { NULL, NULL };
-static SimpleOidList schema_include_oids = { NULL, NULL };
-static SimpleStringList schema_exclude_patterns = { NULL, NULL };
-static SimpleOidList schema_exclude_oids = { NULL, NULL };
+static SimpleStringList schema_include_patterns = {NULL, NULL};
+static SimpleOidList schema_include_oids = {NULL, NULL};
+static SimpleStringList schema_exclude_patterns = {NULL, NULL};
+static SimpleOidList schema_exclude_oids = {NULL, NULL};
 
-static SimpleStringList table_include_patterns = { NULL, NULL };
-static SimpleOidList table_include_oids = { NULL, NULL };
-static SimpleStringList table_exclude_patterns = { NULL, NULL };
-static SimpleOidList table_exclude_oids = { NULL, NULL };
+static SimpleStringList table_include_patterns = {NULL, NULL};
+static SimpleOidList table_include_oids = {NULL, NULL};
+static SimpleStringList table_exclude_patterns = {NULL, NULL};
+static SimpleOidList table_exclude_oids = {NULL, NULL};
 
 /* default, if no "inclusion" switches appear, is to dump everything */
 static bool include_everything = true;
@@ -120,10 +120,10 @@ static int    disable_dollar_quoting = 0;
 
 
 static void help(const char *progname);
-static void expand_schema_name_patterns(SimpleStringList *patterns,
-                                       SimpleOidList *oids);
-static void expand_table_name_patterns(SimpleStringList *patterns,
-                                      SimpleOidList *oids);
+static void expand_schema_name_patterns(SimpleStringList * patterns,
+                           SimpleOidList * oids);
+static void expand_table_name_patterns(SimpleStringList * patterns,
+                          SimpleOidList * oids);
 static NamespaceInfo *findNamespace(Oid nsoid, Oid objoid);
 static void dumpTableData(Archive *fout, TableDataInfo *tdinfo);
 static void dumpComment(Archive *fout, const char *target,
@@ -145,7 +145,7 @@ static void dumpFunc(Archive *fout, FuncInfo *finfo);
 static void dumpCast(Archive *fout, CastInfo *cast);
 static void dumpOpr(Archive *fout, OprInfo *oprinfo);
 static void dumpOpclass(Archive *fout, OpclassInfo *opcinfo);
-static void dumpOpfamily(Archive *fout, OpfamilyInfo *opfinfo);
+static void dumpOpfamily(Archive *fout, OpfamilyInfo * opfinfo);
 static void dumpConversion(Archive *fout, ConvInfo *convinfo);
 static void dumpRule(Archive *fout, RuleInfo *rinfo);
 static void dumpAgg(Archive *fout, AggInfo *agginfo);
@@ -157,10 +157,10 @@ static void dumpSequence(Archive *fout, TableInfo *tbinfo);
 static void dumpIndex(Archive *fout, IndxInfo *indxinfo);
 static void dumpConstraint(Archive *fout, ConstraintInfo *coninfo);
 static void dumpTableConstraintComment(Archive *fout, ConstraintInfo *coninfo);
-static void dumpTSParser(Archive *fout, TSParserInfo *prsinfo);
-static void dumpTSDictionary(Archive *fout, TSDictInfo *dictinfo);
-static void dumpTSTemplate(Archive *fout, TSTemplateInfo *tmplinfo);
-static void dumpTSConfig(Archive *fout, TSConfigInfo *cfginfo);
+static void dumpTSParser(Archive *fout, TSParserInfo * prsinfo);
+static void dumpTSDictionary(Archive *fout, TSDictInfo * dictinfo);
+static void dumpTSTemplate(Archive *fout, TSTemplateInfo * tmplinfo);
+static void dumpTSConfig(Archive *fout, TSConfigInfo * cfginfo);
 
 static void dumpACL(Archive *fout, CatalogId objCatId, DumpId objDumpId,
        const char *type, const char *name,
@@ -492,8 +492,8 @@ main(int argc, char **argv)
    else if (pg_strcasecmp(format, "f") == 0 || pg_strcasecmp(format, "file") == 0)
    {
        /*
-        *  Dump files into the current directory; for demonstration only, not
-        *  documented.
+        * Dump files into the current directory; for demonstration only, not
+        * documented.
         */
        g_fout = CreateArchive(filename, archFiles, compressLevel, archModeWrite);
    }
@@ -768,7 +768,7 @@ help(const char *progname)
    printf(_("  --disable-triggers          disable triggers during data-only restore\n"));
    printf(_("  --use-set-session-authorization\n"
             "                              use SESSION AUTHORIZATION commands instead of\n"
-            "                              ALTER OWNER commands to set ownership\n"));
+   "                              ALTER OWNER commands to set ownership\n"));
 
    printf(_("\nConnection options:\n"));
    printf(_("  -h, --host=HOSTNAME      database server host or socket directory\n"));
@@ -795,7 +795,7 @@ exit_nicely(void)
  * and append them to the given OID list.
  */
 static void
-expand_schema_name_patterns(SimpleStringList *patterns, SimpleOidList *oids)
+expand_schema_name_patterns(SimpleStringList * patterns, SimpleOidList * oids)
 {
    PQExpBuffer query;
    PGresult   *res;
@@ -846,7 +846,7 @@ expand_schema_name_patterns(SimpleStringList *patterns, SimpleOidList *oids)
  * and append them to the given OID list.
  */
 static void
-expand_table_name_patterns(SimpleStringList *patterns, SimpleOidList *oids)
+expand_table_name_patterns(SimpleStringList * patterns, SimpleOidList * oids)
 {
    PQExpBuffer query;
    PGresult   *res;
@@ -870,7 +870,7 @@ expand_table_name_patterns(SimpleStringList *patterns, SimpleOidList *oids)
        appendPQExpBuffer(query,
                          "SELECT c.oid"
                          "\nFROM pg_catalog.pg_class c"
-                         "\n     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace"
+       "\n     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace"
                          "\nWHERE c.relkind in ('%c', '%c', '%c')\n",
                          RELKIND_RELATION, RELKIND_SEQUENCE, RELKIND_VIEW);
        processSQLNamePattern(g_conn, query, cell->val, true, false,
@@ -912,6 +912,7 @@ selectDumpableNamespace(NamespaceInfo *nsinfo)
        nsinfo->dobj.dump = false;
    else
        nsinfo->dobj.dump = true;
+
    /*
     * In any case, a namespace can be excluded by an exclusion switch
     */
@@ -929,14 +930,15 @@ static void
 selectDumpableTable(TableInfo *tbinfo)
 {
    /*
-    * If specific tables are being dumped, dump just those tables;
-    * else, dump according to the parent namespace's dump flag.
+    * If specific tables are being dumped, dump just those tables; else, dump
+    * according to the parent namespace's dump flag.
     */
    if (table_include_oids.head != NULL)
        tbinfo->dobj.dump = simple_oid_list_member(&table_include_oids,
                                                   tbinfo->dobj.catId.oid);
    else
        tbinfo->dobj.dump = tbinfo->dobj.namespace->dobj.dump;
+
    /*
     * In any case, a table can be excluded by an exclusion switch
     */
@@ -1081,10 +1083,10 @@ dumpTableData_copy(Archive *fout, void *dcontext)
         * was too tight. Finally, the following was implemented:
         *
         * If throttle is non-zero, then
-        *      See how long since the last sleep.
+        *      See how long since the last sleep.
         *      Work out how long to sleep (based on ratio).
-        *      If sleep is more than 100ms, then 
-        *          sleep 
+        *      If sleep is more than 100ms, then
+        *          sleep
         *          reset timer
         *      EndIf
         * EndIf
@@ -1984,10 +1986,10 @@ getTypes(int *numTypes)
     *
     * Note: as of 8.3 we can reliably detect whether a type is an
     * auto-generated array type by checking the element type's typarray.
-    * (Before that the test is capable of generating false positives.)
-    * We still check for name beginning with '_', though, so as to avoid
-    * the cost of the subselect probe for all standard types.  This would
-    * have to be revisited if the backend ever allows renaming of array types.
+    * (Before that the test is capable of generating false positives.) We
+    * still check for name beginning with '_', though, so as to avoid the
+    * cost of the subselect probe for all standard types.  This would have to
+    * be revisited if the backend ever allows renaming of array types.
     */
 
    /* Make sure we are in proper schema */
@@ -4752,7 +4754,7 @@ getTSParsers(int *numTSParsers)
        AssignDumpId(&prsinfo[i].dobj);
        prsinfo[i].dobj.name = strdup(PQgetvalue(res, i, i_prsname));
        prsinfo[i].dobj.namespace = findNamespace(atooid(PQgetvalue(res, i, i_prsnamespace)),
-                                       prsinfo[i].dobj.catId.oid);
+                                                 prsinfo[i].dobj.catId.oid);
        prsinfo[i].prsstart = atooid(PQgetvalue(res, i, i_prsstart));
        prsinfo[i].prstoken = atooid(PQgetvalue(res, i, i_prstoken));
        prsinfo[i].prsend = atooid(PQgetvalue(res, i, i_prsend));
@@ -4833,7 +4835,7 @@ getTSDictionaries(int *numTSDicts)
        AssignDumpId(&dictinfo[i].dobj);
        dictinfo[i].dobj.name = strdup(PQgetvalue(res, i, i_dictname));
        dictinfo[i].dobj.namespace = findNamespace(atooid(PQgetvalue(res, i, i_dictnamespace)),
-                                                   dictinfo[i].dobj.catId.oid);
+                                                dictinfo[i].dobj.catId.oid);
        dictinfo[i].rolname = strdup(PQgetvalue(res, i, i_rolname));
        dictinfo[i].dicttemplate = atooid(PQgetvalue(res, i, i_dicttemplate));
        if (PQgetisnull(res, i, i_dictinitoption))
@@ -4911,7 +4913,7 @@ getTSTemplates(int *numTSTemplates)
        AssignDumpId(&tmplinfo[i].dobj);
        tmplinfo[i].dobj.name = strdup(PQgetvalue(res, i, i_tmplname));
        tmplinfo[i].dobj.namespace = findNamespace(atooid(PQgetvalue(res, i, i_tmplnamespace)),
-                                                   tmplinfo[i].dobj.catId.oid);
+                                                tmplinfo[i].dobj.catId.oid);
        tmplinfo[i].tmplinit = atooid(PQgetvalue(res, i, i_tmplinit));
        tmplinfo[i].tmpllexize = atooid(PQgetvalue(res, i, i_tmpllexize));
 
@@ -4986,7 +4988,7 @@ getTSConfigurations(int *numTSConfigs)
        AssignDumpId(&cfginfo[i].dobj);
        cfginfo[i].dobj.name = strdup(PQgetvalue(res, i, i_cfgname));
        cfginfo[i].dobj.namespace = findNamespace(atooid(PQgetvalue(res, i, i_cfgnamespace)),
-                                                   cfginfo[i].dobj.catId.oid);
+                                                 cfginfo[i].dobj.catId.oid);
        cfginfo[i].rolname = strdup(PQgetvalue(res, i, i_rolname));
        cfginfo[i].cfgparser = atooid(PQgetvalue(res, i, i_cfgparser));
 
@@ -5506,8 +5508,9 @@ dumpEnumType(Archive *fout, TypeInfo *tinfo)
    PQExpBuffer delq = createPQExpBuffer();
    PQExpBuffer query = createPQExpBuffer();
    PGresult   *res;
-   int num, i;
-   char *label;
+   int         num,
+               i;
+   char       *label;
 
    /* Set proper schema search path so regproc references list correctly */
    selectSourceSchema(tinfo->dobj.namespace->dobj.name);
@@ -5530,8 +5533,8 @@ dumpEnumType(Archive *fout, TypeInfo *tinfo)
 
    /*
     * DROP must be fully qualified in case same name appears in pg_catalog.
-    * CASCADE shouldn't be required here as for normal types since the
-    * I/O functions are generic and do not get dropped.
+    * CASCADE shouldn't be required here as for normal types since the I/O
+    * functions are generic and do not get dropped.
     */
    appendPQExpBuffer(delq, "DROP TYPE %s.",
                      fmtId(tinfo->dobj.namespace->dobj.name));
@@ -5543,8 +5546,8 @@ dumpEnumType(Archive *fout, TypeInfo *tinfo)
    {
        label = PQgetvalue(res, i, 0);
        if (i > 0)
-           appendPQExpBuffer(q, ",\n"); 
-       appendPQExpBuffer(q, "    "); 
+           appendPQExpBuffer(q, ",\n");
+       appendPQExpBuffer(q, "    ");
        appendStringLiteralAH(q, label, fout);
    }
    appendPQExpBuffer(q, "\n);\n");
@@ -6694,7 +6697,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
 
    /*
     * COST and ROWS are emitted only if present and not default, so as not to
-    * break backwards-compatibility of the dump without need.  Keep this code
+    * break backwards-compatibility of the dump without need.  Keep this code
     * in sync with the defaults in functioncmds.c.
     */
    if (strcmp(procost, "0") != 0)
@@ -6729,7 +6732,8 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
        appendPQExpBuffer(q, "\n    SET %s TO ", fmtId(configitem));
 
        /*
-        * Some GUC variable names are 'LIST' type and hence must not be quoted.
+        * Some GUC variable names are 'LIST' type and hence must not be
+        * quoted.
         */
        if (pg_strcasecmp(configitem, "DateStyle") == 0
            || pg_strcasecmp(configitem, "search_path") == 0)
@@ -7355,8 +7359,8 @@ dumpOpclass(Archive *fout, OpclassInfo *opcinfo)
                          "nspname AS opcfamilynsp, "
                          "(SELECT amname FROM pg_catalog.pg_am WHERE oid = opcmethod) AS amname "
                          "FROM pg_catalog.pg_opclass c "
-                         "LEFT JOIN pg_catalog.pg_opfamily f ON f.oid = opcfamily "
-                         "LEFT JOIN pg_catalog.pg_namespace n ON n.oid = opfnamespace "
+                  "LEFT JOIN pg_catalog.pg_opfamily f ON f.oid = opcfamily "
+              "LEFT JOIN pg_catalog.pg_namespace n ON n.oid = opfnamespace "
                          "WHERE c.oid = '%u'::pg_catalog.oid",
                          opcinfo->dobj.catId.oid);
    }
@@ -7367,7 +7371,7 @@ dumpOpclass(Archive *fout, OpclassInfo *opcinfo)
                          "opcdefault, "
                          "NULL AS opcfamily, "
                          "NULL AS opcfamilynsp, "
-                         "(SELECT amname FROM pg_catalog.pg_am WHERE oid = opcamid) AS amname "
+       "(SELECT amname FROM pg_catalog.pg_am WHERE oid = opcamid) AS amname "
                          "FROM pg_catalog.pg_opclass "
                          "WHERE oid = '%u'::pg_catalog.oid",
                          opcinfo->dobj.catId.oid);
@@ -7448,15 +7452,15 @@ dumpOpclass(Archive *fout, OpclassInfo *opcinfo)
    if (g_fout->remoteVersion >= 80300)
    {
        /*
-        * Print only those opfamily members that are tied to the opclass
-        * by pg_depend entries.
+        * Print only those opfamily members that are tied to the opclass by
+        * pg_depend entries.
         */
        appendPQExpBuffer(query, "SELECT amopstrategy, amopreqcheck, "
                          "amopopr::pg_catalog.regoperator "
                          "FROM pg_catalog.pg_amop ao, pg_catalog.pg_depend "
-                         "WHERE refclassid = 'pg_catalog.pg_opclass'::pg_catalog.regclass "
+          "WHERE refclassid = 'pg_catalog.pg_opclass'::pg_catalog.regclass "
                          "AND refobjid = '%u'::pg_catalog.oid "
-                         "AND classid = 'pg_catalog.pg_amop'::pg_catalog.regclass "
+                  "AND classid = 'pg_catalog.pg_amop'::pg_catalog.regclass "
                          "AND objid = ao.oid "
                          "ORDER BY amopstrategy",
                          opcinfo->dobj.catId.oid);
@@ -7507,15 +7511,15 @@ dumpOpclass(Archive *fout, OpclassInfo *opcinfo)
    if (g_fout->remoteVersion >= 80300)
    {
        /*
-        * Print only those opfamily members that are tied to the opclass
-        * by pg_depend entries.
+        * Print only those opfamily members that are tied to the opclass by
+        * pg_depend entries.
         */
        appendPQExpBuffer(query, "SELECT amprocnum, "
                          "amproc::pg_catalog.regprocedure "
-                         "FROM pg_catalog.pg_amproc ap, pg_catalog.pg_depend "
-                         "WHERE refclassid = 'pg_catalog.pg_opclass'::pg_catalog.regclass "
+                       "FROM pg_catalog.pg_amproc ap, pg_catalog.pg_depend "
+          "WHERE refclassid = 'pg_catalog.pg_opclass'::pg_catalog.regclass "
                          "AND refobjid = '%u'::pg_catalog.oid "
-                         "AND classid = 'pg_catalog.pg_amproc'::pg_catalog.regclass "
+                "AND classid = 'pg_catalog.pg_amproc'::pg_catalog.regclass "
                          "AND objid = ap.oid "
                          "ORDER BY amprocnum",
                          opcinfo->dobj.catId.oid);
@@ -7586,7 +7590,7 @@ dumpOpclass(Archive *fout, OpclassInfo *opcinfo)
  *   write out a single operator family definition
  */
 static void
-dumpOpfamily(Archive *fout, OpfamilyInfo *opfinfo)
+dumpOpfamily(Archive *fout, OpfamilyInfo * opfinfo)
 {
    PQExpBuffer query;
    PQExpBuffer q;
@@ -7623,8 +7627,8 @@ dumpOpfamily(Archive *fout, OpfamilyInfo *opfinfo)
     * or functions, or (2) it contains an opclass with a different name or
     * owner.  Otherwise it's sufficient to let it be created during creation
     * of the contained opclass, and not dumping it improves portability of
-    * the dump.  Since we have to fetch the loose operators/funcs anyway,
-    * do that first.
+    * the dump.  Since we have to fetch the loose operators/funcs anyway, do
+    * that first.
     */
 
    query = createPQExpBuffer();
@@ -7635,15 +7639,15 @@ dumpOpfamily(Archive *fout, OpfamilyInfo *opfinfo)
    selectSourceSchema(opfinfo->dobj.namespace->dobj.name);
 
    /*
-    * Fetch only those opfamily members that are tied directly to the opfamily
-    * by pg_depend entries.
+    * Fetch only those opfamily members that are tied directly to the
+    * opfamily by pg_depend entries.
     */
    appendPQExpBuffer(query, "SELECT amopstrategy, amopreqcheck, "
                      "amopopr::pg_catalog.regoperator "
                      "FROM pg_catalog.pg_amop ao, pg_catalog.pg_depend "
-                     "WHERE refclassid = 'pg_catalog.pg_opfamily'::pg_catalog.regclass "
+         "WHERE refclassid = 'pg_catalog.pg_opfamily'::pg_catalog.regclass "
                      "AND refobjid = '%u'::pg_catalog.oid "
-                     "AND classid = 'pg_catalog.pg_amop'::pg_catalog.regclass "
+                  "AND classid = 'pg_catalog.pg_amop'::pg_catalog.regclass "
                      "AND objid = ao.oid "
                      "ORDER BY amopstrategy",
                      opfinfo->dobj.catId.oid);
@@ -7658,9 +7662,9 @@ dumpOpfamily(Archive *fout, OpfamilyInfo *opfinfo)
                      "amproclefttype::pg_catalog.regtype, "
                      "amprocrighttype::pg_catalog.regtype "
                      "FROM pg_catalog.pg_amproc ap, pg_catalog.pg_depend "
-                     "WHERE refclassid = 'pg_catalog.pg_opfamily'::pg_catalog.regclass "
+         "WHERE refclassid = 'pg_catalog.pg_opfamily'::pg_catalog.regclass "
                      "AND refobjid = '%u'::pg_catalog.oid "
-                     "AND classid = 'pg_catalog.pg_amproc'::pg_catalog.regclass "
+                "AND classid = 'pg_catalog.pg_amproc'::pg_catalog.regclass "
                      "AND objid = ap.oid "
                      "ORDER BY amprocnum",
                      opfinfo->dobj.catId.oid);
@@ -7676,9 +7680,9 @@ dumpOpfamily(Archive *fout, OpfamilyInfo *opfinfo)
        appendPQExpBuffer(query, "SELECT 1 "
                          "FROM pg_catalog.pg_opclass c, pg_catalog.pg_opfamily f, pg_catalog.pg_depend "
                          "WHERE f.oid = '%u'::pg_catalog.oid "
-                         "AND refclassid = 'pg_catalog.pg_opfamily'::pg_catalog.regclass "
+           "AND refclassid = 'pg_catalog.pg_opfamily'::pg_catalog.regclass "
                          "AND refobjid = f.oid "
-                         "AND classid = 'pg_catalog.pg_opclass'::pg_catalog.regclass "
+               "AND classid = 'pg_catalog.pg_opclass'::pg_catalog.regclass "
                          "AND objid = c.oid "
                          "AND (opcname != opfname OR opcnamespace != opfnamespace OR opcowner != opfowner) "
                          "LIMIT 1",
@@ -7706,7 +7710,7 @@ dumpOpfamily(Archive *fout, OpfamilyInfo *opfinfo)
    resetPQExpBuffer(query);
 
    appendPQExpBuffer(query, "SELECT "
-                     "(SELECT amname FROM pg_catalog.pg_am WHERE oid = opfmethod) AS amname "
+    "(SELECT amname FROM pg_catalog.pg_am WHERE oid = opfmethod) AS amname "
                      "FROM pg_catalog.pg_opfamily "
                      "WHERE oid = '%u'::pg_catalog.oid",
                      opfinfo->dobj.catId.oid);
@@ -8499,11 +8503,11 @@ dumpTSConfig(Archive *fout, TSConfigInfo * cfginfo)
 
    for (i = 0; i < ntups; i++)
    {
-       char   *tokenname = PQgetvalue(res, i, i_tokenname);
-       char   *dictname = PQgetvalue(res, i, i_dictname);
+       char       *tokenname = PQgetvalue(res, i, i_tokenname);
+       char       *dictname = PQgetvalue(res, i, i_dictname);
 
        if (i == 0 ||
-           strcmp(tokenname, PQgetvalue(res, i-1, i_tokenname)) != 0)
+           strcmp(tokenname, PQgetvalue(res, i - 1, i_tokenname)) != 0)
        {
            /* starting a new token type, so start a new command */
            if (i > 0)
@@ -8536,7 +8540,7 @@ dumpTSConfig(Archive *fout, TSConfigInfo * cfginfo)
                 cfginfo->dobj.namespace->dobj.name,
                 NULL,
                 cfginfo->rolname,
-                false, "TEXT SEARCH CONFIGURATION", q->data, delq->data, NULL,
+              false, "TEXT SEARCH CONFIGURATION", q->data, delq->data, NULL,
                 cfginfo->dobj.dependencies, cfginfo->dobj.nDeps,
                 NULL, NULL);
 
@@ -9440,8 +9444,8 @@ dumpSequence(Archive *fout, TableInfo *tbinfo)
     *
     * Add a CREATE SEQUENCE statement as part of a "schema" dump (use
     * last_val for start if called is false, else use min_val for start_val).
-    * Also, if the sequence is owned by a column, add an ALTER SEQUENCE
-    * OWNED BY command for it.
+    * Also, if the sequence is owned by a column, add an ALTER SEQUENCE OWNED
+    * BY command for it.
     *
     * Add a 'SETVAL(seq, last_val, iscalled)' as part of a "data" dump.
     */
@@ -9818,28 +9822,28 @@ dumpRule(Archive *fout, RuleInfo *rinfo)
    printfPQExpBuffer(cmd, "%s\n", PQgetvalue(res, 0, 0));
 
    /*
-    * Add the command to alter the rules replication firing semantics
-    * if it differs from the default.
+    * Add the command to alter the rules replication firing semantics if it
+    * differs from the default.
     */
    if (rinfo->ev_enabled != 'O')
    {
        appendPQExpBuffer(cmd, "ALTER TABLE %s.",
-                   fmtId(tbinfo->dobj.namespace->dobj.name));
+                         fmtId(tbinfo->dobj.namespace->dobj.name));
        appendPQExpBuffer(cmd, "%s ",
-                   fmtId(tbinfo->dobj.name));
+                         fmtId(tbinfo->dobj.name));
        switch (rinfo->ev_enabled)
        {
            case 'A':
                appendPQExpBuffer(cmd, "ENABLE ALWAYS RULE %s;\n",
-                           fmtId(rinfo->dobj.name));
+                                 fmtId(rinfo->dobj.name));
                break;
            case 'R':
                appendPQExpBuffer(cmd, "ENABLE REPLICA RULE %s;\n",
-                           fmtId(rinfo->dobj.name));
+                                 fmtId(rinfo->dobj.name));
                break;
            case 'D':
                appendPQExpBuffer(cmd, "DISABLE RULE %s;\n",
-                           fmtId(rinfo->dobj.name));
+                                 fmtId(rinfo->dobj.name));
                break;
        }
    }
index 0383b0d296d6b669cf10bea17e0a7130ff226800..8f33a15d4b40c1fcedc1e4ced0b292a0c5c146e1 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.h,v 1.136 2007/08/21 01:11:21 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.h,v 1.137 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -69,25 +69,25 @@ typedef struct SimpleOidListCell
 {
    struct SimpleOidListCell *next;
    Oid         val;
-} SimpleOidListCell;
+}  SimpleOidListCell;
 
 typedef struct SimpleOidList
 {
    SimpleOidListCell *head;
    SimpleOidListCell *tail;
-} SimpleOidList;
+}  SimpleOidList;
 
 typedef struct SimpleStringListCell
 {
    struct SimpleStringListCell *next;
    char        val[1];         /* VARIABLE LENGTH FIELD */
-} SimpleStringListCell;
+}  SimpleStringListCell;
 
 typedef struct SimpleStringList
 {
    SimpleStringListCell *head;
    SimpleStringListCell *tail;
-} SimpleStringList;
+}  SimpleStringList;
 
 /*
  * The data structures used to store system catalog information.  Every
@@ -219,7 +219,7 @@ typedef struct _opfamilyInfo
 {
    DumpableObject dobj;
    char       *rolname;
-} OpfamilyInfo;
+}  OpfamilyInfo;
 
 typedef struct _convInfo
 {
@@ -391,29 +391,29 @@ typedef struct _prsInfo
    Oid         prsend;
    Oid         prsheadline;
    Oid         prslextype;
-} TSParserInfo;
+}  TSParserInfo;
 
 typedef struct _dictInfo
 {
    DumpableObject dobj;
    char       *rolname;
    Oid         dicttemplate;
-   char        *dictinitoption;
-} TSDictInfo;
+   char       *dictinitoption;
+}  TSDictInfo;
 
 typedef struct _tmplInfo
 {
    DumpableObject dobj;
    Oid         tmplinit;
    Oid         tmpllexize;
-} TSTemplateInfo;
+}  TSTemplateInfo;
 
 typedef struct _cfgInfo
 {
    DumpableObject dobj;
    char       *rolname;
    Oid         cfgparser;
-} TSConfigInfo;
+}  TSConfigInfo;
 
 /* global decls */
 extern bool force_quotes;      /* double-quotes for identifiers flag */
@@ -454,10 +454,10 @@ extern TypeInfo *findTypeByOid(Oid oid);
 extern FuncInfo *findFuncByOid(Oid oid);
 extern OprInfo *findOprByOid(Oid oid);
 
-extern void simple_oid_list_append(SimpleOidList *list, Oid val);
-extern void simple_string_list_append(SimpleStringList *list, const char *val);
-extern bool simple_oid_list_member(SimpleOidList *list, Oid val);
-extern bool simple_string_list_member(SimpleStringList *list, const char *val);
+extern void simple_oid_list_append(SimpleOidList * list, Oid val);
+extern void simple_string_list_append(SimpleStringList * list, const char *val);
+extern bool simple_oid_list_member(SimpleOidList * list, Oid val);
+extern bool simple_string_list_member(SimpleStringList * list, const char *val);
 
 extern char *pg_strdup(const char *string);
 extern void *pg_malloc(size_t size);
index 5aa9e079d0edd137594cdf3bdc9e04fe59f2699a..bb01994ebf8c97ba2895fb4c3b2caf6cb22910ba 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.97 2007/11/15 19:35:26 petere Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.98 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -67,25 +67,25 @@ static int  disable_triggers = 0;
 static int use_setsessauth = 0;
 static int server_version;
 
-static FILE    *OPF;
-static char    *filename = NULL;
+static FILE *OPF;
+static char *filename = NULL;
 
 int
 main(int argc, char *argv[])
 {
-   char        *pghost = NULL;
-   char        *pgport = NULL;
-   char        *pguser = NULL;
-   char        *pgdb = NULL;
+   char       *pghost = NULL;
+   char       *pgport = NULL;
+   char       *pguser = NULL;
+   char       *pgdb = NULL;
    bool        force_password = false;
    bool        data_only = false;
    bool        globals_only = false;
    bool        roles_only = false;
    bool        tablespaces_only = false;
    bool        schema_only = false;
-   PGconn      *conn;
+   PGconn     *conn;
    int         encoding;
-   const char  *std_strings;
+   const char *std_strings;
    int         c,
                ret;
 
@@ -186,7 +186,7 @@ main(int argc, char *argv[])
            case 'D':
                appendPQExpBuffer(pgdumpopts, " -%c", c);
                break;
-               
+
            case 'f':
                filename = optarg;
 #ifndef WIN32
@@ -215,7 +215,7 @@ main(int argc, char *argv[])
                ignoreVersion = true;
                appendPQExpBuffer(pgdumpopts, " -i");
                break;
-               
+
            case 'l':
                pgdb = optarg;
                break;
@@ -236,7 +236,7 @@ main(int argc, char *argv[])
                appendPQExpBuffer(pgdumpopts, " -p \"%s\"", pgport);
 #endif
                break;
-               
+
            case 'r':
                roles_only = true;
                break;
@@ -253,7 +253,7 @@ main(int argc, char *argv[])
                appendPQExpBuffer(pgdumpopts, " -S \"%s\"", optarg);
 #endif
                break;
-               
+
            case 't':
                tablespaces_only = true;
                break;
@@ -325,7 +325,7 @@ main(int argc, char *argv[])
                progname);
        exit(1);
    }
-   
+
    /* Make sure the user hasn't specified a mix of globals-only options */
    if (globals_only && roles_only)
    {
@@ -335,7 +335,7 @@ main(int argc, char *argv[])
                progname);
        exit(1);
    }
-   
+
    if (globals_only && tablespaces_only)
    {
        fprintf(stderr, _("%s: options -g/--globals-only and -t/--tablespaces-only cannot be used together\n"),
@@ -344,7 +344,7 @@ main(int argc, char *argv[])
                progname);
        exit(1);
    }
-   
+
    if (roles_only && tablespaces_only)
    {
        fprintf(stderr, _("%s: options -r/--roles-only and -t/--tablespaces-only cannot be used together\n"),
@@ -363,8 +363,8 @@ main(int argc, char *argv[])
    if (pgdb)
    {
        conn = connectDatabase(pgdb, pghost, pgport, pguser,
-                               force_password, false);
-                               
+                              force_password, false);
+
        if (!conn)
        {
            fprintf(stderr, _("%s: could not connect to database \"%s\"\n"),
@@ -375,22 +375,22 @@ main(int argc, char *argv[])
    else
    {
        conn = connectDatabase("postgres", pghost, pgport, pguser,
-                          force_password, false);
+                              force_password, false);
        if (!conn)
            conn = connectDatabase("template1", pghost, pgport, pguser,
-                                   force_password, true);
-               
+                                  force_password, true);
+
        if (!conn)
        {
            fprintf(stderr, _("%s: could not connect to databases \"postgres\" or \"template1\"\n"
-                     "Please specify an alternative database.\n"),
+                             "Please specify an alternative database.\n"),
                    progname);
            fprintf(stderr, _("Try \"%s --help\" for more information.\n"),
                    progname);
            exit(1);
        }
    }
-   
+
    /*
     * Open the output file if required, otherwise use stdout
     */
@@ -426,7 +426,7 @@ main(int argc, char *argv[])
    {
        /* Replicate encoding and std_strings in output */
        fprintf(OPF, "SET client_encoding = '%s';\n",
-              pg_encoding_to_char(encoding));
+               pg_encoding_to_char(encoding));
        fprintf(OPF, "SET standard_conforming_strings = %s;\n", std_strings);
        if (strcmp(std_strings, "off") == 0)
            fprintf(OPF, "SET escape_string_warning = 'off';\n");
@@ -464,7 +464,7 @@ main(int argc, char *argv[])
    if (verbose)
        dumpTimestamp("Completed on");
    fprintf(OPF, "--\n-- PostgreSQL database cluster dump complete\n--\n\n");
-   
+
    if (filename)
        fclose(OPF);
 
@@ -730,7 +730,7 @@ dumpRoleMembership(PGconn *conn)
         */
        if (!PQgetisnull(res, i, 3))
        {
-           char    *grantor = PQgetvalue(res, i, 3);
+           char       *grantor = PQgetvalue(res, i, 3);
 
            fprintf(OPF, " GRANTED BY %s", fmtId(grantor));
        }
@@ -1195,17 +1195,17 @@ dumpDatabases(PGconn *conn)
            fprintf(stderr, _("%s: dumping database \"%s\"...\n"), progname, dbname);
 
        fprintf(OPF, "\\connect %s\n\n", fmtId(dbname));
-       
+
        if (filename)
            fclose(OPF);
-           
+
        ret = runPgDump(dbname);
        if (ret != 0)
        {
            fprintf(stderr, _("%s: pg_dump failed on database \"%s\", exiting\n"), progname, dbname);
            exit(1);
        }
-       
+
        if (filename)
        {
            OPF = fopen(filename, PG_BINARY_A);
@@ -1216,7 +1216,7 @@ dumpDatabases(PGconn *conn)
                exit(1);
            }
        }
-       
+
    }
 
    PQclear(res);
@@ -1239,27 +1239,28 @@ runPgDump(const char *dbname)
     * Strangely enough, this is the only place we pass a database name on the
     * command line, except "postgres" which doesn't need quoting.
     *
-    * If we have a filename, use the undocumented plain-append pg_dump format.
+    * If we have a filename, use the undocumented plain-append pg_dump
+    * format.
     */
    if (filename)
    {
 #ifndef WIN32
-   appendPQExpBuffer(cmd, "%s\"%s\" %s -Fa '", SYSTEMQUOTE, pg_dump_bin,
+       appendPQExpBuffer(cmd, "%s\"%s\" %s -Fa '", SYSTEMQUOTE, pg_dump_bin,
 #else
-   appendPQExpBuffer(cmd, "%s\"%s\" %s -Fa \"", SYSTEMQUOTE, pg_dump_bin,
+       appendPQExpBuffer(cmd, "%s\"%s\" %s -Fa \"", SYSTEMQUOTE, pg_dump_bin,
 #endif
-                     pgdumpopts->data);
+                         pgdumpopts->data);
    }
    else
    {
 #ifndef WIN32
-   appendPQExpBuffer(cmd, "%s\"%s\" %s -Fp '", SYSTEMQUOTE, pg_dump_bin,
+       appendPQExpBuffer(cmd, "%s\"%s\" %s -Fp '", SYSTEMQUOTE, pg_dump_bin,
 #else
-   appendPQExpBuffer(cmd, "%s\"%s\" %s -Fp \"", SYSTEMQUOTE, pg_dump_bin,
+       appendPQExpBuffer(cmd, "%s\"%s\" %s -Fp \"", SYSTEMQUOTE, pg_dump_bin,
 #endif
-                     pgdumpopts->data);
-   }   
-                     
+                         pgdumpopts->data);
+   }
+
 
    /* Shell quoting is not quite like SQL quoting, so can't use fmtId */
    for (p = dbname; *p; p++)
@@ -1475,8 +1476,8 @@ dumpTimestamp(char *msg)
    /*
     * We don't print the timezone on Win32, because the names are long and
     * localized, which means they may contain characters in various random
-    * encodings; this has been seen to cause encoding errors when reading
-    * the dump script.
+    * encodings; this has been seen to cause encoding errors when reading the
+    * dump script.
     */
    if (strftime(buf, sizeof(buf),
 #ifndef WIN32
index 5f7d2306d5bc34debcac5d5a0cb005488e4d2d91..c03badd62d0db23e7b5e2b127e5029e91ae7c6c7 100644 (file)
@@ -23,7 +23,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/bin/pg_resetxlog/pg_resetxlog.c,v 1.61 2007/11/07 13:23:20 petere Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_resetxlog/pg_resetxlog.c,v 1.62 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -342,7 +342,7 @@ main(int argc, char *argv[])
    if (ControlFile.state != DB_SHUTDOWNED && !force)
    {
        printf(_("The database server was not shut down cleanly.\n"
-                "Resetting the transaction log might cause data to be lost.\n"
+              "Resetting the transaction log might cause data to be lost.\n"
                 "If you want to proceed anyway, use -f to force reset.\n"));
        exit(1);
    }
@@ -689,17 +689,17 @@ FindEndOfXLOG(void)
    struct dirent *xlde;
 
    /*
-    * Initialize the max() computation using the last checkpoint address
-    * from old pg_control.  Note that for the moment we are working with
-    * segment numbering according to the old xlog seg size.
+    * Initialize the max() computation using the last checkpoint address from
+    * old pg_control.  Note that for the moment we are working with segment
+    * numbering according to the old xlog seg size.
     */
    newXlogId = ControlFile.checkPointCopy.redo.xlogid;
    newXlogSeg = ControlFile.checkPointCopy.redo.xrecoff / ControlFile.xlog_seg_size;
 
    /*
-    * Scan the pg_xlog directory to find existing WAL segment files.
-    * We assume any present have been used; in most scenarios this should
-    * be conservative, because of xlog.c's attempts to pre-create files.
+    * Scan the pg_xlog directory to find existing WAL segment files. We
+    * assume any present have been used; in most scenarios this should be
+    * conservative, because of xlog.c's attempts to pre-create files.
     */
    xldir = opendir(XLOGDIR);
    if (xldir == NULL)
@@ -715,11 +715,12 @@ FindEndOfXLOG(void)
        if (strlen(xlde->d_name) == 24 &&
            strspn(xlde->d_name, "0123456789ABCDEF") == 24)
        {
-           unsigned int    tli,
-                           log,
-                           seg;
+           unsigned int tli,
+                       log,
+                       seg;
 
            sscanf(xlde->d_name, "%08X%08X%08X", &tli, &log, &seg);
+
            /*
             * Note: we take the max of all files found, regardless of their
             * timelines.  Another possibility would be to ignore files of
@@ -754,8 +755,8 @@ FindEndOfXLOG(void)
    closedir(xldir);
 
    /*
-    * Finally, convert to new xlog seg size, and advance by one to ensure
-    * we are in virgin territory.
+    * Finally, convert to new xlog seg size, and advance by one to ensure we
+    * are in virgin territory.
     */
    newXlogSeg *= ControlFile.xlog_seg_size;
    newXlogSeg = (newXlogSeg + XLogSegSize - 1) / XLogSegSize;
index b8cbbbb6da5c7151dbad5840c3b37768a3f80811..2fa68972ff301d38beea8f3f58e180b2c159938f 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/command.c,v 1.182 2007/10/13 20:18:41 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/command.c,v 1.183 2007/11/15 21:14:42 momjian Exp $
  */
 #include "postgres_fe.h"
 #include "command.h"
@@ -312,9 +312,10 @@ exec_command(const char *cmd,
 
        char       *opt = psql_scan_slash_option(scan_state,
                                                 OT_WHOLE_LINE, NULL, false);
+
        if (pset.timing)
            GETTIMEOFDAY(&before);
-       
+
        success = do_copy(opt);
 
        if (pset.timing && success)
@@ -735,8 +736,10 @@ exec_command(const char *cmd,
    /* \prompt -- prompt and set variable */
    else if (strcmp(cmd, "prompt") == 0)
    {
-       char       *opt, *prompt_text = NULL;
-       char       *arg1, *arg2;
+       char       *opt,
+                  *prompt_text = NULL;
+       char       *arg1,
+                  *arg2;
 
        arg1 = psql_scan_slash_option(scan_state, OT_NORMAL, NULL, false);
        arg2 = psql_scan_slash_option(scan_state, OT_NORMAL, NULL, false);
@@ -748,7 +751,7 @@ exec_command(const char *cmd,
        }
        else
        {
-           char       *result;
+           char       *result;
 
            if (arg2)
            {
@@ -1132,9 +1135,9 @@ do_connect(char *dbname, char *user, char *host, char *port)
     * has not changed. Otherwise, try to connect without a password first,
     * and then ask for a password if needed.
     *
-    * XXX: this behavior leads to spurious connection attempts recorded
-    * in the postmaster's log.  But libpq offers no API that would let us
-    * obtain a password and then continue with the first connection attempt.
+    * XXX: this behavior leads to spurious connection attempts recorded in
+    * the postmaster's log.  But libpq offers no API that would let us obtain
+    * a password and then continue with the first connection attempt.
     */
    if (pset.getPassword)
    {
index aa395703b6cb2d03455a67d13e7c3f7e18e5e0f7..abe14ab3526cccefa2d9b7039f7a72c2bf4ad6c9 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/common.c,v 1.136 2007/10/13 20:18:41 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/common.c,v 1.137 2007/11/15 21:14:42 momjian Exp $
  */
 #include "postgres_fe.h"
 #include "common.h"
@@ -1076,8 +1076,8 @@ ExecQueryUsingCursor(const char *query, double *elapsed_msec)
        printQuery(results, &my_popt, pset.queryFout, pset.logfile);
 
        /*
-        * Make sure to flush the output stream, so intermediate
-        * results are visible to the client immediately.
+        * Make sure to flush the output stream, so intermediate results are
+        * visible to the client immediately.
         */
        fflush(pset.queryFout);
 
@@ -1502,7 +1502,7 @@ expand_tilde(char **filename)
        if (*(fn + 1) == '\0')
            get_home_path(home);    /* ~ or ~/ only */
        else if ((pw = getpwnam(fn + 1)) != NULL)
-           strlcpy(home, pw->pw_dir, sizeof(home));        /* ~user */
+           strlcpy(home, pw->pw_dir, sizeof(home));    /* ~user */
 
        *p = oldp;
        if (strlen(home) != 0)
index a3f22c3c14c4b4ca763564acca25a3d9d1413900..bd03c888cc58827716899e0be3818b2184581f99 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/copy.c,v 1.75 2007/03/16 13:41:21 adunstan Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/copy.c,v 1.76 2007/11/15 21:14:42 momjian Exp $
  */
 #include "postgres_fe.h"
 #include "copy.h"
  * The documented syntax is:
  * \copy tablename [(columnlist)] from|to filename
  *   [ with ] [ binary ] [ oids ] [ delimiter [as] char ] [ null [as] string ]
- *    [ csv  [ header ] [ quote [ AS ] string ]  escape [as] string 
- *      [ force not null column [, ...] | force quote column [, ...] ] ]
+ *   [ csv  [ header ] [ quote [ AS ] string ]  escape [as] string
+ *     [ force not null column [, ...] | force quote column [, ...] ] ]
  *
  * \copy ( select stmt ) to filename
  *   [ with ] [ binary ] [ delimiter [as] char ] [ null [as] string ]
- *    [ csv  [ header ] [ quote [ AS ] string ]  escape [as] string 
- *      [ force quote column [, ...] ] ]
+ *   [ csv  [ header ] [ quote [ AS ] string ]  escape [as] string
+ *     [ force quote column [, ...] ] ]
  *
  * Force quote only applies for copy to; force not null only applies for
  * copy from.
@@ -555,8 +555,8 @@ do_copy(const char *args)
    PQclear(result);
 
    /*
-    * Make sure we have pumped libpq dry of results; else it may still be
-    * in ASYNC_BUSY state, leading to false readings in, eg, get_prompt().
+    * Make sure we have pumped libpq dry of results; else it may still be in
+    * ASYNC_BUSY state, leading to false readings in, eg, get_prompt().
     */
    while ((result = PQgetResult(pset.db)) != NULL)
    {
index 99cf4bc16694f9159ae37211cbe703393e80739e..1259a364111bfc2c78ebc5ef008636a83278f9d7 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.161 2007/11/07 14:07:21 petere Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.162 2007/11/15 21:14:42 momjian Exp $
  */
 #include "postgres_fe.h"
 #include "describe.h"
@@ -35,11 +35,11 @@ static bool add_tablespace_footer(char relkind, Oid tablespace, char **footers,
                      int *count, PQExpBufferData buf, bool newline);
 static bool listTSParsersVerbose(const char *pattern);
 static bool describeOneTSParser(const char *oid, const char *nspname,
-                               const char *prsname);
+                   const char *prsname);
 static bool listTSConfigsVerbose(const char *pattern);
 static bool describeOneTSConfig(const char *oid, const char *nspname,
-                               const char *cfgname,
-                               const char *pnspname, const char *prsname);
+                   const char *cfgname,
+                   const char *pnspname, const char *prsname);
 
 
 /*----------------
@@ -70,20 +70,20 @@ describeAggregates(const char *pattern, bool verbose)
    printfPQExpBuffer(&buf,
                      "SELECT n.nspname as \"%s\",\n"
                      "  p.proname AS \"%s\",\n"
-                     "  pg_catalog.format_type(p.prorettype, NULL) AS \"%s\",\n" 
+                 "  pg_catalog.format_type(p.prorettype, NULL) AS \"%s\",\n"
                      "  CASE WHEN p.pronargs = 0\n"
                      "    THEN CAST('*' AS pg_catalog.text)\n"
                      "    ELSE\n"
                      "    pg_catalog.array_to_string(ARRAY(\n"
                      "      SELECT\n"
-                     "        pg_catalog.format_type(p.proargtypes[s.i], NULL)\n"
+                "        pg_catalog.format_type(p.proargtypes[s.i], NULL)\n"
                      "      FROM\n"
                      "        pg_catalog.generate_series(0, pg_catalog.array_upper(p.proargtypes, 1)) AS s(i)\n"
                      "    ), ', ')\n"
                      "  END AS \"%s\",\n"
-                     "  pg_catalog.obj_description(p.oid, 'pg_proc') as \"%s\"\n"
+                "  pg_catalog.obj_description(p.oid, 'pg_proc') as \"%s\"\n"
                      "FROM pg_catalog.pg_proc p\n"
-                     "     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace\n"
+      "     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace\n"
                      "WHERE p.proisagg\n",
                      _("Schema"), _("Name"), _("Result data type"),
                      _("Argument data types"), _("Description"));
@@ -1118,20 +1118,20 @@ describeOneTableDetails(const char *schemaname,
            if (pset.sversion < 80300)
            {
                printfPQExpBuffer(&buf,
-                             "SELECT r.rulename, trim(trailing ';' from pg_catalog.pg_get_ruledef(r.oid, true)), "
-                             "'O'::char AS ev_enabled\n"
-                             "FROM pg_catalog.pg_rewrite r\n"
-                             "WHERE r.ev_class = '%s' ORDER BY 1",
-                             oid);
+                                 "SELECT r.rulename, trim(trailing ';' from pg_catalog.pg_get_ruledef(r.oid, true)), "
+                                 "'O'::char AS ev_enabled\n"
+                                 "FROM pg_catalog.pg_rewrite r\n"
+                                 "WHERE r.ev_class = '%s' ORDER BY 1",
+                                 oid);
            }
            else
            {
                printfPQExpBuffer(&buf,
-                             "SELECT r.rulename, trim(trailing ';' from pg_catalog.pg_get_ruledef(r.oid, true)), "
-                             "ev_enabled\n"
-                             "FROM pg_catalog.pg_rewrite r\n"
-                             "WHERE r.ev_class = '%s' ORDER BY 1",
-                             oid);
+                                 "SELECT r.rulename, trim(trailing ';' from pg_catalog.pg_get_ruledef(r.oid, true)), "
+                                 "ev_enabled\n"
+                                 "FROM pg_catalog.pg_rewrite r\n"
+                                 "WHERE r.ev_class = '%s' ORDER BY 1",
+                                 oid);
            }
            result3 = PSQLexec(buf.data, false);
            if (!result3)
@@ -1149,7 +1149,7 @@ describeOneTableDetails(const char *schemaname,
        {
            printfPQExpBuffer(&buf,
                     "SELECT t.tgname, pg_catalog.pg_get_triggerdef(t.oid), "
-                           "t.tgenabled\n"
+                             "t.tgenabled\n"
                              "FROM pg_catalog.pg_trigger t\n"
                              "WHERE t.tgrelid = '%s' "
                              "AND t.tgconstraint = 0\n"
@@ -1297,8 +1297,8 @@ describeOneTableDetails(const char *schemaname,
        /* print rules */
        if (rule_count > 0)
        {
-           bool    have_heading;
-           int     category;
+           bool        have_heading;
+           int         category;
 
            for (category = 0; category < 4; category++)
            {
@@ -1364,12 +1364,13 @@ describeOneTableDetails(const char *schemaname,
        /* print triggers */
        if (trigger_count > 0)
        {
-           bool    have_heading;
-           int     category;
+           bool        have_heading;
+           int         category;
 
-           /* split the output into 4 different categories.
-            * Enabled triggers, disabled triggers and the two
-            * special ALWAYS and REPLICA configurations.
+           /*
+            * split the output into 4 different categories. Enabled triggers,
+            * disabled triggers and the two special ALWAYS and REPLICA
+            * configurations.
             */
            for (category = 0; category < 4; category++)
            {
@@ -1386,18 +1387,22 @@ describeOneTableDetails(const char *schemaname,
                    list_trigger = false;
                    switch (category)
                    {
-                       case 0:     if (*tgenabled == 'O' || *tgenabled == 't')
-                                       list_trigger = true;
-                                   break;
-                       case 1:     if (*tgenabled == 'D' || *tgenabled == 'f')
-                                       list_trigger = true;
-                                   break;
-                       case 2:     if (*tgenabled == 'A')
-                                       list_trigger = true;
-                                   break;
-                       case 3:     if (*tgenabled == 'R')
-                                       list_trigger = true;
-                                   break;
+                       case 0:
+                           if (*tgenabled == 'O' || *tgenabled == 't')
+                               list_trigger = true;
+                           break;
+                       case 1:
+                           if (*tgenabled == 'D' || *tgenabled == 'f')
+                               list_trigger = true;
+                           break;
+                       case 2:
+                           if (*tgenabled == 'A')
+                               list_trigger = true;
+                           break;
+                       case 3:
+                           if (*tgenabled == 'R')
+                               list_trigger = true;
+                           break;
                    }
                    if (list_trigger == false)
                        continue;
@@ -1419,7 +1424,7 @@ describeOneTableDetails(const char *schemaname,
                            case 3:
                                printfPQExpBuffer(&buf, _("Triggers firing on replica only:"));
                                break;
-                               
+
                        }
                        footers[count_footers++] = pg_strdup(buf.data);
                        have_heading = true;
@@ -1440,7 +1445,7 @@ describeOneTableDetails(const char *schemaname,
        /* print inherits */
        for (i = 0; i < inherits_count; i++)
        {
-           const char   *s = _("Inherits");
+           const char *s = _("Inherits");
 
            if (i == 0)
                printfPQExpBuffer(&buf, "%s: %s", s, PQgetvalue(result6, i, 0));
@@ -1454,7 +1459,7 @@ describeOneTableDetails(const char *schemaname,
 
        if (verbose)
        {
-           const char   *s = _("Has OIDs");
+           const char *s = _("Has OIDs");
 
            printfPQExpBuffer(&buf, "%s: %s", s,
                              (tableinfo.hasoids ? _("yes") : _("no")));
@@ -1961,7 +1966,7 @@ listTSParsers(const char *pattern, bool verbose)
                      "  p.prsname as \"%s\",\n"
            "  pg_catalog.obj_description(p.oid, 'pg_ts_parser') as \"%s\"\n"
                      "FROM pg_catalog.pg_ts_parser p \n"
-           "LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.prsnamespace\n",
+          "LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.prsnamespace\n",
                      _("Schema"),
                      _("Name"),
                      _("Description")
@@ -2004,7 +2009,7 @@ listTSParsersVerbose(const char *pattern)
                      "  n.nspname, \n"
                      "  p.prsname \n"
                      "FROM pg_catalog.pg_ts_parser p\n"
-            "LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.prsnamespace\n"
+           "LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.prsnamespace\n"
        );
 
    processSQLNamePattern(pset.db, &buf, pattern, false, false,
@@ -2068,13 +2073,13 @@ describeOneTSParser(const char *oid, const char *nspname, const char *prsname)
    printfPQExpBuffer(&buf,
                      "SELECT '%s' AS \"%s\", \n"
                      "   p.prsstart::pg_catalog.regproc AS \"%s\", \n"
-                     "   pg_catalog.obj_description(p.prsstart, 'pg_proc') as \"%s\" \n"
+         "   pg_catalog.obj_description(p.prsstart, 'pg_proc') as \"%s\" \n"
                      " FROM pg_catalog.pg_ts_parser p \n"
                      " WHERE p.oid = '%s' \n"
                      "UNION ALL \n"
                      "SELECT '%s', \n"
                      "   p.prstoken::pg_catalog.regproc, \n"
-                     "   pg_catalog.obj_description(p.prstoken, 'pg_proc') \n"
+                   "   pg_catalog.obj_description(p.prstoken, 'pg_proc') \n"
                      " FROM pg_catalog.pg_ts_parser p \n"
                      " WHERE p.oid = '%s' \n"
                      "UNION ALL \n"
@@ -2086,13 +2091,13 @@ describeOneTSParser(const char *oid, const char *nspname, const char *prsname)
                      "UNION ALL \n"
                      "SELECT '%s', \n"
                      "   p.prsheadline::pg_catalog.regproc, \n"
-                     "   pg_catalog.obj_description(p.prsheadline, 'pg_proc') \n"
+                "   pg_catalog.obj_description(p.prsheadline, 'pg_proc') \n"
                      " FROM pg_catalog.pg_ts_parser p \n"
                      " WHERE p.oid = '%s' \n"
                      "UNION ALL \n"
                      "SELECT '%s', \n"
                      "   p.prslextype::pg_catalog.regproc, \n"
-                     "   pg_catalog.obj_description(p.prslextype, 'pg_proc') \n"
+                 "   pg_catalog.obj_description(p.prslextype, 'pg_proc') \n"
                      " FROM pg_catalog.pg_ts_parser p \n"
                      " WHERE p.oid = '%s' \n",
                      _("Start parse"),
@@ -2127,7 +2132,7 @@ describeOneTSParser(const char *oid, const char *nspname, const char *prsname)
    printfPQExpBuffer(&buf,
                      "SELECT t.alias as \"%s\", \n"
                      "  t.description as \"%s\" \n"
-                  "FROM pg_catalog.ts_token_type( '%s'::pg_catalog.oid ) as t \n"
+             "FROM pg_catalog.ts_token_type( '%s'::pg_catalog.oid ) as t \n"
                      "ORDER BY 1;",
                      _("Token name"),
                      _("Description"),
@@ -2191,7 +2196,7 @@ listTSDictionaries(const char *pattern, bool verbose)
                      _("Description"));
 
    appendPQExpBuffer(&buf, "FROM pg_catalog.pg_ts_dict d\n"
-       "LEFT JOIN pg_catalog.pg_namespace n ON n.oid = d.dictnamespace\n");
+        "LEFT JOIN pg_catalog.pg_namespace n ON n.oid = d.dictnamespace\n");
 
    processSQLNamePattern(pset.db, &buf, pattern, false, false,
                          "n.nspname", "d.dictname", NULL,
@@ -2234,7 +2239,7 @@ listTSTemplates(const char *pattern, bool verbose)
                          "  t.tmplname AS \"%s\",\n"
                          "  t.tmplinit::pg_catalog.regproc AS \"%s\",\n"
                          "  t.tmpllexize::pg_catalog.regproc AS \"%s\",\n"
-                         "  pg_catalog.obj_description(t.oid, 'pg_ts_template') AS \"%s\"\n",
+        "  pg_catalog.obj_description(t.oid, 'pg_ts_template') AS \"%s\"\n",
                          _("Schema"),
                          _("Name"),
                          _("Init"),
@@ -2245,13 +2250,13 @@ listTSTemplates(const char *pattern, bool verbose)
                          "SELECT \n"
                          "  n.nspname AS \"%s\",\n"
                          "  t.tmplname AS \"%s\",\n"
-                         "  pg_catalog.obj_description(t.oid, 'pg_ts_template') AS \"%s\"\n",
+        "  pg_catalog.obj_description(t.oid, 'pg_ts_template') AS \"%s\"\n",
                          _("Schema"),
                          _("Name"),
                          _("Description"));
 
    appendPQExpBuffer(&buf, "FROM pg_catalog.pg_ts_template t\n"
-       "LEFT JOIN pg_catalog.pg_namespace n ON n.oid = t.tmplnamespace\n");
+        "LEFT JOIN pg_catalog.pg_namespace n ON n.oid = t.tmplnamespace\n");
 
    processSQLNamePattern(pset.db, &buf, pattern, false, false,
                          "n.nspname", "t.tmplname", NULL,
@@ -2339,7 +2344,7 @@ listTSConfigsVerbose(const char *pattern)
                      "FROM pg_catalog.pg_ts_config c \n"
       "   LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.cfgnamespace, \n"
                      " pg_catalog.pg_ts_parser p \n"
-    "   LEFT JOIN pg_catalog.pg_namespace np ON np.oid = p.prsnamespace \n"
+     "   LEFT JOIN pg_catalog.pg_namespace np ON np.oid = p.prsnamespace \n"
                      "WHERE  p.oid = c.cfgparser\n"
        );
 
@@ -2413,13 +2418,13 @@ describeOneTSConfig(const char *oid, const char *nspname, const char *cfgname,
                      "    pg_catalog.ts_token_type(c.cfgparser) AS t \n"
                      "    WHERE t.tokid = m.maptokentype ) AS \"%s\", \n"
                      "  pg_catalog.btrim( \n"
-                     "    ARRAY( SELECT mm.mapdict::pg_catalog.regdictionary \n"
+                 "    ARRAY( SELECT mm.mapdict::pg_catalog.regdictionary \n"
                      "           FROM pg_catalog.pg_ts_config_map AS mm \n"
                      "           WHERE mm.mapcfg = m.mapcfg AND mm.maptokentype = m.maptokentype \n"
                      "           ORDER BY mapcfg, maptokentype, mapseqno \n"
                      "    ) :: pg_catalog.text , \n"
                      "  '{}') AS \"%s\" \n"
-                     "FROM pg_catalog.pg_ts_config AS c, pg_catalog.pg_ts_config_map AS m \n"
+    "FROM pg_catalog.pg_ts_config AS c, pg_catalog.pg_ts_config_map AS m \n"
                      "WHERE c.oid = '%s' AND m.mapcfg = c.oid \n"
                      "GROUP BY m.mapcfg, m.maptokentype, c.cfgparser \n"
                      "ORDER BY 1",
index b220339a4983a99a4566b8f69f12966898da8fa3..7fb82b66bd3fdd4af10de38347e7f405c7e231fa 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/help.c,v 1.118 2007/08/21 01:11:22 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/help.c,v 1.119 2007/11/15 21:14:42 momjian Exp $
  */
 #include "postgres_fe.h"
 
@@ -185,7 +185,7 @@ slashUsage(unsigned short int pager)
            ON(pset.timing));
    fprintf(output, _("  \\unset NAME    unset (delete) internal variable\n"));
    fprintf(output, _("  \\prompt [TEXT] NAME\n"
-                     "                 prompt user to set internal variable\n"));
+                "                 prompt user to set internal variable\n"));
    fprintf(output, _("  \\! [COMMAND]   execute command in shell or start interactive shell\n"));
    fprintf(output, "\n");
 
index c30758f1f31fadc60e1632a184e4263c2cef3eb1..f22f74c4d52de0f5c3f05bd43d6327893e078ffb 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/tab-complete.c,v 1.167 2007/09/14 04:25:24 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/tab-complete.c,v 1.168 2007/11/15 21:14:42 momjian Exp $
  */
 
 /*----------------------------------------------------------------------
@@ -449,7 +449,8 @@ typedef struct
    const char *name;
    const char *query;          /* simple query, or NULL */
    const SchemaQuery *squery;  /* schema query, or NULL */
-   const bool noshow;  /* NULL or true if this word should not show up after CREATE or DROP */
+   const bool  noshow;         /* NULL or true if this word should not show
+                                * up after CREATE or DROP */
 } pgsql_thing_t;
 
 static const pgsql_thing_t words_after_create[] = {
@@ -487,7 +488,7 @@ static const pgsql_thing_t words_after_create[] = {
    {"UNIQUE", NULL, NULL},     /* for CREATE UNIQUE INDEX ... */
    {"USER", Query_for_list_of_roles},
    {"VIEW", NULL, &Query_for_list_of_views},
-   {NULL, NULL, NULL, false}           /* end of list */
+   {NULL, NULL, NULL, false}   /* end of list */
 };
 
 
@@ -563,7 +564,7 @@ psql_completion(char *text, int start, int end)
    static const char *const backslash_commands[] = {
        "\\a", "\\connect", "\\C", "\\cd", "\\copy", "\\copyright",
        "\\d", "\\da", "\\db", "\\dc", "\\dC", "\\dd", "\\dD", "\\df",
-       "\\dF", "\\dFd", "\\dFp", "\\dFt", "\\dg", "\\di", "\\dl", 
+       "\\dF", "\\dFd", "\\dFp", "\\dFt", "\\dg", "\\di", "\\dl",
        "\\dn", "\\do", "\\dp", "\\ds", "\\dS", "\\dt", "\\dT", "\\dv", "\\du",
        "\\e", "\\echo", "\\encoding",
        "\\f", "\\g", "\\h", "\\help", "\\H", "\\i", "\\l",
@@ -806,27 +807,30 @@ psql_completion(char *text, int start, int end)
             pg_strcasecmp(prev_wd, "ENABLE") == 0)
    {
        static const char *const list_ALTERENABLE[] =
-       {"ALWAYS","REPLICA","RULE", "TRIGGER", NULL};
+       {"ALWAYS", "REPLICA", "RULE", "TRIGGER", NULL};
+
        COMPLETE_WITH_LIST(list_ALTERENABLE);
    }
    else if (pg_strcasecmp(prev4_wd, "TABLE") == 0 &&
-           pg_strcasecmp(prev2_wd, "ENABLE") == 0 &&
-           (pg_strcasecmp(prev_wd, "REPLICA") == 0 ||
-            pg_strcasecmp(prev_wd, "ALWAYS") == 0))
+            pg_strcasecmp(prev2_wd, "ENABLE") == 0 &&
+            (pg_strcasecmp(prev_wd, "REPLICA") == 0 ||
+             pg_strcasecmp(prev_wd, "ALWAYS") == 0))
    {
        static const char *const list_ALTERENABLE2[] =
        {"RULE", "TRIGGER", NULL};
+
        COMPLETE_WITH_LIST(list_ALTERENABLE2);
    }
-   else if (pg_strcasecmp(prev4_wd, "ALTER") == 0 &&   
+   else if (pg_strcasecmp(prev4_wd, "ALTER") == 0 &&
             pg_strcasecmp(prev3_wd, "TABLE") == 0 &&
             pg_strcasecmp(prev_wd, "DISABLE") == 0)
    {
        static const char *const list_ALTERDISABLE[] =
        {"RULE", "TRIGGER", NULL};
+
        COMPLETE_WITH_LIST(list_ALTERDISABLE);
    }
-       
+
    /* If we have TABLE <sth> ALTER|RENAME, provide list of columns */
    else if (pg_strcasecmp(prev3_wd, "TABLE") == 0 &&
             (pg_strcasecmp(prev_wd, "ALTER") == 0 ||
@@ -938,13 +942,13 @@ psql_completion(char *text, int start, int end)
             pg_strcasecmp(prev4_wd, "TEXT") == 0 &&
             pg_strcasecmp(prev3_wd, "SEARCH") == 0 &&
             (pg_strcasecmp(prev2_wd, "TEMPLATE") == 0 ||
-            pg_strcasecmp(prev2_wd, "PARSER") == 0)) 
+             pg_strcasecmp(prev2_wd, "PARSER") == 0))
        COMPLETE_WITH_CONST("RENAME TO");
 
    else if (pg_strcasecmp(prev5_wd, "ALTER") == 0 &&
             pg_strcasecmp(prev4_wd, "TEXT") == 0 &&
             pg_strcasecmp(prev3_wd, "SEARCH") == 0 &&
-            pg_strcasecmp(prev2_wd, "DICTIONARY") == 0) 
+            pg_strcasecmp(prev2_wd, "DICTIONARY") == 0)
    {
        static const char *const list_ALTERTEXTSEARCH2[] =
        {"OWNER TO", "RENAME TO", NULL};
@@ -1026,15 +1030,15 @@ psql_completion(char *text, int start, int end)
 /* CLUSTER */
 
    /*
-    * If the previous word is CLUSTER and not without produce list of
-    * tables
+    * If the previous word is CLUSTER and not without produce list of tables
     */
    else if (pg_strcasecmp(prev_wd, "CLUSTER") == 0 &&
             pg_strcasecmp(prev2_wd, "WITHOUT") != 0)
        COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables, NULL);
    /* If we have CLUSTER <sth>, then add "USING" */
    else if (pg_strcasecmp(prev2_wd, "CLUSTER") == 0 &&
-            pg_strcasecmp(prev_wd, "ON") != 0) {
+            pg_strcasecmp(prev_wd, "ON") != 0)
+   {
        COMPLETE_WITH_CONST("USING");
    }
 
@@ -1063,8 +1067,8 @@ psql_completion(char *text, int start, int end)
        COMPLETE_WITH_LIST(list_COMMENT);
    }
    else if (pg_strcasecmp(prev4_wd, "COMMENT") == 0 &&
-            pg_strcasecmp(prev3_wd, "ON") == 0  &&
-            pg_strcasecmp(prev2_wd, "TEXT") == 0  &&
+            pg_strcasecmp(prev3_wd, "ON") == 0 &&
+            pg_strcasecmp(prev2_wd, "TEXT") == 0 &&
             pg_strcasecmp(prev_wd, "SEARCH") == 0)
    {
        static const char *const list_TRANS2[] =
@@ -1073,7 +1077,7 @@ psql_completion(char *text, int start, int end)
        COMPLETE_WITH_LIST(list_TRANS2);
    }
    else if ((pg_strcasecmp(prev4_wd, "COMMENT") == 0 &&
-            pg_strcasecmp(prev3_wd, "ON") == 0) ||
+             pg_strcasecmp(prev3_wd, "ON") == 0) ||
             (pg_strcasecmp(prev5_wd, "ON") == 0 &&
              pg_strcasecmp(prev4_wd, "TEXT") == 0 &&
              pg_strcasecmp(prev3_wd, "SEARCH") == 0))
@@ -1231,7 +1235,7 @@ psql_completion(char *text, int start, int end)
              pg_strcasecmp(prev_wd, "TEMPORARY") == 0))
    {
        static const char *const list_TEMP[] =
-       { "SEQUENCE", "TABLE", "VIEW", NULL };
+       {"SEQUENCE", "TABLE", "VIEW", NULL};
 
        COMPLETE_WITH_LIST(list_TEMP);
    }
@@ -1264,9 +1268,9 @@ psql_completion(char *text, int start, int end)
        COMPLETE_WITH_LIST(list_CREATETEXTSEARCH);
    }
    else if (pg_strcasecmp(prev4_wd, "TEXT") == 0 &&
-           pg_strcasecmp(prev3_wd, "SEARCH") == 0 &&
-           pg_strcasecmp(prev2_wd, "CONFIGURATION") == 0)
-   COMPLETE_WITH_CONST("(");
+            pg_strcasecmp(prev3_wd, "SEARCH") == 0 &&
+            pg_strcasecmp(prev2_wd, "CONFIGURATION") == 0)
+       COMPLETE_WITH_CONST("(");
 
 /* CREATE TRIGGER */
    /* complete CREATE TRIGGER <name> with BEFORE,AFTER */
@@ -1413,14 +1417,14 @@ psql_completion(char *text, int start, int end)
             (pg_strcasecmp(prev4_wd, "DROP") == 0 &&
              pg_strcasecmp(prev3_wd, "AGGREGATE") == 0 &&
              prev_wd[strlen(prev_wd) - 1] == ')') ||
-            (pg_strcasecmp(prev5_wd, "DROP") == 0  &&
+            (pg_strcasecmp(prev5_wd, "DROP") == 0 &&
              pg_strcasecmp(prev4_wd, "TEXT") == 0 &&
              pg_strcasecmp(prev3_wd, "SEARCH") == 0 &&
-            (pg_strcasecmp(prev2_wd, "CONFIGURATION") == 0 ||
-             pg_strcasecmp(prev2_wd, "DICTIONARY") == 0 ||
-             pg_strcasecmp(prev2_wd, "PARSER") == 0 ||
-             pg_strcasecmp(prev2_wd, "TEMPLATE") == 0))
-            )
+             (pg_strcasecmp(prev2_wd, "CONFIGURATION") == 0 ||
+              pg_strcasecmp(prev2_wd, "DICTIONARY") == 0 ||
+              pg_strcasecmp(prev2_wd, "PARSER") == 0 ||
+              pg_strcasecmp(prev2_wd, "TEMPLATE") == 0))
+       )
    {
        if ((pg_strcasecmp(prev3_wd, "DROP") == 0) && (pg_strcasecmp(prev2_wd, "FUNCTION") == 0))
        {
@@ -1467,7 +1471,7 @@ psql_completion(char *text, int start, int end)
        COMPLETE_WITH_QUERY(Query_for_list_of_roles);
    else if (pg_strcasecmp(prev3_wd, "DROP") == 0 &&
             pg_strcasecmp(prev2_wd, "TEXT") == 0 &&
-             pg_strcasecmp(prev_wd, "SEARCH") == 0)
+            pg_strcasecmp(prev_wd, "SEARCH") == 0)
    {
 
        static const char *const list_ALTERTEXTSEARCH[] =
@@ -1475,7 +1479,7 @@ psql_completion(char *text, int start, int end)
 
        COMPLETE_WITH_LIST(list_ALTERTEXTSEARCH);
    }
-   
+
 /* EXPLAIN */
 
    /*
@@ -2134,7 +2138,8 @@ psql_completion(char *text, int start, int end)
 static char *
 create_command_generator(const char *text, int state)
 {
-   static int list_index, string_length;
+   static int  list_index,
+               string_length;
    const char *name;
 
    /* If this is the first time for this completion, init some values */
@@ -2147,8 +2152,8 @@ create_command_generator(const char *text, int state)
    /* find something that matches */
    while ((name = words_after_create[list_index++].name))
    {
-           if ((pg_strncasecmp(name, text, string_length) == 0) && !words_after_create[list_index - 1].noshow)
-                   return pg_strdup(name);
+       if ((pg_strncasecmp(name, text, string_length) == 0) && !words_after_create[list_index - 1].noshow)
+           return pg_strdup(name);
    }
    /* if nothing matches, return NULL */
    return NULL;
@@ -2163,7 +2168,8 @@ create_command_generator(const char *text, int state)
 static char *
 drop_command_generator(const char *text, int state)
 {
-   static int  list_index, string_length;
+   static int  list_index,
+               string_length;
    const char *name;
 
    if (state == 0)
index 93272b29c3b7fdc4d1be4629783c5ffa4e3f194a..5e815e57f4bd23347dbccf53ea62cef9551c2d87 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/bin/scripts/common.c,v 1.28 2007/09/25 16:29:34 petere Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/common.c,v 1.29 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -29,6 +29,7 @@ int           optreset;
 #endif
 
 static PGcancel *volatile cancelConn = NULL;
+
 #ifdef WIN32
 static CRITICAL_SECTION cancelConnLock;
 #endif
@@ -360,7 +361,6 @@ setup_cancel_handler(void)
 {
    pqsignal(SIGINT, handle_sigint);
 }
-
 #else                          /* WIN32 */
 
 /*
@@ -403,4 +403,3 @@ setup_cancel_handler(void)
 }
 
 #endif   /* WIN32 */
-
index 9f5922304762f969381cb878895adc6f60f8b709..98ba0eb8752e814dc833ccf7f80ec062a7ff06e0 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Copyright (c) 2003-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/scripts/common.h,v 1.17 2007/04/09 18:21:22 mha Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/common.h,v 1.18 2007/11/15 21:14:42 momjian Exp $
  */
 #ifndef COMMON_H
 #define COMMON_H
@@ -36,7 +36,7 @@ extern void executeCommand(PGconn *conn, const char *query,
               const char *progname, bool echo);
 
 extern bool executeMaintenanceCommand(PGconn *conn, const char *query,
-                              bool echo);
+                         bool echo);
 
 extern bool yesno_prompt(const char *question);
 
index 98296e62bef0c46f90faad1edabed5cb05bde95c..86f166b1e326f25a20c501fa2b32f18b8446d24d 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/access/genam.h,v 1.67 2007/05/30 20:12:02 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/genam.h,v 1.68 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -40,7 +40,7 @@ typedef struct IndexVacuumInfo
    bool        vacuum_full;    /* VACUUM FULL (we have exclusive lock) */
    int         message_level;  /* ereport level for progress messages */
    double      num_heap_tuples;    /* tuples remaining in heap */
-   BufferAccessStrategy strategy;  /* access strategy for reads */
+   BufferAccessStrategy strategy;      /* access strategy for reads */
 } IndexVacuumInfo;
 
 /*
index ff76d886dd245e183754b4046eefc20575dbde03..a6bdf1a6e6a77a1dee52321cd7f6b6970bfdf234 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Copyright (c) 2006-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/include/access/gin.h,v 1.13 2007/08/21 01:11:22 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/gin.h,v 1.14 2007/11/15 21:14:42 momjian Exp $
  *--------------------------------------------------------------------------
  */
 
@@ -233,7 +233,7 @@ extern void GinInitBuffer(Buffer b, uint32 f);
 extern void GinInitPage(Page page, uint32 f, Size pageSize);
 extern int compareEntries(GinState *ginstate, Datum a, Datum b);
 extern Datum *extractEntriesS(GinState *ginstate, Datum value,
-                             int32 *nentries, bool *needUnique);
+               int32 *nentries, bool *needUnique);
 extern Datum *extractEntriesSU(GinState *ginstate, Datum value, int32 *nentries);
 extern Page GinPageGetCopyPage(Page page);
 
@@ -399,8 +399,8 @@ typedef struct GinScanOpaqueData
 
    GinScanKey  keys;
    uint32      nkeys;
-   bool        isVoidRes; /* true if ginstate.extractQueryFn 
-                             guarantees that nothing will be found */
+   bool        isVoidRes;      /* true if ginstate.extractQueryFn guarantees
+                                * that nothing will be found */
 
    GinScanKey  markPos;
 } GinScanOpaqueData;
index e7f59e2da82a5b4c7748741ff02ca5bd208d884f..4ef590014e329c9ea7952f74cf73abd259bedb07 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/access/hash.h,v 1.82 2007/06/01 15:33:18 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/hash.h,v 1.83 2007/11/15 21:14:42 momjian Exp $
  *
  * NOTES
  *     modeled after Margo Seltzer's hash implementation for unix.
@@ -275,24 +275,24 @@ extern void _hash_doinsert(Relation rel, IndexTuple itup);
 /* hashovfl.c */
 extern Buffer _hash_addovflpage(Relation rel, Buffer metabuf, Buffer buf);
 extern BlockNumber _hash_freeovflpage(Relation rel, Buffer ovflbuf,
-                                     BufferAccessStrategy bstrategy);
+                  BufferAccessStrategy bstrategy);
 extern void _hash_initbitmap(Relation rel, HashMetaPage metap,
                 BlockNumber blkno);
 extern void _hash_squeezebucket(Relation rel,
-                               Bucket bucket, BlockNumber bucket_blkno,
-                               BufferAccessStrategy bstrategy);
+                   Bucket bucket, BlockNumber bucket_blkno,
+                   BufferAccessStrategy bstrategy);
 
 /* hashpage.c */
 extern void _hash_getlock(Relation rel, BlockNumber whichlock, int access);
 extern bool _hash_try_getlock(Relation rel, BlockNumber whichlock, int access);
 extern void _hash_droplock(Relation rel, BlockNumber whichlock, int access);
 extern Buffer _hash_getbuf(Relation rel, BlockNumber blkno,
-                          int access, int flags);
+            int access, int flags);
 extern Buffer _hash_getinitbuf(Relation rel, BlockNumber blkno);
 extern Buffer _hash_getnewbuf(Relation rel, BlockNumber blkno);
 extern Buffer _hash_getbuf_with_strategy(Relation rel, BlockNumber blkno,
-                                        int access, int flags,
-                                        BufferAccessStrategy bstrategy);
+                          int access, int flags,
+                          BufferAccessStrategy bstrategy);
 extern void _hash_relbuf(Relation rel, Buffer buf);
 extern void _hash_dropbuf(Relation rel, Buffer buf);
 extern void _hash_wrtbuf(Relation rel, Buffer buf);
index fbe24c8e45fce94c7f50c9be6c42665f5334a115..aaad546f573d75424d1157651d4661dd08f34ab0 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/access/heapam.h,v 1.127 2007/09/20 17:56:32 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/heapam.h,v 1.128 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -142,7 +142,7 @@ extern Relation heap_openrv(const RangeVar *relation, LOCKMODE lockmode);
 extern HeapScanDesc heap_beginscan(Relation relation, Snapshot snapshot,
               int nkeys, ScanKey key);
 extern HeapScanDesc heap_beginscan_bm(Relation relation, Snapshot snapshot,
-              int nkeys, ScanKey key);
+                 int nkeys, ScanKey key);
 extern void heap_rescan(HeapScanDesc scan, ScanKey key);
 extern void heap_endscan(HeapScanDesc scan);
 extern HeapTuple heap_getnext(HeapScanDesc scan, ScanDirection direction);
@@ -154,9 +154,9 @@ extern bool heap_release_fetch(Relation relation, Snapshot snapshot,
                   HeapTuple tuple, Buffer *userbuf, bool keep_buf,
                   Relation stats_relation);
 extern bool heap_hot_search_buffer(ItemPointer tid, Buffer buffer,
-                                  Snapshot snapshot, bool *all_dead);
+                      Snapshot snapshot, bool *all_dead);
 extern bool heap_hot_search(ItemPointer tid, Relation relation,
-                           Snapshot snapshot, bool *all_dead);
+               Snapshot snapshot, bool *all_dead);
 
 extern void heap_get_latest_tid(Relation relation, Snapshot snapshot,
                    ItemPointer tid);
@@ -177,7 +177,7 @@ extern HTSU_Result heap_lock_tuple(Relation relation, HeapTuple tuple,
                LockTupleMode mode, bool nowait);
 extern void heap_inplace_update(Relation relation, HeapTuple tuple);
 extern bool heap_freeze_tuple(HeapTupleHeader tuple, TransactionId cutoff_xid,
-                             Buffer buf);
+                 Buffer buf);
 
 extern Oid simple_heap_insert(Relation relation, HeapTuple tup);
 extern void simple_heap_delete(Relation relation, ItemPointer tid);
@@ -203,8 +203,8 @@ extern XLogRecPtr log_heap_clean(Relation reln, Buffer buffer,
               OffsetNumber *nowunused, int nunused,
               bool redirect_move);
 extern XLogRecPtr log_heap_freeze(Relation reln, Buffer buffer,
-                                 TransactionId cutoff_xid,
-                                 OffsetNumber *offsets, int offcnt);
+               TransactionId cutoff_xid,
+               OffsetNumber *offsets, int offcnt);
 extern XLogRecPtr log_newpage(RelFileNode *rnode, BlockNumber blk, Page page);
 
 /* in common/heaptuple.c */
@@ -251,10 +251,10 @@ extern HeapTuple heap_addheader(int natts, bool withoid,
 
 /* in heap/pruneheap.c */
 extern void heap_page_prune_opt(Relation relation, Buffer buffer,
-                               TransactionId OldestXmin);
-extern int heap_page_prune(Relation relation, Buffer buffer,
-                           TransactionId OldestXmin,
-                           bool redirect_move, bool report_stats);
+                   TransactionId OldestXmin);
+extern int heap_page_prune(Relation relation, Buffer buffer,
+               TransactionId OldestXmin,
+               bool redirect_move, bool report_stats);
 extern void heap_get_root_tuples(Page page, OffsetNumber *root_offsets);
 
 /* in heap/syncscan.c */
index e7f46c63844b54503fcd09fcd49f5306a87245a6..84b6080c720c82832470d8fd543fe3fed228efa9 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/access/htup.h,v 1.95 2007/11/07 12:24:24 petere Exp $
+ * $PostgreSQL: pgsql/src/include/access/htup.h,v 1.96 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -67,7 +67,7 @@
  *
  * We store five "virtual" fields Xmin, Cmin, Xmax, Cmax, and Xvac in three
  * physical fields.  Xmin and Xmax are always really stored, but Cmin, Cmax
- * and Xvac share a field.  This works because we know that Cmin and Cmax
+ * and Xvac share a field. This works because we know that Cmin and Cmax
  * are only interesting for the lifetime of the inserting and deleting
  * transaction respectively.  If a tuple is inserted and deleted in the same
  * transaction, we store a "combo" command id that can be mapped to the real
@@ -575,9 +575,9 @@ typedef HeapTupleData *HeapTuple;
  * When we insert 1st item on new page in INSERT/UPDATE
  * we can (and we do) restore entire page in redo
  */
-#define XLOG_HEAP_INIT_PAGE    0x80
+#define XLOG_HEAP_INIT_PAGE        0x80
 /*
- * We ran out of opcodes, so heapam.c now has a second RmgrId.  These opcodes
+ * We ran out of opcodes, so heapam.c now has a second RmgrId. These opcodes
  * are associated with RM_HEAP2_ID, but are not logically different from
  * the ones above associated with RM_HEAP_ID.  We apply XLOG_HEAP_OPMASK,
  * although currently XLOG_HEAP_INIT_PAGE is not used for any of these.
@@ -662,7 +662,7 @@ typedef struct xl_heap_update
  * should be interpreted as physically moving the "to" item pointer to the
  * "from" slot, rather than placing a redirection item in the "from" slot.
  * The moved pointers should be replaced by LP_UNUSED items (there will not
- * be explicit entries in the "now-unused" list for this).  Also, the
+ * be explicit entries in the "now-unused" list for this). Also, the
  * HEAP_ONLY bit in the moved tuples must be turned off.
  */
 typedef struct xl_heap_clean
@@ -714,7 +714,7 @@ typedef struct xl_heap_freeze
    BlockNumber block;
    TransactionId cutoff_xid;
    /* TUPLE OFFSET NUMBERS FOLLOW AT THE END */
-} xl_heap_freeze;
+}  xl_heap_freeze;
 
 #define SizeOfHeapFreeze (offsetof(xl_heap_freeze, cutoff_xid) + sizeof(TransactionId))
 
@@ -722,7 +722,7 @@ typedef struct xl_heap_freeze
 extern CommandId HeapTupleHeaderGetCmin(HeapTupleHeader tup);
 extern CommandId HeapTupleHeaderGetCmax(HeapTupleHeader tup);
 extern void HeapTupleHeaderAdjustCmax(HeapTupleHeader tup,
-                                     CommandId *cmax,
-                                     bool *iscombo);
+                         CommandId *cmax,
+                         bool *iscombo);
 
 #endif   /* HTUP_H */
index c1a7d062400f85e0024264645b2128e8d3637fa5..34041b8da3c196624652b0a45ff359e8bd0a1649 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/access/nbtree.h,v 1.113 2007/04/11 20:47:38 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/nbtree.h,v 1.114 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -74,7 +74,7 @@ typedef BTPageOpaqueData *BTPageOpaque;
 #define BTP_HAS_GARBAGE (1 << 6)   /* page has LP_DELETEd tuples */
 
 /*
- * The max allowed value of a cycle ID is a bit less than 64K.  This is
+ * The max allowed value of a cycle ID is a bit less than 64K. This is
  * for convenience of pg_filedump and similar utilities: we want to use
  * the last 2 bytes of special space as an index type indicator, and
  * restricting cycle ID lets btree use that space for vacuum cycle IDs
@@ -270,7 +270,7 @@ typedef struct xl_btree_insert
  * Note: the four XLOG_BTREE_SPLIT xl_info codes all use this data record.
  * The _L and _R variants indicate whether the inserted tuple went into the
  * left or right split page (and thus, whether newitemoff and the new item
- * are stored or not).  The _ROOT variants indicate that we are splitting
+ * are stored or not). The _ROOT variants indicate that we are splitting
  * the root page, and thus that a newroot record rather than an insert or
  * split record should follow. Note that a split record never carries a
  * metapage update --- we'll do that in the parent-level update.
@@ -285,9 +285,9 @@ typedef struct xl_btree_split
    OffsetNumber firstright;    /* first item moved to right page */
 
    /*
-    * If level > 0, BlockIdData downlink follows.  (We use BlockIdData
-    * rather than BlockNumber for alignment reasons: SizeOfBtreeSplit
-    * is only 16-bit aligned.)
+    * If level > 0, BlockIdData downlink follows.  (We use BlockIdData rather
+    * than BlockNumber for alignment reasons: SizeOfBtreeSplit is only 16-bit
+    * aligned.)
     *
     * In the _L variants, next are OffsetNumber newitemoff and the new item.
     * (In the _R variants, the new item is one of the right page's tuples.)
@@ -355,7 +355,7 @@ typedef struct xl_btree_newroot
  * The strategy numbers are chosen so that we can commute them by
  * subtraction, thus:
  */
-#define BTCommuteStrategyNumber(strat)  (BTMaxStrategyNumber + 1 - (strat))
+#define BTCommuteStrategyNumber(strat) (BTMaxStrategyNumber + 1 - (strat))
 
 /*
  * When a new operator class is declared, we require that the user
@@ -484,7 +484,7 @@ typedef BTScanOpaqueData *BTScanOpaque;
 
 /*
  * We use some private sk_flags bits in preprocessed scan keys.  We're allowed
- * to use bits 16-31 (see skey.h).  The uppermost bits are copied from the
+ * to use bits 16-31 (see skey.h). The uppermost bits are copied from the
  * index's indoption[] array entry for the index attribute.
  */
 #define SK_BT_REQFWD   0x00010000      /* required to continue forward scan */
@@ -533,8 +533,8 @@ extern void _bt_pageinit(Page page, Size size);
 extern bool _bt_page_recyclable(Page page);
 extern void _bt_delitems(Relation rel, Buffer buf,
             OffsetNumber *itemnos, int nitems);
-extern int _bt_pagedel(Relation rel, Buffer buf,
-                       BTStack stack, bool vacuum_full);
+extern int _bt_pagedel(Relation rel, Buffer buf,
+           BTStack stack, bool vacuum_full);
 
 /*
  * prototypes for functions in nbtsearch.c
index b145e09e36a6abc53cef118fecafe46942ddeb88..8076a5e960baff90327ff75c5e0fc78511145976 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/access/relscan.h,v 1.57 2007/09/20 17:56:32 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/relscan.h,v 1.58 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -27,11 +27,11 @@ typedef struct HeapScanDescData
    int         rs_nkeys;       /* number of scan keys */
    ScanKey     rs_key;         /* array of scan key descriptors */
    bool        rs_bitmapscan;  /* true if this is really a bitmap scan */
-   bool        rs_pageatatime; /* verify visibility page-at-a-time? */
+   bool        rs_pageatatime; /* verify visibility page-at-a-time? */
 
    /* state set up at initscan time */
    BlockNumber rs_nblocks;     /* number of blocks to scan */
-   BlockNumber rs_startblock;  /* block # to start at */
+   BlockNumber rs_startblock;  /* block # to start at */
    BufferAccessStrategy rs_strategy;   /* access strategy for reads */
    bool        rs_syncscan;    /* report location to syncscan logic? */
 
@@ -82,7 +82,7 @@ typedef struct IndexScanDescData
    HeapTupleData xs_ctup;      /* current heap tuple, if any */
    Buffer      xs_cbuf;        /* current heap buffer in scan, if any */
    /* NB: if xs_cbuf is not InvalidBuffer, we hold a pin on that buffer */
-   TransactionId xs_prev_xmax; /* previous HOT chain member's XMAX, if any */
+   TransactionId xs_prev_xmax; /* previous HOT chain member's XMAX, if any */
    OffsetNumber xs_next_hot;   /* next member of HOT chain, if any */
    bool        xs_hot_dead;    /* T if all members of HOT chain are dead */
 } IndexScanDescData;
index 4f9515d566f46b5c1677ddeb4579e3ccf3a89717..28fde7a590439c78bd37d1d5c346fcb6f0f65ee0 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994-5, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/access/rewriteheap.h,v 1.2 2007/05/17 15:28:29 alvherre Exp $
+ * $PostgreSQL: pgsql/src/include/access/rewriteheap.h,v 1.3 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -27,4 +27,4 @@ extern void rewrite_heap_tuple(RewriteState state, HeapTuple oldTuple,
                   HeapTuple newTuple);
 extern void rewrite_heap_dead_tuple(RewriteState state, HeapTuple oldTuple);
 
-#endif /* REWRITE_HEAP_H */
+#endif   /* REWRITE_HEAP_H */
index 9e18b9608bede819f935279b163679f76fb4f404..a561a4a482d4a388d39a18d35ec2cc72358f5163 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/access/slru.h,v 1.21 2007/08/01 22:45:09 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/slru.h,v 1.22 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -122,8 +122,8 @@ extern Size SimpleLruShmemSize(int nslots, int nlsns);
 extern void SimpleLruInit(SlruCtl ctl, const char *name, int nslots, int nlsns,
              LWLockId ctllock, const char *subdir);
 extern int SimpleLruZeroPage(SlruCtl ctl, int pageno);
-extern int SimpleLruReadPage(SlruCtl ctl, int pageno, bool write_ok,
-                             TransactionId xid);
+extern int SimpleLruReadPage(SlruCtl ctl, int pageno, bool write_ok,
+                 TransactionId xid);
 extern int SimpleLruReadPage_ReadOnly(SlruCtl ctl, int pageno,
                           TransactionId xid);
 extern void SimpleLruWritePage(SlruCtl ctl, int slotno, SlruFlush fdata);
index 0408038124c104e490c21f716dc8d943fafa68c7..3fdf4ada4e01bfe0c9ad3d95fa6a1ecdfdf1b97a 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/access/transam.h,v 1.62 2007/09/08 20:31:15 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/transam.h,v 1.63 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -150,7 +150,7 @@ extern bool TransactionIdPrecedesOrEquals(TransactionId id1, TransactionId id2);
 extern bool TransactionIdFollows(TransactionId id1, TransactionId id2);
 extern bool TransactionIdFollowsOrEquals(TransactionId id1, TransactionId id2);
 extern TransactionId TransactionIdLatest(TransactionId mainxid,
-                                        int nxids, const TransactionId *xids);
+                   int nxids, const TransactionId *xids);
 extern XLogRecPtr TransactionIdGetCommitLSN(TransactionId xid);
 
 /* in transam/varsup.c */
index f4fb8c7b33d660a283d32935a801c95edb8b4a95..d57b6436ad44e2e11eb9b8b221f581d9e04f60e6 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/access/tupmacs.h,v 1.33 2007/04/06 04:21:43 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/tupmacs.h,v 1.34 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -92,7 +92,7 @@
 
 /*
  * att_align_datum aligns the given offset as needed for a datum of alignment
- * requirement attalign and typlen attlen.  attdatum is the Datum variable
+ * requirement attalign and typlen attlen. attdatum is the Datum variable
  * we intend to pack into a tuple (it's only accessed if we are dealing with
  * a varlena type).  Note that this assumes the Datum will be stored as-is;
  * callers that are intending to convert non-short varlena datums to short
  * pointer; when accessing a varlena field we have to "peek" to see if we
  * are looking at a pad byte or the first byte of a 1-byte-header datum.
  * (A zero byte must be either a pad byte, or the first byte of a correctly
- * aligned 4-byte length word; in either case we can align safely.  A non-zero
+ * aligned 4-byte length word; in either case we can align safely. A non-zero
  * byte must be either a 1-byte length word, or the first byte of a correctly
  * aligned 4-byte length word; in either case we need not align.)
  *
  * att_align_nominal aligns the given offset as needed for a datum of alignment
  * requirement attalign, ignoring any consideration of packed varlena datums.
  * There are three main use cases for using this macro directly:
- *     * we know that the att in question is not varlena (attlen != -1);
+ * * we know that the att in question is not varlena (attlen != -1);
  *   in this case it is cheaper than the above macros and just as good.
  * * we need to estimate alignment padding cost abstractly, ie without
  *   reference to a real tuple.  We must assume the worst case that
index 27da923cd828e64fadae79ef951e5a62745e591c..9cb86df0eba4c44c025f432ffceedef20009cefd 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 2000-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/include/access/tuptoaster.h,v 1.36 2007/11/05 14:11:17 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/tuptoaster.h,v 1.37 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -70,7 +70,7 @@
  *
  * NB: Changing TOAST_MAX_CHUNK_SIZE requires an initdb.
  */
-#define EXTERN_TUPLES_PER_PAGE 4               /* tweak only this */
+#define EXTERN_TUPLES_PER_PAGE 4       /* tweak only this */
 
 /* Note: sizeof(PageHeaderData) includes the first ItemId on the page */
 #define EXTERN_TUPLE_MAX_SIZE  \
@@ -93,8 +93,8 @@
  * ----------
  */
 extern HeapTuple toast_insert_or_update(Relation rel,
-                                       HeapTuple newtup, HeapTuple oldtup,
-                                       bool use_wal, bool use_fsm);
+                      HeapTuple newtup, HeapTuple oldtup,
+                      bool use_wal, bool use_fsm);
 
 /* ----------
  * toast_delete -
@@ -112,7 +112,7 @@ extern void toast_delete(Relation rel, HeapTuple oldtup);
  *     in compressed format.
  * ----------
  */
-extern struct varlena *heap_tuple_fetch_attr(struct varlena *attr);
+extern struct varlena *heap_tuple_fetch_attr(struct varlena * attr);
 
 /* ----------
  * heap_tuple_untoast_attr() -
@@ -121,7 +121,7 @@ extern struct varlena *heap_tuple_fetch_attr(struct varlena *attr);
  *     it as needed.
  * ----------
  */
-extern struct varlena *heap_tuple_untoast_attr(struct varlena *attr);
+extern struct varlena *heap_tuple_untoast_attr(struct varlena * attr);
 
 /* ----------
  * heap_tuple_untoast_attr_slice() -
@@ -130,7 +130,7 @@ extern struct varlena *heap_tuple_untoast_attr(struct varlena *attr);
  *     (Handles all cases for attribute storage)
  * ----------
  */
-extern struct varlena *heap_tuple_untoast_attr_slice(struct varlena *attr,
+extern struct varlena *heap_tuple_untoast_attr_slice(struct varlena * attr,
                              int32 sliceoffset,
                              int32 slicelength);
 
index a6755619a1b24f6ba3eb448d04e7c8e3e600e83b..8a311dda3bac3c202f84d8b7d414ca756c05779b 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/access/xact.h,v 1.90 2007/09/08 20:31:15 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/xact.h,v 1.91 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -84,7 +84,7 @@ typedef void (*SubXactCallback) (SubXactEvent event, SubTransactionId mySubid,
 
 typedef struct xl_xact_commit
 {
-   TimestampTz xact_time;      /* time of commit */
+   TimestampTz xact_time;      /* time of commit */
    int         nrels;          /* number of RelFileNodes */
    int         nsubxacts;      /* number of subtransaction XIDs */
    /* Array of RelFileNode(s) to drop at commit */
@@ -96,7 +96,7 @@ typedef struct xl_xact_commit
 
 typedef struct xl_xact_abort
 {
-   TimestampTz xact_time;      /* time of abort */
+   TimestampTz xact_time;      /* time of abort */
    int         nrels;          /* number of RelFileNodes */
    int         nsubxacts;      /* number of subtransaction XIDs */
    /* Array of RelFileNode(s) to drop at abort */
index f4727377fdc568e98c2295b9297f53d4d2b97876..de6f53e0533f439d754c746d6e53ddba013b8dac 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/access/xlog.h,v 1.84 2007/09/26 22:36:30 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/xlog.h,v 1.85 2007/11/15 21:14:42 momjian Exp $
  */
 #ifndef XLOG_H
 #define XLOG_H
@@ -146,7 +146,7 @@ extern const char XLOG_sync_method_default[];
 extern bool log_checkpoints;
 
 #define XLogArchivingActive()  (XLogArchiveMode)
-#define XLogArchiveCommandSet()    (XLogArchiveCommand[0] != '\0')
+#define XLogArchiveCommandSet() (XLogArchiveCommand[0] != '\0')
 
 #ifdef WAL_DEBUG
 extern bool XLOG_DEBUG;
@@ -159,30 +159,30 @@ extern bool XLOG_DEBUG;
  */
 
 /* These directly affect the behavior of CreateCheckPoint and subsidiaries */
-#define CHECKPOINT_IS_SHUTDOWN 0x0001      /* Checkpoint is for shutdown */
-#define CHECKPOINT_IMMEDIATE   0x0002      /* Do it without delays */
-#define CHECKPOINT_FORCE       0x0004      /* Force even if no activity */
+#define CHECKPOINT_IS_SHUTDOWN 0x0001  /* Checkpoint is for shutdown */
+#define CHECKPOINT_IMMEDIATE   0x0002  /* Do it without delays */
+#define CHECKPOINT_FORCE       0x0004  /* Force even if no activity */
 /* These are important to RequestCheckpoint */
-#define CHECKPOINT_WAIT            0x0008      /* Wait for completion */
+#define CHECKPOINT_WAIT            0x0008  /* Wait for completion */
 /* These indicate the cause of a checkpoint request */
-#define CHECKPOINT_CAUSE_XLOG  0x0010      /* XLOG consumption */
-#define CHECKPOINT_CAUSE_TIME  0x0020      /* Elapsed time */
+#define CHECKPOINT_CAUSE_XLOG  0x0010  /* XLOG consumption */
+#define CHECKPOINT_CAUSE_TIME  0x0020  /* Elapsed time */
 
 /* Checkpoint statistics */
 typedef struct CheckpointStatsData
 {
-   TimestampTz ckpt_start_t;       /* start of checkpoint */
-   TimestampTz ckpt_write_t;       /* start of flushing buffers */
-   TimestampTz ckpt_sync_t;        /* start of fsyncs */
+   TimestampTz ckpt_start_t;   /* start of checkpoint */
+   TimestampTz ckpt_write_t;   /* start of flushing buffers */
+   TimestampTz ckpt_sync_t;    /* start of fsyncs */
    TimestampTz ckpt_sync_end_t;    /* end of fsyncs */
-   TimestampTz ckpt_end_t;         /* end of checkpoint */
+   TimestampTz ckpt_end_t;     /* end of checkpoint */
 
-   int         ckpt_bufs_written;  /* # of buffers written */
+   int         ckpt_bufs_written;      /* # of buffers written */
 
    int         ckpt_segs_added;    /* # of new xlog segments created */
-   int         ckpt_segs_removed;  /* # of xlog segments deleted */
-   int         ckpt_segs_recycled; /* # of xlog segments recycled */
-} CheckpointStatsData;
+   int         ckpt_segs_removed;      /* # of xlog segments deleted */
+   int         ckpt_segs_recycled;     /* # of xlog segments recycled */
+}  CheckpointStatsData;
 
 extern CheckpointStatsData CheckpointStats;
 
index d75626c8d257f5de764265270c9c689811472496..5f2399ae597c4c7cd4453c2d3c588dfe6927dd44 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/bootstrap/bootstrap.h,v 1.47 2007/07/24 04:54:09 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/bootstrap/bootstrap.h,v 1.48 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -32,7 +32,7 @@ typedef struct hashnode
 extern Relation boot_reldesc;
 extern Form_pg_attribute attrtypes[MAXATTR];
 extern int numattr;
-extern void    AuxiliaryProcessMain(int argc, char *argv[]);
+extern void AuxiliaryProcessMain(int argc, char *argv[]);
 
 extern void index_register(Oid heap, Oid ind, IndexInfo *indexInfo);
 
@@ -71,6 +71,6 @@ typedef enum
    StartupProcess,
    BgWriterProcess,
    WalWriterProcess
-} AuxProcType;
+}  AuxProcType;
 
 #endif   /* BOOTSTRAP_H */
index 6a00f2c4fb959daa2c64ec0424f7d0e0dd7297a5..1b238d8d8a93ce4bb31bee8d77ad7d8d5d256f14 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/dependency.h,v 1.30 2007/08/21 01:11:25 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/dependency.h,v 1.31 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -181,8 +181,8 @@ extern bool object_address_present(const ObjectAddress *object,
                       ObjectAddresses *addrs);
 
 extern void record_object_address_dependencies(const ObjectAddress *depender,
-                                              ObjectAddresses *referenced,
-                                              DependencyType behavior);
+                                  ObjectAddresses *referenced,
+                                  DependencyType behavior);
 
 extern void free_object_addresses(ObjectAddresses *addrs);
 
index 4859778f935eef02a7648c202d48983b6949f250..22c56fe924492731aa04b7542afa28565811d429 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/indexing.h,v 1.100 2007/08/21 01:11:25 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/indexing.h,v 1.101 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -70,7 +70,7 @@ DECLARE_UNIQUE_INDEX(pg_amop_fam_strat_index, 2653, on pg_amop using btree(amopf
 DECLARE_UNIQUE_INDEX(pg_amop_opr_fam_index, 2654, on pg_amop using btree(amopopr oid_ops, amopfamily oid_ops));
 #define AccessMethodOperatorIndexId  2654
 DECLARE_UNIQUE_INDEX(pg_amop_oid_index, 2756, on pg_amop using btree(oid oid_ops));
-#define AccessMethodOperatorOidIndexId  2756
+#define AccessMethodOperatorOidIndexId 2756
 
 DECLARE_UNIQUE_INDEX(pg_amproc_fam_proc_index, 2655, on pg_amproc using btree(amprocfamily oid_ops, amproclefttype oid_ops, amprocrighttype oid_ops, amprocnum int2_ops));
 #define AccessMethodProcedureIndexId  2655
@@ -147,7 +147,7 @@ DECLARE_UNIQUE_INDEX(pg_shdescription_o_c_index, 2397, on pg_shdescription using
 #define SharedDescriptionObjIndexId 2397
 
 DECLARE_UNIQUE_INDEX(pg_enum_oid_index, 3502, on pg_enum using btree(oid oid_ops));
-#define EnumOidIndexId  3502
+#define EnumOidIndexId 3502
 DECLARE_UNIQUE_INDEX(pg_enum_typid_label_index, 3503, on pg_enum using btree(enumtypid oid_ops, enumlabel name_ops));
 #define EnumTypIdLabelIndexId 3503
 
@@ -186,7 +186,7 @@ DECLARE_UNIQUE_INDEX(pg_operator_oprname_l_r_n_index, 2689, on pg_operator using
 DECLARE_UNIQUE_INDEX(pg_opfamily_am_name_nsp_index, 2754, on pg_opfamily using btree(opfmethod oid_ops, opfname name_ops, opfnamespace oid_ops));
 #define OpfamilyAmNameNspIndexId  2754
 DECLARE_UNIQUE_INDEX(pg_opfamily_oid_index, 2755, on pg_opfamily using btree(oid oid_ops));
-#define OpfamilyOidIndexId  2755
+#define OpfamilyOidIndexId 2755
 
 DECLARE_UNIQUE_INDEX(pg_pltemplate_name_index, 1137, on pg_pltemplate using btree(tmplname name_ops));
 #define PLTemplateNameIndexId  1137
@@ -225,27 +225,27 @@ DECLARE_UNIQUE_INDEX(pg_trigger_oid_index, 2702, on pg_trigger using btree(oid o
 #define TriggerOidIndexId  2702
 
 DECLARE_UNIQUE_INDEX(pg_ts_config_cfgname_index, 3608, on pg_ts_config using btree(cfgname name_ops, cfgnamespace oid_ops));
-#define    TSConfigNameNspIndexId  3608
+#define TSConfigNameNspIndexId 3608
 DECLARE_UNIQUE_INDEX(pg_ts_config_oid_index, 3712, on pg_ts_config using btree(oid oid_ops));
-#define    TSConfigOidIndexId  3712
+#define TSConfigOidIndexId 3712
 
 DECLARE_UNIQUE_INDEX(pg_ts_config_map_index, 3609, on pg_ts_config_map using btree(mapcfg oid_ops, maptokentype int4_ops, mapseqno int4_ops));
-#define    TSConfigMapIndexId  3609
+#define TSConfigMapIndexId 3609
 
 DECLARE_UNIQUE_INDEX(pg_ts_dict_dictname_index, 3604, on pg_ts_dict using btree(dictname name_ops, dictnamespace oid_ops));
-#define    TSDictionaryNameNspIndexId  3604
+#define TSDictionaryNameNspIndexId 3604
 DECLARE_UNIQUE_INDEX(pg_ts_dict_oid_index, 3605, on pg_ts_dict using btree(oid oid_ops));
-#define    TSDictionaryOidIndexId  3605
+#define TSDictionaryOidIndexId 3605
 
 DECLARE_UNIQUE_INDEX(pg_ts_parser_prsname_index, 3606, on pg_ts_parser using btree(prsname name_ops, prsnamespace oid_ops));
-#define    TSParserNameNspIndexId  3606
+#define TSParserNameNspIndexId 3606
 DECLARE_UNIQUE_INDEX(pg_ts_parser_oid_index, 3607, on pg_ts_parser using btree(oid oid_ops));
-#define    TSParserOidIndexId  3607
+#define TSParserOidIndexId 3607
 
 DECLARE_UNIQUE_INDEX(pg_ts_template_tmplname_index, 3766, on pg_ts_template using btree(tmplname name_ops, tmplnamespace oid_ops));
-#define    TSTemplateNameNspIndexId    3766
+#define TSTemplateNameNspIndexId   3766
 DECLARE_UNIQUE_INDEX(pg_ts_template_oid_index, 3767, on pg_ts_template using btree(oid oid_ops));
-#define    TSTemplateOidIndexId    3767
+#define TSTemplateOidIndexId   3767
 
 DECLARE_UNIQUE_INDEX(pg_type_oid_index, 2703, on pg_type using btree(oid oid_ops));
 #define TypeOidIndexId 2703
index a486df1c79722e172925448848121dfed72c850a..8da3c9968e84c547bd9f23e92bbe35b11350cdc0 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/namespace.h,v 1.49 2007/08/21 01:11:25 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/namespace.h,v 1.50 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -30,7 +30,7 @@ typedef struct _FuncCandidateList
    Oid         oid;            /* the function or operator's OID */
    int         nargs;          /* number of arg types returned */
    Oid         args[1];        /* arg types --- VARIABLE LENGTH ARRAY */
-} *FuncCandidateList;  /* VARIABLE LENGTH STRUCT */
+}  *FuncCandidateList; /* VARIABLE LENGTH STRUCT */
 
 /*
  * Structure for xxxOverrideSearchPath functions
@@ -40,7 +40,7 @@ typedef struct OverrideSearchPath
    List       *schemas;        /* OIDs of explicitly named schemas */
    bool        addCatalog;     /* implicitly prepend pg_catalog? */
    bool        addTemp;        /* implicitly prepend temp schema? */
-} OverrideSearchPath;
+}  OverrideSearchPath;
 
 
 extern Oid RangeVarGetRelid(const RangeVar *relation, bool failOK);
@@ -99,7 +99,7 @@ extern Oid    GetTempToastNamespace(void);
 extern void ResetTempTableNamespace(void);
 
 extern OverrideSearchPath *GetOverrideSearchPath(MemoryContext context);
-extern void PushOverrideSearchPath(OverrideSearchPath *newpath);
+extern void PushOverrideSearchPath(OverrideSearchPath * newpath);
 extern void PopOverrideSearchPath(void);
 
 extern Oid FindConversionByName(List *conname);
index 1e4d9b5612c6b1d93b7a84c7735524dffd545522..874777607edead078d242c67700906ad7079316f 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_am.h,v 1.51 2007/04/06 22:33:43 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_am.h,v 1.52 2007/11/15 21:14:42 momjian Exp $
  *
  * NOTES
  *     the genbki.sh script reads this file and generates .bki
@@ -40,9 +40,9 @@ CATALOG(pg_am,2601)
 {
    NameData    amname;         /* access method name */
    int2        amstrategies;   /* total number of strategies (operators) by
-                                * which we can traverse/search this AM.
-                                * Zero if AM does not have a fixed set of
-                                * strategy assignments. */
+                                * which we can traverse/search this AM. Zero
+                                * if AM does not have a fixed set of strategy
+                                * assignments. */
    int2        amsupport;      /* total number of support functions that this
                                 * AM uses */
    bool        amcanorder;     /* does AM support ordered scan results? */
index ac0a2ed8689458dafc27c1e1a4de63fc71f118fc..2ca626ba80b781d2a29e580ce681b34db5d70d34 100644 (file)
@@ -29,7 +29,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_amop.h,v 1.82 2007/08/21 01:11:25 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_amop.h,v 1.83 2007/11/15 21:14:42 momjian Exp $
  *
  * NOTES
  *  the genbki.sh script reads this file and generates .bki
@@ -165,7 +165,7 @@ DATA(insert (   1989   26 26 5 f  610   403 ));
 
 DATA(insert (  2789   27 27 1 f 2799   403 ));
 DATA(insert (  2789   27 27 2 f 2801   403 ));
-DATA(insert (  2789   27 27 3 f 387    403 ));
+DATA(insert (  2789   27 27 3 f 387    403 ));
 DATA(insert (  2789   27 27 4 f 2802   403 ));
 DATA(insert (  2789   27 27 5 f 2800   403 ));
 
@@ -184,29 +184,29 @@ DATA(insert ( 1991   30 30 5 f  646   403 ));
  */
 
 /* default operators float4 */
-DATA(insert (  1970   700 700 1 f  622 403 ));
-DATA(insert (  1970   700 700 2 f  624 403 ));
-DATA(insert (  1970   700 700 3 f  620 403 ));
-DATA(insert (  1970   700 700 4 f  625 403 ));
-DATA(insert (  1970   700 700 5 f  623 403 ));
+DATA(insert (  1970   700 700 1 f  622 403 ));
+DATA(insert (  1970   700 700 2 f  624 403 ));
+DATA(insert (  1970   700 700 3 f  620 403 ));
+DATA(insert (  1970   700 700 4 f  625 403 ));
+DATA(insert (  1970   700 700 5 f  623 403 ));
 /* crosstype operators float48 */
-DATA(insert (  1970   700 701 1 f  1122 403 ));
-DATA(insert (  1970   700 701 2 f  1124 403 ));
-DATA(insert (  1970   700 701 3 f  1120 403 ));
-DATA(insert (  1970   700 701 4 f  1125 403 ));
-DATA(insert (  1970   700 701 5 f  1123 403 ));
+DATA(insert (  1970   700 701 1 f  1122 403 ));
+DATA(insert (  1970   700 701 2 f  1124 403 ));
+DATA(insert (  1970   700 701 3 f  1120 403 ));
+DATA(insert (  1970   700 701 4 f  1125 403 ));
+DATA(insert (  1970   700 701 5 f  1123 403 ));
 /* default operators float8 */
-DATA(insert (  1970   701 701 1 f  672 403 ));
-DATA(insert (  1970   701 701 2 f  673 403 ));
-DATA(insert (  1970   701 701 3 f  670 403 ));
-DATA(insert (  1970   701 701 4 f  675 403 ));
-DATA(insert (  1970   701 701 5 f  674 403 ));
+DATA(insert (  1970   701 701 1 f  672 403 ));
+DATA(insert (  1970   701 701 2 f  673 403 ));
+DATA(insert (  1970   701 701 3 f  670 403 ));
+DATA(insert (  1970   701 701 4 f  675 403 ));
+DATA(insert (  1970   701 701 5 f  674 403 ));
 /* crosstype operators float84 */
-DATA(insert (  1970   701 700 1 f  1132 403 ));
-DATA(insert (  1970   701 700 2 f  1134 403 ));
-DATA(insert (  1970   701 700 3 f  1130 403 ));
-DATA(insert (  1970   701 700 4 f  1135 403 ));
-DATA(insert (  1970   701 700 5 f  1133 403 ));
+DATA(insert (  1970   701 700 1 f  1132 403 ));
+DATA(insert (  1970   701 700 2 f  1134 403 ));
+DATA(insert (  1970   701 700 3 f  1130 403 ));
+DATA(insert (  1970   701 700 4 f  1135 403 ));
+DATA(insert (  1970   701 700 5 f  1133 403 ));
 
 /*
  * btree char_ops
@@ -214,7 +214,7 @@ DATA(insert (   1970   701 700 5 f  1133 403 ));
 
 DATA(insert (  429   18 18 1 f  631    403 ));
 DATA(insert (  429   18 18 2 f  632    403 ));
-DATA(insert (  429   18 18 3 f 92  403 ));
+DATA(insert (  429   18 18 3 f 92  403 ));
 DATA(insert (  429   18 18 4 f  634    403 ));
 DATA(insert (  429   18 18 5 f  633    403 ));
 
@@ -361,21 +361,21 @@ DATA(insert ( 1982   1186 1186 5 f 1334   403 ));
  * btree macaddr
  */
 
-DATA(insert (  1984   829 829 1 f 1222 403 ));
-DATA(insert (  1984   829 829 2 f 1223 403 ));
-DATA(insert (  1984   829 829 3 f 1220 403 ));
-DATA(insert (  1984   829 829 4 f 1225 403 ));
-DATA(insert (  1984   829 829 5 f 1224 403 ));
+DATA(insert (  1984   829 829 1 f 1222 403 ));
+DATA(insert (  1984   829 829 2 f 1223 403 ));
+DATA(insert (  1984   829 829 3 f 1220 403 ));
+DATA(insert (  1984   829 829 4 f 1225 403 ));
+DATA(insert (  1984   829 829 5 f 1224 403 ));
 
 /*
  * btree network
  */
 
-DATA(insert (  1974   869 869 1 f 1203 403 ));
-DATA(insert (  1974   869 869 2 f 1204 403 ));
-DATA(insert (  1974   869 869 3 f 1201 403 ));
-DATA(insert (  1974   869 869 4 f 1206 403 ));
-DATA(insert (  1974   869 869 5 f 1205 403 ));
+DATA(insert (  1974   869 869 1 f 1203 403 ));
+DATA(insert (  1974   869 869 2 f 1204 403 ));
+DATA(insert (  1974   869 869 3 f 1201 403 ));
+DATA(insert (  1974   869 869 4 f 1206 403 ));
+DATA(insert (  1974   869 869 5 f 1205 403 ));
 
 /*
  * btree numeric
@@ -391,11 +391,11 @@ DATA(insert ( 1988   1700 1700 5 f 1756   403 ));
  * btree bool
  */
 
-DATA(insert (  424   16 16 1 f 58  403 ));
+DATA(insert (  424   16 16 1 f 58  403 ));
 DATA(insert (  424   16 16 2 f 1694    403 ));
-DATA(insert (  424   16 16 3 f 91  403 ));
+DATA(insert (  424   16 16 3 f 91  403 ));
 DATA(insert (  424   16 16 4 f 1695    403 ));
-DATA(insert (  424   16 16 5 f 59  403 ));
+DATA(insert (  424   16 16 5 f 59  403 ));
 
 /*
  * btree bit
@@ -451,31 +451,31 @@ DATA(insert ( 2098   19 19 5 f 2336   403 ));
  * btree money_ops
  */
 
-DATA(insert (  2099   790 790 1 f  902 403 ));
-DATA(insert (  2099   790 790 2 f  904 403 ));
-DATA(insert (  2099   790 790 3 f  900 403 ));
-DATA(insert (  2099   790 790 4 f  905 403 ));
-DATA(insert (  2099   790 790 5 f  903 403 ));
+DATA(insert (  2099   790 790 1 f  902 403 ));
+DATA(insert (  2099   790 790 2 f  904 403 ));
+DATA(insert (  2099   790 790 3 f  900 403 ));
+DATA(insert (  2099   790 790 4 f  905 403 ));
+DATA(insert (  2099   790 790 5 f  903 403 ));
 
 /*
  * btree reltime_ops
  */
 
-DATA(insert (  2233   703 703 1 f  568 403 ));
-DATA(insert (  2233   703 703 2 f  570 403 ));
-DATA(insert (  2233   703 703 3 f  566 403 ));
-DATA(insert (  2233   703 703 4 f  571 403 ));
-DATA(insert (  2233   703 703 5 f  569 403 ));
+DATA(insert (  2233   703 703 1 f  568 403 ));
+DATA(insert (  2233   703 703 2 f  570 403 ));
+DATA(insert (  2233   703 703 3 f  566 403 ));
+DATA(insert (  2233   703 703 4 f  571 403 ));
+DATA(insert (  2233   703 703 5 f  569 403 ));
 
 /*
  * btree tinterval_ops
  */
 
-DATA(insert (  2234   704 704 1 f  813 403 ));
-DATA(insert (  2234   704 704 2 f  815 403 ));
-DATA(insert (  2234   704 704 3 f  811 403 ));
-DATA(insert (  2234   704 704 4 f  816 403 ));
-DATA(insert (  2234   704 704 5 f  814 403 ));
+DATA(insert (  2234   704 704 1 f  813 403 ));
+DATA(insert (  2234   704 704 2 f  815 403 ));
+DATA(insert (  2234   704 704 3 f  811 403 ));
+DATA(insert (  2234   704 704 4 f  816 403 ));
+DATA(insert (  2234   704 704 5 f  814 403 ));
 
 /*
  * btree array_ops
@@ -487,11 +487,11 @@ DATA(insert ( 397   2277 2277 3 f 1070    403 ));
 DATA(insert (  397   2277 2277 4 f 1075    403 ));
 DATA(insert (  397   2277 2277 5 f 1073    403 ));
 
-/* 
- * btree uuid_ops 
+/*
+ * btree uuid_ops
  */
-DATA(insert (  2968  2950 2950 1 f 2974    403 ));
+
+DATA(insert (  2968  2950 2950 1 f 2974    403 ));
 DATA(insert (  2968  2950 2950 2 f 2976    403 ));
 DATA(insert (  2968  2950 2950 3 f 2972    403 ));
 DATA(insert (  2968  2950 2950 4 f 2977    403 ));
@@ -504,30 +504,30 @@ DATA(insert ( 2968  2950 2950 5 f 2975    403 ));
 /* bpchar_ops */
 DATA(insert (  427   1042 1042 1 f 1054    405 ));
 /* char_ops */
-DATA(insert (  431   18 18 1 f 92  405 ));
+DATA(insert (  431   18 18 1 f 92  405 ));
 /* date_ops */
 DATA(insert (  435   1082 1082 1 f 1093    405 ));
 /* float_ops */
-DATA(insert (  1971   700 700 1 f  620 405 ));
-DATA(insert (  1971   701 701 1 f  670 405 ));
-DATA(insert (  1971   700 701 1 f 1120 405 ));
-DATA(insert (  1971   701 700 1 f 1130 405 ));
+DATA(insert (  1971   700 700 1 f  620 405 ));
+DATA(insert (  1971   701 701 1 f  670 405 ));
+DATA(insert (  1971   700 701 1 f 1120 405 ));
+DATA(insert (  1971   701 700 1 f 1130 405 ));
 /* network_ops */
-DATA(insert (  1975   869 869 1 f 1201 405 ));
+DATA(insert (  1975   869 869 1 f 1201 405 ));
 /* integer_ops */
 DATA(insert (  1977   21 21 1 f    94  405 ));
 DATA(insert (  1977   23 23 1 f    96  405 ));
-DATA(insert (  1977   20 20 1 f    410 405 ));
-DATA(insert (  1977   21 23 1 f    532 405 ));
-DATA(insert (  1977   21 20 1 f   1862 405 ));
-DATA(insert (  1977   23 21 1 f    533 405 ));
+DATA(insert (  1977   20 20 1 f    410 405 ));
+DATA(insert (  1977   21 23 1 f    532 405 ));
+DATA(insert (  1977   21 20 1 f   1862 405 ));
+DATA(insert (  1977   23 21 1 f    533 405 ));
 DATA(insert (  1977   23 20 1 f    15  405 ));
-DATA(insert (  1977   20 21 1 f   1868 405 ));
-DATA(insert (  1977   20 23 1 f    416 405 ));
+DATA(insert (  1977   20 21 1 f   1868 405 ));
+DATA(insert (  1977   20 23 1 f    416 405 ));
 /* interval_ops */
 DATA(insert (  1983   1186 1186 1 f 1330   405 ));
 /* macaddr_ops */
-DATA(insert (  1985   829 829 1 f 1220 405 ));
+DATA(insert (  1985   829 829 1 f 1220 405 ));
 /* name_ops */
 DATA(insert (  1987   19 19 1 f    93  405 ));
 /* oid_ops */
@@ -555,9 +555,9 @@ DATA(insert (   2225   28 28 1 f  352   405 ));
 /* cid_ops */
 DATA(insert (  2226   29 29 1 f  385   405 ));
 /* abstime_ops */
-DATA(insert (  2227   702 702 1 f  560 405 ));
+DATA(insert (  2227   702 702 1 f  560 405 ));
 /* reltime_ops */
-DATA(insert (  2228   703 703 1 f  566 405 ));
+DATA(insert (  2228   703 703 1 f  566 405 ));
 /* text_pattern_ops */
 DATA(insert (  2229   25 25 1 f 2316   405 ));
 /* bpchar_pattern_ops */
@@ -566,7 +566,7 @@ DATA(insert (   2231   1042 1042 1 f 2328   405 ));
 DATA(insert (  2232   19 19 1 f 2334   405 ));
 /* aclitem_ops */
 DATA(insert (  2235   1033 1033 1 f  974   405 ));
-/* uuid_ops */ 
+/* uuid_ops */
 DATA(insert (  2969   2950 2950 1 f 2972 405 ));
 /* numeric_ops */
 DATA(insert (  1998   1700 1700 1 f 1752 405 ));
@@ -576,81 +576,81 @@ DATA(insert ( 1998   1700 1700 1 f 1752 405 ));
  * gist box_ops
  */
 
-DATA(insert (  2593   603 603 1  f 493 783 ));
-DATA(insert (  2593   603 603 2  f 494 783 ));
-DATA(insert (  2593   603 603 3  f 500 783 ));
-DATA(insert (  2593   603 603 4  f 495 783 ));
-DATA(insert (  2593   603 603 5  f 496 783 ));
-DATA(insert (  2593   603 603 6  f 499 783 ));
-DATA(insert (  2593   603 603 7  f 498 783 ));
-DATA(insert (  2593   603 603 8  f 497 783 ));
-DATA(insert (  2593   603 603 9  f 2571    783 ));
-DATA(insert (  2593   603 603 10 f 2570    783 ));
-DATA(insert (  2593   603 603 11 f 2573    783 ));
-DATA(insert (  2593   603 603 12 f 2572    783 ));
-DATA(insert (  2593   603 603 13 f 2863    783 ));
-DATA(insert (  2593   603 603 14 f 2862    783 ));
+DATA(insert (  2593   603 603 1  f 493 783 ));
+DATA(insert (  2593   603 603 2  f 494 783 ));
+DATA(insert (  2593   603 603 3  f 500 783 ));
+DATA(insert (  2593   603 603 4  f 495 783 ));
+DATA(insert (  2593   603 603 5  f 496 783 ));
+DATA(insert (  2593   603 603 6  f 499 783 ));
+DATA(insert (  2593   603 603 7  f 498 783 ));
+DATA(insert (  2593   603 603 8  f 497 783 ));
+DATA(insert (  2593   603 603 9  f 2571    783 ));
+DATA(insert (  2593   603 603 10 f 2570    783 ));
+DATA(insert (  2593   603 603 11 f 2573    783 ));
+DATA(insert (  2593   603 603 12 f 2572    783 ));
+DATA(insert (  2593   603 603 13 f 2863    783 ));
+DATA(insert (  2593   603 603 14 f 2862    783 ));
 
 /*
  * gist poly_ops (supports polygons)
  */
 
-DATA(insert (  2594   604 604 1  t 485 783 ));
-DATA(insert (  2594   604 604 2  t 486 783 ));
-DATA(insert (  2594   604 604 3  t 492 783 ));
-DATA(insert (  2594   604 604 4  t 487 783 ));
-DATA(insert (  2594   604 604 5  t 488 783 ));
-DATA(insert (  2594   604 604 6  t 491 783 ));
-DATA(insert (  2594   604 604 7  t 490 783 ));
-DATA(insert (  2594   604 604 8  t 489 783 ));
-DATA(insert (  2594   604 604 9  t 2575    783 ));
-DATA(insert (  2594   604 604 10 t 2574    783 ));
-DATA(insert (  2594   604 604 11 t 2577    783 ));
-DATA(insert (  2594   604 604 12 t 2576    783 ));
-DATA(insert (  2594   604 604 13 t 2861    783 ));
-DATA(insert (  2594   604 604 14 t 2860    783 ));
+DATA(insert (  2594   604 604 1  t 485 783 ));
+DATA(insert (  2594   604 604 2  t 486 783 ));
+DATA(insert (  2594   604 604 3  t 492 783 ));
+DATA(insert (  2594   604 604 4  t 487 783 ));
+DATA(insert (  2594   604 604 5  t 488 783 ));
+DATA(insert (  2594   604 604 6  t 491 783 ));
+DATA(insert (  2594   604 604 7  t 490 783 ));
+DATA(insert (  2594   604 604 8  t 489 783 ));
+DATA(insert (  2594   604 604 9  t 2575    783 ));
+DATA(insert (  2594   604 604 10 t 2574    783 ));
+DATA(insert (  2594   604 604 11 t 2577    783 ));
+DATA(insert (  2594   604 604 12 t 2576    783 ));
+DATA(insert (  2594   604 604 13 t 2861    783 ));
+DATA(insert (  2594   604 604 14 t 2860    783 ));
 
 /*
  * gist circle_ops
  */
 
-DATA(insert (  2595   718 718 1  t 1506    783 ));
-DATA(insert (  2595   718 718 2  t 1507    783 ));
-DATA(insert (  2595   718 718 3  t 1513    783 ));
-DATA(insert (  2595   718 718 4  t 1508    783 ));
-DATA(insert (  2595   718 718 5  t 1509    783 ));
-DATA(insert (  2595   718 718 6  t 1512    783 ));
-DATA(insert (  2595   718 718 7  t 1511    783 ));
-DATA(insert (  2595   718 718 8  t 1510    783 ));
-DATA(insert (  2595   718 718 9  t 2589    783 ));
-DATA(insert (  2595   718 718 10 t 1515    783 ));
-DATA(insert (  2595   718 718 11 t 1514    783 ));
-DATA(insert (  2595   718 718 12 t 2590    783 ));
-DATA(insert (  2595   718 718 13 t 2865    783 ));
-DATA(insert (  2595   718 718 14 t 2864    783 ));
+DATA(insert (  2595   718 718 1  t 1506    783 ));
+DATA(insert (  2595   718 718 2  t 1507    783 ));
+DATA(insert (  2595   718 718 3  t 1513    783 ));
+DATA(insert (  2595   718 718 4  t 1508    783 ));
+DATA(insert (  2595   718 718 5  t 1509    783 ));
+DATA(insert (  2595   718 718 6  t 1512    783 ));
+DATA(insert (  2595   718 718 7  t 1511    783 ));
+DATA(insert (  2595   718 718 8  t 1510    783 ));
+DATA(insert (  2595   718 718 9  t 2589    783 ));
+DATA(insert (  2595   718 718 10 t 1515    783 ));
+DATA(insert (  2595   718 718 11 t 1514    783 ));
+DATA(insert (  2595   718 718 12 t 2590    783 ));
+DATA(insert (  2595   718 718 13 t 2865    783 ));
+DATA(insert (  2595   718 718 14 t 2864    783 ));
 
 /*
  * gin array_ops (these anyarray operators are used with all the opclasses
  * of the family)
  */
-DATA(insert (  2745   2277 2277 1  f   2750    2742 ));
-DATA(insert (  2745   2277 2277 2  f   2751    2742 ));
-DATA(insert (  2745   2277 2277 3  t   2752    2742 ));
-DATA(insert (  2745   2277 2277 4  t   1070    2742 ));
+DATA(insert (  2745   2277 2277 1  f   2750    2742 ));
+DATA(insert (  2745   2277 2277 2  f   2751    2742 ));
+DATA(insert (  2745   2277 2277 3  t   2752    2742 ));
+DATA(insert (  2745   2277 2277 4  t   1070    2742 ));
 
 /*
  * btree enum_ops
  */
-DATA(insert (   3522   3500 3500 1  f  3518    403 ));
-DATA(insert (   3522   3500 3500 2  f  3520    403 ));
-DATA(insert (   3522   3500 3500 3  f  3516    403 ));
-DATA(insert (   3522   3500 3500 4  f  3521    403 ));
-DATA(insert (   3522   3500 3500 5  f  3519    403 ));
+DATA(insert (  3522   3500 3500 1  f   3518    403 ));
+DATA(insert (  3522   3500 3500 2  f   3520    403 ));
+DATA(insert (  3522   3500 3500 3  f   3516    403 ));
+DATA(insert (  3522   3500 3500 4  f   3521    403 ));
+DATA(insert (  3522   3500 3500 5  f   3519    403 ));
 
 /*
  * hash enum_ops
  */
-DATA(insert (   3523   3500 3500 1  f  3516    405 ));
+DATA(insert (  3523   3500 3500 1  f   3516    405 ));
 
 /*
  * btree tsvector_ops
@@ -664,13 +664,13 @@ DATA(insert ( 3626   3614 3614 5 f   3632 403 ));
 /*
  * GiST tsvector_ops
  */
-DATA(insert (  3655   3614 3615 1  t  3636 783 ));
+DATA(insert (  3655   3614 3615 1  t  3636 783 ));
 
 /*
- * GIN tsvector_ops 
+ * GIN tsvector_ops
  */
-DATA(insert (  3659   3614 3615 1  f  3636 2742 ));
-DATA(insert (  3659   3614 3615 2  t  3660 2742 ));
+DATA(insert (  3659   3614 3615 1  f  3636 2742 ));
+DATA(insert (  3659   3614 3615 2  t  3660 2742 ));
 
 /*
  * btree tsquery_ops
@@ -684,7 +684,7 @@ DATA(insert (   3683   3615 3615 5 f   3679 403 ));
 /*
  * GiST tsquery_ops
  */
-DATA(insert (  3702   3615 3615 7  t  3693 783 ));
-DATA(insert (  3702   3615 3615 8  t  3694 783 ));
+DATA(insert (  3702   3615 3615 7  t  3693 783 ));
+DATA(insert (  3702   3615 3615 8  t  3694 783 ));
 
 #endif   /* PG_AMOP_H */
index d2a6aadb10aaf92cd1aba1ae24a7360961822ca8..ed79e696e3ea4705ae33f188fe50b884f4000d0f 100644 (file)
@@ -22,7 +22,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_amproc.h,v 1.68 2007/09/03 01:18:33 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_amproc.h,v 1.69 2007/11/15 21:14:42 momjian Exp $
  *
  * NOTES
  *   the genbki.sh script reads this file and generates .bki
 
 CATALOG(pg_amproc,2603)
 {
-   Oid         amprocfamily;       /* the index opfamily this entry is for */
-   Oid         amproclefttype;     /* procedure's left input data type */
+   Oid         amprocfamily;   /* the index opfamily this entry is for */
+   Oid         amproclefttype; /* procedure's left input data type */
    Oid         amprocrighttype;    /* procedure's right input data type */
-   int2        amprocnum;          /* support procedure index */
-   regproc     amproc;             /* OID of the proc */
+   int2        amprocnum;      /* support procedure index */
+   regproc     amproc;         /* OID of the proc */
 } FormData_pg_amproc;
 
 /* ----------------
@@ -206,15 +206,15 @@ DATA(insert ( 3702   3615 3615 7 3699 ));
 
 
 /* gin */
-DATA(insert (  2745   1007 1007 1  351 ));
+DATA(insert (  2745   1007 1007 1  351 ));
 DATA(insert (  2745   1007 1007 2 2743 ));
 DATA(insert (  2745   1007 1007 3 2774 ));
 DATA(insert (  2745   1007 1007 4 2744 ));
-DATA(insert (  2745   1009 1009 1  360 ));
+DATA(insert (  2745   1009 1009 1  360 ));
 DATA(insert (  2745   1009 1009 2 2743 ));
 DATA(insert (  2745   1009 1009 3 2774 ));
 DATA(insert (  2745   1009 1009 4 2744 ));
-DATA(insert (  2745   1015 1015 1  360 ));
+DATA(insert (  2745   1015 1015 1  360 ));
 DATA(insert (  2745   1015 1015 2 2743 ));
 DATA(insert (  2745   1015 1015 3 2774 ));
 DATA(insert (  2745   1015 1015 4 2744 ));
index 9e02a85f2114b22804d5e293d1eaa9b7c3ff2254..2494e3c5e4497fcfd0f38b3caff35a879b9c8905 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_autovacuum.h,v 1.6 2007/01/05 22:19:52 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_autovacuum.h,v 1.7 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 #define AutovacuumRelationId   1248
 CATALOG(pg_autovacuum,1248) BKI_WITHOUT_OIDS
 {
-   Oid         vacrelid;           /* OID of table */
-   bool        enabled;            /* enabled for this table? */
+   Oid         vacrelid;       /* OID of table */
+   bool        enabled;        /* enabled for this table? */
    int4        vac_base_thresh;    /* base threshold value */
-   float4      vac_scale_factor;   /* reltuples scaling factor */
+   float4      vac_scale_factor;       /* reltuples scaling factor */
    int4        anl_base_thresh;    /* base threshold value */
-   float4      anl_scale_factor;   /* reltuples scaling factor */
-   int4        vac_cost_delay;     /* vacuum cost-based delay */
-   int4        vac_cost_limit;     /* vacuum cost limit */
-   int4        freeze_min_age;     /* vacuum min freeze age */
-   int4        freeze_max_age;     /* max age before forcing vacuum */
+   float4      anl_scale_factor;       /* reltuples scaling factor */
+   int4        vac_cost_delay; /* vacuum cost-based delay */
+   int4        vac_cost_limit; /* vacuum cost limit */
+   int4        freeze_min_age; /* vacuum min freeze age */
+   int4        freeze_max_age; /* max age before forcing vacuum */
 } FormData_pg_autovacuum;
 
 /* ----------------
index 2fe1cf03835f7331c35624de6d43d7d8a3b06c00..f6750c796ca0f60a280fb8bbcc8ad2c8efa5cac8 100644 (file)
@@ -10,7 +10,7 @@
  *
  * Copyright (c) 2002-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_cast.h,v 1.35 2007/08/21 01:11:25 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_cast.h,v 1.36 2007/11/15 21:14:42 momjian Exp $
  *
  * NOTES
  *   the genbki.sh script reads this file and generates .bki
@@ -291,9 +291,9 @@ DATA(insert ( 1560   23 1684 e ));
  */
 DATA(insert (  650  25  730 a ));
 DATA(insert (  869  25  730 a ));
-DATA(insert (   16   25 2971 a ));
-DATA(insert (  142   25 2922 a ));
-DATA(insert (   25  142    2896 e ));
+DATA(insert (  16   25 2971 a ));
+DATA(insert (  142  25 2922 a ));
+DATA(insert (  25  142 2896 e ));
 
 /*
  * Cross-category casts to and from VARCHAR
@@ -302,9 +302,9 @@ DATA(insert (   25  142 2896 e ));
  */
 DATA(insert (  650 1043  730 a ));
 DATA(insert (  869 1043  730 a ));
-DATA(insert (   16 1043 2971 a ));
+DATA(insert (  16 1043 2971 a ));
 DATA(insert (  142 1043 2922 a ));
-DATA(insert ( 1043  142 2896 e ));
+DATA(insert ( 1043 142 2896 e ));
 
 /*
  * Cross-category casts to and from BPCHAR
@@ -313,9 +313,9 @@ DATA(insert ( 1043  142 2896 e ));
  */
 DATA(insert (  650 1042  730 a ));
 DATA(insert (  869 1042  730 a ));
-DATA(insert (   16 1042 2971 a ));
+DATA(insert (  16 1042 2971 a ));
 DATA(insert (  142 1042 2922 a ));
-DATA(insert ( 1042  142 2896 e ));
+DATA(insert ( 1042 142 2896 e ));
 
 /*
  * Length-coercion functions
index 1795a53c94c52fb1f7c2901873e00a8a2c7479ad..c5aa5aee748b88c19d79c2a0a5e79940499bb58a 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_class.h,v 1.102 2007/09/03 00:39:21 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_class.h,v 1.103 2007/11/15 21:14:42 momjian Exp $
  *
  * NOTES
  *   the genbki.sh script reads this file and generates .bki
@@ -65,7 +65,7 @@ CATALOG(pg_class,1259) BKI_BOOTSTRAP
    bool        relhaspkey;     /* has PRIMARY KEY index */
    bool        relhasrules;    /* has associated rules */
    bool        relhassubclass; /* has derived classes */
-   TransactionId relfrozenxid; /* all Xids < this are frozen in this rel */
+   TransactionId relfrozenxid; /* all Xids < this are frozen in this rel */
 
    /*
     * VARIABLE LENGTH FIELDS start here.  These fields may be NULL, too.
index a8348e716fdef868dc1b50f358a1019c0817d881..b8a5e1e59349edf84b11b9d0d775923be375d072 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_database.h,v 1.44 2007/09/03 02:30:43 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_database.h,v 1.45 2007/11/15 21:14:42 momjian Exp $
  *
  * NOTES
  *   the genbki.sh script reads this file and generates .bki
@@ -42,7 +42,7 @@ CATALOG(pg_database,1262) BKI_SHARED_RELATION
    bool        datallowconn;   /* new connections allowed? */
    int4        datconnlimit;   /* max connections allowed (-1=no limit) */
    Oid         datlastsysoid;  /* highest OID to consider a system OID */
-   TransactionId datfrozenxid; /* all Xids < this are frozen in this DB */
+   TransactionId datfrozenxid; /* all Xids < this are frozen in this DB */
    Oid         dattablespace;  /* default table space for this DB */
    text        datconfig[1];   /* database-specific GUC (VAR LENGTH) */
    aclitem     datacl[1];      /* access permissions (VAR LENGTH) */
index 1196e435a4071e3cac7ef3a0575dbdd75bdd9975..ba0aa624c7b6b98aa017d414973bb076ece50612 100644 (file)
@@ -7,7 +7,7 @@
  *
  * Copyright (c) 2006-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_enum.h,v 1.1 2007/04/02 03:49:40 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_enum.h,v 1.2 2007/11/15 21:14:42 momjian Exp $
  *
  * NOTES
  *   the genbki.sh script reads this file and generates .bki
@@ -35,7 +35,7 @@
  *     typedef struct FormData_pg_enum
  * ----------------
  */
-#define EnumRelationId  3501
+#define EnumRelationId 3501
 
 CATALOG(pg_enum,3501)
 {
index 8674fe027cde221e9c909f9557ee43649e90b901..082e2305bdca7eaf50dc681ff8a6ecab6bad35f2 100644 (file)
@@ -28,7 +28,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_opclass.h,v 1.77 2007/08/21 01:11:25 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_opclass.h,v 1.78 2007/11/15 21:14:42 momjian Exp $
  *
  * NOTES
  *   the genbki.sh script reads this file and generates .bki
@@ -139,8 +139,8 @@ DATA(insert (   403     text_ops            PGNSP PGUID 1994   25 t 0 ));
 DATA(insert (  405     text_ops            PGNSP PGUID 1995   25 t 0 ));
 DATA(insert (  403     time_ops            PGNSP PGUID 1996 1083 t 0 ));
 DATA(insert (  405     time_ops            PGNSP PGUID 1997 1083 t 0 ));
-DATA(insert (  403     timestamptz_ops     PGNSP PGUID  434 1184 t 0 ));
-DATA(insert (  405     timestamptz_ops     PGNSP PGUID 1999 1184 t 0 ));
+DATA(insert (  403     timestamptz_ops     PGNSP PGUID  434 1184 t 0 ));
+DATA(insert (  405     timestamptz_ops     PGNSP PGUID 1999 1184 t 0 ));
 DATA(insert (  403     timetz_ops          PGNSP PGUID 2000 1266 t 0 ));
 DATA(insert (  405     timetz_ops          PGNSP PGUID 2001 1266 t 0 ));
 DATA(insert (  403     varbit_ops          PGNSP PGUID 2002 1562 t 0 ));
index 7300dd2969b517855aacc4b23cd19e7c5592ec18..e9eb8733ad4effbaf5dde5134553aae630c8addd 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_operator.h,v 1.155 2007/08/27 01:39:24 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_operator.h,v 1.156 2007/11/15 21:14:42 momjian Exp $
  *
  * NOTES
  *   the genbki.sh script reads this file and generates .bki
@@ -112,9 +112,9 @@ DATA(insert OID =  96 ( "="        PGNSP PGUID b t t    23  23  16  96 518 int4eq eqsel e
 DATA(insert OID =  97 ( "<"           PGNSP PGUID b f f    23  23  16 521 525 int4lt scalarltsel scalarltjoinsel ));
 DATA(insert OID =  98 ( "="           PGNSP PGUID b t t    25  25  16  98 531 texteq eqsel eqjoinsel ));
 
-DATA(insert OID = 349 (  "||"     PGNSP PGUID b f f 2277 2283 2277 0 0 array_append   -       -     ));
-DATA(insert OID = 374 (  "||"     PGNSP PGUID b f f 2283 2277 2277 0 0 array_prepend  -       -     ));
-DATA(insert OID = 375 (  "||"     PGNSP PGUID b f f 2277 2277 2277 0 0 array_cat      -       -     ));
+DATA(insert OID = 349 (  "||"     PGNSP PGUID b f f 2277 2283 2277 0 0 array_append   -       -     ));
+DATA(insert OID = 374 (  "||"     PGNSP PGUID b f f 2283 2277 2277 0 0 array_prepend  -       -     ));
+DATA(insert OID = 375 (  "||"     PGNSP PGUID b f f 2277 2277 2277 0 0 array_cat      -       -     ));
 
 DATA(insert OID = 352 (  "="      PGNSP PGUID b f t    28  28  16 352   0 xideq eqsel eqjoinsel ));
 DATA(insert OID = 353 (  "="      PGNSP PGUID b f f    28  23  16   0   0 xideqint4 eqsel eqjoinsel ));
@@ -260,8 +260,8 @@ DATA(insert OID = 594 (  "*"       PGNSP PGUID b f f 701 701 701 594     0 float8mul -
 DATA(insert OID = 595 (  "@"      PGNSP PGUID l f f     0 701 701   0   0 float8abs - - ));
 DATA(insert OID = 596 (  "|/"     PGNSP PGUID l f f     0 701 701   0   0 dsqrt - - ));
 DATA(insert OID = 597 (  "||/"    PGNSP PGUID l f f     0 701 701   0   0 dcbrt - - ));
-DATA(insert OID = 1284 (  "|"     PGNSP PGUID l f f     0 704 702   0   0 tintervalstart - - ));
-DATA(insert OID = 606 (  "<#>"    PGNSP PGUID b f f 702 702 704     0   0 mktinterval - - ));
+DATA(insert OID = 1284 (  "|"     PGNSP PGUID l f f     0 704 702   0   0 tintervalstart - - ));
+DATA(insert OID = 606 (  "<#>"    PGNSP PGUID b f f 702 702 704     0   0 mktinterval - - ));
 
 DATA(insert OID = 607 (  "="      PGNSP PGUID b t t    26  26  16 607 608 oideq eqsel eqjoinsel ));
 DATA(insert OID = 608 (  "<>"     PGNSP PGUID b f f    26  26  16 608 607 oidne neqsel neqjoinsel ));
@@ -368,9 +368,9 @@ DATA(insert OID =  793 (  "<"      PGNSP PGUID b f f    602  602     16  794  0 path_n_l
 DATA(insert OID =  794 (  ">"     PGNSP PGUID b f f    602  602     16  793  0 path_n_gt - - ));
 DATA(insert OID =  795 (  "<="    PGNSP PGUID b f f    602  602     16  796  0 path_n_le - - ));
 DATA(insert OID =  796 (  ">="    PGNSP PGUID b f f    602  602     16  795  0 path_n_ge - - ));
-DATA(insert OID =  797 (  "#"     PGNSP PGUID l f f    0    602     23    0  0 path_npoints - - ));
+DATA(insert OID =  797 (  "#"     PGNSP PGUID l f f    0    602     23    0  0 path_npoints - - ));
 DATA(insert OID =  798 (  "?#"    PGNSP PGUID b f f    602  602     16    0  0 path_inter - - ));
-DATA(insert OID =  799 (  "@-@"    PGNSP PGUID l f f   0    602    701    0  0 path_length - - ));
+DATA(insert OID =  799 (  "@-@"    PGNSP PGUID l f f   0    602    701    0  0 path_length - - ));
 DATA(insert OID =  800 (  ">^"    PGNSP PGUID b f f    603  603     16    0  0 box_above_eq positionsel positionjoinsel ));
 DATA(insert OID =  801 (  "<^"    PGNSP PGUID b f f    603  603     16    0  0 box_below_eq positionsel positionjoinsel ));
 DATA(insert OID =  802 (  "?#"    PGNSP PGUID b f f    603  603     16    0  0 box_overlap areasel areajoinsel ));
@@ -498,12 +498,12 @@ DATA(insert OID = 1135 (  ">="        PGNSP PGUID b f f  701  700  16 1124 1132 float84
 
 
 /* LIKE hacks by Keith Parks. */
-DATA(insert OID = 1207 (  "~~"   PGNSP PGUID b f f  19 25  16 0 1208 namelike likesel likejoinsel ));
+DATA(insert OID = 1207 (  "~~"   PGNSP PGUID b f f  19 25  16 0 1208 namelike likesel likejoinsel ));
 #define OID_NAME_LIKE_OP       1207
-DATA(insert OID = 1208 (  "!~~"   PGNSP PGUID b f f  19    25  16 0 1207 namenlike nlikesel nlikejoinsel ));
-DATA(insert OID = 1209 (  "~~"   PGNSP PGUID b f f  25 25  16 0 1210 textlike likesel likejoinsel ));
+DATA(insert OID = 1208 (  "!~~"   PGNSP PGUID b f f  19 25 16 0 1207 namenlike nlikesel nlikejoinsel ));
+DATA(insert OID = 1209 (  "~~"   PGNSP PGUID b f f  25 25  16 0 1210 textlike likesel likejoinsel ));
 #define OID_TEXT_LIKE_OP       1209
-DATA(insert OID = 1210 (  "!~~"   PGNSP PGUID b f f  25    25  16 0 1209 textnlike nlikesel nlikejoinsel ));
+DATA(insert OID = 1210 (  "!~~"   PGNSP PGUID b f f  25 25 16 0 1209 textnlike nlikesel nlikejoinsel ));
 DATA(insert OID = 1211 (  "~~"   PGNSP PGUID b f f  1042 25    16 0 1212 bpcharlike likesel likejoinsel ));
 #define OID_BPCHAR_LIKE_OP     1211
 DATA(insert OID = 1212 (  "!~~"   PGNSP PGUID b f f  1042 25   16 0 1211 bpcharnlike nlikesel nlikejoinsel ));
@@ -526,9 +526,9 @@ DATA(insert OID = 1322 (  "<"      PGNSP PGUID b f f 1184 1184   16 1324 1325 times
 DATA(insert OID = 1323 (  "<="    PGNSP PGUID b f f 1184 1184   16 1325 1324 timestamptz_le scalarltsel scalarltjoinsel ));
 DATA(insert OID = 1324 (  ">"     PGNSP PGUID b f f 1184 1184   16 1322 1323 timestamptz_gt scalargtsel scalargtjoinsel ));
 DATA(insert OID = 1325 (  ">="    PGNSP PGUID b f f 1184 1184   16 1323 1322 timestamptz_ge scalargtsel scalargtjoinsel ));
-DATA(insert OID = 1327 (  "+"     PGNSP PGUID b f f 1184 1186 1184  2554 0 timestamptz_pl_interval - - ));
-DATA(insert OID = 1328 (  "-"     PGNSP PGUID b f f 1184 1184 1186  0  0 timestamptz_mi - - ));
-DATA(insert OID = 1329 (  "-"     PGNSP PGUID b f f 1184 1186 1184  0  0 timestamptz_mi_interval - - ));
+DATA(insert OID = 1327 (  "+"     PGNSP PGUID b f f 1184 1186 1184  2554 0 timestamptz_pl_interval - - ));
+DATA(insert OID = 1328 (  "-"     PGNSP PGUID b f f 1184 1184 1186  0  0 timestamptz_mi - - ));
+DATA(insert OID = 1329 (  "-"     PGNSP PGUID b f f 1184 1186 1184  0  0 timestamptz_mi_interval - - ));
 
 /* interval operators */
 DATA(insert OID = 1330 (  "="     PGNSP PGUID b t t 1186 1186   16 1330 1331 interval_eq eqsel eqjoinsel ));
@@ -542,15 +542,15 @@ DATA(insert OID = 1336 (  "-"    PGNSP PGUID l f f    0 1186 1186    0    0 interval_u
 DATA(insert OID = 1337 (  "+"     PGNSP PGUID b f f 1186 1186 1186 1337    0 interval_pl - - ));
 DATA(insert OID = 1338 (  "-"     PGNSP PGUID b f f 1186 1186 1186    0    0 interval_mi - - ));
 
-DATA(insert OID = 1360 (  "+"     PGNSP PGUID b f f 1082 1083 1114 1363 0 datetime_pl - - ));
-DATA(insert OID = 1361 (  "+"     PGNSP PGUID b f f 1082 1266 1184 1366 0 datetimetz_pl - - ));
-DATA(insert OID = 1363 (  "+"     PGNSP PGUID b f f 1083 1082 1114 1360 0 timedate_pl - - ));
-DATA(insert OID = 1366 (  "+"     PGNSP PGUID b f f 1266 1082 1184 1361 0 timetzdate_pl - - ));
+DATA(insert OID = 1360 (  "+"     PGNSP PGUID b f f 1082 1083 1114 1363 0 datetime_pl - - ));
+DATA(insert OID = 1361 (  "+"     PGNSP PGUID b f f 1082 1266 1184 1366 0 datetimetz_pl - - ));
+DATA(insert OID = 1363 (  "+"     PGNSP PGUID b f f 1083 1082 1114 1360 0 timedate_pl - - ));
+DATA(insert OID = 1366 (  "+"     PGNSP PGUID b f f 1266 1082 1184 1361 0 timetzdate_pl - - ));
 
-DATA(insert OID = 1399 (  "-"     PGNSP PGUID b f f 1083 1083 1186  0  0 time_mi_time - - ));
+DATA(insert OID = 1399 (  "-"     PGNSP PGUID b f f 1083 1083 1186  0  0 time_mi_time - - ));
 
 /* additional geometric operators - thomas 97/04/18 */
-DATA(insert OID = 1420 (  "@@"   PGNSP PGUID l f f  0  718 600   0    0 circle_center - - ));
+DATA(insert OID = 1420 (  "@@"   PGNSP PGUID l f f  0  718 600   0    0 circle_center - - ));
 DATA(insert OID = 1500 (  "="    PGNSP PGUID b f f  718    718 16 1500 1501 circle_eq eqsel eqjoinsel ));
 DATA(insert OID = 1501 (  "<>"   PGNSP PGUID b f f  718    718 16 1501 1500 circle_ne neqsel neqjoinsel ));
 DATA(insert OID = 1502 (  "<"    PGNSP PGUID b f f  718    718 16 1503 1505 circle_lt areasel areajoinsel ));
@@ -575,7 +575,7 @@ DATA(insert OID = 1518 (  "*"     PGNSP PGUID b f f  718    600  718      0    0 circle_
 DATA(insert OID = 1519 (  "/"    PGNSP PGUID b f f  718    600  718      0    0 circle_div_pt - - ));
 
 DATA(insert OID = 1520 (  "<->"   PGNSP PGUID b f f  718   718  701   1520    0 circle_distance - - ));
-DATA(insert OID = 1521 (  "#"    PGNSP PGUID l f f  0      604   23      0    0 poly_npoints - - ));
+DATA(insert OID = 1521 (  "#"    PGNSP PGUID l f f  0      604   23      0    0 poly_npoints - - ));
 DATA(insert OID = 1522 (  "<->"   PGNSP PGUID b f f  600   718  701      0    0 dist_pc - - ));
 DATA(insert OID = 1523 (  "<->"   PGNSP PGUID b f f  718   604  701      0    0 dist_cpoly - - ));
 
@@ -585,8 +585,8 @@ DATA(insert OID = 1524 (  "<->"   PGNSP PGUID b f f  628    603  701      0  0 dist_lb
 DATA(insert OID = 1525 (  "?#"   PGNSP PGUID b f f  601    601 16 1525  0 lseg_intersect - - ));
 DATA(insert OID = 1526 (  "?||"   PGNSP PGUID b f f  601   601 16 1526  0 lseg_parallel - - ));
 DATA(insert OID = 1527 (  "?-|"   PGNSP PGUID b f f  601   601 16 1527  0 lseg_perp - - ));
-DATA(insert OID = 1528 (  "?-"   PGNSP PGUID l f f  0  601 16    0  0 lseg_horizontal - - ));
-DATA(insert OID = 1529 (  "?|"   PGNSP PGUID l f f  0  601 16    0  0 lseg_vertical - - ));
+DATA(insert OID = 1528 (  "?-"   PGNSP PGUID l f f  0  601 16    0  0 lseg_horizontal - - ));
+DATA(insert OID = 1529 (  "?|"   PGNSP PGUID l f f  0  601 16    0  0 lseg_vertical - - ));
 DATA(insert OID = 1535 (  "="    PGNSP PGUID b f f  601    601 16 1535 1586 lseg_eq eqsel eqjoinsel ));
 DATA(insert OID = 1536 (  "#"    PGNSP PGUID b f f  601    601  600 1536  0 lseg_interpt - - ));
 DATA(insert OID = 1537 (  "?#"   PGNSP PGUID b f f  601    628 16    0  0 inter_sl - - ));
@@ -622,8 +622,8 @@ DATA(insert OID = 1591 (  "@-@"   PGNSP PGUID l f f 0  601  701    0  0 lseg_leng
 DATA(insert OID = 1611 (  "?#"   PGNSP PGUID b f f  628    628 16 1611  0 line_intersect - - ));
 DATA(insert OID = 1612 (  "?||"   PGNSP PGUID b f f  628   628 16 1612  0 line_parallel - - ));
 DATA(insert OID = 1613 (  "?-|"   PGNSP PGUID b f f  628   628 16 1613  0 line_perp - - ));
-DATA(insert OID = 1614 (  "?-"   PGNSP PGUID l f f  0  628 16    0  0 line_horizontal - - ));
-DATA(insert OID = 1615 (  "?|"   PGNSP PGUID l f f  0  628 16    0  0 line_vertical - - ));
+DATA(insert OID = 1614 (  "?-"   PGNSP PGUID l f f  0  628 16    0  0 line_horizontal - - ));
+DATA(insert OID = 1615 (  "?|"   PGNSP PGUID l f f  0  628 16    0  0 line_vertical - - ));
 DATA(insert OID = 1616 (  "="    PGNSP PGUID b f f  628    628 16 1616  0 line_eq eqsel eqjoinsel ));
 DATA(insert OID = 1617 (  "#"    PGNSP PGUID b f f  628    628  600 1617  0 line_interpt - - ));
 
@@ -661,12 +661,12 @@ DATA(insert OID = 2640 (  "-"    PGNSP PGUID b f f    869 869  20 0 0 inetmi - - ))
 
 
 /* case-insensitive LIKE hacks */
-DATA(insert OID = 1625 (  "~~*"   PGNSP PGUID b f f  19    25  16 0 1626 nameiclike iclikesel iclikejoinsel ));
+DATA(insert OID = 1625 (  "~~*"   PGNSP PGUID b f f  19 25 16 0 1626 nameiclike iclikesel iclikejoinsel ));
 #define OID_NAME_ICLIKE_OP     1625
-DATA(insert OID = 1626 (  "!~~*"  PGNSP PGUID b f f  19    25  16 0 1625 nameicnlike icnlikesel icnlikejoinsel ));
-DATA(insert OID = 1627 (  "~~*"   PGNSP PGUID b f f  25    25  16 0 1628 texticlike iclikesel iclikejoinsel ));
+DATA(insert OID = 1626 (  "!~~*"  PGNSP PGUID b f f  19 25 16 0 1625 nameicnlike icnlikesel icnlikejoinsel ));
+DATA(insert OID = 1627 (  "~~*"   PGNSP PGUID b f f  25 25 16 0 1628 texticlike iclikesel iclikejoinsel ));
 #define OID_TEXT_ICLIKE_OP     1627
-DATA(insert OID = 1628 (  "!~~*"  PGNSP PGUID b f f  25    25  16 0 1627 texticnlike icnlikesel icnlikejoinsel ));
+DATA(insert OID = 1628 (  "!~~*"  PGNSP PGUID b f f  25 25 16 0 1627 texticnlike icnlikesel icnlikejoinsel ));
 DATA(insert OID = 1629 (  "~~*"   PGNSP PGUID b f f  1042 25   16 0 1630 bpchariclike iclikesel iclikejoinsel ));
 #define OID_BPCHAR_ICLIKE_OP   1629
 DATA(insert OID = 1630 (  "!~~*"  PGNSP PGUID b f f  1042 25   16 0 1629 bpcharicnlike icnlikesel icnlikejoinsel ));
@@ -693,18 +693,18 @@ DATA(insert OID = 1786 (  "<"   PGNSP PGUID b f f 1560 1560 16 1787 1789 bitlt s
 DATA(insert OID = 1787 (  ">"    PGNSP PGUID b f f 1560 1560 16 1786 1788 bitgt scalargtsel scalargtjoinsel ));
 DATA(insert OID = 1788 (  "<="   PGNSP PGUID b f f 1560 1560 16 1789 1787 bitle scalarltsel scalarltjoinsel ));
 DATA(insert OID = 1789 (  ">="   PGNSP PGUID b f f 1560 1560 16 1788 1786 bitge scalargtsel scalargtjoinsel ));
-DATA(insert OID = 1791 (  "&"    PGNSP PGUID b f f 1560 1560 1560 1791  0 bitand - - ));
-DATA(insert OID = 1792 (  "|"    PGNSP PGUID b f f 1560 1560 1560 1792  0 bitor - - ));
-DATA(insert OID = 1793 (  "#"    PGNSP PGUID b f f 1560 1560 1560 1793  0 bitxor - - ));
+DATA(insert OID = 1791 (  "&"    PGNSP PGUID b f f 1560 1560 1560 1791  0 bitand - - ));
+DATA(insert OID = 1792 (  "|"    PGNSP PGUID b f f 1560 1560 1560 1792  0 bitor - - ));
+DATA(insert OID = 1793 (  "#"    PGNSP PGUID b f f 1560 1560 1560 1793  0 bitxor - - ));
 DATA(insert OID = 1794 (  "~"    PGNSP PGUID l f f    0 1560 1560    0  0 bitnot - - ));
 DATA(insert OID = 1795 (  "<<"   PGNSP PGUID b f f 1560   23 1560    0  0 bitshiftleft - - ));
 DATA(insert OID = 1796 (  ">>"   PGNSP PGUID b f f 1560   23 1560    0  0 bitshiftright - - ));
 DATA(insert OID = 1797 (  "||"   PGNSP PGUID b f f 1562 1562 1562    0  0 bitcat - - ));
 
-DATA(insert OID = 1800 (  "+"     PGNSP PGUID b f f 1083 1186 1083  1849 0 time_pl_interval - - ));
-DATA(insert OID = 1801 (  "-"     PGNSP PGUID b f f 1083 1186 1083  0  0 time_mi_interval - - ));
-DATA(insert OID = 1802 (  "+"     PGNSP PGUID b f f 1266 1186 1266  2552 0 timetz_pl_interval - - ));
-DATA(insert OID = 1803 (  "-"     PGNSP PGUID b f f 1266 1186 1266  0  0 timetz_mi_interval - - ));
+DATA(insert OID = 1800 (  "+"     PGNSP PGUID b f f 1083 1186 1083  1849 0 time_pl_interval - - ));
+DATA(insert OID = 1801 (  "-"     PGNSP PGUID b f f 1083 1186 1083  0  0 time_mi_interval - - ));
+DATA(insert OID = 1802 (  "+"     PGNSP PGUID b f f 1266 1186 1266  2552 0 timetz_pl_interval - - ));
+DATA(insert OID = 1803 (  "-"     PGNSP PGUID b f f 1266 1186 1266  0  0 timetz_mi_interval - - ));
 
 DATA(insert OID = 1804 (  "="    PGNSP PGUID b t f 1562 1562 16 1804 1805 varbiteq eqsel eqjoinsel ));
 DATA(insert OID = 1805 (  "<>"   PGNSP PGUID b f f 1562 1562 16 1805 1804 varbitne neqsel neqjoinsel ));
@@ -713,7 +713,7 @@ DATA(insert OID = 1807 (  ">"     PGNSP PGUID b f f 1562 1562 16 1806 1808 varbitg
 DATA(insert OID = 1808 (  "<="   PGNSP PGUID b f f 1562 1562 16 1809 1807 varbitle scalarltsel scalarltjoinsel ));
 DATA(insert OID = 1809 (  ">="   PGNSP PGUID b f f 1562 1562 16 1808 1806 varbitge scalargtsel scalargtjoinsel ));
 
-DATA(insert OID = 1849 (  "+"     PGNSP PGUID b f f 1186 1083 1083  1800 0 interval_pl_time - - ));
+DATA(insert OID = 1849 (  "+"     PGNSP PGUID b f f 1186 1083 1083  1800 0 interval_pl_time - - ));
 
 DATA(insert OID = 1862 ( "="      PGNSP PGUID b t t    21  20  16 1868  1863 int28eq eqsel eqjoinsel ));
 DATA(insert OID = 1863 ( "<>"     PGNSP PGUID b f f    21  20  16 1869  1862 int28ne neqsel neqjoinsel ));
@@ -767,7 +767,7 @@ DATA(insert OID = 1960 ( ">="      PGNSP PGUID b f f 17 17  16 1958 1957 byteage sc
 DATA(insert OID = 2016 (  "~~"    PGNSP PGUID b f f 17 17  16 0    2017 bytealike likesel likejoinsel ));
 #define OID_BYTEA_LIKE_OP      2016
 DATA(insert OID = 2017 (  "!~~"    PGNSP PGUID b f f 17 17 16 0    2016 byteanlike nlikesel nlikejoinsel ));
-DATA(insert OID = 2018 (  "||"    PGNSP PGUID b f f 17 17  17 0    0    byteacat - - ));
+DATA(insert OID = 2018 (  "||"    PGNSP PGUID b f f 17 17  17 0    0    byteacat - - ));
 
 /* timestamp operators */
 DATA(insert OID = 2060 (  "="     PGNSP PGUID b t t 1114 1114   16 2060 2061 timestamp_eq eqsel eqjoinsel ));
@@ -776,9 +776,9 @@ DATA(insert OID = 2062 (  "<"      PGNSP PGUID b f f 1114 1114   16 2064 2065 times
 DATA(insert OID = 2063 (  "<="    PGNSP PGUID b f f 1114 1114   16 2065 2064 timestamp_le scalarltsel scalarltjoinsel ));
 DATA(insert OID = 2064 (  ">"     PGNSP PGUID b f f 1114 1114   16 2062 2063 timestamp_gt scalargtsel scalargtjoinsel ));
 DATA(insert OID = 2065 (  ">="    PGNSP PGUID b f f 1114 1114   16 2063 2062 timestamp_ge scalargtsel scalargtjoinsel ));
-DATA(insert OID = 2066 (  "+"     PGNSP PGUID b f f 1114 1186 1114  2553 0 timestamp_pl_interval - - ));
-DATA(insert OID = 2067 (  "-"     PGNSP PGUID b f f 1114 1114 1186  0  0 timestamp_mi - - ));
-DATA(insert OID = 2068 (  "-"     PGNSP PGUID b f f 1114 1186 1114  0  0 timestamp_mi_interval - - ));
+DATA(insert OID = 2066 (  "+"     PGNSP PGUID b f f 1114 1186 1114  2553 0 timestamp_pl_interval - - ));
+DATA(insert OID = 2067 (  "-"     PGNSP PGUID b f f 1114 1114 1186  0  0 timestamp_mi - - ));
+DATA(insert OID = 2068 (  "-"     PGNSP PGUID b f f 1114 1186 1114  0  0 timestamp_mi_interval - - ));
 
 /* character-by-character (not collation order) comparison operators for character types */
 
@@ -854,7 +854,7 @@ DATA(insert OID = 2551 (  "+"      PGNSP PGUID b f f    1186 1082 1114 1076 0 interva
 DATA(insert OID = 2552 (  "+"     PGNSP PGUID b f f    1186 1266 1266 1802 0 interval_pl_timetz - - ));
 DATA(insert OID = 2553 (  "+"     PGNSP PGUID b f f    1186 1114 1114 2066 0 interval_pl_timestamp - - ));
 DATA(insert OID = 2554 (  "+"     PGNSP PGUID b f f    1186 1184 1184 1327 0 interval_pl_timestamptz - - ));
-DATA(insert OID = 2555 (  "+"     PGNSP PGUID b f f    23   1082 1082 1100 0 integer_pl_date - - ));
+DATA(insert OID = 2555 (  "+"     PGNSP PGUID b f f    23   1082 1082 1100 0 integer_pl_date - - ));
 
 /* new operators for Y-direction rtree opfamilies */
 DATA(insert OID = 2570 (  "<<|"    PGNSP PGUID b f f 603 603   16   0   0 box_below positionsel positionjoinsel ));
@@ -891,14 +891,14 @@ DATA(insert OID = 2869 (  "@"    PGNSP PGUID b f f 600 604     16  2870  0 pt_conta
 DATA(insert OID = 2870 (  "~"     PGNSP PGUID b f f 604 600     16  2869  0 poly_contain_pt - - ));
 DATA(insert OID = 2871 (  "@"     PGNSP PGUID b f f 600 718     16  2872  0 pt_contained_circle - - ));
 DATA(insert OID = 2872 (  "~"     PGNSP PGUID b f f 718 600     16  2871  0 circle_contain_pt - - ));
-DATA(insert OID = 2873 (  "@"     PGNSP PGUID b f f 600 628 16   0  0 on_pl - - ));
-DATA(insert OID = 2874 (  "@"     PGNSP PGUID b f f 600 601 16   0  0 on_ps - - ));
-DATA(insert OID = 2875 (  "@"     PGNSP PGUID b f f 601 628 16   0  0 on_sl - - ));
-DATA(insert OID = 2876 (  "@"     PGNSP PGUID b f f 601 603 16   0  0 on_sb - - ));
+DATA(insert OID = 2873 (  "@"     PGNSP PGUID b f f 600 628 16   0  0 on_pl - - ));
+DATA(insert OID = 2874 (  "@"     PGNSP PGUID b f f 600 601 16   0  0 on_ps - - ));
+DATA(insert OID = 2875 (  "@"     PGNSP PGUID b f f 601 628 16   0  0 on_sl - - ));
+DATA(insert OID = 2876 (  "@"     PGNSP PGUID b f f 601 603 16   0  0 on_sb - - ));
 DATA(insert OID = 2877 (  "~"     PGNSP PGUID b f f 1034 1033   16 0 0 aclcontains - - ));
 
-/* uuid operators */ 
-DATA(insert OID = 2972 (  "="      PGNSP PGUID b t t 2950 2950 16 2972 2973 uuid_eq eqsel eqjoinsel ));
+/* uuid operators */
+DATA(insert OID = 2972 (  "="     PGNSP PGUID b t t 2950 2950 16 2972 2973 uuid_eq eqsel eqjoinsel ));
 DATA(insert OID = 2973 (  "<>"    PGNSP PGUID b f f 2950 2950 16 2973 2972 uuid_ne neqsel neqjoinsel ));
 DATA(insert OID = 2974 (  "<"     PGNSP PGUID b f f 2950 2950 16 2975 2977 uuid_lt scalarltsel scalarltjoinsel ));
 DATA(insert OID = 2975 (  ">"     PGNSP PGUID b f f 2950 2950 16 2974 2976 uuid_gt scalargtsel scalargtjoinsel ));
@@ -916,30 +916,30 @@ DATA(insert OID = 3521 (  ">="       PGNSP PGUID b f f 3500 3500 16 3520 3518 enum_
 /*
  * tsearch operations
  */
-DATA(insert OID = 3627 (  "<"      PGNSP PGUID b f f 3614    3614    16 3632 3631    tsvector_lt scalarltsel scalarltjoinsel ));
-DATA(insert OID = 3628 (  "<="     PGNSP PGUID b f f 3614    3614    16 3631 3632    tsvector_le scalarltsel scalarltjoinsel ));
-DATA(insert OID = 3629 (  "="      PGNSP PGUID b t f 3614    3614    16 3629 3630    tsvector_eq eqsel eqjoinsel ));
-DATA(insert OID = 3630 (  "<>"     PGNSP PGUID b f f 3614    3614    16 3630 3629    tsvector_ne neqsel neqjoinsel ));
-DATA(insert OID = 3631 (  ">="     PGNSP PGUID b f f 3614    3614    16 3628 3627    tsvector_ge scalargtsel scalargtjoinsel ));
-DATA(insert OID = 3632 (  ">"      PGNSP PGUID b f f 3614    3614    16 3627 3628    tsvector_gt scalargtsel scalargtjoinsel ));
-DATA(insert OID = 3633 (  "||"     PGNSP PGUID b f f 3614    3614    3614  0    0    tsvector_concat   -    -     ));
-DATA(insert OID = 3636 (  "@@"     PGNSP PGUID b f f 3614    3615    16 3637    0    ts_match_vq   contsel     contjoinsel   ));
-DATA(insert OID = 3637 (  "@@"     PGNSP PGUID b f f 3615    3614    16 3636    0    ts_match_qv   contsel     contjoinsel   ));
-DATA(insert OID = 3660 (  "@@@"    PGNSP PGUID b f f 3614    3615    16 3661    0    ts_match_vq   contsel     contjoinsel   ));
-DATA(insert OID = 3661 (  "@@@"    PGNSP PGUID b f f 3615    3614    16 3660    0    ts_match_qv   contsel     contjoinsel   ));
-DATA(insert OID = 3674 (  "<"      PGNSP PGUID b f f 3615    3615    16 3679 3678    tsquery_lt scalarltsel scalarltjoinsel ));
-DATA(insert OID = 3675 (  "<="     PGNSP PGUID b f f 3615    3615    16 3678 3679    tsquery_le scalarltsel scalarltjoinsel ));
-DATA(insert OID = 3676 (  "="      PGNSP PGUID b t f 3615    3615    16 3676 3677    tsquery_eq eqsel eqjoinsel ));
-DATA(insert OID = 3677 (  "<>"     PGNSP PGUID b f f 3615    3615    16 3677 3676    tsquery_ne neqsel neqjoinsel ));
-DATA(insert OID = 3678 (  ">="     PGNSP PGUID b f f 3615    3615    16 3675 3674    tsquery_ge scalargtsel scalargtjoinsel ));
-DATA(insert OID = 3679 (  ">"      PGNSP PGUID b f f 3615    3615    16 3674 3675    tsquery_gt scalargtsel scalargtjoinsel ));
-DATA(insert OID = 3680 (  "&&"     PGNSP PGUID b f f 3615    3615    3615  0    0    tsquery_and   -    -     ));
-DATA(insert OID = 3681 (  "||"     PGNSP PGUID b f f 3615    3615    3615  0    0    tsquery_or   -     -     ));
-DATA(insert OID = 3682 (  "!!"     PGNSP PGUID l f f 0       3615    3615  0    0    tsquery_not   -    -     ));
-DATA(insert OID = 3693 (  "@>"     PGNSP PGUID b f f 3615    3615    16 3694    0    tsq_mcontains  contsel    contjoinsel   ));
-DATA(insert OID = 3694 (  "<@"     PGNSP PGUID b f f 3615    3615    16 3693    0    tsq_mcontained contsel    contjoinsel   ));
-DATA(insert OID = 3762 (  "@@"     PGNSP PGUID b f f 25      25      16    0    0    ts_match_tt    contsel    contjoinsel   ));
-DATA(insert OID = 3763 (  "@@"     PGNSP PGUID b f f 25      3615    16    0    0    ts_match_tq    contsel    contjoinsel   ));
+DATA(insert OID = 3627 (  "<"     PGNSP PGUID b f f 3614    3614    16 3632 3631    tsvector_lt scalarltsel scalarltjoinsel ));
+DATA(insert OID = 3628 (  "<="    PGNSP PGUID b f f 3614    3614    16 3631 3632    tsvector_le scalarltsel scalarltjoinsel ));
+DATA(insert OID = 3629 (  "="     PGNSP PGUID b t f 3614    3614    16 3629 3630    tsvector_eq eqsel eqjoinsel ));
+DATA(insert OID = 3630 (  "<>"    PGNSP PGUID b f f 3614    3614    16 3630 3629    tsvector_ne neqsel neqjoinsel ));
+DATA(insert OID = 3631 (  ">="    PGNSP PGUID b f f 3614    3614    16 3628 3627    tsvector_ge scalargtsel scalargtjoinsel ));
+DATA(insert OID = 3632 (  ">"     PGNSP PGUID b f f 3614    3614    16 3627 3628    tsvector_gt scalargtsel scalargtjoinsel ));
+DATA(insert OID = 3633 (  "||"    PGNSP PGUID b f f 3614    3614    3614  0    0    tsvector_concat   -    -     ));
+DATA(insert OID = 3636 (  "@@"    PGNSP PGUID b f f 3614    3615    16 3637    0    ts_match_vq   contsel     contjoinsel   ));
+DATA(insert OID = 3637 (  "@@"    PGNSP PGUID b f f 3615    3614    16 3636    0    ts_match_qv   contsel     contjoinsel   ));
+DATA(insert OID = 3660 (  "@@@"    PGNSP PGUID b f f 3614   3615    16 3661    0    ts_match_vq   contsel     contjoinsel   ));
+DATA(insert OID = 3661 (  "@@@"    PGNSP PGUID b f f 3615   3614    16 3660    0    ts_match_qv   contsel     contjoinsel   ));
+DATA(insert OID = 3674 (  "<"     PGNSP PGUID b f f 3615    3615    16 3679 3678    tsquery_lt scalarltsel scalarltjoinsel ));
+DATA(insert OID = 3675 (  "<="    PGNSP PGUID b f f 3615    3615    16 3678 3679    tsquery_le scalarltsel scalarltjoinsel ));
+DATA(insert OID = 3676 (  "="     PGNSP PGUID b t f 3615    3615    16 3676 3677    tsquery_eq eqsel eqjoinsel ));
+DATA(insert OID = 3677 (  "<>"    PGNSP PGUID b f f 3615    3615    16 3677 3676    tsquery_ne neqsel neqjoinsel ));
+DATA(insert OID = 3678 (  ">="    PGNSP PGUID b f f 3615    3615    16 3675 3674    tsquery_ge scalargtsel scalargtjoinsel ));
+DATA(insert OID = 3679 (  ">"     PGNSP PGUID b f f 3615    3615    16 3674 3675    tsquery_gt scalargtsel scalargtjoinsel ));
+DATA(insert OID = 3680 (  "&&"    PGNSP PGUID b f f 3615    3615    3615  0    0    tsquery_and   -    -     ));
+DATA(insert OID = 3681 (  "||"    PGNSP PGUID b f f 3615    3615    3615  0    0    tsquery_or   -     -     ));
+DATA(insert OID = 3682 (  "!!"    PGNSP PGUID l f f 0       3615    3615  0    0    tsquery_not   -    -     ));
+DATA(insert OID = 3693 (  "@>"    PGNSP PGUID b f f 3615    3615    16 3694    0    tsq_mcontains  contsel    contjoinsel   ));
+DATA(insert OID = 3694 (  "<@"    PGNSP PGUID b f f 3615    3615    16 3693    0    tsq_mcontained contsel    contjoinsel   ));
+DATA(insert OID = 3762 (  "@@"    PGNSP PGUID b f f 25      25      16    0    0    ts_match_tt    contsel    contjoinsel   ));
+DATA(insert OID = 3763 (  "@@"    PGNSP PGUID b f f 25      3615    16    0    0    ts_match_tq    contsel    contjoinsel   ));
 
 
 /*
index 6f536b42c595c2cb30f21a860b3b92440541e295..68c49e8bb33a303eef1da71f575961001c9832fe 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.477 2007/10/24 02:24:47 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.478 2007/11/15 21:14:43 momjian Exp $
  *
  * NOTES
  *   The script catalog/genbki.sh reads this file and generates .bki
@@ -1387,9 +1387,9 @@ DATA(insert OID = 1143 (  time_in        PGNSP PGUID 12 1 0 f f t f s 3 1083 "2275
 DESCR("I/O");
 DATA(insert OID = 1144 (  time_out        PGNSP PGUID 12 1 0 f f t f i 1 2275 "1083" _null_ _null_ _null_  time_out - _null_ _null_ ));
 DESCR("I/O");
-DATA(insert OID = 2909 (  timetypmodin     PGNSP PGUID 12 1 0 f f t f i 1 23 "1263" _null_ _null_ _null_   timetypmodin - _null_ _null_ ));
+DATA(insert OID = 2909 (  timetypmodin     PGNSP PGUID 12 1 0 f f t f i 1 23 "1263" _null_ _null_ _null_   timetypmodin - _null_ _null_ ));
 DESCR("I/O typmod");
-DATA(insert OID = 2910 (  timetypmodout    PGNSP PGUID 12 1 0 f f t f i 1 2275 "23" _null_ _null_ _null_   timetypmodout - _null_ _null_ ));
+DATA(insert OID = 2910 (  timetypmodout        PGNSP PGUID 12 1 0 f f t f i 1 2275 "23" _null_ _null_ _null_   timetypmodout - _null_ _null_ ));
 DESCR("I/O typmod");
 DATA(insert OID = 1145 (  time_eq         PGNSP PGUID 12 1 0 f f t f i 2 16 "1083 1083" _null_ _null_ _null_ time_eq - _null_ _null_ ));
 DESCR("equal");
@@ -1407,9 +1407,9 @@ DATA(insert OID = 1150 (  timestamptz_in   PGNSP PGUID 12 1 0 f f t f s 3 1184 "
 DESCR("I/O");
 DATA(insert OID = 1151 (  timestamptz_out  PGNSP PGUID 12 1 0 f f t f s 1 2275 "1184" _null_ _null_ _null_ timestamptz_out - _null_ _null_ ));
 DESCR("I/O");
-DATA(insert OID = 2907 (  timestamptztypmodin      PGNSP PGUID 12 1 0 f f t f i 1 23 "1263" _null_ _null_ _null_   timestamptztypmodin - _null_ _null_ ));
+DATA(insert OID = 2907 (  timestamptztypmodin      PGNSP PGUID 12 1 0 f f t f i 1 23 "1263" _null_ _null_ _null_   timestamptztypmodin - _null_ _null_ ));
 DESCR("I/O typmod");
-DATA(insert OID = 2908 (  timestamptztypmodout     PGNSP PGUID 12 1 0 f f t f i 1 2275 "23" _null_ _null_ _null_   timestamptztypmodout - _null_ _null_ ));
+DATA(insert OID = 2908 (  timestamptztypmodout     PGNSP PGUID 12 1 0 f f t f i 1 2275 "23" _null_ _null_ _null_   timestamptztypmodout - _null_ _null_ ));
 DESCR("I/O typmod");
 DATA(insert OID = 1152 (  timestamptz_eq   PGNSP PGUID 12 1 0 f f t f i 2 16 "1184 1184" _null_ _null_ _null_ timestamp_eq - _null_ _null_ ));
 DESCR("equal");
@@ -1432,9 +1432,9 @@ DATA(insert OID = 1160 (  interval_in    PGNSP PGUID 12 1 0 f f t f s 3 1186 "22
 DESCR("I/O");
 DATA(insert OID = 1161 (  interval_out    PGNSP PGUID 12 1 0 f f t f i 1 2275 "1186" _null_ _null_ _null_  interval_out - _null_ _null_ ));
 DESCR("I/O");
-DATA(insert OID = 2903 (  intervaltypmodin     PGNSP PGUID 12 1 0 f f t f i 1 23 "1263" _null_ _null_ _null_   intervaltypmodin - _null_ _null_ ));
+DATA(insert OID = 2903 (  intervaltypmodin     PGNSP PGUID 12 1 0 f f t f i 1 23 "1263" _null_ _null_ _null_   intervaltypmodin - _null_ _null_ ));
 DESCR("I/O typmod");
-DATA(insert OID = 2904 (  intervaltypmodout    PGNSP PGUID 12 1 0 f f t f i 1 2275 "23" _null_ _null_ _null_   intervaltypmodout - _null_ _null_ ));
+DATA(insert OID = 2904 (  intervaltypmodout        PGNSP PGUID 12 1 0 f f t f i 1 2275 "23" _null_ _null_ _null_   intervaltypmodout - _null_ _null_ ));
 DESCR("I/O typmod");
 DATA(insert OID = 1162 (  interval_eq     PGNSP PGUID 12 1 0 f f t f i 2 16 "1186 1186" _null_ _null_ _null_ interval_eq - _null_ _null_ ));
 DESCR("equal");
@@ -1642,9 +1642,9 @@ DATA(insert OID = 1312 (  timestamp_in         PGNSP PGUID 12 1 0 f f t f s 3 1114 "22
 DESCR("I/O");
 DATA(insert OID = 1313 (  timestamp_out         PGNSP PGUID 12 1 0 f f t f s 1 2275 "1114" _null_ _null_ _null_ timestamp_out - _null_ _null_ ));
 DESCR("I/O");
-DATA(insert OID = 2905 (  timestamptypmodin    PGNSP PGUID 12 1 0 f f t f i 1 23 "1263" _null_ _null_ _null_   timestamptypmodin - _null_ _null_ ));
+DATA(insert OID = 2905 (  timestamptypmodin        PGNSP PGUID 12 1 0 f f t f i 1 23 "1263" _null_ _null_ _null_   timestamptypmodin - _null_ _null_ ));
 DESCR("I/O typmod");
-DATA(insert OID = 2906 (  timestamptypmodout   PGNSP PGUID 12 1 0 f f t f i 1 2275 "23" _null_ _null_ _null_   timestamptypmodout - _null_ _null_ ));
+DATA(insert OID = 2906 (  timestamptypmodout   PGNSP PGUID 12 1 0 f f t f i 1 2275 "23" _null_ _null_ _null_   timestamptypmodout - _null_ _null_ ));
 DESCR("I/O typmod");
 DATA(insert OID = 1314 (  timestamptz_cmp   PGNSP PGUID 12 1 0 f f t f i 2 23 "1184 1184" _null_ _null_ _null_ timestamp_cmp - _null_ _null_ ));
 DESCR("less-equal-greater");
@@ -1699,9 +1699,9 @@ DATA(insert OID = 1350 (  timetz_in          PGNSP PGUID 12 1 0 f f t f s 3 1266 "227
 DESCR("I/O");
 DATA(insert OID = 1351 (  timetz_out      PGNSP PGUID 12 1 0 f f t f i 1 2275 "1266" _null_ _null_ _null_  timetz_out - _null_ _null_ ));
 DESCR("I/O");
-DATA(insert OID = 2911 (  timetztypmodin       PGNSP PGUID 12 1 0 f f t f i 1 23 "1263" _null_ _null_ _null_   timetztypmodin - _null_ _null_ ));
+DATA(insert OID = 2911 (  timetztypmodin   PGNSP PGUID 12 1 0 f f t f i 1 23 "1263" _null_ _null_ _null_   timetztypmodin - _null_ _null_ ));
 DESCR("I/O typmod");
-DATA(insert OID = 2912 (  timetztypmodout      PGNSP PGUID 12 1 0 f f t f i 1 2275 "23" _null_ _null_ _null_   timetztypmodout - _null_ _null_ ));
+DATA(insert OID = 2912 (  timetztypmodout  PGNSP PGUID 12 1 0 f f t f i 1 2275 "23" _null_ _null_ _null_   timetztypmodout - _null_ _null_ ));
 DESCR("I/O typmod");
 DATA(insert OID = 1352 (  timetz_eq           PGNSP PGUID 12 1 0 f f t f i 2 16 "1266 1266" _null_ _null_ _null_ timetz_eq - _null_ _null_ ));
 DESCR("equal");
@@ -2031,9 +2031,9 @@ DATA(insert OID = 1564 (  bit_in          PGNSP PGUID 12 1 0 f f t f i 3 1560 "2275 26
 DESCR("I/O");
 DATA(insert OID = 1565 (  bit_out          PGNSP PGUID 12 1 0 f f t f i 1 2275 "1560" _null_ _null_ _null_ bit_out - _null_ _null_ ));
 DESCR("I/O");
-DATA(insert OID = 2919 (  bittypmodin      PGNSP PGUID 12 1 0 f f t f i 1 23 "1263" _null_ _null_ _null_   bittypmodin - _null_ _null_ ));
+DATA(insert OID = 2919 (  bittypmodin      PGNSP PGUID 12 1 0 f f t f i 1 23 "1263" _null_ _null_ _null_   bittypmodin - _null_ _null_ ));
 DESCR("I/O typmod");
-DATA(insert OID = 2920 (  bittypmodout     PGNSP PGUID 12 1 0 f f t f i 1 2275 "23" _null_ _null_ _null_   bittypmodout - _null_ _null_ ));
+DATA(insert OID = 2920 (  bittypmodout     PGNSP PGUID 12 1 0 f f t f i 1 2275 "23" _null_ _null_ _null_   bittypmodout - _null_ _null_ ));
 DESCR("I/O typmod");
 
 DATA(insert OID = 1569 (  like             PGNSP PGUID 12 1 0 f f t f i 2 16 "25 25" _null_ _null_ _null_  textlike - _null_ _null_ ));
@@ -2060,9 +2060,9 @@ DATA(insert OID = 1579 (  varbit_in           PGNSP PGUID 12 1 0 f f t f i 3 1562 "2275
 DESCR("I/O");
 DATA(insert OID = 1580 (  varbit_out       PGNSP PGUID 12 1 0 f f t f i 1 2275 "1562" _null_ _null_ _null_ varbit_out - _null_ _null_ ));
 DESCR("I/O");
-DATA(insert OID = 2902 (  varbittypmodin       PGNSP PGUID 12 1 0 f f t f i 1 23 "1263" _null_ _null_ _null_   varbittypmodin - _null_ _null_ ));
+DATA(insert OID = 2902 (  varbittypmodin   PGNSP PGUID 12 1 0 f f t f i 1 23 "1263" _null_ _null_ _null_   varbittypmodin - _null_ _null_ ));
 DESCR("I/O typmod");
-DATA(insert OID = 2921 (  varbittypmodout      PGNSP PGUID 12 1 0 f f t f i 1 2275 "23" _null_ _null_ _null_   varbittypmodout - _null_ _null_ ));
+DATA(insert OID = 2921 (  varbittypmodout  PGNSP PGUID 12 1 0 f f t f i 1 2275 "23" _null_ _null_ _null_   varbittypmodout - _null_ _null_ ));
 DESCR("I/O typmod");
 
 DATA(insert OID = 1581 (  biteq                PGNSP PGUID 12 1 0 f f t f i 2 16 "1560 1560" _null_ _null_ _null_  biteq - _null_ _null_ ));
@@ -2203,9 +2203,9 @@ DATA(insert OID =  2284 ( regexp_replace     PGNSP PGUID 12 1 0 f f t f i 3 25 "2
 DESCR("replace text using regexp");
 DATA(insert OID =  2285 ( regexp_replace      PGNSP PGUID 12 1 0 f f t f i 4 25 "25 25 25 25" _null_ _null_ _null_ textregexreplace - _null_ _null_ ));
 DESCR("replace text using regexp");
-DATA(insert OID =  2763 ( regexp_matches   PGNSP PGUID 12 1 1 f f t t i 2 1009 "25 25" _null_ _null_ _null_    regexp_matches_no_flags - _null_ _null_ ));
+DATA(insert OID =  2763 ( regexp_matches   PGNSP PGUID 12 1 1 f f t t i 2 1009 "25 25" _null_ _null_ _null_ regexp_matches_no_flags - _null_ _null_ ));
 DESCR("return all match groups for regexp");
-DATA(insert OID =  2764 ( regexp_matches   PGNSP PGUID 12 1 10 f f t t i 3 1009 "25 25 25" _null_ _null_ _null_    regexp_matches - _null_ _null_ ));
+DATA(insert OID =  2764 ( regexp_matches   PGNSP PGUID 12 1 10 f f t t i 3 1009 "25 25 25" _null_ _null_ _null_ regexp_matches - _null_ _null_ ));
 DESCR("return all match groups for regexp");
 DATA(insert OID =  2088 ( split_part   PGNSP PGUID 12 1 0 f f t f i 3 25 "25 25 23" _null_ _null_ _null_   split_text - _null_ _null_ ));
 DESCR("split string by field_sep and return field_num");
@@ -2215,7 +2215,7 @@ DATA(insert OID =  2766 ( regexp_split_to_table PGNSP PGUID 12 1 1000 f f t t i
 DESCR("split string by pattern");
 DATA(insert OID =  2767 ( regexp_split_to_array PGNSP PGUID 12 1 0 f f t f i 2 1009 "25 25" _null_ _null_ _null_   regexp_split_to_array_no_flags - _null_ _null_ ));
 DESCR("split string by pattern");
-DATA(insert OID =  2768 ( regexp_split_to_array PGNSP PGUID 12 1 0 f f t f i 3 1009 "25 25 25" _null_ _null_ _null_    regexp_split_to_array - _null_ _null_ ));
+DATA(insert OID =  2768 ( regexp_split_to_array PGNSP PGUID 12 1 0 f f t f i 3 1009 "25 25 25" _null_ _null_ _null_ regexp_split_to_array - _null_ _null_ ));
 DESCR("split string by pattern");
 DATA(insert OID =  2089 ( to_hex      PGNSP PGUID 12 1 0 f f t f i 1 25 "23" _null_ _null_ _null_  to_hex32 - _null_ _null_ ));
 DESCR("convert int4 number to hex");
@@ -2488,9 +2488,9 @@ DATA(insert OID = 1701 ( numeric_in               PGNSP PGUID 12 1 0 f f t f i 3 1700 "2275
 DESCR("I/O");
 DATA(insert OID = 1702 ( numeric_out           PGNSP PGUID 12 1 0 f f t f i 1 2275 "1700" _null_ _null_ _null_ numeric_out - _null_ _null_ ));
 DESCR("I/O");
-DATA(insert OID = 2917 (  numerictypmodin      PGNSP PGUID 12 1 0 f f t f i 1 23 "1263" _null_ _null_ _null_   numerictypmodin - _null_ _null_ ));
+DATA(insert OID = 2917 (  numerictypmodin      PGNSP PGUID 12 1 0 f f t f i 1 23 "1263" _null_ _null_ _null_   numerictypmodin - _null_ _null_ ));
 DESCR("I/O typmod");
-DATA(insert OID = 2918 (  numerictypmodout     PGNSP PGUID 12 1 0 f f t f i 1 2275 "23" _null_ _null_ _null_   numerictypmodout - _null_ _null_ ));
+DATA(insert OID = 2918 (  numerictypmodout     PGNSP PGUID 12 1 0 f f t f i 1 2275 "23" _null_ _null_ _null_   numerictypmodout - _null_ _null_ ));
 DESCR("I/O typmod");
 DATA(insert OID = 1703 ( numeric               PGNSP PGUID 12 1 0 f f t f i 2 1700 "1700 23" _null_ _null_ _null_  numeric - _null_ _null_ ));
 DESCR("adjust numeric to typmod precision/scale");
@@ -3136,7 +3136,7 @@ DATA(insert OID = 3756 (  pg_ts_parser_is_visible PGNSP PGUID 12 1 0 f f t f s 1
 DESCR("is text search parser visible in search path?");
 DATA(insert OID = 3757 (  pg_ts_dict_is_visible        PGNSP PGUID 12 1 0 f f t f s 1 16 "26" _null_ _null_ _null_ pg_ts_dict_is_visible - _null_ _null_ ));
 DESCR("is text search dictionary visible in search path?");
-DATA(insert OID = 3768 (  pg_ts_template_is_visible    PGNSP PGUID 12 1 0 f f t f s 1 16 "26" _null_ _null_ _null_ pg_ts_template_is_visible - _null_ _null_ ));
+DATA(insert OID = 3768 (  pg_ts_template_is_visible PGNSP PGUID 12 1 0 f f t f s 1 16 "26" _null_ _null_ _null_ pg_ts_template_is_visible - _null_ _null_ ));
 DESCR("is text search template visible in search path?");
 DATA(insert OID = 3758 (  pg_ts_config_is_visible  PGNSP PGUID 12 1 0 f f t f s 1 16 "26" _null_ _null_ _null_ pg_ts_config_is_visible - _null_ _null_ ));
 DESCR("is text search configuration visible in search path?");
@@ -3177,7 +3177,7 @@ DESCR("list all files in a directory");
 DATA(insert OID = 2626 ( pg_sleep          PGNSP PGUID 12 1 0 f f t f v 1 2278 "701" _null_ _null_ _null_ pg_sleep - _null_ _null_ ));
 DESCR("sleep for the specified time in seconds");
 
-DATA(insert OID = 2971 (  text             PGNSP PGUID 12 1 0 f f t f i 1 25 "16" _null_ _null_ _null_ booltext - _null_ _null_ ));
+DATA(insert OID = 2971 (  text             PGNSP PGUID 12 1 0 f f t f i 1 25 "16" _null_ _null_ _null_ booltext - _null_ _null_ ));
 DESCR("convert boolean to text");
 
 /* Aggregates (moved here from pg_aggregate for 7.3) */
@@ -3986,7 +3986,7 @@ DESCR("gin(internal)");
 /* GIN array support */
 DATA(insert OID = 2743 (  ginarrayextract   PGNSP PGUID 12 1 0 f f t f i 2 2281 "2277 2281" _null_ _null_ _null_   ginarrayextract - _null_ _null_ ));
 DESCR("GIN array support");
-DATA(insert OID = 2774 (  ginqueryarrayextract PGNSP PGUID 12 1 0 f f t f i 3 2281 "2277 2281 21" _null_ _null_ _null_ ginqueryarrayextract - _null_ _null_ ));
+DATA(insert OID = 2774 (  ginqueryarrayextract PGNSP PGUID 12 1 0 f f t f i 3 2281 "2277 2281 21" _null_ _null_ _null_ ginqueryarrayextract - _null_ _null_ ));
 DESCR("GIN array support");
 DATA(insert OID = 2744 (  ginarrayconsistent PGNSP PGUID 12 1 0 f f t f i 3 16 "2281 21 2281" _null_ _null_ _null_ ginarrayconsistent - _null_ _null_ ));
 DESCR("GIN array support");
@@ -4036,56 +4036,56 @@ DATA(insert OID = 2895 (  xmlcomment       PGNSP PGUID 12 1 0 f f t f i 1 142 "25"
 DESCR("generate an XML comment");
 DATA(insert OID = 2896 (  xml             PGNSP PGUID 12 1 0 f f t f i 1 142 "25" _null_ _null_ _null_ texttoxml - _null_ _null_ ));
 DESCR("perform a non-validating parse of a character string to produce an XML value");
-DATA(insert OID = 2897 (  xmlvalidate     PGNSP PGUID 12 1 0 f f t f i 2 16 "142 25" _null_ _null_ _null_ xmlvalidate - _null_ _null_ ));
+DATA(insert OID = 2897 (  xmlvalidate     PGNSP PGUID 12 1 0 f f t f i 2 16 "142 25" _null_ _null_ _null_ xmlvalidate - _null_ _null_ ));
 DESCR("validate an XML value");
 DATA(insert OID = 2898 (  xml_recv        PGNSP PGUID 12 1 0 f f t f s 1 142 "2281" _null_ _null_ _null_   xml_recv - _null_ _null_ ));
 DESCR("I/O");
-DATA(insert OID = 2899 (  xml_send        PGNSP PGUID 12 1 0 f f t f s 1 17 "142" _null_ _null_ _null_ xml_send - _null_ _null_ ));
+DATA(insert OID = 2899 (  xml_send        PGNSP PGUID 12 1 0 f f t f s 1 17 "142" _null_ _null_ _null_ xml_send - _null_ _null_ ));
 DESCR("I/O");
-DATA(insert OID = 2900 (  xmlconcat2       PGNSP PGUID 12 1 0 f f f f i 2 142 "142 142" _null_ _null_ _null_ xmlconcat2 - _null_ _null_ ));
+DATA(insert OID = 2900 (  xmlconcat2      PGNSP PGUID 12 1 0 f f f f i 2 142 "142 142" _null_ _null_ _null_ xmlconcat2 - _null_ _null_ ));
 DESCR("aggregate transition function");
-DATA(insert OID = 2901 (  xmlagg           PGNSP PGUID 12 1 0 t f f f i 1 142 "142" _null_ _null_ _null_ aggregate_dummy - _null_ _null_ ));
+DATA(insert OID = 2901 (  xmlagg          PGNSP PGUID 12 1 0 t f f f i 1 142 "142" _null_ _null_ _null_ aggregate_dummy - _null_ _null_ ));
 DESCR("concatenate XML values");
-DATA(insert OID = 2922 (  text             PGNSP PGUID 12 1 0 f f t f s 1 25 "142" _null_ _null_ _null_ xmltotext - _null_ _null_ ));
+DATA(insert OID = 2922 (  text            PGNSP PGUID 12 1 0 f f t f s 1 25 "142" _null_ _null_ _null_ xmltotext - _null_ _null_ ));
 DESCR("serialize an XML value to a character string");
 
-DATA(insert OID = 2923 (  table_to_xml                PGNSP PGUID 12 100 0 f f t f s 4 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" table_to_xml - _null_ _null_ ));
+DATA(insert OID = 2923 (  table_to_xml               PGNSP PGUID 12 100 0 f f t f s 4 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" table_to_xml - _null_ _null_ ));
 DESCR("map table contents to XML");
-DATA(insert OID = 2924 (  query_to_xml                PGNSP PGUID 12 100 0 f f t f s 4 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" query_to_xml - _null_ _null_ ));
+DATA(insert OID = 2924 (  query_to_xml               PGNSP PGUID 12 100 0 f f t f s 4 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" query_to_xml - _null_ _null_ ));
 DESCR("map query result to XML");
-DATA(insert OID = 2925 (  cursor_to_xml               PGNSP PGUID 12 100 0 f f t f s 5 142 "1790 23 16 16 25" _null_ _null_ "{cursor,count,nulls,tableforest,targetns}" cursor_to_xml - _null_ _null_ ));
+DATA(insert OID = 2925 (  cursor_to_xml                  PGNSP PGUID 12 100 0 f f t f s 5 142 "1790 23 16 16 25" _null_ _null_ "{cursor,count,nulls,tableforest,targetns}" cursor_to_xml - _null_ _null_ ));
 DESCR("map rows from cursor to XML");
-DATA(insert OID = 2926 (  table_to_xmlschema          PGNSP PGUID 12 100 0 f f t f s 4 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" table_to_xmlschema - _null_ _null_ ));
+DATA(insert OID = 2926 (  table_to_xmlschema         PGNSP PGUID 12 100 0 f f t f s 4 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" table_to_xmlschema - _null_ _null_ ));
 DESCR("map table structure to XML Schema");
-DATA(insert OID = 2927 (  query_to_xmlschema          PGNSP PGUID 12 100 0 f f t f s 4 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" query_to_xmlschema - _null_ _null_ ));
+DATA(insert OID = 2927 (  query_to_xmlschema         PGNSP PGUID 12 100 0 f f t f s 4 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" query_to_xmlschema - _null_ _null_ ));
 DESCR("map query result structure to XML Schema");
-DATA(insert OID = 2928 (  cursor_to_xmlschema         PGNSP PGUID 12 100 0 f f t f s 4 142 "1790 16 16 25" _null_ _null_ "{cursor,nulls,tableforest,targetns}" cursor_to_xmlschema - _null_ _null_ ));
+DATA(insert OID = 2928 (  cursor_to_xmlschema        PGNSP PGUID 12 100 0 f f t f s 4 142 "1790 16 16 25" _null_ _null_ "{cursor,nulls,tableforest,targetns}" cursor_to_xmlschema - _null_ _null_ ));
 DESCR("map cursor structure to XML Schema");
 DATA(insert OID = 2929 (  table_to_xml_and_xmlschema  PGNSP PGUID 12 100 0 f f t f s 4 142 "2205 16 16 25" _null_ _null_ "{tbl,nulls,tableforest,targetns}" table_to_xml_and_xmlschema - _null_ _null_ ));
 DESCR("map table contents and structure to XML and XML Schema");
 DATA(insert OID = 2930 (  query_to_xml_and_xmlschema  PGNSP PGUID 12 100 0 f f t f s 4 142 "25 16 16 25" _null_ _null_ "{query,nulls,tableforest,targetns}" query_to_xml_and_xmlschema - _null_ _null_ ));
 DESCR("map query result and structure to XML and XML Schema");
 
-DATA(insert OID = 2933 (  schema_to_xml               PGNSP PGUID 12 100 0 f f t f s 4 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" schema_to_xml - _null_ _null_ ));
+DATA(insert OID = 2933 (  schema_to_xml                  PGNSP PGUID 12 100 0 f f t f s 4 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" schema_to_xml - _null_ _null_ ));
 DESCR("map schema contents to XML");
-DATA(insert OID = 2934 (  schema_to_xmlschema         PGNSP PGUID 12 100 0 f f t f s 4 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" schema_to_xmlschema - _null_ _null_ ));
+DATA(insert OID = 2934 (  schema_to_xmlschema        PGNSP PGUID 12 100 0 f f t f s 4 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" schema_to_xmlschema - _null_ _null_ ));
 DESCR("map schema structure to XML Schema");
 DATA(insert OID = 2935 (  schema_to_xml_and_xmlschema PGNSP PGUID 12 100 0 f f t f s 4 142 "19 16 16 25" _null_ _null_ "{schema,nulls,tableforest,targetns}" schema_to_xml_and_xmlschema - _null_ _null_ ));
 DESCR("map schema contents and structure to XML and XML Schema");
 
-DATA(insert OID = 2936 (  database_to_xml             PGNSP PGUID 12 100 0 f f t f s 3 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" database_to_xml - _null_ _null_ ));
+DATA(insert OID = 2936 (  database_to_xml            PGNSP PGUID 12 100 0 f f t f s 3 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" database_to_xml - _null_ _null_ ));
 DESCR("map database contents to XML");
-DATA(insert OID = 2937 (  database_to_xmlschema       PGNSP PGUID 12 100 0 f f t f s 3 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" database_to_xmlschema - _null_ _null_ ));
+DATA(insert OID = 2937 (  database_to_xmlschema          PGNSP PGUID 12 100 0 f f t f s 3 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" database_to_xmlschema - _null_ _null_ ));
 DESCR("map database structure to XML Schema");
 DATA(insert OID = 2938 (  database_to_xml_and_xmlschema PGNSP PGUID 12 100 0 f f t f s 3 142 "16 16 25" _null_ _null_ "{nulls,tableforest,targetns}" database_to_xml_and_xmlschema - _null_ _null_ ));
 DESCR("map database contents and structure to XML and XML Schema");
 
-DATA(insert OID = 2931 (  xpath      PGNSP PGUID 12 1 0 f f t f i 3 143 "25 142 1009" _null_ _null_ _null_ xpath - _null_ _null_ ));
+DATA(insert OID = 2931 (  xpath         PGNSP PGUID 12 1 0 f f t f i 3 143 "25 142 1009" _null_ _null_ _null_ xpath - _null_ _null_ ));
 DESCR("evaluate XPath expression, with namespaces support");
-DATA(insert OID = 2932 (  xpath      PGNSP PGUID 14 1 0 f f t f i 2 143 "25 142" _null_ _null_ _null_ "select pg_catalog.xpath($1, $2, ''{}''::pg_catalog.text[])" - _null_ _null_ ));
+DATA(insert OID = 2932 (  xpath         PGNSP PGUID 14 1 0 f f t f i 2 143 "25 142" _null_ _null_ _null_ "select pg_catalog.xpath($1, $2, ''{}''::pg_catalog.text[])" - _null_ _null_ ));
 DESCR("evaluate XPath expression");
 
-/* uuid */ 
+/* uuid */
 DATA(insert OID = 2952 (  uuid_in         PGNSP PGUID 12 1 0 f f t f i 1 2950 "2275" _null_ _null_ _null_ uuid_in - _null_ _null_ ));
 DESCR("I/O");
 DATA(insert OID = 2953 (  uuid_out        PGNSP PGUID 12 1 0 f f t f i 1 2275 "2950" _null_ _null_ _null_ uuid_out - _null_ _null_ ));
@@ -4146,13 +4146,13 @@ DATA(insert OID = 3528 (  enum_first    PGNSP PGUID 12 1 0 f f f f s 1 3500 "3500"
 DATA(insert OID = 3529 (  enum_last        PGNSP PGUID 12 1 0 f f f f s 1 3500 "3500" _null_ _null_ _null_ enum_last - _null_ _null_ ));
 DATA(insert OID = 3530 (  enum_range   PGNSP PGUID 12 1 0 f f f f s 2 2277 "3500 3500" _null_ _null_ _null_ enum_range_bounds - _null_ _null_ ));
 DATA(insert OID = 3531 (  enum_range   PGNSP PGUID 12 1 0 f f f f s 1 2277 "3500" _null_ _null_ _null_ enum_range_all - _null_ _null_ ));
-DATA(insert OID = 3532 (  enum_recv        PGNSP PGUID 12 1 0 f f t f s 2 3500 "2275 26" _null_ _null_ _null_ enum_recv - _null_ _null_ ));
-DATA(insert OID = 3533 (  enum_send        PGNSP PGUID 12 1 0 f f t f s 1 17   "3500" _null_ _null_ _null_ enum_send - _null_ _null_ ));
+DATA(insert OID = 3532 (  enum_recv        PGNSP PGUID 12 1 0 f f t f s 2 3500 "2275 26" _null_ _null_ _null_ enum_recv - _null_ _null_ ));
+DATA(insert OID = 3533 (  enum_send        PGNSP PGUID 12 1 0 f f t f s 1 17   "3500" _null_ _null_ _null_ enum_send - _null_ _null_ ));
 
 /* text search stuff */
 DATA(insert OID =  3610 (  tsvectorin          PGNSP PGUID 12 1 0 f f t f i 1 3614 "2275" _null_ _null_ _null_ tsvectorin - _null_ _null_ ));
 DESCR("I/O");
-DATA(insert OID =  3639 (  tsvectorrecv            PGNSP PGUID 12 1 0 f f t f i 1 3614 "2281" _null_ _null_ _null_ tsvectorrecv - _null_ _null_ ));
+DATA(insert OID =  3639 (  tsvectorrecv            PGNSP PGUID 12 1 0 f f t f i 1 3614 "2281" _null_ _null_ _null_ tsvectorrecv - _null_ _null_ ));
 DESCR("I/O");
 DATA(insert OID =  3611 (  tsvectorout         PGNSP PGUID 12 1 0 f f t f i 1 2275 "3614" _null_ _null_ _null_ tsvectorout - _null_ _null_ ));
 DESCR("I/O");
@@ -4160,7 +4160,7 @@ DATA(insert OID =  3638 (  tsvectorsend           PGNSP PGUID 12 1 0 f f t f i 1 17 "361
 DESCR("I/O");
 DATA(insert OID =  3612 (  tsqueryin           PGNSP PGUID 12 1 0 f f t f i 1 3615 "2275" _null_ _null_ _null_ tsqueryin - _null_ _null_ ));
 DESCR("I/O");
-DATA(insert OID =  3641 (  tsqueryrecv         PGNSP PGUID 12 1 0 f f t f i 1 3615 "2281" _null_ _null_ _null_ tsqueryrecv - _null_ _null_ ));
+DATA(insert OID =  3641 (  tsqueryrecv         PGNSP PGUID 12 1 0 f f t f i 1 3615 "2281" _null_ _null_ _null_ tsqueryrecv - _null_ _null_ ));
 DESCR("I/O");
 DATA(insert OID =  3613 (  tsqueryout          PGNSP PGUID 12 1 0 f f t f i 1 2275 "3615" _null_ _null_ _null_ tsqueryout - _null_ _null_ ));
 DESCR("I/O");
@@ -4221,7 +4221,7 @@ DESCR("GiST tsvector support");
 
 DATA(insert OID = 3656 (  gin_extract_tsvector PGNSP PGUID 12 1 0 f f t f i 2 2281 "3614 2281" _null_ _null_ _null_    gin_extract_tsvector - _null_ _null_ ));
 DESCR("GIN tsvector support");
-DATA(insert OID = 3657 (  gin_extract_query        PGNSP PGUID 12 1 0 f f t f i 3 2281 "2281 2281 21" _null_ _null_ _null_ gin_extract_query - _null_ _null_ ));
+DATA(insert OID = 3657 (  gin_extract_query        PGNSP PGUID 12 1 0 f f t f i 3 2281 "2281 2281 21" _null_ _null_ _null_ gin_extract_query - _null_ _null_ ));
 DESCR("GIN tsvector support");
 DATA(insert OID = 3658 (  gin_ts_consistent        PGNSP PGUID 12 1 0 f f t f i 3 16 "2281 21 2281" _null_ _null_ _null_   gin_ts_consistent - _null_ _null_ ));
 DESCR("GIN tsvector support");
@@ -4300,9 +4300,9 @@ DESCR("relevance");
 DATA(insert OID = 3710 (  ts_rank_cd   PGNSP PGUID 12 1 0 f f t f i 2 700 "3614 3615" _null_ _null_ _null_ ts_rankcd_tt - _null_ _null_ ));
 DESCR("relevance");
 
-DATA(insert OID = 3713 (  ts_token_type    PGNSP PGUID 12 1 16 f f t t i 1 2249 "26" "{26,23,25,25}" "{i,o,o,o}" "{parser_oid,tokid,alias,description}" ts_token_type_byid - _null_ _null_ ));
+DATA(insert OID = 3713 (  ts_token_type PGNSP PGUID 12 1 16 f f t t i 1 2249 "26" "{26,23,25,25}" "{i,o,o,o}" "{parser_oid,tokid,alias,description}" ts_token_type_byid - _null_ _null_ ));
 DESCR("get parser's token types");
-DATA(insert OID = 3714 (  ts_token_type    PGNSP PGUID 12 1 16 f f t t s 1 2249 "25" "{25,23,25,25}" "{i,o,o,o}" "{parser_name,tokid,alias,description}" ts_token_type_byname - _null_ _null_ ));
+DATA(insert OID = 3714 (  ts_token_type PGNSP PGUID 12 1 16 f f t t s 1 2249 "25" "{25,23,25,25}" "{i,o,o,o}" "{parser_name,tokid,alias,description}" ts_token_type_byname - _null_ _null_ ));
 DESCR("get parser's token types");
 DATA(insert OID = 3715 (  ts_parse     PGNSP PGUID 12 1 1000 f f t t i 2 2249 "26 25" "{26,25,23,25}" "{i,i,o,o}" "{parser_oid,txt,tokid,token}" ts_parse_byid - _null_ _null_ ));
 DESCR("parse text to tokens");
@@ -4370,7 +4370,7 @@ DESCR("trigger for automatic update of tsvector column");
 DATA(insert OID = 3753 (  tsvector_update_trigger_column   PGNSP PGUID 12 1 0 f f f f v 0 2279 "" _null_ _null_ _null_ tsvector_update_trigger_bycolumn - _null_ _null_ ));
 DESCR("trigger for automatic update of tsvector column");
 
-DATA(insert OID = 3759 (  get_current_ts_config    PGNSP PGUID 12 1 0 f f t f s 0 3734 "" _null_ _null_ _null_ get_current_ts_config - _null_ _null_ ));
+DATA(insert OID = 3759 (  get_current_ts_config PGNSP PGUID 12 1 0 f f t f s 0 3734 "" _null_ _null_ _null_ get_current_ts_config - _null_ _null_ ));
 DESCR("get current tsearch configuration");
 
 DATA(insert OID = 3736 (  regconfigin      PGNSP PGUID 12 1 0 f f t f s 1 3734 "2275" _null_ _null_ _null_ regconfigin - _null_ _null_ ));
@@ -4386,17 +4386,17 @@ DATA(insert OID = 3771 (  regdictionaryin   PGNSP PGUID 12 1 0 f f t f s 1 3769 "2
 DESCR("I/O");
 DATA(insert OID = 3772 (  regdictionaryout PGNSP PGUID 12 1 0 f f t f s 1 2275 "3769" _null_ _null_ _null_ regdictionaryout - _null_ _null_ ));
 DESCR("I/O");
-DATA(insert OID = 3773 (  regdictionaryrecv    PGNSP PGUID 12 1 0 f f t f i 1 3769 "2281" _null_ _null_ _null_ regdictionaryrecv - _null_ _null_ ));
+DATA(insert OID = 3773 (  regdictionaryrecv PGNSP PGUID 12 1 0 f f t f i 1 3769 "2281" _null_ _null_ _null_ regdictionaryrecv - _null_ _null_ ));
 DESCR("I/O");
-DATA(insert OID = 3774 (  regdictionarysend    PGNSP PGUID 12 1 0 f f t f i 1 17 "3769" _null_ _null_ _null_ regdictionarysend - _null_ _null_ ));
+DATA(insert OID = 3774 (  regdictionarysend PGNSP PGUID 12 1 0 f f t f i 1 17 "3769" _null_ _null_ _null_ regdictionarysend - _null_ _null_ ));
 DESCR("I/O");
 
 /* txid */
-DATA(insert OID = 2939 (  txid_snapshot_in         PGNSP PGUID 12 1  0 f f t f i 1 2970 "2275" _null_ _null_ _null_ txid_snapshot_in - _null_ _null_ ));
+DATA(insert OID = 2939 (  txid_snapshot_in         PGNSP PGUID 12 1  0 f f t f i 1 2970 "2275" _null_ _null_ _null_ txid_snapshot_in - _null_ _null_ ));
 DESCR("I/O");
 DATA(insert OID = 2940 (  txid_snapshot_out            PGNSP PGUID 12 1  0 f f t f i 1 2275 "2970" _null_ _null_ _null_ txid_snapshot_out - _null_ _null_ ));
 DESCR("I/O");
-DATA(insert OID = 2941 (  txid_snapshot_recv       PGNSP PGUID 12 1  0 f f t f i 1 2970 "2281" _null_ _null_ _null_ txid_snapshot_recv - _null_ _null_ ));
+DATA(insert OID = 2941 (  txid_snapshot_recv       PGNSP PGUID 12 1  0 f f t f i 1 2970 "2281" _null_ _null_ _null_ txid_snapshot_recv - _null_ _null_ ));
 DESCR("I/O");
 DATA(insert OID = 2942 (  txid_snapshot_send       PGNSP PGUID 12 1  0 f f t f i 1 17 "2970"   _null_ _null_ _null_ txid_snapshot_send - _null_ _null_ ));
 DESCR("I/O");
index b7a71b2f0709ae65d502e2820bbf3a7cd033e9a3..7bfe036be9e225e4ba40234297f62307e0e36cdd 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_trigger.h,v 1.28 2007/03/19 23:38:31 wieck Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_trigger.h,v 1.29 2007/11/15 21:14:43 momjian Exp $
  *
  * NOTES
  *   the genbki.sh script reads this file and generates .bki
@@ -46,8 +46,8 @@ CATALOG(pg_trigger,2620)
    Oid         tgfoid;         /* OID of function to be called */
    int2        tgtype;         /* BEFORE/AFTER UPDATE/DELETE/INSERT
                                 * ROW/STATEMENT; see below */
-   char        tgenabled;      /* trigger's firing configuration
-                                * WRT session_replication_role */
+   char        tgenabled;      /* trigger's firing configuration WRT
+                                * session_replication_role */
    bool        tgisconstraint; /* trigger is a constraint trigger */
    NameData    tgconstrname;   /* constraint name */
    Oid         tgconstrrelid;  /* constraint's FROM table, if any */
index 7d56cb39187350288b150e1df8e7e24e2e624eb1..dcc87eee2d0fe4b08f38e6e00d03215bcc105b75 100644 (file)
@@ -1,13 +1,13 @@
 /*-------------------------------------------------------------------------
  *
  * pg_ts_config.h
- *     definition of configuration of tsearch 
+ * definition of configuration of tsearch
  *
  *
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_ts_config.h,v 1.1 2007/08/21 01:11:27 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_ts_config.h,v 1.2 2007/11/15 21:14:43 momjian Exp $
  *
  * NOTES
  *     the genbki.sh script reads this file and generates .bki
index 0db8025110ad9904d9b279b340c2dd5aa0386aa7..d92d91aab05efdb43682e1dc980caa61eae2da1b 100644 (file)
@@ -1,13 +1,13 @@
 /*-------------------------------------------------------------------------
  *
  * pg_ts_config_map.h
- *     definition of token mappings for configurations of tsearch 
+ * definition of token mappings for configurations of tsearch
  *
  *
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_ts_config_map.h,v 1.1 2007/08/21 01:11:27 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_ts_config_map.h,v 1.2 2007/11/15 21:14:43 momjian Exp $
  *
  * NOTES
  *     the genbki.sh script reads this file and generates .bki
@@ -37,7 +37,7 @@
 
 CATALOG(pg_ts_config_map,3603) BKI_WITHOUT_OIDS
 {
-   Oid         mapcfg;         /* OID of configuration owning this entry */ 
+   Oid         mapcfg;         /* OID of configuration owning this entry */
    int4        maptokentype;   /* token type from parser */
    int4        mapseqno;       /* order in which to consult dictionaries */
    Oid         mapdict;        /* dictionary to consult */
@@ -80,4 +80,4 @@ DATA(insert ( 3748    20  1   3765 ));
 DATA(insert ( 3748 21  1   3765 ));
 DATA(insert ( 3748 22  1   3765 ));
 
-#endif /* PG_TS_CONFIG_MAP_H */
+#endif   /* PG_TS_CONFIG_MAP_H */
index 7c5f07363eef249e6b50a8b5b415464ca09f10ab..9579b3f696d5b783a0a2032982ebd57ee63c0e9f 100644 (file)
@@ -1,13 +1,13 @@
 /*-------------------------------------------------------------------------
  *
  * pg_ts_dict.h
- *     definition of dictionaries for tsearch
+ * definition of dictionaries for tsearch
  *
  *
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_ts_dict.h,v 1.1 2007/08/21 01:11:27 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_ts_dict.h,v 1.2 2007/11/15 21:14:43 momjian Exp $
  *
  * NOTES
  *     the genbki.sh script reads this file and generates .bki
@@ -29,7 +29,7 @@
  */
 
 /* ----------------
- *     pg_ts_dict definition.  cpp turns this into
+ *     pg_ts_dict definition.  cpp turns this into
  *     typedef struct FormData_pg_ts_dict
  * ----------------
  */
@@ -41,7 +41,7 @@ CATALOG(pg_ts_dict,3600)
    Oid         dictnamespace;  /* name space */
    Oid         dictowner;      /* owner */
    Oid         dicttemplate;   /* dictionary's template */
-   text        dictinitoption; /* options passed to dict_init() */
+   text        dictinitoption; /* options passed to dict_init() */
 } FormData_pg_ts_dict;
 
 typedef FormData_pg_ts_dict *Form_pg_ts_dict;
index fb7aff5b37c11e16f5cc33cf690fb5e950294cf7..d9678fd4b52a9c7fe6932b058889c9e337e4acc6 100644 (file)
@@ -1,13 +1,13 @@
 /*-------------------------------------------------------------------------
  *
  * pg_ts_parser.h
- *     definition of parsers for tsearch
+ * definition of parsers for tsearch
  *
  *
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_ts_parser.h,v 1.1 2007/08/21 01:11:27 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_ts_parser.h,v 1.2 2007/11/15 21:14:43 momjian Exp $
  *
  * NOTES
  *     the genbki.sh script reads this file and generates .bki
index 7108358ced78f4fcb2ae03457bc5501bc310bc14..c0920664176b93ce8396049426ed91d014af7724 100644 (file)
@@ -1,13 +1,13 @@
 /*-------------------------------------------------------------------------
  *
  * pg_ts_template.h
- *     definition of dictionary templates for tsearch
+ * definition of dictionary templates for tsearch
  *
  *
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_ts_template.h,v 1.2 2007/09/03 02:30:45 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_ts_template.h,v 1.3 2007/11/15 21:14:43 momjian Exp $
  *
  * NOTES
  *     the genbki.sh script reads this file and generates .bki
@@ -29,7 +29,7 @@
  */
 
 /* ----------------
- *     pg_ts_template definition.  cpp turns this into
+ *     pg_ts_template definition.  cpp turns this into
  *     typedef struct FormData_pg_ts_template
  * ----------------
  */
index 7fd0b41da7cae10a039fa8623e0a4dfe11e8fcf0..a7598e79d667f1b2ac47b5a4d5a23860050bec06 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_type.h,v 1.189 2007/10/13 23:06:27 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_type.h,v 1.190 2007/11/15 21:14:43 momjian Exp $
  *
  * NOTES
  *   the genbki.sh script reads this file and generates .bki
@@ -66,9 +66,9 @@ CATALOG(pg_type,1247) BKI_BOOTSTRAP
    bool        typbyval;
 
    /*
-    * typtype is 'b' for a base type, 'c' for a composite type (e.g.,
-    * a table's rowtype), 'd' for a domain type, 'e' for an enum type,
-    * or 'p' for a pseudo-type.  (Use the TYPTYPE macros below.)
+    * typtype is 'b' for a base type, 'c' for a composite type (e.g., a
+    * table's rowtype), 'd' for a domain type, 'e' for an enum type, or 'p'
+    * for a pseudo-type.  (Use the TYPTYPE macros below.)
     *
     * If typtype is 'c', typrelid is the OID of the class' entry in pg_class.
     */
@@ -114,8 +114,8 @@ CATALOG(pg_type,1247) BKI_BOOTSTRAP
    /*
     * I/O functions for optional type modifiers.
     */
-    regproc    typmodin;
-    regproc    typmodout;
+   regproc     typmodin;
+   regproc     typmodout;
 
    /*
     * Custom ANALYZE procedure for the datatype (0 selects the default).
@@ -137,7 +137,7 @@ CATALOG(pg_type,1247) BKI_BOOTSTRAP
     * 'd' = DOUBLE alignment (8 bytes on many machines, but by no means all).
     *
     * See include/access/tupmacs.h for the macros that compute these
-    * alignment requirements.  Note also that we allow the nominal alignment
+    * alignment requirements.  Note also that we allow the nominal alignment
     * to be violated when storing "packed" varlenas; the TOAST mechanism
     * takes care of hiding that from most code.
     *
@@ -544,19 +544,19 @@ DATA(insert OID = 2210 ( _regclass       PGNSP PGUID -1 f b t \054 0 2205 0 array_i
 DATA(insert OID = 2211 ( _regtype     PGNSP PGUID -1 f b t \054 0 2206 0 array_in array_out array_recv array_send - - - i x f 0 -1 0 _null_ _null_ ));
 #define REGTYPEARRAYOID 2211
 
-/* uuid */ 
+/* uuid */
 DATA(insert OID = 2950 ( uuid          PGNSP PGUID 16 f b t \054 0 0 2951 uuid_in uuid_out uuid_recv uuid_send - - - c p f 0 -1 0 _null_ _null_ ));
 DESCR("UUID datatype");
 DATA(insert OID = 2951 ( _uuid         PGNSP PGUID -1 f b t \054 0 2950 0 array_in array_out array_recv array_send - - - i x f 0 -1 0 _null_ _null_ ));
 
 /* text search */
-DATA(insert OID = 3614 ( tsvector      PGNSP PGUID -1 f b t \054 0 0 3643 tsvectorin tsvectorout tsvectorrecv tsvectorsend - - - i x f 0 -1 0 _null_ _null_ ));
+DATA(insert OID = 3614 ( tsvector      PGNSP PGUID -1 f b t \054 0 0 3643 tsvectorin tsvectorout tsvectorrecv tsvectorsend - - - i x f 0 -1 0 _null_ _null_ ));
 DESCR("text representation for text search");
 #define TSVECTOROID        3614
-DATA(insert OID = 3642 ( gtsvector     PGNSP PGUID -1 f b t \054 0 0 3644 gtsvectorin gtsvectorout - - - - - i p f 0 -1 0 _null_ _null_ ));
+DATA(insert OID = 3642 ( gtsvector     PGNSP PGUID -1 f b t \054 0 0 3644 gtsvectorin gtsvectorout - - - - - i p f 0 -1 0 _null_ _null_ ));
 DESCR("GiST index internal text representation for text search");
 #define GTSVECTOROID   3642
-DATA(insert OID = 3615 ( tsquery       PGNSP PGUID -1 f b t \054 0 0 3645 tsqueryin tsqueryout tsqueryrecv tsquerysend - - - i p f 0 -1 0 _null_ _null_ ));
+DATA(insert OID = 3615 ( tsquery       PGNSP PGUID -1 f b t \054 0 0 3645 tsqueryin tsqueryout tsqueryrecv tsquerysend - - - i p f 0 -1 0 _null_ _null_ ));
 DESCR("query representation for text search");
 #define TSQUERYOID     3615
 DATA(insert OID = 3734 ( regconfig     PGNSP PGUID 4 t b t \054 0 0 3735 regconfigin regconfigout regconfigrecv regconfigsend - - - i p f 0 -1 0 _null_ _null_ ));
@@ -566,15 +566,15 @@ DATA(insert OID = 3769 ( regdictionary    PGNSP PGUID 4 t b t \054 0 0 3770 regdict
 DESCR("registered text search dictionary");
 #define REGDICTIONARYOID   3769
 
-DATA(insert OID = 3643 ( _tsvector     PGNSP PGUID -1 f b t \054 0 3614 0 array_in array_out array_recv array_send - - - i x f 0 -1 0 _null_ _null_ ));
-DATA(insert OID = 3644 ( _gtsvector        PGNSP PGUID -1 f b t \054 0 3642 0 array_in array_out array_recv array_send - - - i x f 0 -1 0 _null_ _null_ ));
-DATA(insert OID = 3645 ( _tsquery      PGNSP PGUID -1 f b t \054 0 3615 0 array_in array_out array_recv array_send - - - i x f 0 -1 0 _null_ _null_ ));
+DATA(insert OID = 3643 ( _tsvector     PGNSP PGUID -1 f b t \054 0 3614 0 array_in array_out array_recv array_send - - - i x f 0 -1 0 _null_ _null_ ));
+DATA(insert OID = 3644 ( _gtsvector        PGNSP PGUID -1 f b t \054 0 3642 0 array_in array_out array_recv array_send - - - i x f 0 -1 0 _null_ _null_ ));
+DATA(insert OID = 3645 ( _tsquery      PGNSP PGUID -1 f b t \054 0 3615 0 array_in array_out array_recv array_send - - - i x f 0 -1 0 _null_ _null_ ));
 DATA(insert OID = 3735 ( _regconfig        PGNSP PGUID -1 f b t \054 0 3734 0 array_in array_out array_recv array_send - - - i x f 0 -1 0 _null_ _null_ ));
-DATA(insert OID = 3770 ( _regdictionary    PGNSP PGUID -1 f b t \054 0 3769 0 array_in array_out array_recv array_send - - - i x f 0 -1 0 _null_ _null_ ));
+DATA(insert OID = 3770 ( _regdictionary PGNSP PGUID -1 f b t \054 0 3769 0 array_in array_out array_recv array_send - - - i x f 0 -1 0 _null_ _null_ ));
 
 DATA(insert OID = 2970 ( txid_snapshot PGNSP PGUID -1 f b t \054 0 0 2949 txid_snapshot_in txid_snapshot_out txid_snapshot_recv txid_snapshot_send - - - d x f 0 -1 0 _null_ _null_ ));
 DESCR("txid snapshot");
-DATA(insert OID = 2949 ( _txid_snapshot    PGNSP PGUID -1 f b t \054 0 2970 0 array_in array_out array_recv array_send - - - d x f 0 -1 0 _null_ _null_ ));
+DATA(insert OID = 2949 ( _txid_snapshot PGNSP PGUID -1 f b t \054 0 2970 0 array_in array_out array_recv array_send - - - d x f 0 -1 0 _null_ _null_ ));
 
 /*
  * pseudo-types
@@ -618,13 +618,13 @@ DATA(insert OID = 3500 ( anyenum      PGNSP PGUID  4 t p t \054 0 0 0 anyenum_in any
 /*
  * macros
  */
-#define  TYPTYPE_BASE      'b'     /* base type (ordinary scalar type) */
-#define  TYPTYPE_COMPOSITE 'c'     /* composite (e.g., table's rowtype) */
-#define  TYPTYPE_DOMAIN        'd'     /* domain over another type */
-#define  TYPTYPE_ENUM      'e'     /* enumerated type */
-#define  TYPTYPE_PSEUDO        'p'     /* pseudo-type */
+#define  TYPTYPE_BASE      'b' /* base type (ordinary scalar type) */
+#define  TYPTYPE_COMPOSITE 'c' /* composite (e.g., table's rowtype) */
+#define  TYPTYPE_DOMAIN        'd' /* domain over another type */
+#define  TYPTYPE_ENUM      'e' /* enumerated type */
+#define  TYPTYPE_PSEUDO        'p' /* pseudo-type */
 
-/* Is a type OID a polymorphic pseudotype?  (Beware of multiple evaluation) */
+/* Is a type OID a polymorphic pseudotype? (Beware of multiple evaluation) */
 #define IsPolymorphicType(typid)  \
    ((typid) == ANYELEMENTOID || \
     (typid) == ANYARRAYOID || \
@@ -673,8 +673,8 @@ extern void GenerateTypeDependencies(Oid typeNamespace,
                         Oid outputProcedure,
                         Oid receiveProcedure,
                         Oid sendProcedure,
-                        Oid typmodinProcedure,
-                        Oid typmodoutProcedure,
+                        Oid typmodinProcedure,
+                        Oid typmodoutProcedure,
                         Oid analyzeProcedure,
                         Oid elementType,
                         bool isImplicitArray,
@@ -683,11 +683,11 @@ extern void GenerateTypeDependencies(Oid typeNamespace,
                         bool rebuild);
 
 extern void TypeRename(Oid typeOid, const char *newTypeName,
-                      Oid typeNamespace);
+          Oid typeNamespace);
 
 extern char *makeArrayTypeName(const char *typeName, Oid typeNamespace);
 
 extern bool moveArrayTypeName(Oid typeOid, const char *typeName,
-                             Oid typeNamespace);
+                 Oid typeNamespace);
 
 #endif   /* PG_TYPE_H */
index e3c0af870df9833051808da8229eebdd92163b21..ebf8abe92a4feb686cffcea940f13bb26b853cbd 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/commands/defrem.h,v 1.84 2007/08/22 01:39:46 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/commands/defrem.h,v 1.85 2007/11/15 21:14:43 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -79,10 +79,10 @@ extern void AlterAggregateOwner(List *name, List *args, Oid newOwnerId);
 
 /* commands/opclasscmds.c */
 extern void DefineOpClass(CreateOpClassStmt *stmt);
-extern void DefineOpFamily(CreateOpFamilyStmt *stmt);
-extern void AlterOpFamily(AlterOpFamilyStmt *stmt);
+extern void DefineOpFamily(CreateOpFamilyStmt * stmt);
+extern void AlterOpFamily(AlterOpFamilyStmt * stmt);
 extern void RemoveOpClass(RemoveOpClassStmt *stmt);
-extern void RemoveOpFamily(RemoveOpFamilyStmt *stmt);
+extern void RemoveOpFamily(RemoveOpFamilyStmt * stmt);
 extern void RemoveOpClassById(Oid opclassOid);
 extern void RemoveOpFamilyById(Oid opfamilyOid);
 extern void RemoveAmOpEntryById(Oid entryOid);
@@ -96,29 +96,29 @@ extern void AlterOpFamilyOwner(List *name, const char *access_method, Oid newOwn
 extern void DefineTSParser(List *names, List *parameters);
 extern void RenameTSParser(List *oldname, const char *newname);
 extern void RemoveTSParser(List *names, DropBehavior behavior,
-                          bool missing_ok);
+              bool missing_ok);
 extern void RemoveTSParserById(Oid prsId);
 
 extern void DefineTSDictionary(List *names, List *parameters);
 extern void RenameTSDictionary(List *oldname, const char *newname);
 extern void RemoveTSDictionary(List *names, DropBehavior behavior,
-                              bool missing_ok);
+                  bool missing_ok);
 extern void RemoveTSDictionaryById(Oid dictId);
-extern void AlterTSDictionary(AlterTSDictionaryStmt *stmt);
+extern void AlterTSDictionary(AlterTSDictionaryStmt * stmt);
 extern void AlterTSDictionaryOwner(List *name, Oid newOwnerId);
 
 extern void DefineTSTemplate(List *names, List *parameters);
 extern void RenameTSTemplate(List *oldname, const char *newname);
 extern void RemoveTSTemplate(List *names, DropBehavior behavior,
-                            bool missing_ok);
+                bool missing_ok);
 extern void RemoveTSTemplateById(Oid tmplId);
 
 extern void DefineTSConfiguration(List *names, List *parameters);
 extern void RenameTSConfiguration(List *oldname, const char *newname);
 extern void RemoveTSConfiguration(List *names, DropBehavior behavior,
-                                 bool missing_ok);
+                     bool missing_ok);
 extern void RemoveTSConfigurationById(Oid cfgId);
-extern void AlterTSConfiguration(AlterTSConfigurationStmt *stmt);
+extern void AlterTSConfiguration(AlterTSConfigurationStmt * stmt);
 extern void AlterTSConfigurationOwner(List *name, Oid newOwnerId);
 
 extern text *serialize_deflist(List *deflist);
index f2192392ae4c984416b846a2095681f7dc9409cf..4549accebe60fb17f31459fa74fb3ccbb12eeed2 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1996-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/include/commands/discard.h,v 1.1 2007/04/26 16:13:13 neilc Exp $
+ * $PostgreSQL: pgsql/src/include/commands/discard.h,v 1.2 2007/11/15 21:14:43 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -15,6 +15,6 @@
 
 #include "nodes/parsenodes.h"
 
-extern void DiscardCommand(DiscardStmt *stmt, bool isTopLevel);
+extern void DiscardCommand(DiscardStmt * stmt, bool isTopLevel);
 
 #endif   /* DISCARD_H */
index 0d22449e52c97e8093012031b88cee5df527db51..b20b642064b44c41f28c18da9c7b1b2009a100fe 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994-5, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/commands/explain.h,v 1.32 2007/07/25 12:22:53 mha Exp $
+ * $PostgreSQL: pgsql/src/include/commands/explain.h,v 1.33 2007/11/15 21:14:43 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 /* Hook for plugins to get control in ExplainOneQuery() */
 typedef void (*ExplainOneQuery_hook_type) (Query *query,
-                                          ExplainStmt *stmt,
-                                          const char *queryString,
-                                          ParamListInfo params,
-                                          TupOutputState *tstate);
+                                                      ExplainStmt *stmt,
+                                                    const char *queryString,
+                                                      ParamListInfo params,
+                                                    TupOutputState *tstate);
 extern PGDLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook;
 
 /* Hook for plugins to get control in explain_get_index_name() */
-typedef const char * (*explain_get_index_name_hook_type) (Oid indexId);
+typedef const char *(*explain_get_index_name_hook_type) (Oid indexId);
 extern PGDLLIMPORT explain_get_index_name_hook_type explain_get_index_name_hook;
 
 
 extern void ExplainQuery(ExplainStmt *stmt, const char *queryString,
-                        ParamListInfo params, DestReceiver *dest);
+            ParamListInfo params, DestReceiver *dest);
 
 extern TupleDesc ExplainResultDesc(ExplainStmt *stmt);
 
 extern void ExplainOneUtility(Node *utilityStmt, ExplainStmt *stmt,
-                             const char *queryString,
-                             ParamListInfo params,
-                             TupOutputState *tstate);
+                 const char *queryString,
+                 ParamListInfo params,
+                 TupOutputState *tstate);
 
-extern void ExplainOnePlan(PlannedStmt *plannedstmt, ParamListInfo params,
-                          ExplainStmt *stmt, TupOutputState *tstate);
+extern void ExplainOnePlan(PlannedStmt * plannedstmt, ParamListInfo params,
+              ExplainStmt *stmt, TupOutputState *tstate);
 
 #endif   /* EXPLAIN_H */
index 66a2effc5092c3017149aa32945d02c031073e24..502caafbd569a1e0dce86f91acdddcf4a082345a 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/commands/portalcmds.h,v 1.23 2007/04/27 22:05:49 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/commands/portalcmds.h,v 1.24 2007/11/15 21:14:43 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -19,8 +19,8 @@
 #include "utils/portal.h"
 
 
-extern void PerformCursorOpen(PlannedStmt *stmt, ParamListInfo params,
-                             const char *queryString, bool isTopLevel);
+extern void PerformCursorOpen(PlannedStmt * stmt, ParamListInfo params,
+                 const char *queryString, bool isTopLevel);
 
 extern void PerformPortalFetch(FetchStmt *stmt, DestReceiver *dest,
                   char *completionTag);
index 4fa215ecf2d51b8a8b609a5894755ab53d0abb9c..a378aa27dae07fda47e56b33694a3a77281cab88 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 2002-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/include/commands/prepare.h,v 1.27 2007/04/16 18:21:07 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/commands/prepare.h,v 1.28 2007/11/15 21:14:43 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -28,7 +28,7 @@ typedef struct
 {
    /* dynahash.c requires key to be first field */
    char        stmt_name[NAMEDATALEN];
-   CachedPlanSource *plansource;   /* the actual cached plan */
+   CachedPlanSource *plansource;       /* the actual cached plan */
    bool        from_sql;       /* prepared via SQL, not FE/BE protocol? */
    TimestampTz prepare_time;   /* the time when the stmt was prepared */
 } PreparedStatement;
@@ -41,8 +41,8 @@ extern void ExecuteQuery(ExecuteStmt *stmt, const char *queryString,
             DestReceiver *dest, char *completionTag);
 extern void DeallocateQuery(DeallocateStmt *stmt);
 extern void ExplainExecuteQuery(ExecuteStmt *execstmt, ExplainStmt *stmt,
-                               const char *queryString,
-                               ParamListInfo params, TupOutputState *tstate);
+                   const char *queryString,
+                   ParamListInfo params, TupOutputState *tstate);
 
 /* Low-level access to stored prepared statements */
 extern void StorePreparedStatement(const char *stmt_name,
@@ -60,6 +60,6 @@ extern void DropPreparedStatement(const char *stmt_name, bool showError);
 extern TupleDesc FetchPreparedStatementResultDesc(PreparedStatement *stmt);
 extern List *FetchPreparedStatementTargetList(PreparedStatement *stmt);
 
-void DropAllPreparedStatements(void);
+void       DropAllPreparedStatements(void);
 
 #endif   /* PREPARE_H */
index e70579c3c370033b90d894b25ceaf8a4a162e607..803db5d4e61a5132ceb830ae230a3a19548c9d89 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/commands/schemacmds.h,v 1.16 2007/03/13 00:33:43 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/commands/schemacmds.h,v 1.17 2007/11/15 21:14:43 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -18,7 +18,7 @@
 #include "nodes/parsenodes.h"
 
 extern void CreateSchemaCommand(CreateSchemaStmt *parsetree,
-                               const char *queryString);
+                   const char *queryString);
 
 extern void RemoveSchema(List *names, DropBehavior behavior, bool missing_ok);
 extern void RemoveSchemaById(Oid schemaOid);
index 44df10ceb3acbfb494d6f5422f83fc0b5f2dee47..6f31e6d452c9e5f6302a0f4da443355e94235c67 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/commands/tablecmds.h,v 1.34 2007/07/03 01:30:37 neilc Exp $
+ * $PostgreSQL: pgsql/src/include/commands/tablecmds.h,v 1.35 2007/11/15 21:14:43 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -47,8 +47,8 @@ extern void renamerel(Oid myrelid,
          ObjectType reltype);
 
 extern void find_composite_type_dependencies(Oid typeOid,
-                                            const char *origTblName,
-                                            const char *origTypeName);
+                                const char *origTblName,
+                                const char *origTypeName);
 
 extern AttrNumber *varattnos_map(TupleDesc old, TupleDesc new);
 extern AttrNumber *varattnos_map_schema(TupleDesc old, List *schema);
index 8fcd0bb6aa7e8144afd33fbdc20bd4ae1c38b318..69ad97b4ec80a0da6ae6c54fd18056ffb237b0ce 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/commands/trigger.h,v 1.62 2007/03/19 23:38:31 wieck Exp $
+ * $PostgreSQL: pgsql/src/include/commands/trigger.h,v 1.63 2007/11/15 21:14:43 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -86,10 +86,10 @@ typedef struct TriggerData
 #define SESSION_REPLICATION_ROLE_LOCAL     2
 extern int SessionReplicationRole;
 
-#define    TRIGGER_FIRES_ON_ORIGIN             'O'
-#define    TRIGGER_FIRES_ALWAYS                'A'
-#define    TRIGGER_FIRES_ON_REPLICA            'R'
-#define    TRIGGER_DISABLED                    'D'
+#define TRIGGER_FIRES_ON_ORIGIN                'O'
+#define TRIGGER_FIRES_ALWAYS               'A'
+#define TRIGGER_FIRES_ON_REPLICA           'R'
+#define TRIGGER_DISABLED                   'D'
 
 extern Oid CreateTrigger(CreateTrigStmt *stmt, Oid constraintOid);
 
@@ -162,7 +162,7 @@ extern bool RI_FKey_keyequal_upd_pk(Trigger *trigger, Relation pk_rel,
 extern bool RI_FKey_keyequal_upd_fk(Trigger *trigger, Relation fk_rel,
                        HeapTuple old_row, HeapTuple new_row);
 extern bool RI_Initial_Check(Trigger *trigger,
-                            Relation fk_rel, Relation pk_rel);
+                Relation fk_rel, Relation pk_rel);
 
 /* result values for RI_FKey_trigger_type: */
 #define RI_TRIGGER_PK  1       /* is a trigger on the PK relation */
index de0c6aea9373672ee19fe0ac27b426ed051144b6..d316b82f5001dac3b39500a0bee7942a575413f1 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/commands/typecmds.h,v 1.19 2007/05/11 17:57:14 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/commands/typecmds.h,v 1.20 2007/11/15 21:14:43 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -24,7 +24,7 @@ extern void RemoveType(List *names, DropBehavior behavior, bool missing_ok);
 extern void RemoveTypeById(Oid typeOid);
 extern void DefineDomain(CreateDomainStmt *stmt);
 extern void RemoveDomain(List *names, DropBehavior behavior, bool missing_ok);
-extern void DefineEnum(CreateEnumStmt *stmt);
+extern void DefineEnum(CreateEnumStmt * stmt);
 extern Oid DefineCompositeType(const RangeVar *typevar, List *coldeflist);
 
 extern void AlterDomainDefault(List *names, Node *defaultRaw);
@@ -37,10 +37,10 @@ extern List *GetDomainConstraints(Oid typeOid);
 
 extern void AlterTypeOwner(List *names, Oid newOwnerId);
 extern void AlterTypeOwnerInternal(Oid typeOid, Oid newOwnerId,
-                                  bool hasDependEntry);
+                      bool hasDependEntry);
 extern void AlterTypeNamespace(List *names, const char *newschema);
 extern void AlterTypeNamespaceInternal(Oid typeOid, Oid nspOid,
-                                      bool isImplicitArray,
-                                      bool errorOnTableType);
+                          bool isImplicitArray,
+                          bool errorOnTableType);
 
 #endif   /* TYPECMDS_H */
index 4d97e9930dbbe04028ba56e8386f7527677bea4f..a9f546aa91ca489dfb132f789341d9e28719a5b6 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/commands/vacuum.h,v 1.73 2007/07/25 12:22:53 mha Exp $
+ * $PostgreSQL: pgsql/src/include/commands/vacuum.h,v 1.74 2007/11/15 21:14:43 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -107,13 +107,14 @@ typedef struct VacAttrStats
 
 
 /* GUC parameters */
-extern PGDLLIMPORT int default_statistics_target; /* PGDLLIMPORT for PostGIS */
+extern PGDLLIMPORT int default_statistics_target;      /* PGDLLIMPORT for
+                                                        * PostGIS */
 extern int vacuum_freeze_min_age;
 
 
 /* in commands/vacuum.c */
 extern void vacuum(VacuumStmt *vacstmt, List *relids,
-                  BufferAccessStrategy bstrategy, bool isTopLevel);
+      BufferAccessStrategy bstrategy, bool isTopLevel);
 extern void vac_open_indexes(Relation relation, LOCKMODE lockmode,
                 int *nindexes, Relation **Irel);
 extern void vac_close_indexes(int nindexes, Relation *Irel, LOCKMODE lockmode);
@@ -131,10 +132,10 @@ extern void vacuum_delay_point(void);
 
 /* in commands/vacuumlazy.c */
 extern void lazy_vacuum_rel(Relation onerel, VacuumStmt *vacstmt,
-                           BufferAccessStrategy bstrategy);
+               BufferAccessStrategy bstrategy);
 
 /* in commands/analyze.c */
 extern void analyze_rel(Oid relid, VacuumStmt *vacstmt,
-                       BufferAccessStrategy bstrategy);
+           BufferAccessStrategy bstrategy);
 
 #endif   /* VACUUM_H */
index ba26233e7dec02ffec74905fec0435d15b36666f..5f05e22a437f94e8b3f79e7336b75deb5d39acc5 100644 (file)
@@ -5,7 +5,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/commands/variable.h,v 1.30 2007/08/04 01:26:54 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/commands/variable.h,v 1.31 2007/11/15 21:14:43 momjian Exp $
  */
 #ifndef VARIABLE_H
 #define VARIABLE_H
@@ -19,7 +19,7 @@ extern const char *assign_timezone(const char *value,
                bool doit, GucSource source);
 extern const char *show_timezone(void);
 extern const char *assign_log_timezone(const char *value,
-               bool doit, GucSource source);
+                   bool doit, GucSource source);
 extern const char *show_log_timezone(void);
 extern const char *assign_XactIsoLevel(const char *value,
                    bool doit, GucSource source);
index d5ae745a296a62b03adc9ddbf01c85b03732f81d..f3dff5d8a54524b66a6504d7c37705c877a4ed1e 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/executor/execdesc.h,v 1.34 2007/02/20 17:32:17 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/executor/execdesc.h,v 1.35 2007/11/15 21:14:43 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -35,7 +35,7 @@ typedef struct QueryDesc
 {
    /* These fields are provided by CreateQueryDesc */
    CmdType     operation;      /* CMD_SELECT, CMD_UPDATE, etc. */
-   PlannedStmt *plannedstmt;   /* planner's output, or null if utility */
+   PlannedStmt *plannedstmt;   /* planner's output, or null if utility */
    Node       *utilitystmt;    /* utility statement, or null */
    Snapshot    snapshot;       /* snapshot to use for query */
    Snapshot    crosscheck_snapshot;    /* crosscheck for RI update/delete */
@@ -50,7 +50,7 @@ typedef struct QueryDesc
 } QueryDesc;
 
 /* in pquery.c */
-extern QueryDesc *CreateQueryDesc(PlannedStmt *plannedstmt,
+extern QueryDesc *CreateQueryDesc(PlannedStmt * plannedstmt,
                Snapshot snapshot,
                Snapshot crosscheck_snapshot,
                DestReceiver *dest,
@@ -58,9 +58,9 @@ extern QueryDesc *CreateQueryDesc(PlannedStmt *plannedstmt,
                bool doInstrument);
 
 extern QueryDesc *CreateUtilityQueryDesc(Node *utilitystmt,
-               Snapshot snapshot,
-               DestReceiver *dest,
-               ParamListInfo params);
+                      Snapshot snapshot,
+                      DestReceiver *dest,
+                      ParamListInfo params);
 
 extern void FreeQueryDesc(QueryDesc *qdesc);
 
index f4272cb758bacc3a3ae21ab881dc8ef54b04363e..47399bf047ec170f28efc06e6cb0882249abf6df 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/executor/executor.h,v 1.142 2007/08/15 21:39:50 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/executor/executor.h,v 1.143 2007/11/15 21:14:43 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -73,10 +73,10 @@ extern bool ExecMayReturnRawTuples(PlanState *node);
 /*
  * prototypes from functions in execCurrent.c
  */
-extern bool execCurrentOf(CurrentOfExpr *cexpr,
-                         ExprContext *econtext,
-                         Oid table_oid,
-                         ItemPointer current_tid);
+extern bool execCurrentOf(CurrentOfExpr * cexpr,
+             ExprContext *econtext,
+             Oid table_oid,
+             ItemPointer current_tid);
 
 /*
  * prototypes from functions in execGrouping.c
@@ -109,9 +109,9 @@ extern TupleHashEntry LookupTupleHashEntry(TupleHashTable hashtable,
                     TupleTableSlot *slot,
                     bool *isnew);
 extern TupleHashEntry FindTupleHashEntry(TupleHashTable hashtable,
-                                        TupleTableSlot *slot,
-                                        FmgrInfo *eqfunctions,
-                                        FmgrInfo *hashfunctions);
+                  TupleTableSlot *slot,
+                  FmgrInfo *eqfunctions,
+                  FmgrInfo *hashfunctions);
 
 /*
  * prototypes from functions in execJunk.c
@@ -122,9 +122,9 @@ extern JunkFilter *ExecInitJunkFilterConversion(List *targetList,
                             TupleDesc cleanTupType,
                             TupleTableSlot *slot);
 extern AttrNumber ExecFindJunkAttribute(JunkFilter *junkfilter,
-                                       const char *attrName);
+                     const char *attrName);
 extern Datum ExecGetJunkAttribute(TupleTableSlot *slot, AttrNumber attno,
-                                 bool *isNull);
+                    bool *isNull);
 extern TupleTableSlot *ExecFilterJunk(JunkFilter *junkfilter,
               TupleTableSlot *slot);
 extern HeapTuple ExecRemoveJunk(JunkFilter *junkfilter, TupleTableSlot *slot);
@@ -271,7 +271,7 @@ extern ProjectionInfo *ExecBuildProjectionInfo(List *targetList,
                        TupleTableSlot *slot,
                        TupleDesc inputDesc);
 extern void ExecAssignProjectionInfo(PlanState *planstate,
-                                    TupleDesc inputDesc);
+                        TupleDesc inputDesc);
 extern void ExecFreeExprContext(PlanState *planstate);
 extern TupleDesc ExecGetScanType(ScanState *scanstate);
 extern void ExecAssignScanType(ScanState *scanstate, TupleDesc tupDesc);
index 3ef50993c6245c1eb0146568fee3d6e73d7965a3..b1d44b5028c15897350c5aea050c206f499dd0f8 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/executor/spi.h,v 1.63 2007/08/15 19:15:46 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/executor/spi.h,v 1.64 2007/11/15 21:14:43 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -62,7 +62,7 @@ typedef struct _SPI_plan *SPIPlanPtr;
 #define SPI_ERROR_COPY         (-2)
 #define SPI_ERROR_OPUNKNOWN        (-3)
 #define SPI_ERROR_UNCONNECTED  (-4)
-#define SPI_ERROR_CURSOR       (-5)            /* not used anymore */
+#define SPI_ERROR_CURSOR       (-5)    /* not used anymore */
 #define SPI_ERROR_ARGUMENT     (-6)
 #define SPI_ERROR_PARAM            (-7)
 #define SPI_ERROR_TRANSACTION  (-8)
@@ -95,19 +95,19 @@ extern void SPI_push(void);
 extern void SPI_pop(void);
 extern void SPI_restore_connection(void);
 extern int SPI_execute(const char *src, bool read_only, long tcount);
-extern int SPI_execute_plan(SPIPlanPtr plan, Datum *Values, const char *Nulls,
+extern int SPI_execute_plan(SPIPlanPtr plan, Datum *Values, const char *Nulls,
                 bool read_only, long tcount);
 extern int SPI_exec(const char *src, long tcount);
-extern int SPI_execp(SPIPlanPtr plan, Datum *Values, const char *Nulls,
+extern int SPI_execp(SPIPlanPtr plan, Datum *Values, const char *Nulls,
          long tcount);
-extern int SPI_execute_snapshot(SPIPlanPtr plan,
+extern int SPI_execute_snapshot(SPIPlanPtr plan,
                     Datum *Values, const char *Nulls,
                     Snapshot snapshot,
                     Snapshot crosscheck_snapshot,
                     bool read_only, bool fire_triggers, long tcount);
 extern SPIPlanPtr SPI_prepare(const char *src, int nargs, Oid *argtypes);
 extern SPIPlanPtr SPI_prepare_cursor(const char *src, int nargs, Oid *argtypes,
-                                    int cursorOptions);
+                  int cursorOptions);
 extern SPIPlanPtr SPI_saveplan(SPIPlanPtr plan);
 extern int SPI_freeplan(SPIPlanPtr plan);
 
index 74ab860334f3675aa284a3cf8ad7db351a4bcd91..197ba5b5cbdecf9f721a4db13155e0e02089b7fb 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/executor/spi_priv.h,v 1.29 2007/04/16 17:21:23 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/executor/spi_priv.h,v 1.30 2007/11/15 21:14:43 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -43,7 +43,7 @@ typedef struct
  * For a saved plan, the _SPI_plan struct and the argument type array are in
  * the plancxt (which can be really small).  All the other subsidiary state
  * is in plancache entries identified by plancache_list (note: the list cells
- * themselves are in plancxt).  We rely on plancache.c to keep the cache
+ * themselves are in plancxt). We rely on plancache.c to keep the cache
  * entries up-to-date as needed.  The plancxt is a child of CacheMemoryContext
  * since it should persist until explicitly destroyed.
  *
@@ -63,9 +63,9 @@ typedef struct _SPI_plan
 {
    int         magic;          /* should equal _SPI_PLAN_MAGIC */
    bool        saved;          /* saved or unsaved plan? */
-   List       *plancache_list; /* one CachedPlanSource per parsetree */
+   List       *plancache_list; /* one CachedPlanSource per parsetree */
    MemoryContext plancxt;      /* Context containing _SPI_plan and data */
-   int         cursor_options; /* Cursor options used for planning */
+   int         cursor_options; /* Cursor options used for planning */
    int         nargs;          /* number of plan arguments */
    Oid        *argtypes;       /* Argument types (NULL if nargs is 0) */
 } _SPI_plan;
index 51e0c02d96bbe80d4ba78347f781b6e8f02da6f7..933d4b422a09a189e277ed7bc79725999ae3a22e 100644 (file)
@@ -11,7 +11,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/fmgr.h,v 1.55 2007/09/27 21:01:59 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/fmgr.h,v 1.56 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -154,7 +154,7 @@ extern void fmgr_info_copy(FmgrInfo *dstinfo, FmgrInfo *srcinfo,
  * checked for null inputs first, if necessary.
  *
  * pg_detoast_datum_packed() will return packed (1-byte header) datums
- * unmodified.  It will still expand an externally toasted or compressed datum.
+ * unmodified. It will still expand an externally toasted or compressed datum.
  * The resulting datum can be accessed using VARSIZE_ANY() and VARDATA_ANY()
  * (beware of multiple evaluations in those macros!)
  *
index 0259b4343ebcb0aa47a24474a12a697ada7a6206..65b248f085a7b067b5f778e7196cbdb43ddab731 100644 (file)
@@ -11,7 +11,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/libpq/libpq-be.h,v 1.63 2007/08/02 23:39:45 adunstan Exp $
+ * $PostgreSQL: pgsql/src/include/libpq/libpq-be.h,v 1.64 2007/11/15 21:14:43 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -34,8 +34,8 @@
 #include <gssapi.h>
 #else
 #include <gssapi/gssapi.h>
-#endif /* HAVE_GSSAPI_H */
-/* 
+#endif   /* HAVE_GSSAPI_H */
+/*
  * GSSAPI brings in headers that set a lot of things in the global namespace on win32,
  * that doesn't match the msvc build. It gives a bunch of compiler warnings that we ignore,
  * but also defines a symbol that simply does not exist. Undefine it again.
@@ -43,7 +43,7 @@
 #ifdef WIN32_ONLY_COMPILER
 #undef HAVE_GETADDRINFO
 #endif
-#endif /* ENABLE_GSS */
+#endif   /* ENABLE_GSS */
 
 #ifdef ENABLE_SSPI
 #define SECURITY_WIN32
 /*
  * Define a fake structure compatible with GSSAPI on Unix.
  */
-typedef struct {
-   void *value;
-   int length;
-} gss_buffer_desc;
+typedef struct
+{
+   void       *value;
+   int         length;
+}  gss_buffer_desc;
 #endif
-#endif /* ENABLE_SSPI */
+#endif   /* ENABLE_SSPI */
 
 #include "libpq/hba.h"
 #include "libpq/pqcomm.h"
@@ -78,13 +79,13 @@ typedef enum CAC_state
 #if defined(ENABLE_GSS) | defined(ENABLE_SSPI)
 typedef struct
 {
-   gss_buffer_desc outbuf;     /* GSSAPI output token buffer */
+   gss_buffer_desc outbuf;     /* GSSAPI output token buffer */
 #ifdef ENABLE_GSS
-   gss_cred_id_t   cred;       /* GSSAPI connection cred's */
-   gss_ctx_id_t    ctx;        /* GSSAPI connection context */
-   gss_name_t      name;       /* GSSAPI client name */
+   gss_cred_id_t cred;         /* GSSAPI connection cred's */
+   gss_ctx_id_t ctx;           /* GSSAPI connection context */
+   gss_name_t  name;           /* GSSAPI client name */
 #endif
-} pg_gssinfo;
+}  pg_gssinfo;
 #endif
 
 /*
@@ -146,10 +147,10 @@ typedef struct Port
    int         keepalives_count;
 
 #if defined(ENABLE_GSS) || defined(ENABLE_SSPI)
+
    /*
-    * If GSSAPI is supported, store GSSAPI information.
-    * Oterwise, store a NULL pointer to make sure offsets
-    * in the struct remain the same.
+    * If GSSAPI is supported, store GSSAPI information. Oterwise, store a
+    * NULL pointer to make sure offsets in the struct remain the same.
     */
    pg_gssinfo *gss;
 #else
index ec7427b6de0099843b7cfdfcee5184e3653dee51..90e13a92d8a83a579e655543ed2884a141b51b2b 100644 (file)
@@ -9,7 +9,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/libpq/pqcomm.h,v 1.106 2007/07/23 10:16:54 mha Exp $
+ * $PostgreSQL: pgsql/src/include/libpq/pqcomm.h,v 1.107 2007/11/15 21:14:43 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -158,7 +158,7 @@ extern bool Db_user_namespace;
 #define AUTH_REQ_SCM_CREDS 6   /* transfer SCM credentials */
 #define AUTH_REQ_GSS       7   /* GSSAPI without wrap() */
 #define AUTH_REQ_GSS_CONT  8   /* Continue GSS exchanges */
-#define AUTH_REQ_SSPI      9   /* SSPI negotiate without wrap() */
+#define AUTH_REQ_SSPI      9   /* SSPI negotiate without wrap() */
 
 typedef uint32 AuthRequest;
 
index 34c1ec1d18d734a3ec1eecff6e1bd5b1b48df393..4155055e101b8181027f70e234b1145a79a8da77 100644 (file)
@@ -6,11 +6,11 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/mb/pg_wchar.h,v 1.75 2007/10/15 22:46:27 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/mb/pg_wchar.h,v 1.76 2007/11/15 21:14:43 momjian Exp $
  *
  * NOTES
  *     This is used both by the backend and by libpq, but should not be
- *     included by libpq client programs.  In particular, a libpq client
+ *     included by libpq client programs.  In particular, a libpq client
  *     should not assume that the encoding IDs used by the version of libpq
  *     it's linked to match up with the IDs declared here.
  *
@@ -161,7 +161,7 @@ typedef unsigned int pg_wchar;
  *
  * PG_SQL_ASCII is default encoding and must be = 0.
  *
- * XXX  We must avoid renumbering any backend encoding until libpq's major
+ * XXX We must avoid renumbering any backend encoding until libpq's major
  * version number is increased beyond 5; it turns out that the backend
  * encoding IDs are effectively part of libpq's ABI as far as 8.2 initdb and
  * psql are concerned.
@@ -292,8 +292,8 @@ extern pg_wchar_tbl pg_wchar_table[];
  */
 typedef struct
 {
-   uint32 utf;         /* UTF-8 */
-   uint32 code;        /* local code */
+   uint32      utf;            /* UTF-8 */
+   uint32      code;           /* local code */
 } pg_utf_to_local;
 
 /*
@@ -301,8 +301,8 @@ typedef struct
  */
 typedef struct
 {
-   uint32 code;        /* local code */
-   uint32 utf;         /* UTF-8 */
+   uint32      code;           /* local code */
+   uint32      utf;            /* UTF-8 */
 } pg_local_to_utf;
 
 /*
@@ -310,20 +310,20 @@ typedef struct
  */
 typedef struct
 {
-   uint32 utf1;            /* UTF-8 code 1 */
-   uint32 utf2;            /* UTF-8 code 2 */
-   uint32 code;            /* local code */
-} pg_utf_to_local_combined;
+   uint32      utf1;           /* UTF-8 code 1 */
+   uint32      utf2;           /* UTF-8 code 2 */
+   uint32      code;           /* local code */
+}  pg_utf_to_local_combined;
 
 /*
  * local code to UTF-8 conversion map(combined characters)
  */
 typedef struct
 {
-   uint32 code;            /* local code */
-   uint32 utf1;            /* UTF-8 code 1 */
-   uint32 utf2;            /* UTF-8 code 2 */
-} pg_local_to_utf_combined;
+   uint32      code;           /* local code */
+   uint32      utf1;           /* UTF-8 code 1 */
+   uint32      utf2;           /* UTF-8 code 2 */
+}  pg_local_to_utf_combined;
 
 
 /*
@@ -342,8 +342,8 @@ extern pg_encname *pg_char_to_encname_struct(const char *name);
 
 extern int pg_mb2wchar(const char *from, pg_wchar *to);
 extern int pg_mb2wchar_with_len(const char *from, pg_wchar *to, int len);
-extern int pg_encoding_mb2wchar_with_len(int encoding,
-                                   const char *from, pg_wchar *to, int len);
+extern int pg_encoding_mb2wchar_with_len(int encoding,
+                             const char *from, pg_wchar *to, int len);
 extern int pg_char_and_wchar_strcmp(const char *s1, const pg_wchar *s2);
 extern int pg_wchar_strncmp(const pg_wchar *s1, const pg_wchar *s2, size_t n);
 extern int pg_char_and_wchar_strncmp(const char *s1, const pg_wchar *s2, size_t n);
@@ -387,18 +387,18 @@ extern unsigned short BIG5toCNS(unsigned short big5, unsigned char *lc);
 extern unsigned short CNStoBIG5(unsigned short cns, unsigned char lc);
 
 extern void LocalToUtf(const unsigned char *iso, unsigned char *utf,
-                      const pg_local_to_utf *map, const pg_local_to_utf_combined *cmap,
-                      int size1, int size2, int encoding, int len);
+          const pg_local_to_utf *map, const pg_local_to_utf_combined * cmap,
+          int size1, int size2, int encoding, int len);
 
 extern void UtfToLocal(const unsigned char *utf, unsigned char *iso,
-                      const pg_utf_to_local *map, const pg_utf_to_local_combined *cmap,
-                      int size1, int size2, int encoding, int len);
+          const pg_utf_to_local *map, const pg_utf_to_local_combined * cmap,
+          int size1, int size2, int encoding, int len);
 
 extern bool pg_verifymbstr(const char *mbstr, int len, bool noError);
 extern bool pg_verify_mbstr(int encoding, const char *mbstr, int len,
                bool noError);
 extern int pg_verify_mbstr_len(int encoding, const char *mbstr, int len,
-               bool noError);
+                   bool noError);
 
 extern void report_invalid_encoding(int encoding, const char *mbstr, int len);
 extern void report_untranslatable_char(int src_encoding, int dest_encoding,
index 200c8df0d4090dde12a0e1c2d21dd9ef6aca1ef7..65ac8fd13c3c664501c551f0f6ff96098b1b9cd1 100644 (file)
@@ -13,7 +13,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/miscadmin.h,v 1.196 2007/08/02 23:39:44 adunstan Exp $
+ * $PostgreSQL: pgsql/src/include/miscadmin.h,v 1.197 2007/11/15 21:14:42 momjian Exp $
  *
  * NOTES
  *   some of the information in this file should be moved to other files.
@@ -23,7 +23,7 @@
 #ifndef MISCADMIN_H
 #define MISCADMIN_H
 
-#include <time.h> /* for time_t */
+#include <time.h>              /* for time_t */
 
 
 #define PG_VERSIONSTR "postgres (PostgreSQL) " PG_VERSION "\n"
index fbb07feae7e6869725fd1d38d3b5fdae389691c0..24f472de91c0aad717009c6ac974b7c94bd38499 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/nodes/execnodes.h,v 1.179 2007/10/24 18:37:08 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/nodes/execnodes.h,v 1.180 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -318,7 +318,7 @@ typedef struct EState
    JunkFilter *es_junkFilter;  /* currently active junk filter */
 
    /* Stuff used for firing triggers: */
-   List       *es_trig_target_relations;   /* trigger-only ResultRelInfos */
+   List       *es_trig_target_relations;       /* trigger-only ResultRelInfos */
    TupleTableSlot *es_trig_tuple_slot; /* for trigger output tuples */
 
    /* Stuff used for SELECT INTO: */
@@ -344,7 +344,7 @@ typedef struct EState
 
    List       *es_exprcontexts;    /* List of ExprContexts within EState */
 
-   List       *es_subplanstates;   /* List of PlanState for SubPlans */
+   List       *es_subplanstates;       /* List of PlanState for SubPlans */
 
    /*
     * this ExprContext is for per-output-tuple operations, such as constraint
@@ -404,7 +404,7 @@ typedef struct TupleHashTableData
    HTAB       *hashtab;        /* underlying dynahash table */
    int         numCols;        /* number of columns in lookup key */
    AttrNumber *keyColIdx;      /* attr numbers of key columns */
-   FmgrInfo   *tab_hash_funcs; /* hash functions for table datatype(s) */
+   FmgrInfo   *tab_hash_funcs; /* hash functions for table datatype(s) */
    FmgrInfo   *tab_eq_funcs;   /* equality functions for table datatype(s) */
    MemoryContext tablecxt;     /* memory context containing table */
    MemoryContext tempcxt;      /* context for function evaluations */
@@ -618,9 +618,9 @@ typedef struct SubPlanState
    MemoryContext tablecxt;     /* memory context containing tables */
    ExprContext *innerecontext; /* working context for comparisons */
    AttrNumber *keyColIdx;      /* control data for hash tables */
-   FmgrInfo   *tab_hash_funcs; /* hash functions for table datatype(s) */
+   FmgrInfo   *tab_hash_funcs; /* hash functions for table datatype(s) */
    FmgrInfo   *tab_eq_funcs;   /* equality functions for table datatype(s) */
-   FmgrInfo   *lhs_hash_funcs; /* hash functions for lefthand datatype(s) */
+   FmgrInfo   *lhs_hash_funcs; /* hash functions for lefthand datatype(s) */
    FmgrInfo   *cur_eq_funcs;   /* equality functions for LHS vs. table */
 } SubPlanState;
 
@@ -658,7 +658,7 @@ typedef struct CoerceViaIOState
    FmgrInfo    outfunc;        /* lookup info for source output function */
    FmgrInfo    infunc;         /* lookup info for result input function */
    Oid         intypioparam;   /* argument needed for input function */
-} CoerceViaIOState;
+}  CoerceViaIOState;
 
 /* ----------------
  *     ArrayCoerceExprState node
@@ -668,11 +668,11 @@ typedef struct ArrayCoerceExprState
 {
    ExprState   xprstate;
    ExprState  *arg;            /* input array value */
-   Oid         resultelemtype; /* element type of result array */
+   Oid         resultelemtype; /* element type of result array */
    FmgrInfo    elemfunc;       /* lookup info for element coercion function */
    /* use struct pointer to avoid including array.h here */
-   struct ArrayMapState *amstate;  /* workspace for array_map */
-} ArrayCoerceExprState;
+   struct ArrayMapState *amstate;      /* workspace for array_map */
+}  ArrayCoerceExprState;
 
 /* ----------------
  *     ConvertRowtypeExprState node
@@ -782,9 +782,9 @@ typedef struct XmlExprState
 {
    ExprState   xprstate;
    List       *named_args;     /* ExprStates for named arguments */
-   FmgrInfo   *named_outfuncs; /* array of output fns for named arguments */
+   FmgrInfo   *named_outfuncs; /* array of output fns for named arguments */
    List       *args;           /* ExprStates for other arguments */
-} XmlExprState;
+}  XmlExprState;
 
 /* ----------------
  *     NullTestState node
@@ -1087,7 +1087,7 @@ typedef struct BitmapHeapScanState
 /* ----------------
  *  TidScanState information
  *
- *     isCurrentOf    scan has a CurrentOfExpr qual
+ *     isCurrentOf    scan has a CurrentOfExpr qual
  *     NumTids        number of tids in this scan
  *     TidPtr         index of currently fetched tid
  *     TidList        evaluated item pointers (array of size NumTids)
index 7a94152b42244f9315c97bbd0bcf5efc2663259d..009a20ea6815645e2e47d2e27dfeac7ef74d4eb8 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/nodes/params.h,v 1.35 2007/03/13 00:33:43 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/nodes/params.h,v 1.36 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -83,6 +83,6 @@ typedef struct ParamExecData
 extern ParamListInfo copyParamList(ParamListInfo from);
 
 extern void getParamListTypes(ParamListInfo params,
-                             Oid **param_types, int *num_params);
+                 Oid **param_types, int *num_params);
 
 #endif   /* PARAMS_H */
index e1a6198e01250f264b0d12f3d7bbc0e3b21fee3e..3e7287166ef2141fc02f44bd66f444492a599433 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/nodes/parsenodes.h,v 1.354 2007/10/24 23:27:08 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/nodes/parsenodes.h,v 1.355 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -34,14 +34,14 @@ typedef enum SortByDir
    SORTBY_ASC,
    SORTBY_DESC,
    SORTBY_USING                /* not allowed in CREATE INDEX ... */
-} SortByDir;
+}  SortByDir;
 
 typedef enum SortByNulls
 {
    SORTBY_NULLS_DEFAULT,
    SORTBY_NULLS_FIRST,
    SORTBY_NULLS_LAST
-} SortByNulls;
+}  SortByNulls;
 
 
 /*
@@ -338,7 +338,7 @@ typedef struct SortBy
 {
    NodeTag     type;
    SortByDir   sortby_dir;     /* ASC/DESC/USING */
-   SortByNulls sortby_nulls;   /* NULLS FIRST/LAST */
+   SortByNulls sortby_nulls;   /* NULLS FIRST/LAST */
    List       *useOp;          /* name of op to use, if SORTBY_USING */
    Node       *node;           /* expression to sort on */
 } SortBy;
@@ -427,7 +427,7 @@ typedef struct IndexElem
    Node       *expr;           /* expression to index, or NULL */
    List       *opclass;        /* name of desired opclass; NIL = default */
    SortByDir   ordering;       /* ASC/DESC/default */
-   SortByNulls nulls_ordering; /* FIRST/LAST/default */
+   SortByNulls nulls_ordering; /* FIRST/LAST/default */
 } IndexElem;
 
 /*
@@ -464,7 +464,7 @@ typedef struct XmlSerialize
    XmlOptionType xmloption;
    Node       *expr;
    TypeName   *typename;
-} XmlSerialize;
+}  XmlSerialize;
 
 
 /****************************************************************************
@@ -624,8 +624,8 @@ typedef struct SortClause
 {
    NodeTag     type;
    Index       tleSortGroupRef;    /* reference into targetlist */
-   Oid         sortop;             /* the ordering operator ('<' op) */
-   bool        nulls_first;        /* do NULLs come before normal values? */
+   Oid         sortop;         /* the ordering operator ('<' op) */
+   bool        nulls_first;    /* do NULLs come before normal values? */
 } SortClause;
 
 /*
@@ -1065,7 +1065,7 @@ typedef enum
    VAR_SET_MULTI,              /* special case for SET TRANSACTION ... */
    VAR_RESET,                  /* RESET var */
    VAR_RESET_ALL               /* RESET ALL */
-} VariableSetKind;
+}  VariableSetKind;
 
 typedef struct VariableSetStmt
 {
@@ -1397,7 +1397,7 @@ typedef struct CreateOpFamilyStmt
    NodeTag     type;
    List       *opfamilyname;   /* qualified name (list of Value strings) */
    char       *amname;         /* name of index AM opfamily is for */
-} CreateOpFamilyStmt;
+}  CreateOpFamilyStmt;
 
 /* ----------------------
  *     Alter Operator Family Statement
@@ -1410,7 +1410,7 @@ typedef struct AlterOpFamilyStmt
    char       *amname;         /* name of index AM opfamily is for */
    bool        isDrop;         /* ADD or DROP the items? */
    List       *items;          /* List of CreateOpClassItem nodes */
-} AlterOpFamilyStmt;
+}  AlterOpFamilyStmt;
 
 /* ----------------------
  *     Drop Table|Sequence|View|Index|Type|Domain|Conversion|Schema Statement
@@ -1472,16 +1472,16 @@ typedef struct CommentStmt
  *     Declare Cursor Statement
  *
  * Note: the "query" field of DeclareCursorStmt is only used in the raw grammar
- * output.  After parse analysis it's set to null, and the Query points to the
+ * output. After parse analysis it's set to null, and the Query points to the
  * DeclareCursorStmt, not vice versa.
  * ----------------------
  */
-#define CURSOR_OPT_BINARY      0x0001      /* BINARY */
-#define CURSOR_OPT_SCROLL      0x0002      /* SCROLL explicitly given */
-#define CURSOR_OPT_NO_SCROLL   0x0004      /* NO SCROLL explicitly given */
-#define CURSOR_OPT_INSENSITIVE 0x0008      /* INSENSITIVE */
-#define CURSOR_OPT_HOLD            0x0010      /* WITH HOLD */
-#define CURSOR_OPT_FAST_PLAN   0x0020      /* prefer fast-start plan */
+#define CURSOR_OPT_BINARY      0x0001  /* BINARY */
+#define CURSOR_OPT_SCROLL      0x0002  /* SCROLL explicitly given */
+#define CURSOR_OPT_NO_SCROLL   0x0004  /* NO SCROLL explicitly given */
+#define CURSOR_OPT_INSENSITIVE 0x0008  /* INSENSITIVE */
+#define CURSOR_OPT_HOLD            0x0010  /* WITH HOLD */
+#define CURSOR_OPT_FAST_PLAN   0x0020  /* prefer fast-start plan */
 
 typedef struct DeclareCursorStmt
 {
@@ -1499,7 +1499,7 @@ typedef struct ClosePortalStmt
 {
    NodeTag     type;
    char       *portalname;     /* name of the portal (cursor) */
-                               /* NULL means CLOSE ALL */
+   /* NULL means CLOSE ALL */
 } ClosePortalStmt;
 
 /* ----------------------
@@ -1624,7 +1624,7 @@ typedef struct RemoveOpFamilyStmt
    char       *amname;         /* name of index AM opfamily is for */
    DropBehavior behavior;      /* RESTRICT or CASCADE behavior */
    bool        missing_ok;     /* skip error if missing? */
-} RemoveOpFamilyStmt;
+}  RemoveOpFamilyStmt;
 
 /* ----------------------
  *     Alter Object Rename Statement
@@ -1765,7 +1765,7 @@ typedef struct CreateEnumStmt
    NodeTag     type;
    List       *typename;       /* qualified name (list of Value strings) */
    List       *vals;           /* enum values (list of Value strings) */
-} CreateEnumStmt;
+}  CreateEnumStmt;
 
 
 /* ----------------------
@@ -1856,7 +1856,7 @@ typedef struct VacuumStmt
    bool        full;           /* do FULL (non-concurrent) vacuum */
    bool        analyze;        /* do ANALYZE step */
    bool        verbose;        /* print progress info */
-   int         freeze_min_age; /* min freeze age, or -1 to use default */
+   int         freeze_min_age; /* min freeze age, or -1 to use default */
    RangeVar   *relation;       /* single table to process, or NULL */
    List       *va_cols;        /* list of column names, or NIL for all */
 } VacuumStmt;
@@ -1892,13 +1892,13 @@ typedef enum DiscardMode
    DISCARD_ALL,
    DISCARD_PLANS,
    DISCARD_TEMP
-} DiscardMode;
+}  DiscardMode;
 
 typedef struct DiscardStmt
 {
    NodeTag     type;
-   DiscardMode target;
-} DiscardStmt;
+   DiscardMode target;
+}  DiscardStmt;
 
 /* ----------------------
  *     LOCK Statement
@@ -2013,7 +2013,7 @@ typedef struct DeallocateStmt
 {
    NodeTag     type;
    char       *name;           /* The name of the plan to remove */
-                               /* NULL means DEALLOCATE ALL */
+   /* NULL means DEALLOCATE ALL */
 } DeallocateStmt;
 
 /*
@@ -2044,7 +2044,7 @@ typedef struct AlterTSDictionaryStmt
    NodeTag     type;
    List       *dictname;       /* qualified name (list of Value strings) */
    List       *options;        /* List of DefElem nodes */
-} AlterTSDictionaryStmt;
+}  AlterTSDictionaryStmt;
 
 /*
  * TS Configuration stmts: DefineStmt, RenameStmt and DropStmt are default
@@ -2055,14 +2055,14 @@ typedef struct AlterTSConfigurationStmt
    List       *cfgname;        /* qualified name (list of Value strings) */
 
    /*
-    * dicts will be non-NIL if ADD/ALTER MAPPING was specified.
-    * If dicts is NIL, but tokentype isn't, DROP MAPPING was specified.
+    * dicts will be non-NIL if ADD/ALTER MAPPING was specified. If dicts is
+    * NIL, but tokentype isn't, DROP MAPPING was specified.
     */
-   List        *tokentype;     /* list of Value strings */
-   List        *dicts;         /* list of list of Value strings */
-   bool         override;      /* if true - remove old variant */
-   bool         replace;       /* if true - replace dictionary by another */
-   bool         missing_ok;    /* for DROP - skip error if missing? */
-} AlterTSConfigurationStmt;
+   List       *tokentype;      /* list of Value strings */
+   List       *dicts;          /* list of list of Value strings */
+   bool        override;       /* if true - remove old variant */
+   bool        replace;        /* if true - replace dictionary by another */
+   bool        missing_ok;     /* for DROP - skip error if missing? */
+}  AlterTSConfigurationStmt;
 
 #endif   /* PARSENODES_H */
index 9b6c637284677daf9c09a93d23cf17329195f3e2..6dab3cda68965db895af269a9366df81f6d9bed0 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/nodes/plannodes.h,v 1.96 2007/10/11 18:05:27 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/nodes/plannodes.h,v 1.97 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -73,7 +73,7 @@ typedef struct PlannedStmt
    List       *relationOids;   /* OIDs of relations the plan depends on */
 
    int         nParamExec;     /* number of PARAM_EXEC Params used */
-} PlannedStmt;
+}  PlannedStmt;
 
 /* macro for fetching the Plan associated with a SubPlan node */
 #define exec_subplan_get_plan(plannedstmt, subplan) \
@@ -406,7 +406,7 @@ typedef struct NestLoop
  *
  * The expected ordering of each mergeable column is described by a btree
  * opfamily OID, a direction (BTLessStrategyNumber or BTGreaterStrategyNumber)
- * and a nulls-first flag.  Note that the two sides of each mergeclause may
+ * and a nulls-first flag. Note that the two sides of each mergeclause may
  * be of different datatypes, but they are ordered the same way according to
  * the common opfamily.  The operator in each mergeclause must be an equality
  * operator of the indicated opfamily.
@@ -415,9 +415,9 @@ typedef struct NestLoop
 typedef struct MergeJoin
 {
    Join        join;
-   List       *mergeclauses;       /* mergeclauses as expression trees */
+   List       *mergeclauses;   /* mergeclauses as expression trees */
    /* these are arrays, but have the same length as the mergeclauses list: */
-   Oid        *mergeFamilies;      /* per-clause OIDs of btree opfamilies */
+   Oid        *mergeFamilies;  /* per-clause OIDs of btree opfamilies */
    int        *mergeStrategies;    /* per-clause ordering (ASC or DESC) */
    bool       *mergeNullsFirst;    /* per-clause nulls ordering */
 } MergeJoin;
index 01e94bc5f0ebf218eeb42f94f2a6a3b1a42291e9..7cfa057d35e72a1ff29bc744dc91e0400d8a56e4 100644 (file)
@@ -10,7 +10,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/nodes/primnodes.h,v 1.133 2007/08/26 21:44:25 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/nodes/primnodes.h,v 1.134 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -89,8 +89,8 @@ typedef struct IntoClause
    List       *colNames;       /* column names to assign, or NIL */
    List       *options;        /* options from WITH clause */
    OnCommitAction onCommit;    /* what do we do at COMMIT? */
-   char       *tableSpaceName; /* table space to use, or NULL */
-} IntoClause;
+   char       *tableSpaceName; /* table space to use, or NULL */
+}  IntoClause;
 
 
 /* ----------------------------------------------------------------
@@ -566,7 +566,7 @@ typedef struct CoerceViaIO
    Oid         resulttype;     /* output type of coercion */
    /* output typmod is not stored, but is presumed -1 */
    CoercionForm coerceformat;  /* how to display this node */
-} CoerceViaIO;
+}  CoerceViaIO;
 
 /* ----------------
  * ArrayCoerceExpr
@@ -589,7 +589,7 @@ typedef struct ArrayCoerceExpr
    int32       resulttypmod;   /* output typmod (also element typmod) */
    bool        isExplicit;     /* conversion semantics flag to pass to func */
    CoercionForm coerceformat;  /* how to display this node */
-} ArrayCoerceExpr;
+}  ArrayCoerceExpr;
 
 /* ----------------
  * ConvertRowtypeExpr
@@ -792,13 +792,13 @@ typedef enum XmlExprOp
    IS_XMLROOT,                 /* XMLROOT(xml, version, standalone) */
    IS_XMLSERIALIZE,            /* XMLSERIALIZE(is_document, xmlval) */
    IS_DOCUMENT                 /* xmlval IS DOCUMENT */
-} XmlExprOp;
+}  XmlExprOp;
 
 typedef enum
 {
    XMLOPTION_DOCUMENT,
    XMLOPTION_CONTENT
-} XmlOptionType;
+}  XmlOptionType;
 
 typedef struct XmlExpr
 {
@@ -811,7 +811,7 @@ typedef struct XmlExpr
    XmlOptionType xmloption;    /* DOCUMENT or CONTENT */
    Oid         type;           /* target type for XMLSERIALIZE */
    int32       typmod;
-} XmlExpr;
+}  XmlExpr;
 
 /*
  * NullIfExpr - a NULLIF expression
@@ -933,7 +933,7 @@ typedef struct CurrentOfExpr
    Index       cvarno;         /* RT index of target relation */
    char       *cursor_name;    /* name of referenced cursor, or NULL */
    int         cursor_param;   /* refcursor parameter number, or 0 */
-} CurrentOfExpr;
+}  CurrentOfExpr;
 
 /*--------------------
  * TargetEntry -
index db6eef209644c2c477d8ae4417ae97b9df38214c..2a33b82bd36f6fa2feaf9e9cd527d6f6c69cc7d7 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/nodes/relation.h,v 1.148 2007/11/08 21:49:48 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/nodes/relation.h,v 1.149 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -75,7 +75,7 @@ typedef struct PlannerGlobal
    List       *relationOids;   /* OIDs of relations the plan depends on */
 
    bool        transientPlan;  /* redo plan when TransactionXmin changes? */
-} PlannerGlobal;
+}  PlannerGlobal;
 
 /* macro for fetching the Plan associated with a SubPlan node */
 #define planner_subplan_get_plan(root, subplan) \
@@ -118,7 +118,7 @@ typedef struct PlannerInfo
     * rt_fetch(), which can be a bit slow once large inheritance sets have
     * been expanded.
     */
-   RangeTblEntry **simple_rte_array;           /* rangetable as an array */
+   RangeTblEntry **simple_rte_array;   /* rangetable as an array */
 
    /*
     * join_rel_list is a list of all join-relation RelOptInfos we have
@@ -134,13 +134,13 @@ typedef struct PlannerInfo
 
    List       *resultRelations;    /* integer list of RT indexes, or NIL */
 
-   List       *returningLists;     /* list of lists of TargetEntry, or NIL */
+   List       *returningLists; /* list of lists of TargetEntry, or NIL */
 
-   List       *init_plans;             /* init subplans for query */
+   List       *init_plans;     /* init subplans for query */
 
-   List       *eq_classes;             /* list of active EquivalenceClasses */
+   List       *eq_classes;     /* list of active EquivalenceClasses */
 
-   List       *canon_pathkeys;         /* list of "canonical" PathKeys */
+   List       *canon_pathkeys; /* list of "canonical" PathKeys */
 
    List       *left_join_clauses;      /* list of RestrictInfos for
                                         * mergejoinable outer join clauses
@@ -383,7 +383,7 @@ typedef struct RelOptInfo
  *     Zeroes in the indexkeys[] array indicate index columns that are
  *     expressions; there is one element in indexprs for each such column.
  *
- *     For an unordered index, the sortop arrays contains zeroes.  Note that
+ *     For an unordered index, the sortop arrays contains zeroes.  Note that
  *     fwdsortop[] and nulls_first[] describe the sort ordering of a forward
  *     indexscan; we can also consider a backward indexscan, which will
  *     generate sort order described by revsortop/!nulls_first.
@@ -444,7 +444,7 @@ typedef struct IndexOptInfo
  * us represent knowledge about different sort orderings being equivalent.
  * Since every PathKey must reference an EquivalenceClass, we will end up
  * with single-member EquivalenceClasses whenever a sort key expression has
- * not been equivalenced to anything else.  It is also possible that such an
+ * not been equivalenced to anything else. It is also possible that such an
  * EquivalenceClass will contain a volatile expression ("ORDER BY random()"),
  * which is a case that can't arise otherwise since clauses containing
  * volatile functions are never considered mergejoinable.  We mark such
@@ -457,7 +457,7 @@ typedef struct IndexOptInfo
  * We allow equality clauses appearing below the nullable side of an outer join
  * to form EquivalenceClasses, but these have a slightly different meaning:
  * the included values might be all NULL rather than all the same non-null
- * values.  See src/backend/optimizer/README for more on that point.
+ * values. See src/backend/optimizer/README for more on that point.
  *
  * NB: if ec_merged isn't NULL, this class has been merged into another, and
  * should be ignored in favor of using the pointed-to class.
@@ -466,18 +466,18 @@ typedef struct EquivalenceClass
 {
    NodeTag     type;
 
-   List       *ec_opfamilies;      /* btree operator family OIDs */
-   List       *ec_members;         /* list of EquivalenceMembers */
-   List       *ec_sources;         /* list of generating RestrictInfos */
-   List       *ec_derives;         /* list of derived RestrictInfos */
-   Relids      ec_relids;          /* all relids appearing in ec_members */
-   bool        ec_has_const;       /* any pseudoconstants in ec_members? */
+   List       *ec_opfamilies;  /* btree operator family OIDs */
+   List       *ec_members;     /* list of EquivalenceMembers */
+   List       *ec_sources;     /* list of generating RestrictInfos */
+   List       *ec_derives;     /* list of derived RestrictInfos */
+   Relids      ec_relids;      /* all relids appearing in ec_members */
+   bool        ec_has_const;   /* any pseudoconstants in ec_members? */
    bool        ec_has_volatile;    /* the (sole) member is a volatile expr */
    bool        ec_below_outer_join;    /* equivalence applies below an OJ */
-   bool        ec_broken;          /* failed to generate needed clauses? */
-   Index       ec_sortref;         /* originating sortclause label, or 0 */
-   struct EquivalenceClass *ec_merged;     /* set if merged into another EC */
-} EquivalenceClass;
+   bool        ec_broken;      /* failed to generate needed clauses? */
+   Index       ec_sortref;     /* originating sortclause label, or 0 */
+   struct EquivalenceClass *ec_merged; /* set if merged into another EC */
+}  EquivalenceClass;
 
 /*
  * EquivalenceMember - one member expression of an EquivalenceClass
@@ -491,7 +491,7 @@ typedef struct EquivalenceClass
  *
  * em_datatype is usually the same as exprType(em_expr), but can be
  * different when dealing with a binary-compatible opfamily; in particular
- * anyarray_ops would never work without this.  Use em_datatype when
+ * anyarray_ops would never work without this. Use em_datatype when
  * looking up a specific btree operator to work with this expression.
  */
 typedef struct EquivalenceMember
@@ -503,7 +503,7 @@ typedef struct EquivalenceMember
    bool        em_is_const;    /* expression is pseudoconstant? */
    bool        em_is_child;    /* derived version for a child relation? */
    Oid         em_datatype;    /* the "nominal type" used by the opfamily */
-} EquivalenceMember;
+}  EquivalenceMember;
 
 /*
  * PathKeys
@@ -514,11 +514,11 @@ typedef struct EquivalenceMember
  * etc.  The value being sorted is represented by linking to an
  * EquivalenceClass containing that value and including pk_opfamily among its
  * ec_opfamilies.  This is a convenient method because it makes it trivial
- * to detect equivalent and closely-related orderings.  (See optimizer/README
+ * to detect equivalent and closely-related orderings. (See optimizer/README
  * for more information.)
  *
  * Note: pk_strategy is either BTLessStrategyNumber (for ASC) or
- * BTGreaterStrategyNumber (for DESC).  We assume that all ordering-capable
+ * BTGreaterStrategyNumber (for DESC). We assume that all ordering-capable
  * index types will use btree-compatible strategy numbers.
  */
 
@@ -527,10 +527,10 @@ typedef struct PathKey
    NodeTag     type;
 
    EquivalenceClass *pk_eclass;    /* the value that is ordered */
-   Oid         pk_opfamily;        /* btree opfamily defining the ordering */
-   int         pk_strategy;        /* sort direction (ASC or DESC) */
-   bool        pk_nulls_first;     /* do NULLs come before normal values? */
-} PathKey;
+   Oid         pk_opfamily;    /* btree opfamily defining the ordering */
+   int         pk_strategy;    /* sort direction (ASC or DESC) */
+   bool        pk_nulls_first; /* do NULLs come before normal values? */
+}  PathKey;
 
 /*
  * Type "Path" is used as-is for sequential-scan paths.  For other
@@ -873,7 +873,7 @@ typedef struct HashPath
  * that appeared elsewhere in the tree and were pushed down to the join rel
  * because they used no other rels.  That's what the is_pushed_down flag is
  * for; it tells us that a qual is not an OUTER JOIN qual for the set of base
- * rels listed in required_relids.  A clause that originally came from WHERE
+ * rels listed in required_relids. A clause that originally came from WHERE
  * or an INNER JOIN condition will *always* have its is_pushed_down flag set.
  * It's possible for an OUTER JOIN clause to be marked is_pushed_down too,
  * if we decide that it can be pushed down into the nullable side of the join.
@@ -919,7 +919,7 @@ typedef struct HashPath
  *
  * When join clauses are generated from EquivalenceClasses, there may be
  * several equally valid ways to enforce join equivalence, of which we need
- * apply only one.  We mark clauses of this kind by setting parent_ec to
+ * apply only one. We mark clauses of this kind by setting parent_ec to
  * point to the generating EquivalenceClass.  Multiple clauses with the same
  * parent_ec in the same join are redundant.
  */
@@ -963,8 +963,8 @@ typedef struct RestrictInfo
 
    /* cache space for mergeclause processing; NULL if not yet set */
    EquivalenceClass *left_ec;  /* EquivalenceClass containing lefthand */
-   EquivalenceClass *right_ec; /* EquivalenceClass containing righthand */
-   EquivalenceMember *left_em;     /* EquivalenceMember for lefthand */
+   EquivalenceClass *right_ec; /* EquivalenceClass containing righthand */
+   EquivalenceMember *left_em; /* EquivalenceMember for lefthand */
    EquivalenceMember *right_em;    /* EquivalenceMember for righthand */
    List       *scansel_cache;  /* list of MergeScanSelCache structs */
 
@@ -993,9 +993,9 @@ typedef struct MergeScanSelCache
    int         strategy;       /* sort direction (ASC or DESC) */
    bool        nulls_first;    /* do NULLs come before normal values? */
    /* Results */
-   Selectivity leftscansel;    /* scan fraction for clause left side */
-   Selectivity rightscansel;   /* scan fraction for clause right side */
-} MergeScanSelCache;
+   Selectivity leftscansel;    /* scan fraction for clause left side */
+   Selectivity rightscansel;   /* scan fraction for clause right side */
+}  MergeScanSelCache;
 
 /*
  * Inner indexscan info.
@@ -1029,8 +1029,8 @@ typedef struct InnerIndexscanInfo
    Relids      other_relids;   /* a set of relevant other relids */
    bool        isouterjoin;    /* true if join is outer */
    /* Best paths for this lookup key (NULL if no available indexscans): */
-   Path       *cheapest_startup_innerpath; /* cheapest startup cost */
-   Path       *cheapest_total_innerpath;   /* cheapest total cost */
+   Path       *cheapest_startup_innerpath;     /* cheapest startup cost */
+   Path       *cheapest_total_innerpath;       /* cheapest total cost */
 } InnerIndexscanInfo;
 
 /*
@@ -1061,7 +1061,7 @@ typedef struct InnerIndexscanInfo
  * to be evaluated after this join is formed (because it references the RHS).
  * Any outer joins that have such a clause and this join in their RHS cannot
  * commute with this join, because that would leave noplace to check the
- * pushed-down clause.  (We don't track this for FULL JOINs, either.)
+ * pushed-down clause. (We don't track this for FULL JOINs, either.)
  *
  * Note: OuterJoinInfo directly represents only LEFT JOIN and FULL JOIN;
  * RIGHT JOIN is handled by switching the inputs to make it a LEFT JOIN.
@@ -1078,7 +1078,7 @@ typedef struct OuterJoinInfo
    Relids      syn_righthand;  /* base relids syntactically within RHS */
    bool        is_full_join;   /* it's a FULL OUTER JOIN */
    bool        lhs_strict;     /* joinclause is strict for some LHS rel */
-   bool        delay_upper_joins;  /* can't commute with upper RHS */
+   bool        delay_upper_joins;      /* can't commute with upper RHS */
 } OuterJoinInfo;
 
 /*
index f7c4bc07d3900cf078821c7ccce7c2ec32c35433..d79c6013a92a1434c5f902ed94c1c90ee6a569ea 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/optimizer/joininfo.h,v 1.34 2007/01/20 20:45:40 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/optimizer/joininfo.h,v 1.35 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -18,7 +18,7 @@
 
 
 extern bool have_relevant_joinclause(PlannerInfo *root,
-                                    RelOptInfo *rel1, RelOptInfo *rel2);
+                        RelOptInfo *rel1, RelOptInfo *rel2);
 
 extern void add_join_clause_to_rels(PlannerInfo *root,
                        RestrictInfo *restrictinfo,
index cf589b48af7265d577cb84d2a6daeafc0a810974..7d4607d95996b56dcc7110fc58beb6292233fb07 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/optimizer/paths.h,v 1.100 2007/11/08 21:49:48 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/optimizer/paths.h,v 1.101 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -24,15 +24,15 @@ extern bool enable_geqo;
 extern int geqo_threshold;
 
 /* Hook for plugins to replace standard_join_search() */
-typedef RelOptInfo * (*join_search_hook_type) (PlannerInfo *root,
-                                              int levels_needed,
-                                              List *initial_rels);
+typedef RelOptInfo *(*join_search_hook_type) (PlannerInfo *root,
+                                                         int levels_needed,
+                                                         List *initial_rels);
 extern PGDLLIMPORT join_search_hook_type join_search_hook;
 
 
 extern RelOptInfo *make_one_rel(PlannerInfo *root, List *joinlist);
 extern RelOptInfo *standard_join_search(PlannerInfo *root, int levels_needed,
-                                       List *initial_rels);
+                    List *initial_rels);
 
 #ifdef OPTIMIZER_DEBUG
 extern void debug_print_rel(PlannerInfo *root, RelOptInfo *rel);
@@ -62,9 +62,9 @@ extern List *group_clauses_by_indexkey(IndexOptInfo *index,
                          Relids outer_relids,
                          SaOpControl saop_control,
                          bool *found_clause);
-extern bool eclass_matches_any_index(EquivalenceClass *ec,
-                                    EquivalenceMember *em,
-                                    RelOptInfo *rel);
+extern bool eclass_matches_any_index(EquivalenceClass * ec,
+                        EquivalenceMember * em,
+                        RelOptInfo *rel);
 extern bool match_index_to_operand(Node *operand, int indexcol,
                       IndexOptInfo *index);
 extern List *expand_indexqual_conditions(IndexOptInfo *index,
@@ -99,7 +99,7 @@ extern void add_paths_to_joinrel(PlannerInfo *root, RelOptInfo *joinrel,
  *   routines to determine which relations to join
  */
 extern List *join_search_one_level(PlannerInfo *root, int level,
-                                  List **joinrels);
+                     List **joinrels);
 extern RelOptInfo *make_join_rel(PlannerInfo *root,
              RelOptInfo *rel1, RelOptInfo *rel2);
 extern bool have_join_order_restriction(PlannerInfo *root,
@@ -110,7 +110,7 @@ extern bool have_join_order_restriction(PlannerInfo *root,
  *   routines for managing EquivalenceClasses
  */
 extern bool process_equivalence(PlannerInfo *root, RestrictInfo *restrictinfo,
-                               bool below_outer_join);
+                   bool below_outer_join);
 extern void reconsider_outer_join_clauses(PlannerInfo *root);
 extern EquivalenceClass *get_eclass_for_sort_expr(PlannerInfo *root,
                         Expr *expr,
@@ -119,23 +119,23 @@ extern EquivalenceClass *get_eclass_for_sort_expr(PlannerInfo *root,
                         Index sortref);
 extern void generate_base_implied_equalities(PlannerInfo *root);
 extern List *generate_join_implied_equalities(PlannerInfo *root,
-                                             RelOptInfo *joinrel,
-                                             RelOptInfo *outer_rel,
-                                             RelOptInfo *inner_rel);
+                                RelOptInfo *joinrel,
+                                RelOptInfo *outer_rel,
+                                RelOptInfo *inner_rel);
 extern bool exprs_known_equal(PlannerInfo *root, Node *item1, Node *item2);
 extern void add_child_rel_equivalences(PlannerInfo *root,
-                                      AppendRelInfo *appinfo,
-                                      RelOptInfo *parent_rel,
-                                      RelOptInfo *child_rel);
+                          AppendRelInfo *appinfo,
+                          RelOptInfo *parent_rel,
+                          RelOptInfo *child_rel);
 extern List *find_eclass_clauses_for_index_join(PlannerInfo *root,
-                                               RelOptInfo *rel,
-                                               Relids outer_relids);
+                                  RelOptInfo *rel,
+                                  Relids outer_relids);
 extern bool have_relevant_eclass_joinclause(PlannerInfo *root,
                                RelOptInfo *rel1, RelOptInfo *rel2);
 extern bool has_relevant_eclass_joinclause(PlannerInfo *root,
-                                          RelOptInfo *rel1);
-extern bool eclass_useful_for_merging(EquivalenceClass *eclass,
-                                     RelOptInfo *rel);
+                              RelOptInfo *rel1);
+extern bool eclass_useful_for_merging(EquivalenceClass * eclass,
+                         RelOptInfo *rel);
 
 /*
  * pathkeys.c
@@ -176,11 +176,11 @@ extern List *find_mergeclauses_for_pathkeys(PlannerInfo *root,
                               bool outer_keys,
                               List *restrictinfos);
 extern List *select_outer_pathkeys_for_merge(PlannerInfo *root,
-                                            List *mergeclauses,
-                                            RelOptInfo *joinrel);
+                               List *mergeclauses,
+                               RelOptInfo *joinrel);
 extern List *make_inner_pathkeys_for_merge(PlannerInfo *root,
-                                          List *mergeclauses,
-                                          List *outer_pathkeys);
+                             List *mergeclauses,
+                             List *outer_pathkeys);
 extern int pathkeys_useful_for_merging(PlannerInfo *root,
                            RelOptInfo *rel,
                            List *pathkeys);
index 0d2a075caf6ba405d4b4a6d7d8f04672f6ecb160..950c431dab03680959d77aada043de8e4b11ade3 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/optimizer/plancat.h,v 1.45 2007/07/25 12:22:53 mha Exp $
+ * $PostgreSQL: pgsql/src/include/optimizer/plancat.h,v 1.46 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -18,9 +18,9 @@
 
 /* Hook for plugins to get control in get_relation_info() */
 typedef void (*get_relation_info_hook_type) (PlannerInfo *root,
-                                            Oid relationObjectId,
-                                            bool inhparent,
-                                            RelOptInfo *rel);
+                                                        Oid relationObjectId,
+                                                        bool inhparent,
+                                                        RelOptInfo *rel);
 extern PGDLLIMPORT get_relation_info_hook_type get_relation_info_hook;
 
 
index 43769c71e11e725a801b8f4d43a8432f1082ead2..1b30badf71ccd48c46ef2baadaa5535e555c46cf 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/optimizer/planmain.h,v 1.103 2007/10/11 18:05:27 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/optimizer/planmain.h,v 1.104 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -61,7 +61,7 @@ extern Limit *make_limit(Plan *lefttree, Node *limitOffset, Node *limitCount,
 extern SetOp *make_setop(SetOpCmd cmd, Plan *lefttree,
           List *distinctList, AttrNumber flagColIdx);
 extern Result *make_result(PlannerInfo *root, List *tlist,
-                          Node *resconstantqual, Plan *subplan);
+           Node *resconstantqual, Plan *subplan);
 extern bool is_projection_capable_plan(Plan *plan);
 
 /*
@@ -74,17 +74,17 @@ extern void add_base_rels_to_query(PlannerInfo *root, Node *jtnode);
 extern void build_base_rel_tlists(PlannerInfo *root, List *final_tlist);
 extern void add_IN_vars_to_tlists(PlannerInfo *root);
 extern void add_vars_to_targetlist(PlannerInfo *root, List *vars,
-                                  Relids where_needed);
+                      Relids where_needed);
 extern List *deconstruct_jointree(PlannerInfo *root);
 extern void distribute_restrictinfo_to_rels(PlannerInfo *root,
-                                           RestrictInfo *restrictinfo);
+                               RestrictInfo *restrictinfo);
 extern void process_implied_equality(PlannerInfo *root,
-                                    Oid opno,
-                                    Expr *item1,
-                                    Expr *item2,
-                                    Relids qualscope,
-                                    bool below_outer_join,
-                                    bool both_const);
+                        Oid opno,
+                        Expr *item1,
+                        Expr *item2,
+                        Relids qualscope,
+                        bool below_outer_join,
+                        bool both_const);
 extern RestrictInfo *build_implied_join_equality(Oid opno,
                            Expr *item1,
                            Expr *item2,
@@ -93,10 +93,10 @@ extern RestrictInfo *build_implied_join_equality(Oid opno,
 /*
  * prototypes for plan/setrefs.c
  */
-extern Plan *set_plan_references(PlannerGlobal *glob,
-                                Plan *plan,
-                                List *rtable);
-extern List *set_returning_clause_references(PlannerGlobal *glob,
+extern Plan *set_plan_references(PlannerGlobal * glob,
+                   Plan *plan,
+                   List *rtable);
+extern List *set_returning_clause_references(PlannerGlobal * glob,
                                List *rlist,
                                Plan *topplan,
                                Index resultRelation);
index 337cca002eb8b0825386103050eb3cd1a1810e70..6712de93f3bbbdf8098c3d9a643516d550bc9c82 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/optimizer/planner.h,v 1.41 2007/07/25 12:22:53 mha Exp $
+ * $PostgreSQL: pgsql/src/include/optimizer/planner.h,v 1.42 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 
 /* Hook for plugins to get control in planner() */
-typedef PlannedStmt * (*planner_hook_type) (Query *parse,
-                                           int cursorOptions,
-                                           ParamListInfo boundParams);
+typedef PlannedStmt *(*planner_hook_type) (Query *parse,
+                                                      int cursorOptions,
+                                                 ParamListInfo boundParams);
 extern PGDLLIMPORT planner_hook_type planner_hook;
 
 
 extern PlannedStmt *planner(Query *parse, int cursorOptions,
        ParamListInfo boundParams);
 extern PlannedStmt *standard_planner(Query *parse, int cursorOptions,
-       ParamListInfo boundParams);
-extern Plan *subquery_planner(PlannerGlobal *glob, Query *parse,
-                             Index level, double tuple_fraction,
-                             PlannerInfo **subroot);
+                ParamListInfo boundParams);
+extern Plan *subquery_planner(PlannerGlobal * glob, Query *parse,
+                Index level, double tuple_fraction,
+                PlannerInfo **subroot);
 
 #endif   /* PLANNER_H */
index 515339363abecb77fc312e946ec3710bd49375bf..625e416a75478f18df550e9dcec9a2293703aa1c 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/optimizer/tlist.h,v 1.47 2007/11/08 21:49:48 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/optimizer/tlist.h,v 1.48 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -24,7 +24,7 @@ extern List *flatten_tlist(List *tlist);
 extern List *add_to_flat_tlist(List *tlist, List *vars);
 
 extern TargetEntry *get_sortgroupref_tle(Index sortref,
-                       List *targetList);
+                    List *targetList);
 extern TargetEntry *get_sortgroupclause_tle(SortClause *sortClause,
                        List *targetList);
 extern Node *get_sortgroupclause_expr(SortClause *sortClause,
index 959ac50cde918aee77eedba371d37490f2bd1716..479e1d85a353be188b4c265a44719e429d60d1ff 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/parser/parse_coerce.h,v 1.71 2007/06/05 21:31:08 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/parser/parse_coerce.h,v 1.72 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -42,7 +42,7 @@ typedef enum CoercionPathType
    COERCION_PATH_RELABELTYPE,  /* binary-compatible cast, no function */
    COERCION_PATH_ARRAYCOERCE,  /* need an ArrayCoerceExpr node */
    COERCION_PATH_COERCEVIAIO   /* need a CoerceViaIO node */
-} CoercionPathType;
+}  CoercionPathType;
 
 
 extern bool IsBinaryCoercible(Oid srctype, Oid targettype);
@@ -67,8 +67,8 @@ extern Node *coerce_to_domain(Node *arg, Oid baseTypeId, int32 baseTypeMod,
 extern Node *coerce_to_boolean(ParseState *pstate, Node *node,
                  const char *constructName);
 extern Node *coerce_to_specific_type(ParseState *pstate, Node *node,
-                                    Oid targetTypeId,
-                                    const char *constructName);
+                       Oid targetTypeId,
+                       const char *constructName);
 
 extern Oid select_common_type(List *typeids, const char *context);
 extern Node *coerce_to_common_type(ParseState *pstate, Node *node,
@@ -87,10 +87,10 @@ extern Oid resolve_generic_type(Oid declared_type,
                     Oid context_declared_type);
 
 extern CoercionPathType find_coercion_pathway(Oid targetTypeId,
-                                             Oid sourceTypeId,
-                                             CoercionContext ccontext,
-                                             Oid *funcid);
+                     Oid sourceTypeId,
+                     CoercionContext ccontext,
+                     Oid *funcid);
 extern CoercionPathType find_typmod_coercion_function(Oid typeId,
-                                                     Oid *funcid);
+                             Oid *funcid);
 
 #endif   /* PARSE_COERCE_H */
index 414dd09b91e61efaa448d2e9165c7dc4bbae1a11..2e3ff74a85c3cf7e82bb3a5d2aa1976bc4020902 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/parser/parse_type.h,v 1.37 2007/11/11 19:22:49 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/parser/parse_type.h,v 1.38 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 typedef HeapTuple Type;
 
 extern Type LookupTypeName(ParseState *pstate, const TypeName *typename,
-                          int32 *typmod_p);
+              int32 *typmod_p);
 extern Type typenameType(ParseState *pstate, const TypeName *typename,
-                        int32 *typmod_p);
-extern Oid typenameTypeId(ParseState *pstate, const TypeName *typename,
-                          int32 *typmod_p);
+            int32 *typmod_p);
+extern Oid typenameTypeId(ParseState *pstate, const TypeName *typename,
+              int32 *typmod_p);
 
 extern char *TypeNameToString(const TypeName *typename);
 extern char *TypeNameListToString(List *typenames);
index f9ca398e2538757fab97a99cee5ec3e44f806bba..eee0785056c214303a55e1f15d520ed2c5f0c244 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/parser/parse_utilcmd.h,v 1.1 2007/06/23 22:12:52 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/parser/parse_utilcmd.h,v 1.2 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 extern List *transformCreateStmt(CreateStmt *stmt, const char *queryString);
 extern List *transformAlterTableStmt(AlterTableStmt *stmt,
-                                    const char *queryString);
+                       const char *queryString);
 extern IndexStmt *transformIndexStmt(IndexStmt *stmt, const char *queryString);
 extern void transformRuleStmt(RuleStmt *stmt, const char *queryString,
-                             List **actions, Node **whereClause);
+                 List **actions, Node **whereClause);
 extern List *transformCreateSchemaStmt(CreateSchemaStmt *stmt);
 
 #endif   /* PARSE_UTILCMD_H */
index 2d3c698953a84c5f3319be3204cb26c0507f8887..2340ed693784b4382fdd963dae0749a51bb18ab5 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 2001-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/include/pgstat.h,v 1.68 2007/09/25 20:03:38 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/pgstat.h,v 1.69 2007/11/15 21:14:42 momjian Exp $
  * ----------
  */
 #ifndef PGSTAT_H
@@ -78,7 +78,7 @@ typedef struct PgStat_TableCounts
 
    PgStat_Counter t_blocks_fetched;
    PgStat_Counter t_blocks_hit;
-} PgStat_TableCounts;
+}  PgStat_TableCounts;
 
 
 /* ------------------------------------------------------------
@@ -92,7 +92,7 @@ typedef struct PgStat_TableCounts
  *
  * Most of the event counters are nontransactional, ie, we count events
  * in committed and aborted transactions alike.  For these, we just count
- * directly in the PgStat_TableStatus.  However, new_live_tuples and
+ * directly in the PgStat_TableStatus. However, new_live_tuples and
  * new_dead_tuples must be derived from tuple insertion and deletion counts
  * with awareness of whether the transaction or subtransaction committed or
  * aborted.  Hence, we also keep a stack of per-(sub)transaction status
@@ -104,11 +104,11 @@ typedef struct PgStat_TableCounts
  */
 typedef struct PgStat_TableStatus
 {
-   Oid         t_id;               /* table's OID */
-   bool        t_shared;           /* is it a shared catalog? */
-   struct PgStat_TableXactStatus *trans;   /* lowest subxact's counts */
+   Oid         t_id;           /* table's OID */
+   bool        t_shared;       /* is it a shared catalog? */
+   struct PgStat_TableXactStatus *trans;       /* lowest subxact's counts */
    PgStat_TableCounts t_counts;    /* event counts to be sent */
-} PgStat_TableStatus;
+}  PgStat_TableStatus;
 
 /* ----------
  * PgStat_TableXactStatus      Per-table, per-subtransaction status
@@ -116,15 +116,15 @@ typedef struct PgStat_TableStatus
  */
 typedef struct PgStat_TableXactStatus
 {
-   PgStat_Counter tuples_inserted; /* tuples inserted in (sub)xact */
-   PgStat_Counter tuples_deleted;  /* tuples deleted in (sub)xact */
-   int         nest_level;         /* subtransaction nest level */
+   PgStat_Counter tuples_inserted;     /* tuples inserted in (sub)xact */
+   PgStat_Counter tuples_deleted;      /* tuples deleted in (sub)xact */
+   int         nest_level;     /* subtransaction nest level */
    /* links to other structs for same relation: */
-   struct PgStat_TableXactStatus *upper;   /* next higher subxact if any */
-   PgStat_TableStatus *parent;             /* per-table status */
+   struct PgStat_TableXactStatus *upper;       /* next higher subxact if any */
+   PgStat_TableStatus *parent; /* per-table status */
    /* structs of same subxact level are linked here: */
-   struct PgStat_TableXactStatus *next;    /* next of same subxact */
-} PgStat_TableXactStatus;
+   struct PgStat_TableXactStatus *next;        /* next of same subxact */
+}  PgStat_TableXactStatus;
 
 
 /* ------------------------------------------------------------
@@ -282,21 +282,21 @@ typedef struct PgStat_MsgAnalyze
 
 
 /* ----------
- * PgStat_MsgBgWriter           Sent by the bgwriter to update statistics.
+ * PgStat_MsgBgWriter          Sent by the bgwriter to update statistics.
  * ----------
  */
 typedef struct PgStat_MsgBgWriter
 {
    PgStat_MsgHdr m_hdr;
 
-   PgStat_Counter  m_timed_checkpoints;
-   PgStat_Counter  m_requested_checkpoints;
-   PgStat_Counter  m_buf_written_checkpoints;
-   PgStat_Counter  m_buf_written_clean;
-   PgStat_Counter  m_maxwritten_clean;
-   PgStat_Counter  m_buf_written_backend;
-   PgStat_Counter  m_buf_alloc;
-} PgStat_MsgBgWriter;
+   PgStat_Counter m_timed_checkpoints;
+   PgStat_Counter m_requested_checkpoints;
+   PgStat_Counter m_buf_written_checkpoints;
+   PgStat_Counter m_buf_written_clean;
+   PgStat_Counter m_maxwritten_clean;
+   PgStat_Counter m_buf_written_backend;
+   PgStat_Counter m_buf_alloc;
+}  PgStat_MsgBgWriter;
 
 
 /* ----------
@@ -391,14 +391,14 @@ typedef struct PgStat_StatTabEntry
  */
 typedef struct PgStat_GlobalStats
 {
-   PgStat_Counter  timed_checkpoints;
-   PgStat_Counter  requested_checkpoints;
-   PgStat_Counter  buf_written_checkpoints;
-   PgStat_Counter  buf_written_clean;
-   PgStat_Counter  maxwritten_clean;
-   PgStat_Counter  buf_written_backend;
-   PgStat_Counter  buf_alloc;
-} PgStat_GlobalStats;
+   PgStat_Counter timed_checkpoints;
+   PgStat_Counter requested_checkpoints;
+   PgStat_Counter buf_written_checkpoints;
+   PgStat_Counter buf_written_clean;
+   PgStat_Counter maxwritten_clean;
+   PgStat_Counter buf_written_backend;
+   PgStat_Counter buf_alloc;
+}  PgStat_GlobalStats;
 
 
 /* ----------
@@ -475,6 +475,7 @@ extern void pgstat_init(void);
 extern int pgstat_start(void);
 extern void pgstat_reset_all(void);
 extern void allow_immediate_pgstat_restart(void);
+
 #ifdef EXEC_BACKEND
 extern void PgstatCollectorMain(int argc, char *argv[]);
 #endif
@@ -559,9 +560,9 @@ extern void AtPrepare_PgStat(void);
 extern void PostPrepare_PgStat(void);
 
 extern void pgstat_twophase_postcommit(TransactionId xid, uint16 info,
-                                      void *recdata, uint32 len);
+                          void *recdata, uint32 len);
 extern void pgstat_twophase_postabort(TransactionId xid, uint16 info,
-                                     void *recdata, uint32 len);
+                         void *recdata, uint32 len);
 
 extern void pgstat_send_bgwriter(void);
 
index ef83c1f2dcde391267554aa9ff65c9b9a3140529..2611a4bfcd223cce3a0754d76b621a0ee34f4482 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/port.h,v 1.114 2007/10/29 11:25:42 mha Exp $
+ * $PostgreSQL: pgsql/src/include/port.h,v 1.115 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -168,7 +168,7 @@ extern int
 pg_sprintf(char *str, const char *fmt,...)
 /* This extension allows gcc to check the format string */
 __attribute__((format(printf, 2, 3)));
-extern int pg_vfprintf(FILE * stream, const char *fmt, va_list args);
+extern int pg_vfprintf(FILE *stream, const char *fmt, va_list args);
 extern int
 pg_fprintf(FILE *stream, const char *fmt,...)
 /* This extension allows gcc to check the format string */
@@ -253,7 +253,6 @@ extern int  pgunlink(const char *path);
 
 #define rename(from, to)       pgrename(from, to)
 #define unlink(path)           pgunlink(path)
-
 #endif   /* defined(WIN32) || defined(__CYGWIN__) */
 
 /*
@@ -385,7 +384,7 @@ extern int pqGethostbyname(const char *name,
                int *herrno);
 
 extern void pg_qsort(void *base, size_t nel, size_t elsize,
-                    int (*cmp) (const void *, const void *));
+        int (*cmp) (const void *, const void *));
 
 #define qsort(a,b,c,d) pg_qsort(a,b,c,d)
 
index c0dab3ea21b73d36e301a965c594bfc7a94ea4bb..0f4432a4eff265ee2983c9c21165ed1ffd397c69 100644 (file)
@@ -1,10 +1,10 @@
-/* $PostgreSQL: pgsql/src/include/port/linux.h,v 1.43 2007/07/02 20:11:55 tgl Exp $ */
+/* $PostgreSQL: pgsql/src/include/port/linux.h,v 1.44 2007/11/15 21:14:44 momjian Exp $ */
 
 /*
  * As of July 2007, all known versions of the Linux kernel will sometimes
  * return EIDRM for a shmctl() operation when EINVAL is correct (it happens
  * when the low-order 15 bits of the supplied shm ID match the slot number
- * assigned to a newer shmem segment).  We deal with this by assuming that
+ * assigned to a newer shmem segment). We deal with this by assuming that
  * EIDRM means EINVAL in PGSharedMemoryIsInUse().  This is reasonably safe
  * since in fact Linux has no excuse for ever returning EIDRM; it doesn't
  * track removed segments in a way that would allow distinguishing them from
index 3fd0fdbbdc0cd83c8add99a70f8e1be3a564af89..cfdedb01faa53a6dd33ab9bbd632a4f8b5301dd7 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/include/port/solaris.h,v 1.16 2007/04/06 05:36:51 tgl Exp $ */
+/* $PostgreSQL: pgsql/src/include/port/solaris.h,v 1.17 2007/11/15 21:14:44 momjian Exp $ */
 
 /*
  * Sort this out for all operating systems some time.  The __xxx
@@ -31,7 +31,7 @@
  *
  * http://sunsolve.sun.com/search/document.do?assetkey=1-21-108993-62-1&searchclause=108993-62
  * http://sunsolve.sun.com/search/document.do?assetkey=1-21-112874-34-1&searchclause=112874-34
- * 
+ *
  * However, many people might not have patched versions, so
  * still use our own fix for the buggy version.
  */
index aa6da62f73180775e04de05b229f26c000808771..e7ddd9e288a09351d98a048892da3fa4d2381586 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/include/port/win32.h,v 1.78 2007/10/29 11:25:42 mha Exp $ */
+/* $PostgreSQL: pgsql/src/include/port/win32.h,v 1.79 2007/11/15 21:14:44 momjian Exp $ */
 
 #if defined(_MSC_VER) || defined(__BORLANDC__)
 #define WIN32_ONLY_COMPILER
@@ -6,7 +6,7 @@
 
 #define _WIN32_WINNT 0x0500
 /*
- * Always build with SSPI support. Keep it as a #define in case 
+ * Always build with SSPI support. Keep it as a #define in case
  * we want a switch to disable it sometime in the future.
  */
 #define ENABLE_SSPI 1
@@ -89,7 +89,7 @@
  * Signal stuff
  *
  * For WIN32, there is no wait() call so there are no wait() macros
- * to interpret the return value of system().  Instead, system()
+ * to interpret the return value of system().  Instead, system()
  * return values < 0x100 are used for exit() termination, and higher
  * values are used to indicated non-exit() termination, which is
  * similar to a unix-style signal exit (think SIGSEGV ==
  *     example, the code for the all-too-familiar STATUS_ACCESS_VIOLATION is
  *     0xC0000005. A more complete set of exception codes can be found in
  *     NTSTATUS.H from the Windows NT DDK.
- *                                               
+ *
  * Some day we might want to print descriptions for the most common
- * exceptions, rather than printing an include file name.  We could use
+ * exceptions, rather than printing an include file name.  We could use
  * RtlNtStatusToDosError() and pass to FormatMessage(), which can print
  * the text of error values, but MinGW does not support
  * RtlNtStatusToDosError().
  */
-#define WIFEXITED(w)    (((w) & 0XFFFFFF00) == 0)
-#define WIFSIGNALED(w)  (!WIFEXITED(w))
-#define WEXITSTATUS(w)  (w)
-#define WTERMSIG(w)     (w)
+#define WIFEXITED(w)   (((w) & 0XFFFFFF00) == 0)
+#define WIFSIGNALED(w) (!WIFEXITED(w))
+#define WEXITSTATUS(w) (w)
+#define WTERMSIG(w)        (w)
 
 #define sigmask(sig) ( 1 << ((sig)-1) )
 
 #define SIGUSR2                31
 #endif
 
-/* 
- * New versions of mingw have gettimeofday() and also declare 
- * struct timezone to support it. 
+/*
+ * New versions of mingw have gettimeofday() and also declare
+ * struct timezone to support it.
  */
 #ifndef HAVE_GETTIMEOFDAY
 struct timezone
index 2a6def8bc92d3f6ccf5643ad47810c5abb19bc20..c8d541698d83df7c5cbab2f63be4fde86f70a26a 100644 (file)
@@ -10,7 +10,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1995, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/postgres.h,v 1.85 2007/10/01 16:25:56 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/postgres.h,v 1.86 2007/11/15 21:14:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -56,7 +56,7 @@
 
 /*
  * struct varatt_external is a "TOAST pointer", that is, the information
- * needed to fetch a stored-out-of-line Datum.  The data is compressed
+ * needed to fetch a stored-out-of-line Datum. The data is compressed
  * if and only if va_extsize < va_rawsize - VARHDRSZ.  This struct must not
  * contain any padding, because we sometimes compare pointers using memcmp.
  *
  */
 struct varatt_external
 {
-   int32       va_rawsize;         /* Original data size (includes header) */
-   int32       va_extsize;         /* External saved size (doesn't) */
-   Oid         va_valueid;         /* Unique ID of value within TOAST table */
-   Oid         va_toastrelid;      /* RelID of TOAST table containing it */
+   int32       va_rawsize;     /* Original data size (includes header) */
+   int32       va_extsize;     /* External saved size (doesn't) */
+   Oid         va_valueid;     /* Unique ID of value within TOAST table */
+   Oid         va_toastrelid;  /* RelID of TOAST table containing it */
 };
 
 /*
@@ -84,51 +84,51 @@ struct varatt_external
  */
 typedef union
 {
-   struct                          /* Normal varlena (4-byte length) */
+   struct                      /* Normal varlena (4-byte length) */
    {
-       uint32  va_header;
-       char    va_data[1];
-   } va_4byte;
-   struct                          /* Compressed-in-line format */
+       uint32      va_header;
+       char        va_data[1];
+   }           va_4byte;
+   struct                      /* Compressed-in-line format */
    {
-       uint32  va_header;
-       uint32  va_rawsize;         /* Original data size (excludes header) */
-       char    va_data[1];         /* Compressed data */
-   } va_compressed;
-} varattrib_4b;
+       uint32      va_header;
+       uint32      va_rawsize; /* Original data size (excludes header) */
+       char        va_data[1]; /* Compressed data */
+   }           va_compressed;
+}  varattrib_4b;
 
 typedef struct
 {
    uint8       va_header;
-   char        va_data[1];         /* Data begins here */
-} varattrib_1b;
+   char        va_data[1];     /* Data begins here */
+}  varattrib_1b;
 
 typedef struct
 {
-   uint8       va_header;          /* Always 0x80 or 0x01 */
-   uint8       va_len_1be;         /* Physical length of datum */
-   char        va_data[1];         /* Data (for now always a TOAST pointer) */
-} varattrib_1b_e;
+   uint8       va_header;      /* Always 0x80 or 0x01 */
+   uint8       va_len_1be;     /* Physical length of datum */
+   char        va_data[1];     /* Data (for now always a TOAST pointer) */
+}  varattrib_1b_e;
 
 /*
  * Bit layouts for varlena headers on big-endian machines:
  *
- * 00xxxxxx    4-byte length word, aligned, uncompressed data (up to 1G)
- * 01xxxxxx    4-byte length word, aligned, *compressed* data (up to 1G)
- * 10000000    1-byte length word, unaligned, TOAST pointer
- * 1xxxxxxx    1-byte length word, unaligned, uncompressed data (up to 126b)
+ * 00xxxxxx 4-byte length word, aligned, uncompressed data (up to 1G)
+ * 01xxxxxx 4-byte length word, aligned, *compressed* data (up to 1G)
+ * 10000000 1-byte length word, unaligned, TOAST pointer
+ * 1xxxxxxx 1-byte length word, unaligned, uncompressed data (up to 126b)
  *
  * Bit layouts for varlena headers on little-endian machines:
  *
- * xxxxxx00    4-byte length word, aligned, uncompressed data (up to 1G)
- * xxxxxx10    4-byte length word, aligned, *compressed* data (up to 1G)
- * 00000001    1-byte length word, unaligned, TOAST pointer
- * xxxxxxx1    1-byte length word, unaligned, uncompressed data (up to 126b)
+ * xxxxxx00 4-byte length word, aligned, uncompressed data (up to 1G)
+ * xxxxxx10 4-byte length word, aligned, *compressed* data (up to 1G)
+ * 00000001 1-byte length word, unaligned, TOAST pointer
+ * xxxxxxx1 1-byte length word, unaligned, uncompressed data (up to 126b)
  *
  * The "xxx" bits are the length field (which includes itself in all cases).
  * In the big-endian case we mask to extract the length, in the little-endian
  * case we shift.  Note that in both cases the flag bits are in the physically
- * first byte.  Also, it is not possible for a 1-byte length word to be zero;
+ * first byte. Also, it is not possible for a 1-byte length word to be zero;
  * this lets us disambiguate alignment padding bytes from the start of an
  * unaligned datum.  (We now *require* pad bytes to be filled with zero!)
  */
@@ -174,8 +174,7 @@ typedef struct
 #define SET_VARSIZE_1B_E(PTR,len) \
    (((varattrib_1b_e *) (PTR))->va_header = 0x80, \
     ((varattrib_1b_e *) (PTR))->va_len_1be = (len))
-
-#else  /* !WORDS_BIGENDIAN */
+#else                          /* !WORDS_BIGENDIAN */
 
 #define VARATT_IS_4B(PTR) \
    ((((varattrib_1b *) (PTR))->va_header & 0x01) == 0x00)
@@ -207,8 +206,7 @@ typedef struct
 #define SET_VARSIZE_1B_E(PTR,len) \
    (((varattrib_1b_e *) (PTR))->va_header = 0x01, \
     ((varattrib_1b_e *) (PTR))->va_len_1be = (len))
-
-#endif /* WORDS_BIGENDIAN */
+#endif   /* WORDS_BIGENDIAN */
 
 #define VARHDRSZ_SHORT         1
 #define VARATT_SHORT_MAX       0x7F
@@ -707,8 +705,8 @@ extern PGDLLIMPORT bool assert_enabled;
 #endif   /* USE_ASSERT_CHECKING */
 
 extern int ExceptionalCondition(const char *conditionName,
-                               const char *errorType,
-                               const char *fileName, int lineNumber);
+                    const char *errorType,
+                    const char *fileName, int lineNumber);
 
 /* ----------------------------------------------------------------
  *             Section 4: genbki macros used by catalog/pg_xxx.h files
index d3e9ebe6c889d1d9d3a144d361b84aed7702a0dc..ac8eaede06048a80a73bba2c23fdf3e4a534ed88 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/postmaster/autovacuum.h,v 1.12 2007/09/24 03:12:23 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/postmaster/autovacuum.h,v 1.13 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -42,6 +42,7 @@ extern bool IsAutoVacuumWorkerProcess(void);
 extern void autovac_init(void);
 extern int StartAutoVacLauncher(void);
 extern int StartAutoVacWorker(void);
+
 /* called from postmaster when a worker could not be forked */
 extern void AutoVacWorkerFailed(void);
 
index 36125ac5e23cb43c531f2ac6a324656732002696..e17611d2699ba046ea25aeea5f26eeb665390180 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 2004-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/include/postmaster/syslogger.h,v 1.11 2007/08/19 01:41:25 adunstan Exp $
+ * $PostgreSQL: pgsql/src/include/postmaster/syslogger.h,v 1.12 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include <limits.h>                /* for PIPE_BUF */
 
 
-/* 
+/*
  * Primitive protocol structure for writing to syslogger pipe(s).  The idea
  * here is to divide long messages into chunks that are not more than
  * PIPE_BUF bytes long, which according to POSIX spec must be written into
  * the pipe atomically.  The pipe reader then uses the protocol headers to
- * reassemble the parts of a message into a single string.  The reader can
+ * reassemble the parts of a message into a single string. The reader can
  * also cope with non-protocol data coming down the pipe, though we cannot
  * guarantee long strings won't get split apart.
  *
- * We use non-nul bytes in is_last to make the protocol a tiny bit 
+ * We use non-nul bytes in is_last to make the protocol a tiny bit
  * more robust against finding a false double nul byte prologue. But
  * we still might find it in the len and/or pid bytes unless we're careful.
  */
 #else
 #define PIPE_CHUNK_SIZE  ((int) PIPE_BUF)
 #endif
-#else  /* not defined */
+#else                          /* not defined */
 /* POSIX says the value of PIPE_BUF must be at least 512, so use that */
 #define PIPE_CHUNK_SIZE  512
 #endif
 
-typedef struct 
+typedef struct
 {
    char        nuls[2];        /* always \0\0 */
    uint16      len;            /* size of this chunk (counts data only) */
    int32       pid;            /* writer's pid */
-   char        is_last;        /* last chunk of message? 't' or 'f' 
-                                * ('T' or 'F' for CSV case)
-                                */
+   char        is_last;        /* last chunk of message? 't' or 'f' ('T' or
+                                * 'F' for CSV case) */
    char        data[1];        /* data payload starts here */
-} PipeProtoHeader;
+}  PipeProtoHeader;
 
 typedef union
 {
    PipeProtoHeader proto;
    char        filler[PIPE_CHUNK_SIZE];
-} PipeProtoChunk;
+}  PipeProtoChunk;
 
 #define PIPE_HEADER_SIZE  offsetof(PipeProtoHeader, data)
 #define PIPE_MAX_PAYLOAD  ((int) (PIPE_CHUNK_SIZE - PIPE_HEADER_SIZE))
index f4469349c83ff1dcaf0715f0a75fc39b674763d1..e129d439795919b625a59fcac5b2804b615bbea3 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/rewrite/rewriteDefine.h,v 1.26 2007/08/27 03:36:08 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/rewrite/rewriteDefine.h,v 1.27 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 #include "nodes/parsenodes.h"
 
-#define    RULE_FIRES_ON_ORIGIN    'O'
-#define    RULE_FIRES_ALWAYS       'A'
-#define    RULE_FIRES_ON_REPLICA   'R'
-#define    RULE_DISABLED           'D'
+#define RULE_FIRES_ON_ORIGIN   'O'
+#define RULE_FIRES_ALWAYS      'A'
+#define RULE_FIRES_ON_REPLICA  'R'
+#define RULE_DISABLED          'D'
 
 extern void DefineRule(RuleStmt *stmt, const char *queryString);
 
index 38b7da73c51535afa8d4c873b48b843b174bccab..49a08e6c528c3b3f5759535e85730331daff4005 100644 (file)
@@ -15,7 +15,7 @@
  *
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/include/snowball/header.h,v 1.1 2007/08/21 01:11:28 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/snowball/header.h,v 1.2 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -59,4 +59,4 @@
 #endif
 #define free(a)            pfree(a)
 
-#endif /* SNOWBALL_HEADR_H */
+#endif   /* SNOWBALL_HEADR_H */
index 34ad286ec2406b2b9919354846267b0d0b1a8290..027e69fc920dee6d00a19536a04fdc2e27359af1 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/storage/buf_internals.h,v 1.93 2007/09/25 20:03:38 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/storage/buf_internals.h,v 1.94 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -183,10 +183,10 @@ extern long int LocalBufferFlushCount;
 
 /* freelist.c */
 extern volatile BufferDesc *StrategyGetBuffer(BufferAccessStrategy strategy,
-                                             bool *lock_held);
+                 bool *lock_held);
 extern void StrategyFreeBuffer(volatile BufferDesc *buf);
 extern bool StrategyRejectBuffer(BufferAccessStrategy strategy,
-                                volatile BufferDesc *buf);
+                    volatile BufferDesc *buf);
 
 extern int StrategySyncStart(uint32 *complete_passes, uint32 *num_buf_alloc);
 extern Size StrategyShmemSize(void);
index d40f39ccab4771467069af1755c354fc6f777515..5e9d0896fbec32019e9a486ea05f30cbf602f9e6 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/storage/bufmgr.h,v 1.108 2007/09/25 20:03:38 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/storage/bufmgr.h,v 1.109 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -22,10 +22,11 @@ typedef void *Block;
 /* Possible arguments for GetAccessStrategy() */
 typedef enum BufferAccessStrategyType
 {
-   BAS_NORMAL,     /* Normal random access */
-   BAS_BULKREAD,   /* Large read-only scan (hint bit updates are ok) */
-   BAS_VACUUM      /* VACUUM */
-} BufferAccessStrategyType;
+   BAS_NORMAL,                 /* Normal random access */
+   BAS_BULKREAD,               /* Large read-only scan (hint bit updates are
+                                * ok) */
+   BAS_VACUUM                  /* VACUUM */
+}  BufferAccessStrategyType;
 
 /* in globals.c ... this duplicates miscadmin.h */
 extern PGDLLIMPORT int NBuffers;
@@ -118,7 +119,7 @@ extern PGDLLIMPORT int32 *LocalRefCount;
  */
 extern Buffer ReadBuffer(Relation reln, BlockNumber blockNum);
 extern Buffer ReadBufferWithStrategy(Relation reln, BlockNumber blockNum,
-                                    BufferAccessStrategy strategy);
+                      BufferAccessStrategy strategy);
 extern Buffer ReadOrZeroBuffer(Relation reln, BlockNumber blockNum);
 extern void ReleaseBuffer(Buffer buffer);
 extern void UnlockReleaseBuffer(Buffer buffer);
index e3e84bfab56463d47a57d01ab85351631b3052e2..1be8bfc3b4f294bf20404be799a0a11fd05a1aa0 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/storage/bufpage.h,v 1.75 2007/09/21 21:25:42 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/storage/bufpage.h,v 1.76 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -105,7 +105,7 @@ typedef uint16 LocationIndex;
  * like a good idea).
  *
  * pd_prune_xid is a hint field that helps determine whether pruning will be
- * useful.  It is currently unused in index pages.
+ * useful. It is currently unused in index pages.
  *
  * The page version number and page size are packed together into a single
  * uint16 field.  This is for historical reasons: before PostgreSQL 7.3,
@@ -132,7 +132,7 @@ typedef struct PageHeaderData
    LocationIndex pd_upper;     /* offset to end of free space */
    LocationIndex pd_special;   /* offset to start of special space */
    uint16      pd_pagesize_version;
-   TransactionId pd_prune_xid; /* oldest prunable XID, or zero if none */
+   TransactionId pd_prune_xid; /* oldest prunable XID, or zero if none */
    ItemIdData  pd_linp[1];     /* beginning of line pointer array */
 } PageHeaderData;
 
@@ -150,10 +150,11 @@ typedef PageHeaderData *PageHeader;
  * page for its new tuple version; this suggests that a prune is needed.
  * Again, this is just a hint.
  */
-#define PD_HAS_FREE_LINES  0x0001  /* are there any unused line pointers? */
-#define PD_PAGE_FULL       0x0002  /* not enough free space for new tuple? */
+#define PD_HAS_FREE_LINES  0x0001      /* are there any unused line pointers? */
+#define PD_PAGE_FULL       0x0002      /* not enough free space for new
+                                        * tuple? */
 
-#define PD_VALID_FLAG_BITS 0x0003  /* OR of all valid pd_flags bits */
+#define PD_VALID_FLAG_BITS 0x0003      /* OR of all valid pd_flags bits */
 
 /*
  * Page layout version number 0 is for pre-7.3 Postgres releases.
index 2a18f18226edd46e3625a6aa968383760e0ef49d..5d3ce9d5c91970f94ce04001c08a7ebbd7dc7e37 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/storage/itemid.h,v 1.28 2007/09/12 22:10:26 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/storage/itemid.h,v 1.29 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -31,7 +31,7 @@ typedef struct ItemIdData
 typedef ItemIdData *ItemId;
 
 /*
- * lp_flags has these possible states.  An UNUSED line pointer is available
+ * lp_flags has these possible states. An UNUSED line pointer is available
  * for immediate re-use, the other states are not.
  */
 #define LP_UNUSED      0       /* unused (should always have lp_len=0) */
index a04b1f876a34089e6c5adf76b2dda712bf82aeb9..d1779094e958e38120d05d258bdd718c5a21b01f 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/storage/large_object.h,v 1.37 2007/03/03 19:52:46 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/storage/large_object.h,v 1.38 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -78,6 +78,6 @@ extern int    inv_seek(LargeObjectDesc *obj_desc, int offset, int whence);
 extern int inv_tell(LargeObjectDesc *obj_desc);
 extern int inv_read(LargeObjectDesc *obj_desc, char *buf, int nbytes);
 extern int inv_write(LargeObjectDesc *obj_desc, const char *buf, int nbytes);
-extern void    inv_truncate(LargeObjectDesc *obj_desc, int len);
+extern void inv_truncate(LargeObjectDesc *obj_desc, int len);
 
 #endif   /* LARGE_OBJECT_H */
index 005c99ee7dc6218896d3901190c68964bf317c0f..60989c8e3e5e749f12b99230f38cb6bb2706af24 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/storage/lock.h,v 1.108 2007/10/26 20:45:10 alvherre Exp $
+ * $PostgreSQL: pgsql/src/include/storage/lock.h,v 1.109 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -45,7 +45,7 @@ extern bool Debug_deadlocks;
 /*
  * Top-level transactions are identified by VirtualTransactionIDs comprising
  * the BackendId of the backend running the xact, plus a locally-assigned
- * LocalTransactionId.  These are guaranteed unique over the short term,
+ * LocalTransactionId. These are guaranteed unique over the short term,
  * but will be reused after a database restart; hence they should never
  * be stored on disk.
  *
@@ -60,11 +60,12 @@ extern bool Debug_deadlocks;
 typedef struct
 {
    BackendId   backendId;      /* determined at backend startup */
-   LocalTransactionId localTransactionId;  /* backend-local transaction id */
-} VirtualTransactionId;
+   LocalTransactionId localTransactionId;      /* backend-local transaction
+                                                * id */
+}  VirtualTransactionId;
 
 #define InvalidLocalTransactionId      0
-#define LocalTransactionIdIsValid(lxid)    ((lxid) != InvalidLocalTransactionId)
+#define LocalTransactionIdIsValid(lxid) ((lxid) != InvalidLocalTransactionId)
 #define VirtualTransactionIdIsValid(vxid) \
    (((vxid).backendId != InvalidBackendId) && \
     LocalTransactionIdIsValid((vxid).localTransactionId))
@@ -171,7 +172,7 @@ typedef enum LockTagType
    /* ID info for a tuple is PAGE info + OffsetNumber */
    LOCKTAG_TRANSACTION,        /* transaction (for waiting for xact done) */
    /* ID info for a transaction is its TransactionId */
-   LOCKTAG_VIRTUALTRANSACTION, /* virtual transaction (ditto) */
+   LOCKTAG_VIRTUALTRANSACTION, /* virtual transaction (ditto) */
    /* ID info for a virtual transaction is its VirtualTransactionId */
    LOCKTAG_OBJECT,             /* non-relation database object */
    /* ID info for an object is DB OID + CLASS OID + OBJECT OID + SUBID */
@@ -444,8 +445,8 @@ typedef enum
    DS_SOFT_DEADLOCK,           /* deadlock avoided by queue rearrangement */
    DS_HARD_DEADLOCK,           /* deadlock, no way out but ERROR */
    DS_BLOCKED_BY_AUTOVACUUM    /* no deadlock; queue blocked by autovacuum
-                                  worker */
-} DeadLockState;
+                                * worker */
+}  DeadLockState;
 
 
 /*
@@ -476,7 +477,7 @@ extern void LockReleaseAll(LOCKMETHODID lockmethodid, bool allLocks);
 extern void LockReleaseCurrentOwner(void);
 extern void LockReassignCurrentOwner(void);
 extern VirtualTransactionId *GetLockConflicts(const LOCKTAG *locktag,
-                                             LOCKMODE lockmode);
+                LOCKMODE lockmode);
 extern void AtPrepare_Locks(void);
 extern void PostPrepare_Locks(TransactionId xid);
 extern int LockCheckConflicts(LockMethod lockMethodTable,
index 8142ee0f2c462fd34412a7aa7b8685d674b0a946..0735fa1ea80242ef602f2268ba9697424c5425bd 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/storage/pmsignal.h,v 1.17 2007/02/15 23:23:23 alvherre Exp $
+ * $PostgreSQL: pgsql/src/include/storage/pmsignal.h,v 1.18 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -26,8 +26,8 @@ typedef enum
    PMSIGNAL_WAKEN_CHILDREN,    /* send a SIGUSR1 signal to all backends */
    PMSIGNAL_WAKEN_ARCHIVER,    /* send a NOTIFY signal to xlog archiver */
    PMSIGNAL_ROTATE_LOGFILE,    /* send SIGUSR1 to syslogger to rotate logfile */
-   PMSIGNAL_START_AUTOVAC_LAUNCHER, /* start an autovacuum launcher */
-   PMSIGNAL_START_AUTOVAC_WORKER, /* start an autovacuum worker */
+   PMSIGNAL_START_AUTOVAC_LAUNCHER,    /* start an autovacuum launcher */
+   PMSIGNAL_START_AUTOVAC_WORKER,      /* start an autovacuum worker */
 
    NUM_PMSIGNALS               /* Must be last value of enum! */
 } PMSignalReason;
index 4ffb51b43451751ec4323ec7224a53a638a42599..035f99f52d588878d772cc70326da4a946770880 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/storage/proc.h,v 1.101 2007/10/24 20:55:36 alvherre Exp $
+ * $PostgreSQL: pgsql/src/include/storage/proc.h,v 1.102 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -42,7 +42,7 @@ struct XidCache
 #define        PROC_IS_AUTOVACUUM  0x01    /* is it an autovac worker? */
 #define        PROC_IN_VACUUM      0x02    /* currently running lazy vacuum */
 #define        PROC_IN_ANALYZE     0x04    /* currently running analyze */
-#define        PROC_VACUUM_FOR_WRAPAROUND 0x08 /* set by autovac only */
+#define        PROC_VACUUM_FOR_WRAPAROUND 0x08     /* set by autovac only */
 
 /* flags reset at EOXact */
 #define        PROC_VACUUM_STATE_MASK (0x0E)
@@ -145,7 +145,7 @@ typedef struct PROC_HDR
 /* configurable options */
 extern int DeadlockTimeout;
 extern int StatementTimeout;
-extern bool    log_lock_waits;
+extern bool log_lock_waits;
 
 extern volatile bool cancel_from_timeout;
 
index c330d0093fcd12259cd7f64178168079bd525e9f..06a9fd38f8e7f7e5f3ec830b5807602f25a2f436 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/storage/procarray.h,v 1.17 2007/09/08 20:31:15 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/storage/procarray.h,v 1.18 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -37,14 +37,14 @@ extern int  BackendXidGetPid(TransactionId xid);
 extern bool IsBackendPid(int pid);
 
 extern VirtualTransactionId *GetCurrentVirtualXIDs(TransactionId limitXmin,
-                                                  bool allDbs);
+                     bool allDbs);
 extern int CountActiveBackends(void);
 extern int CountDBBackends(Oid databaseid);
 extern int CountUserBackends(Oid roleid);
 extern bool CheckOtherDBBackends(Oid databaseId);
 
 extern void XidCacheRemoveRunningXids(TransactionId xid,
-                                     int nxids, const TransactionId *xids,
-                                     TransactionId latestXid);
+                         int nxids, const TransactionId *xids,
+                         TransactionId latestXid);
 
 #endif   /* PROCARRAY_H */
index ff0a68e25a2c9f052f98b0deb139d61295ca54a7..bbc42d64e6b652c3b423803f3d15d34f3bc390a1 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/storage/sinvaladt.h,v 1.43 2007/09/05 18:10:48 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/storage/sinvaladt.h,v 1.44 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -90,7 +90,7 @@ typedef struct SISeg
     * this here because it is indexed by BackendId and it is convenient to
     * copy the value to and from local memory when MyBackendId is set.
     */
-   LocalTransactionId *nextLXID; /* array of maxBackends entries */
+   LocalTransactionId *nextLXID;       /* array of maxBackends entries */
 
    /*
     * Circular buffer holding shared-inval messages
index 87b0171a1b8b5c874b202cafd768e2f485d81d8a..9a6bb309c3011a5587f43a91b3ab7d1d25f21530 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/storage/smgr.h,v 1.60 2007/11/15 20:36:40 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/storage/smgr.h,v 1.61 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -76,8 +76,8 @@ extern void smgrtruncate(SMgrRelation reln, BlockNumber nblocks,
             bool isTemp);
 extern void smgrimmedsync(SMgrRelation reln);
 extern void smgrDoPendingDeletes(bool isCommit);
-extern int smgrGetPendingDeletes(bool forCommit, RelFileNode **ptr,
-                                 bool *haveNonTemp);
+extern int smgrGetPendingDeletes(bool forCommit, RelFileNode **ptr,
+                     bool *haveNonTemp);
 extern void AtSubCommit_smgr(void);
 extern void AtSubAbort_smgr(void);
 extern void PostPrepare_smgr(void);
index 97341efaf042d84f64e75f79b4272dcd44a7bbeb..0804f57b6e9eb8ed84c680c8ad2fe31453220d82 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/tcop/tcopprot.h,v 1.90 2007/07/25 12:22:54 mha Exp $
+ * $PostgreSQL: pgsql/src/include/tcop/tcopprot.h,v 1.91 2007/11/15 21:14:44 momjian Exp $
  *
  * OLD COMMENTS
  *   This file was created so that other c files could get the two
@@ -50,9 +50,9 @@ extern List *pg_parse_query(const char *query_string);
 extern List *pg_analyze_and_rewrite(Node *parsetree, const char *query_string,
                       Oid *paramTypes, int numParams);
 extern PlannedStmt *pg_plan_query(Query *querytree, int cursorOptions,
-                                 ParamListInfo boundParams);
+             ParamListInfo boundParams);
 extern List *pg_plan_queries(List *querytrees, int cursorOptions,
-                            ParamListInfo boundParams, bool needSnapshot);
+               ParamListInfo boundParams, bool needSnapshot);
 
 extern bool assign_max_stack_depth(int newval, bool doit, GucSource source);
 
index 863a664cf528e780abe2b287ef47524b0d01ea2d..906854c5e8b7503636a70ce6d9632ef9f643eaf8 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/tcop/utility.h,v 1.32 2007/03/13 00:33:43 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/tcop/utility.h,v 1.33 2007/11/15 21:14:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -18,8 +18,8 @@
 
 
 extern void ProcessUtility(Node *parsetree, const char *queryString,
-                          ParamListInfo params, bool isTopLevel,
-                          DestReceiver *dest, char *completionTag);
+              ParamListInfo params, bool isTopLevel,
+              DestReceiver *dest, char *completionTag);
 
 extern bool UtilityReturnsTuples(Node *parsetree);
 
index d187875168cd378324805b943aca8dd86a177e48..47fc3ec76e3483b273cd13561ed6f36f78d9c33b 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/include/tsearch/dicts/regis.h,v 1.1 2007/08/21 01:11:29 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/tsearch/dicts/regis.h,v 1.2 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -22,7 +22,7 @@ typedef struct RegisNode
                unused:14;
    struct RegisNode *next;
    unsigned char data[1];
-} RegisNode;
+}  RegisNode;
 
 #define  RNHDRSZ   (offsetof(RegisNode,data))
 
@@ -36,7 +36,7 @@ typedef struct Regis
                issuffix:1,
                nchar:16,
                unused:15;
-} Regis;
+}  Regis;
 
 bool       RS_isRegis(const char *str);
 
index 4f2d41e4f3e4b5c4e4704fb1a5d8114545e8bb79..cfcc9391d63d3af0869cdc06f63c11a250e38648 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/include/tsearch/dicts/spell.h,v 1.3 2007/09/11 12:57:05 teodor Exp $
+ * $PostgreSQL: pgsql/src/include/tsearch/dicts/spell.h,v 1.4 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -20,7 +20,7 @@
 
 /*
  * Max length of a flag name. Names longer than this will be truncated
- * to the maximum. 
+ * to the maximum.
  */
 #define MAXFLAGLEN 16
 
@@ -33,7 +33,7 @@ typedef struct
                compoundflag:4,
                affix:19;
    struct SPNode *node;
-} SPNodeData;
+}  SPNodeData;
 
 /*
  * Names of FF_ are correlated with Hunspell options in affix file
@@ -50,7 +50,7 @@ typedef struct SPNode
 {
    uint32      length;
    SPNodeData  data[1];
-} SPNode;
+}  SPNode;
 
 #define SPNHDRSZ   (offsetof(SPNode,data))
 
@@ -60,8 +60,8 @@ typedef struct spell_struct
    union
    {
        /*
-        * flag is filled in by NIImportDictionary. After NISortDictionary,
-        * d is valid and flag is invalid. 
+        * flag is filled in by NIImportDictionary. After NISortDictionary, d
+        * is valid and flag is invalid.
         */
        char        flag[MAXFLAGLEN];
        struct
@@ -70,8 +70,8 @@ typedef struct spell_struct
            int         len;
        }           d;
    }           p;
-   char        word[1]; /* variable length, null-terminated */
-} SPELL;
+   char        word[1];        /* variable length, null-terminated */
+}  SPELL;
 
 #define SPELLHDRSZ (offsetof(SPELL, word))
 
@@ -90,7 +90,7 @@ typedef struct aff_struct
        regex_t     regex;
        Regis       regis;
    }           reg;
-} AFFIX;
+}  AFFIX;
 
 /*
  * affixes use dictionary flags too
@@ -114,14 +114,14 @@ typedef struct
                naff:24;
    AFFIX     **aff;
    struct AffixNode *node;
-} AffixNodeData;
+}  AffixNodeData;
 
 typedef struct AffixNode
 {
    uint32      isvoid:1,
                length:31;
    AffixNodeData data[1];
-} AffixNode;
+}  AffixNode;
 
 #define ANHRDSZ           (offsetof(AffixNode, data))
 
@@ -130,7 +130,7 @@ typedef struct
    char       *affix;
    int         len;
    bool        issuffix;
-} CMPDAffix;
+}  CMPDAffix;
 
 typedef struct
 {
@@ -139,12 +139,12 @@ typedef struct
    AFFIX      *Affix;
 
    /*
-    * Temporary array of all words in the dict file. Only used during 
+    * Temporary array of all words in the dict file. Only used during
     * initialization
     */
    SPELL     **Spell;
-   int         nspell; /* number of valid entries in Spell array */
-   int         mspell; /* allocated length of Spell array */
+   int         nspell;         /* number of valid entries in Spell array */
+   int         mspell;         /* allocated length of Spell array */
 
    AffixNode  *Suffix;
    AffixNode  *Prefix;
@@ -158,7 +158,7 @@ typedef struct
 
    unsigned char flagval[256];
    bool        usecompound;
-} IspellDict;
+}  IspellDict;
 
 extern TSLexeme *NINormalizeWord(IspellDict * Conf, char *word);
 extern void NIImportAffixes(IspellDict * Conf, const char *filename);
index ac309f8c324c8888a36fee3c810014106ee24ab4..c24a14c55a5a0405705a1bccce8cedaa5c4e8443 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/tsearch/ts_cache.h,v 1.1 2007/08/21 01:11:29 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/tsearch/ts_cache.h,v 1.2 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -25,7 +25,7 @@ typedef struct TSAnyCacheEntry
 {
    Oid         objId;
    bool        isvalid;
-} TSAnyCacheEntry;
+}  TSAnyCacheEntry;
 
 
 typedef struct TSParserCacheEntry
@@ -47,7 +47,7 @@ typedef struct TSParserCacheEntry
    FmgrInfo    prstoken;
    FmgrInfo    prsend;
    FmgrInfo    prsheadline;
-} TSParserCacheEntry;
+}  TSParserCacheEntry;
 
 typedef struct TSDictionaryCacheEntry
 {
@@ -61,13 +61,13 @@ typedef struct TSDictionaryCacheEntry
 
    MemoryContext dictCtx;      /* memory context to store private data */
    void       *dictData;
-} TSDictionaryCacheEntry;
+}  TSDictionaryCacheEntry;
 
 typedef struct
 {
    int         len;
    Oid        *dictIds;
-} ListDictionary;
+}  ListDictionary;
 
 typedef struct
 {
@@ -79,7 +79,7 @@ typedef struct
 
    int         lenmap;
    ListDictionary *map;
-} TSConfigCacheEntry;
+}  TSConfigCacheEntry;
 
 
 /*
index cea3830a0f103724371f858573c4612b249814de..93e314def78e16c752f3ea52400360d77cb77118 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1998-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/include/tsearch/ts_locale.h,v 1.3 2007/11/09 22:37:35 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/tsearch/ts_locale.h,v 1.4 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -49,8 +49,7 @@ extern int    t_isprint(const char *ptr);
 #define t_iseq(x,c)        (TOUCHAR(x) == (unsigned char) (c))
 
 #define COPYCHAR(d,s)  memcpy(d, s, pg_mblen(s))
-
-#else  /* not TS_USE_WIDE */
+#else                          /* not TS_USE_WIDE */
 
 #define t_isdigit(x)   isdigit(TOUCHAR(x))
 #define t_isspace(x)   isspace(TOUCHAR(x))
@@ -59,8 +58,7 @@ extern int    t_isprint(const char *ptr);
 #define t_iseq(x,c)        (TOUCHAR(x) == (unsigned char) (c))
 
 #define COPYCHAR(d,s)  (*((unsigned char *) (d)) = TOUCHAR(s))
-
-#endif /* TS_USE_WIDE */
+#endif   /* TS_USE_WIDE */
 
 extern char *lowerstr(const char *str);
 extern char *lowerstr_with_len(const char *str, int len);
index 92736c4e1bcb7d4358c0d261a9c9318a881be814..d07e138464c2c4269e54b937db82881d0b563db3 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1998-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/include/tsearch/ts_public.h,v 1.5 2007/11/09 22:37:35 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/tsearch/ts_public.h,v 1.6 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -27,7 +27,7 @@ typedef struct
    int         lexid;
    char       *alias;
    char       *descr;
-} LexDescr;
+}  LexDescr;
 
 /*
  * Interface to headline generator
@@ -42,8 +42,8 @@ typedef struct
                type:8,
                len:16;
    char       *word;
-   QueryOperand  *item;
-} HeadlineWordEntry;
+   QueryOperand *item;
+}  HeadlineWordEntry;
 
 typedef struct
 {
@@ -54,13 +54,13 @@ typedef struct
    char       *stopsel;
    int2        startsellen;
    int2        stopsellen;
-} HeadlineParsedText;
+}  HeadlineParsedText;
 
 /*
  * Common useful things for tsearch subsystem
  */
 extern char *get_tsearch_config_filename(const char *basename,
-                                        const char *extension);
+                           const char *extension);
 
 extern char *pnstrdup(const char *in, int len);
 
@@ -71,11 +71,11 @@ typedef struct
 {
    int         len;
    char      **stop;
-} StopList;
+}  StopList;
 
-extern void readstoplist(const char *fname, StopList *s,
-                        char *(*wordop) (const char *));
-extern bool searchstoplist(StopList *s, char *key);
+extern void readstoplist(const char *fname, StopList * s,
+            char *(*wordop) (const char *));
+extern bool searchstoplist(StopList * s, char *key);
 
 /*
  * Interface with dictionaries
@@ -96,7 +96,7 @@ typedef struct
 
    /* C-string */
    char       *lexeme;
-} TSLexeme;
+}  TSLexeme;
 
 #define TSL_ADDPOS     0x01
 
@@ -111,6 +111,6 @@ typedef struct
    bool        getnext;        /* out: dict wants next lexeme */
    void       *private;        /* internal dict state between calls with
                                 * getnext == true */
-} DictSubState;
+}  DictSubState;
 
 #endif   /* _PG_TS_PUBLIC_H_ */
index de2e4a5334cd9830e76b885014d33b575b184b61..1d0fa44ba5f3f44409f2ed475a77a971e8eee8d5 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1998-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/include/tsearch/ts_type.h,v 1.7 2007/10/24 02:24:49 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/tsearch/ts_type.h,v 1.8 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -27,7 +27,7 @@ typedef struct
                haspos:1,
                len:11,         /* MAX 2Kb */
                pos:20;         /* MAX 1Mb */
-} WordEntry;
+}  WordEntry;
 
 #define MAXSTRLEN ( (1<<11) - 1)
 #define MAXSTRPOS ( (1<<20) - 1)
@@ -45,15 +45,15 @@ typedef uint16 WordEntryPos;
 
 typedef struct
 {
-   uint16 npos;
-   WordEntryPos pos[1]; /* var length */
-} WordEntryPosVector;
+   uint16      npos;
+   WordEntryPos pos[1];        /* var length */
+}  WordEntryPosVector;
 
 
 #define WEP_GETWEIGHT(x)   ( (x) >> 14 )
 #define WEP_GETPOS(x)      ( (x) & 0x3fff )
 
-#define WEP_SETWEIGHT(x,v)  ( (x) = ( (v) << 14 ) | ( (x) & 0x3fff ) )
+#define WEP_SETWEIGHT(x,v) ( (x) = ( (v) << 14 ) | ( (x) & 0x3fff ) )
 #define WEP_SETPOS(x,v)        ( (x) = ( (x) & 0xc000 ) | ( (v) & 0x3fff ) )
 
 #define MAXENTRYPOS (1<<14)
@@ -70,7 +70,7 @@ typedef struct
  *                         corresponding lexeme.
  * 4) Lexeme's storage:
  *   lexeme (without null-terminator)
- *    if haspos is true:
+ *   if haspos is true:
  *     padding byte if necessary to make the number of positions 2-byte aligned
  *     uint16      number of positions that follow.
  *     uint16[]    positions
@@ -82,9 +82,9 @@ typedef struct
 {
    int32       vl_len_;        /* varlena header (do not touch directly!) */
    int32       size;
-   WordEntry   entries[1]; /* var size */
+   WordEntry   entries[1];     /* var size */
    /* lexemes follow */
-} TSVectorData;
+}  TSVectorData;
 
 typedef TSVectorData *TSVector;
 
@@ -95,7 +95,7 @@ typedef TSVectorData *TSVector;
 /* returns a pointer to the beginning of lexemes */
 #define STRPTR(x)  ( (char *) &(x)->entries[x->size] )
 
-#define _POSVECPTR(x, e)   ((WordEntryPosVector *)(STRPTR(x) + SHORTALIGN((e)->pos + (e)->len)))
+#define _POSVECPTR(x, e)   ((WordEntryPosVector *)(STRPTR(x) + SHORTALIGN((e)->pos + (e)->len)))
 #define POSDATALEN(x,e) ( ( (e)->haspos ) ? (_POSVECPTR(x,e)->npos) : 0 )
 #define POSDATAPTR(x,e) (_POSVECPTR(x,e)->pos)
 
@@ -165,46 +165,45 @@ typedef int8 QueryItemType;
 /* Valid values for QueryItemType: */
 #define QI_VAL 1
 #define QI_OPR 2
-#define QI_VALSTOP 3   /* This is only used in an intermediate stack representation in parse_tsquery. It's not a legal type elsewhere. */
+#define QI_VALSTOP 3           /* This is only used in an intermediate stack
+                                * representation in parse_tsquery. It's not a
+                                * legal type elsewhere. */
 
 /*
  * QueryItem is one node in tsquery - operator or operand.
  */
 typedef struct
 {
-   QueryItemType       type;   /* operand or kind of operator (ts_tokentype) */
-   uint8       weight;         /* weights of operand to search. It's a bitmask of allowed weights.
-                                * if it =0 then any weight are allowed.
-                                * Weights and bit map:
-                                * A: 1<<3
-                                * B: 1<<2
-                                * C: 1<<1
-                                * D: 1<<0
-                                */
-   int32   valcrc;             /* XXX: pg_crc32 would be a more appropriate data type, 
-                                * but we use comparisons to signed integers in the code. 
-                                * They would need to be changed as well. */
+   QueryItemType type;         /* operand or kind of operator (ts_tokentype) */
+   uint8       weight;         /* weights of operand to search. It's a
+                                * bitmask of allowed weights. if it =0 then
+                                * any weight are allowed. Weights and bit
+                                * map: A: 1<<3 B: 1<<2 C: 1<<1 D: 1<<0 */
+   int32       valcrc;         /* XXX: pg_crc32 would be a more appropriate
+                                * data type, but we use comparisons to signed
+                                * integers in the code. They would need to be
+                                * changed as well. */
 
    /* pointer to text value of operand, must correlate with WordEntry */
    uint32
                length:12,
                distance:20;
-} QueryOperand;
+}  QueryOperand;
 
 
 /* Legal values for QueryOperator.operator */
-#define    OP_NOT  1
-#define    OP_AND  2
-#define    OP_OR   3
+#define OP_NOT 1
+#define OP_AND 2
+#define OP_OR  3
 
-typedef struct 
+typedef struct
 {
-   QueryItemType   type;
-   int8        oper;       /* see above */
-   uint32      left;       /* pointer to left operand. Right operand is
-                            * item + 1, left operand is placed
-                            * item+item->left */
-} QueryOperator;
+   QueryItemType type;
+   int8        oper;           /* see above */
+   uint32      left;           /* pointer to left operand. Right operand is
+                                * item + 1, left operand is placed
+                                * item+item->left */
+}  QueryOperator;
 
 /*
  * Note: TSQuery is 4-bytes aligned, so make sure there's no fields
@@ -212,10 +211,10 @@ typedef struct
  */
 typedef union
 {
-   QueryItemType   type;
+   QueryItemType type;
    QueryOperator operator;
    QueryOperand operand;
-} QueryItem;
+}  QueryItem;
 
 /*
  * Storage:
@@ -227,7 +226,7 @@ typedef struct
    int32       vl_len_;        /* varlena header (do not touch directly!) */
    int4        size;           /* number of QueryItems */
    char        data[1];
-} TSQueryData;
+}  TSQueryData;
 
 typedef TSQueryData *TSQuery;
 
@@ -236,7 +235,7 @@ typedef TSQueryData *TSQuery;
 /* Computes the size of header and all QueryItems. size is the number of
  * QueryItems, and lenofoperand is the total length of all operands
  */
-#define COMPUTESIZE(size, lenofoperand)    ( HDRSIZETQ + (size) * sizeof(QueryItem) + (lenofoperand) )
+#define COMPUTESIZE(size, lenofoperand) ( HDRSIZETQ + (size) * sizeof(QueryItem) + (lenofoperand) )
 
 /* Returns a pointer to the first QueryItem in a TSVector */
 #define GETQUERY(x)  ((QueryItem*)( (char*)(x)+HDRSIZETQ ))
index 575cf759530b770480678e7c394d67806b68c491..2ed8485ec016f6cd20d96acf43608a1a548a1f3b 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1998-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/include/tsearch/ts_utils.h,v 1.8 2007/11/13 22:14:50 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/tsearch/ts_utils.h,v 1.9 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -26,13 +26,13 @@ struct TSVectorParseStateData;  /* opaque struct in tsvector_parser.c */
 typedef struct TSVectorParseStateData *TSVectorParseState;
 
 extern TSVectorParseState init_tsvector_parser(char *input,
-                                              bool oprisdelim,
-                                              bool is_tsquery);
+                    bool oprisdelim,
+                    bool is_tsquery);
 extern void reset_tsvector_parser(TSVectorParseState state, char *input);
-extern bool gettoken_tsvector(TSVectorParseState state, 
-                             char **token, int *len,
-                             WordEntryPos **pos, int *poslen,
-                             char **endptr);
+extern bool gettoken_tsvector(TSVectorParseState state,
+                 char **token, int *len,
+                 WordEntryPos ** pos, int *poslen,
+                 char **endptr);
 extern void close_tsvector_parser(TSVectorParseState state);
 
 /* parse_tsquery */
@@ -40,9 +40,11 @@ extern void close_tsvector_parser(TSVectorParseState state);
 struct TSQueryParserStateData; /* private in backend/utils/adt/tsquery.c */
 typedef struct TSQueryParserStateData *TSQueryParserState;
 
-typedef void (*PushFunction)(Datum opaque, TSQueryParserState state, 
-               char *token, int tokenlen, 
-               int2 tokenweights /* bitmap as described in QueryOperand struct */ );
+typedef void (*PushFunction) (Datum opaque, TSQueryParserState state,
+                                         char *token, int tokenlen,
+                                         int2 tokenweights     /* bitmap as described
+                                                                * in QueryOperand
+                                 struct */ );
 
 extern TSQuery parse_tsquery(char *buf,
              PushFunction pushval,
@@ -50,7 +52,7 @@ extern TSQuery parse_tsquery(char *buf,
 
 /* Functions for use by PushFunction implementations */
 extern void pushValue(TSQueryParserState state,
-            char *strval, int lenval, int2 weight);
+         char *strval, int lenval, int2 weight);
 extern void pushStop(TSQueryParserState state);
 extern void pushOperator(TSQueryParserState state, int8 operator);
 
@@ -64,16 +66,17 @@ typedef struct
    union
    {
        uint16      pos;
+
        /*
-        * When apos array is used, apos[0] is the number of elements
-        * in the array (excluding apos[0]), and alen is the allocated
-        * size of the array.
+        * When apos array is used, apos[0] is the number of elements in the
+        * array (excluding apos[0]), and alen is the allocated size of the
+        * array.
         */
        uint16     *apos;
    }           pos;
    char       *word;
    uint32      alen;
-} ParsedWord;
+}  ParsedWord;
 
 typedef struct
 {
@@ -81,7 +84,7 @@ typedef struct
    int4        lenwords;
    int4        curwords;
    int4        pos;
-} ParsedText;
+}  ParsedText;
 
 extern void parsetext(Oid cfgId, ParsedText * prs, char *buf, int4 buflen);
 
@@ -112,7 +115,7 @@ extern bool TS_execute(QueryItem * curitem, void *checkval, bool calcnot,
 /*
  * to_ts* - text transformation to tsvector, tsquery
  */
-extern TSVector make_tsvector(ParsedText *prs);
+extern TSVector make_tsvector(ParsedText * prs);
 
 extern Datum to_tsvector_byid(PG_FUNCTION_ARGS);
 extern Datum to_tsvector(PG_FUNCTION_ARGS);
@@ -170,7 +173,7 @@ typedef struct QTNode
    char       *word;
    uint32      sign;
    struct QTNode **child;
-} QTNode;
+}  QTNode;
 
 /* bits in QTNode.flags */
 #define QTN_NEEDFREE   0x01
@@ -183,18 +186,18 @@ typedef uint64 TSQuerySign;
 
 
 extern QTNode *QT2QTN(QueryItem * in, char *operand);
-extern TSQuery QTN2QT(QTNode *in);
+extern TSQuery QTN2QT(QTNode * in);
 extern void QTNFree(QTNode * in);
 extern void QTNSort(QTNode * in);
 extern void QTNTernary(QTNode * in);
 extern void QTNBinary(QTNode * in);
 extern int QTNodeCompare(QTNode * an, QTNode * bn);
-extern QTNode *QTNCopy(QTNode *in);
-extern void QTNClearFlags(QTNode *in, uint32 flags);
+extern QTNode *QTNCopy(QTNode * in);
+extern void QTNClearFlags(QTNode * in, uint32 flags);
 extern bool QTNEq(QTNode * a, QTNode * b);
 extern TSQuerySign makeTSQuerySign(TSQuery a);
-extern QTNode *findsubquery(QTNode *root, QTNode *ex, QTNode *subs,
-                           bool *isfind);
+extern QTNode *findsubquery(QTNode * root, QTNode * ex, QTNode * subs,
+            bool *isfind);
 
 /*
  * TSQuery GiST support
index 780c4c51d0ab37e67cd1e5b5c6266bf052974c00..cf9e03fcf3d3e1faa68e53e96e7d0dfc01778435 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/utils/builtins.h,v 1.305 2007/10/13 23:06:27 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/builtins.h,v 1.306 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -562,7 +562,7 @@ extern char *deparse_expression(Node *expr, List *dpcontext,
                   bool forceprefix, bool showimplicit);
 extern List *deparse_context_for(const char *aliasname, Oid relid);
 extern List *deparse_context_for_plan(Node *outer_plan, Node *inner_plan,
-                                     List *rtable);
+                        List *rtable);
 extern const char *quote_identifier(const char *ident);
 extern char *quote_qualified_identifier(const char *namespace,
                           const char *ident);
@@ -818,7 +818,7 @@ extern Datum numeric_recv(PG_FUNCTION_ARGS);
 extern Datum numeric_send(PG_FUNCTION_ARGS);
 extern Datum numerictypmodin(PG_FUNCTION_ARGS);
 extern Datum numerictypmodout(PG_FUNCTION_ARGS);
-extern Datum numeric(PG_FUNCTION_ARGS);
+extern Datum numeric (PG_FUNCTION_ARGS);
 extern Datum numeric_abs(PG_FUNCTION_ARGS);
 extern Datum numeric_uminus(PG_FUNCTION_ARGS);
 extern Datum numeric_uplus(PG_FUNCTION_ARGS);
index 6edc02c23323864fc53d0f9c1d4cfacba36f2c95..21b37c9c7f648b895f4ee1a10268011a414f5ca4 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/utils/elog.h,v 1.88 2007/08/19 01:41:25 adunstan Exp $
+ * $PostgreSQL: pgsql/src/include/utils/elog.h,v 1.89 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -291,7 +291,7 @@ extern int  Log_destination;
 #define LOG_DESTINATION_STDERR  1
 #define LOG_DESTINATION_SYSLOG  2
 #define LOG_DESTINATION_EVENTLOG 4
-#define LOG_DESTINATION_CSVLOG   8
+#define LOG_DESTINATION_CSVLOG  8
 
 /* Other exported functions */
 extern void DebugFileOpen(void);
index 6672c8d821be173291a245ea027733cdad10be05..ea525f51aecd2a1731fe1d96a1db7e8fde549707 100644 (file)
@@ -7,7 +7,7 @@
  * Copyright (c) 2000-2007, PostgreSQL Global Development Group
  * Written by Peter Eisentraut <[email protected]>.
  *
- * $PostgreSQL: pgsql/src/include/utils/guc.h,v 1.86 2007/09/11 00:06:42 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/guc.h,v 1.87 2007/11/15 21:14:45 momjian Exp $
  *--------------------------------------------------------------------
  */
 #ifndef GUC_H
@@ -106,7 +106,7 @@ typedef enum
    GUC_ACTION_SET,             /* regular SET command */
    GUC_ACTION_LOCAL,           /* SET LOCAL command */
    GUC_ACTION_SAVE             /* function SET option */
-} GucAction;
+}  GucAction;
 
 #define GUC_QUALIFIER_SEPARATOR '.'
 
@@ -238,7 +238,7 @@ extern void read_nondefault_variables(void);
 extern const char *assign_default_tablespace(const char *newval,
                          bool doit, GucSource source);
 extern const char *assign_temp_tablespaces(const char *newval,
-                         bool doit, GucSource source);
+                       bool doit, GucSource source);
 
 /* in utils/adt/regexp.c */
 extern const char *assign_regex_flavor(const char *value,
index 866678b033ef2106bf2cb956d716ec90632de1bb..6685ba3e93f6ebbf8752fc16135a0bd54ad39abc 100644 (file)
@@ -7,7 +7,7 @@
  *
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  *
- *   $PostgreSQL: pgsql/src/include/utils/guc_tables.h,v 1.35 2007/09/11 00:06:42 tgl Exp $
+ *   $PostgreSQL: pgsql/src/include/utils/guc_tables.h,v 1.36 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -89,7 +89,7 @@ typedef enum
    GUC_SET,                    /* entry caused by plain SET command */
    GUC_LOCAL,                  /* entry caused by SET LOCAL command */
    GUC_SET_LOCAL               /* entry caused by SET then SET LOCAL */
-} GucStackState;
+}  GucStackState;
 
 typedef struct guc_stack
 {
@@ -97,8 +97,8 @@ typedef struct guc_stack
    int         nest_level;     /* nesting depth at which we made entry */
    GucStackState state;        /* see enum above */
    GucSource   source;         /* source of the prior value */
-   union config_var_value prior;   /* previous value of variable */
-   union config_var_value masked;  /* SET value in a GUC_SET_LOCAL entry */
+   union config_var_value prior;       /* previous value of variable */
+   union config_var_value masked;      /* SET value in a GUC_SET_LOCAL entry */
    /* masked value's source must be PGC_S_SESSION, so no need to store it */
 } GucStack;
 
index d94855bb220b66a14bdb1c67459972f22ccd962e..164e595a56ea2d478aa39a49222d5c7e279c130d 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/utils/inet.h,v 1.26 2007/04/06 04:21:44 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/inet.h,v 1.27 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -40,7 +40,7 @@ typedef struct
 /*
  * Both INET and CIDR addresses are represented within Postgres as varlena
  * objects, ie, there is a varlena header in front of the struct type
- * depicted above.  This struct depicts what we actually have in memory
+ * depicted above. This struct depicts what we actually have in memory
  * in "uncompressed" cases.  Note that since the maximum data size is only
  * 18 bytes, INET/CIDR will invariably be stored into tuples using the
  * 1-byte-header varlena format.  However, we have to be prepared to cope
@@ -50,7 +50,7 @@ typedef struct
 typedef struct
 {
    int32       vl_len_;        /* Do not touch this field directly! */
-   inet_struct inet_data;
+   inet_struct inet_data;
 } inet;
 
 
index b8297bd49cf87cccf612b5f67d74d5f5dc08ef0f..b04540b516f953d841e44ef2b49e4a82326d4476 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/utils/lsyscache.h,v 1.120 2007/10/13 15:55:40 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/lsyscache.h,v 1.121 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -29,28 +29,28 @@ typedef enum IOFuncSelector
 extern bool op_in_opfamily(Oid opno, Oid opfamily);
 extern int get_op_opfamily_strategy(Oid opno, Oid opfamily);
 extern void get_op_opfamily_properties(Oid opno, Oid opfamily,
-                         int *strategy,
-                         Oid *lefttype,
-                         Oid *righttype,
-                         bool *recheck);
-extern Oid get_opfamily_member(Oid opfamily, Oid lefttype, Oid righttype,
-                               int16 strategy);
+                          int *strategy,
+                          Oid *lefttype,
+                          Oid *righttype,
+                          bool *recheck);
+extern Oid get_opfamily_member(Oid opfamily, Oid lefttype, Oid righttype,
+                   int16 strategy);
 extern bool get_ordering_op_properties(Oid opno,
                           Oid *opfamily, Oid *opcintype, int16 *strategy);
 extern bool get_compare_function_for_ordering_op(Oid opno,
-                                                Oid *cmpfunc, bool *reverse);
+                                    Oid *cmpfunc, bool *reverse);
 extern Oid get_equality_op_for_ordering_op(Oid opno);
 extern Oid get_ordering_op_for_equality_op(Oid opno, bool use_lhs_type);
 extern List *get_mergejoin_opfamilies(Oid opno);
 extern bool get_compatible_hash_operators(Oid opno,
-                                         Oid *lhs_opno, Oid *rhs_opno);
+                             Oid *lhs_opno, Oid *rhs_opno);
 extern bool get_op_hash_functions(Oid opno,
                      RegProcedure *lhs_procno, RegProcedure *rhs_procno);
 extern void get_op_btree_interpretation(Oid opno,
                            List **opfamilies, List **opstrats);
 extern bool ops_in_same_btree_opfamily(Oid opno1, Oid opno2);
-extern Oid get_opfamily_proc(Oid opfamily, Oid lefttype, Oid righttype,
-                             int16 procnum);
+extern Oid get_opfamily_proc(Oid opfamily, Oid lefttype, Oid righttype,
+                 int16 procnum);
 extern char *get_attname(Oid relid, AttrNumber attnum);
 extern char *get_relid_attribute_name(Oid relid, AttrNumber attnum);
 extern AttrNumber get_attnum(Oid relid, const char *attname);
index fdd9701ee0ea580b0da0eb39038ed9a434ca3bcb..a3c49ae7a726564104ed47eff5c5299784b3cfe6 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Definitions for the builtin LZ compressor
  *
- * $PostgreSQL: pgsql/src/include/utils/pg_lzcompress.h,v 1.15 2007/08/04 21:53:00 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/pg_lzcompress.h,v 1.16 2007/11/15 21:14:45 momjian Exp $
  * ----------
  */
 
@@ -52,7 +52,7 @@ typedef struct PGLZ_Header
  *
  *     force_input_size    Minimum input data size to force compression
  *                         even if the compression rate drops below
- *                         min_comp_rate.  But in any case the output
+ *                         min_comp_rate.  But in any case the output
  *                         must be smaller than the input.  If that isn't
  *                         the case, the compressor will throw away its
  *                         output and copy the original, uncompressed data
@@ -108,8 +108,8 @@ typedef struct PGLZ_Strategy
  *                                 would be larger than input.
  * ----------
  */
-extern const PGLZ_Strategy * const PGLZ_strategy_default;
-extern const PGLZ_Strategy * const PGLZ_strategy_always;
+extern const PGLZ_Strategy *const PGLZ_strategy_default;
+extern const PGLZ_Strategy *const PGLZ_strategy_always;
 
 
 /* ----------
@@ -117,7 +117,7 @@ extern const PGLZ_Strategy * const PGLZ_strategy_always;
  * ----------
  */
 extern bool pglz_compress(const char *source, int32 slen, PGLZ_Header *dest,
-                         const PGLZ_Strategy *strategy);
+             const PGLZ_Strategy *strategy);
 extern void pglz_decompress(const PGLZ_Header *source, char *dest);
 
 #endif   /* _PG_LZCOMPRESS_H_ */
index 0a91e886e294390d358c57f621a6bb7a7ed25d60..2f8c423352c13d3b35ad94df30396b25d78030a0 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/utils/plancache.h,v 1.8 2007/09/20 17:56:32 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/plancache.h,v 1.9 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
  * losing any flexibility if a replan turns out to be necessary.
  *
  * Note: the string referenced by commandTag is not subsidiary storage;
- * it is assumed to be a compile-time-constant string.  As with portals,
+ * it is assumed to be a compile-time-constant string. As with portals,
  * commandTag shall be NULL if and only if the original query string (before
  * rewriting) was an empty string.
  */
 typedef struct CachedPlanSource
 {
-   Node       *raw_parse_tree; /* output of raw_parser() */
+   Node       *raw_parse_tree; /* output of raw_parser() */
    char       *query_string;   /* text of query, or NULL */
    const char *commandTag;     /* command tag (a constant!), or NULL */
    Oid        *param_types;    /* array of parameter type OIDs, or NULL */
    int         num_params;     /* length of param_types array */
-   int         cursor_options; /* cursor options used for planning */
+   int         cursor_options; /* cursor options used for planning */
    bool        fully_planned;  /* do we cache planner or rewriter output? */
    bool        fixed_result;   /* disallow change in result tupdesc? */
    struct OverrideSearchPath *search_path;     /* saved search_path */
@@ -59,8 +59,8 @@ typedef struct CachedPlanSource
    TupleDesc   resultDesc;     /* result type; NULL = doesn't return tuples */
    struct CachedPlan *plan;    /* link to plan, or NULL if not valid */
    MemoryContext context;      /* context containing this CachedPlanSource */
-   struct CachedPlan *orig_plan;   /* link to plan owning my context */
-} CachedPlanSource;
+   struct CachedPlan *orig_plan;       /* link to plan owning my context */
+}  CachedPlanSource;
 
 /*
  * CachedPlan represents the portion of a cached plan that is discarded when
@@ -80,33 +80,33 @@ typedef struct CachedPlan
    int         refcount;       /* count of live references to this struct */
    int         generation;     /* counter, starting at 1, for replans */
    MemoryContext context;      /* context containing this CachedPlan */
-} CachedPlan;
+}  CachedPlan;
 
 
 extern void InitPlanCache(void);
 extern CachedPlanSource *CreateCachedPlan(Node *raw_parse_tree,
-                                         const char *query_string,
-                                         const char *commandTag,
-                                         Oid *param_types,
-                                         int num_params,
-                                         int cursor_options,
-                                         List *stmt_list,
-                                         bool fully_planned,
-                                         bool fixed_result);
+                const char *query_string,
+                const char *commandTag,
+                Oid *param_types,
+                int num_params,
+                int cursor_options,
+                List *stmt_list,
+                bool fully_planned,
+                bool fixed_result);
 extern CachedPlanSource *FastCreateCachedPlan(Node *raw_parse_tree,
-                                             char *query_string,
-                                             const char *commandTag,
-                                             Oid *param_types,
-                                             int num_params,
-                                             int cursor_options,
-                                             List *stmt_list,
-                                             bool fully_planned,
-                                             bool fixed_result,
-                                             MemoryContext context);
-extern void DropCachedPlan(CachedPlanSource *plansource);
-extern CachedPlan *RevalidateCachedPlan(CachedPlanSource *plansource,
-                                       bool useResOwner);
-extern void ReleaseCachedPlan(CachedPlan *plan, bool useResOwner);
+                    char *query_string,
+                    const char *commandTag,
+                    Oid *param_types,
+                    int num_params,
+                    int cursor_options,
+                    List *stmt_list,
+                    bool fully_planned,
+                    bool fixed_result,
+                    MemoryContext context);
+extern void DropCachedPlan(CachedPlanSource * plansource);
+extern CachedPlan *RevalidateCachedPlan(CachedPlanSource * plansource,
+                    bool useResOwner);
+extern void ReleaseCachedPlan(CachedPlan * plan, bool useResOwner);
 extern TupleDesc PlanCacheComputeResultDesc(List *stmt_list);
 
 extern void ResetPlanCache(void);
index 4c31e2a121f7070a8fdad89233be09f90fbcc7c0..11453fbd8cd27a30b5c3adcf101527d430572cdb 100644 (file)
@@ -39,7 +39,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/utils/portal.h,v 1.75 2007/04/12 06:53:48 neilc Exp $
+ * $PostgreSQL: pgsql/src/include/utils/portal.h,v 1.76 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -209,7 +209,7 @@ extern void PortalDefineQuery(Portal portal,
                  const char *sourceText,
                  const char *commandTag,
                  List *stmts,
-                 CachedPlan *cplan);
+                 CachedPlan * cplan);
 extern Node *PortalListGetPrimaryStmt(List *stmts);
 extern void PortalCreateHoldStore(Portal portal);
 extern void PortalHashTableDeleteAll(void);
index 48569c583b248e6825e517bc9ae9c68262f9c1e9..425c07d28561a5e9ef5d30eb3686792326cac79d 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/utils/rel.h,v 1.102 2007/09/20 17:56:32 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/rel.h,v 1.103 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -130,17 +130,17 @@ typedef struct RelationData
    char        rd_indexvalid;  /* state of rd_indexlist: 0 = not valid, 1 =
                                 * valid, 2 = temporarily forced */
    SubTransactionId rd_createSubid;    /* rel was created in current xact */
-   SubTransactionId rd_newRelfilenodeSubid;    /* new relfilenode assigned
-                                                * in current xact */
+   SubTransactionId rd_newRelfilenodeSubid;    /* new relfilenode assigned in
+                                                * current xact */
 
    /*
     * rd_createSubid is the ID of the highest subtransaction the rel has
     * survived into; or zero if the rel was not created in the current top
     * transaction.  This should be relied on only for optimization purposes;
     * it is possible for new-ness to be "forgotten" (eg, after CLUSTER).
-    * Likewise, rd_newRelfilenodeSubid is the ID of the highest subtransaction
-    * the relfilenode change has survived into, or zero if not changed in
-    * the current transaction (or we have forgotten changing it).
+    * Likewise, rd_newRelfilenodeSubid is the ID of the highest
+    * subtransaction the relfilenode change has survived into, or zero if not
+    * changed in the current transaction (or we have forgotten changing it).
     */
    Form_pg_class rd_rel;       /* RELATION tuple */
    TupleDesc   rd_att;         /* tuple descriptor */
@@ -171,8 +171,8 @@ typedef struct RelationData
     *
     * Note: only default operators and support procs for each opclass are
     * cached, namely those with lefttype and righttype equal to the opclass's
-    * opcintype.  The arrays are indexed by strategy or support number,
-    * which is a sufficient identifier given that restriction.
+    * opcintype.  The arrays are indexed by strategy or support number, which
+    * is a sufficient identifier given that restriction.
     *
     * Note: rd_amcache is available for index AMs to cache private data about
     * an index.  This must be just a cache since it may get reset at any time
@@ -194,7 +194,7 @@ typedef struct RelationData
    void       *rd_amcache;     /* available for use by index AM */
 
    /* use "struct" here to avoid needing to include pgstat.h: */
-   struct PgStat_TableStatus *pgstat_info; /* statistics collection area */
+   struct PgStat_TableStatus *pgstat_info;     /* statistics collection area */
 } RelationData;
 
 typedef RelationData *Relation;
index a7c9aece172d3505aef4991b9821a2c0927aa274..5caa0acef1f185f06615989f7cdf3bebdfc3ac85 100644 (file)
@@ -12,7 +12,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/utils/resowner.h,v 1.12 2007/07/25 12:22:54 mha Exp $
+ * $PostgreSQL: pgsql/src/include/utils/resowner.h,v 1.13 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -110,9 +110,9 @@ extern void ResourceOwnerForgetRelationRef(ResourceOwner owner,
 /* support for plancache refcount management */
 extern void ResourceOwnerEnlargePlanCacheRefs(ResourceOwner owner);
 extern void ResourceOwnerRememberPlanCacheRef(ResourceOwner owner,
-                                             CachedPlan *plan);
+                                 CachedPlan * plan);
 extern void ResourceOwnerForgetPlanCacheRef(ResourceOwner owner,
-                                           CachedPlan *plan);
+                               CachedPlan * plan);
 
 /* support for tupledesc refcount management */
 extern void ResourceOwnerEnlargeTupleDescs(ResourceOwner owner);
index 5ba8ccd5ac17c8b1ed1ee0c4f1f8ae171368dc10..95cabb3a279d60a51a27bbb8397cb3d2e40720a5 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/utils/timestamp.h,v 1.71 2007/07/06 04:16:00 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/timestamp.h,v 1.72 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -307,8 +307,8 @@ extern TimestampTz GetCurrentTimestamp(void);
 extern void TimestampDifference(TimestampTz start_time, TimestampTz stop_time,
                    long *secs, int *microsecs);
 extern bool TimestampDifferenceExceeds(TimestampTz start_time,
-                                      TimestampTz stop_time,
-                                      int msec);
+                          TimestampTz stop_time,
+                          int msec);
 
 extern TimestampTz time_t_to_timestamptz(time_t tm);
 extern time_t timestamptz_to_time_t(TimestampTz t);
@@ -332,8 +332,8 @@ extern int  timestamp_cmp_internal(Timestamp dt1, Timestamp dt2);
 #define timestamptz_cmp_internal(dt1,dt2)  timestamp_cmp_internal(dt1, dt2)
 
 extern int isoweek2j(int year, int week);
-extern void    isoweek2date(int woy, int *year, int *mon, int *mday);
-extern void    isoweekdate2date(int isoweek, int isowday, int *year, int *mon, int *mday);
+extern void isoweek2date(int woy, int *year, int *mon, int *mday);
+extern void isoweekdate2date(int isoweek, int isowday, int *year, int *mon, int *mday);
 extern int date2isoweek(int year, int mon, int mday);
 extern int date2isoyear(int year, int mon, int mday);
 extern int date2isoyearday(int year, int mon, int mday);
index dd0fd1dc640a941188a5dea032beab5936e1b101..1f421424721ef2278b0a2361f80469fdf120219b 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/utils/tqual.h,v 1.68 2007/08/14 17:35:18 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/tqual.h,v 1.69 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 typedef struct SnapshotData *Snapshot;
 
 typedef bool (*SnapshotSatisfiesFunc) (HeapTupleHeader tuple,
-                                      Snapshot snapshot, Buffer buffer);
+                                          Snapshot snapshot, Buffer buffer);
 
 typedef struct SnapshotData
 {
    SnapshotSatisfiesFunc satisfies;    /* tuple test function */
+
    /*
-    * The remaining fields are used only for MVCC snapshots, and are
-    * normally just zeroes in special snapshots.  (But xmin and xmax
-    * are used specially by HeapTupleSatisfiesDirty.)
+    * The remaining fields are used only for MVCC snapshots, and are normally
+    * just zeroes in special snapshots.  (But xmin and xmax are used
+    * specially by HeapTupleSatisfiesDirty.)
     *
-    * An MVCC snapshot can never see the effects of XIDs >= xmax.
-    * It can see the effects of all older XIDs except those listed in
-    * the snapshot.  xmin is stored as an optimization to avoid needing
-    * to search the XID arrays for most tuples.
+    * An MVCC snapshot can never see the effects of XIDs >= xmax. It can see
+    * the effects of all older XIDs except those listed in the snapshot.
+    * xmin is stored as an optimization to avoid needing to search the XID
+    * arrays for most tuples.
     */
    TransactionId xmin;         /* all XID < xmin are visible to me */
    TransactionId xmax;         /* all XID >= xmax are invisible to me */
@@ -121,23 +122,23 @@ typedef enum
    HEAPTUPLE_DEAD,             /* tuple is dead and deletable */
    HEAPTUPLE_LIVE,             /* tuple is live (committed, no deleter) */
    HEAPTUPLE_RECENTLY_DEAD,    /* tuple is dead, but not deletable yet */
-   HEAPTUPLE_INSERT_IN_PROGRESS,   /* inserting xact is still in progress */
+   HEAPTUPLE_INSERT_IN_PROGRESS,       /* inserting xact is still in progress */
    HEAPTUPLE_DELETE_IN_PROGRESS    /* deleting xact is still in progress */
 } HTSV_Result;
 
 /* These are the "satisfies" test routines for the various snapshot types */
 extern bool HeapTupleSatisfiesMVCC(HeapTupleHeader tuple,
-                                  Snapshot snapshot, Buffer buffer);
+                      Snapshot snapshot, Buffer buffer);
 extern bool HeapTupleSatisfiesNow(HeapTupleHeader tuple,
-                                 Snapshot snapshot, Buffer buffer);
+                     Snapshot snapshot, Buffer buffer);
 extern bool HeapTupleSatisfiesSelf(HeapTupleHeader tuple,
-                                  Snapshot snapshot, Buffer buffer);
+                      Snapshot snapshot, Buffer buffer);
 extern bool HeapTupleSatisfiesAny(HeapTupleHeader tuple,
-                                 Snapshot snapshot, Buffer buffer);
+                     Snapshot snapshot, Buffer buffer);
 extern bool HeapTupleSatisfiesToast(HeapTupleHeader tuple,
-                                   Snapshot snapshot, Buffer buffer);
+                       Snapshot snapshot, Buffer buffer);
 extern bool HeapTupleSatisfiesDirty(HeapTupleHeader tuple,
-                                   Snapshot snapshot, Buffer buffer);
+                       Snapshot snapshot, Buffer buffer);
 
 /* Special "satisfies" routines with different APIs */
 extern HTSU_Result HeapTupleSatisfiesUpdate(HeapTupleHeader tuple,
@@ -146,7 +147,7 @@ extern HTSV_Result HeapTupleSatisfiesVacuum(HeapTupleHeader tuple,
                         TransactionId OldestXmin, Buffer buffer);
 
 extern void HeapTupleSetHintBits(HeapTupleHeader tuple, Buffer buffer,
-                                uint16 infomask, TransactionId xid);
+                    uint16 infomask, TransactionId xid);
 
 extern Snapshot GetTransactionSnapshot(void);
 extern Snapshot GetLatestSnapshot(void);
index 0393df0e0628f329ffce35577d9753e0666a3596..f2d57e5a4a8b28a515d6ef3b2e2154940f2b5f3e 100644 (file)
@@ -9,7 +9,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/utils/typcache.h,v 1.14 2007/01/05 22:20:00 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/utils/typcache.h,v 1.15 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -39,7 +39,7 @@ typedef struct TypeCacheEntry
     * information hasn't yet been requested.
     */
    Oid         btree_opf;      /* the default btree opclass' family */
-   Oid         btree_opintype; /* the default btree opclass' opcintype */
+   Oid         btree_opintype; /* the default btree opclass' opcintype */
    Oid         hash_opf;       /* the default hash opclass' family */
    Oid         hash_opintype;  /* the default hash opclass' opcintype */
    Oid         eq_opr;         /* the equality operator */
index 4817939d5287e0e6875ec4e162734625ec6827db..88607ccef7fef9ace01528574a9b1dd5dfcab152 100644 (file)
@@ -7,10 +7,10 @@
  *
  * Copyright (c) 2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/include/utils/uuid.h,v 1.2 2007/01/28 20:25:38 neilc Exp $
+ * $PostgreSQL: pgsql/src/include/utils/uuid.h,v 1.3 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
- */ 
+ */
 #ifndef UUID_H
 #define UUID_H
 
index 8e750f764f8551ee2fa558ccc080e663ec88fba3..1d2d060e5cfeffcf1b9f10628d82f904d3be908d 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/utils/xml.h,v 1.19 2007/05/21 17:10:29 petere Exp $
+ * $PostgreSQL: pgsql/src/include/utils/xml.h,v 1.20 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -61,15 +61,15 @@ typedef enum
    XML_STANDALONE_NO,
    XML_STANDALONE_NO_VALUE,
    XML_STANDALONE_OMITTED
-} XmlStandaloneType;
+}  XmlStandaloneType;
 
 extern xmltype *xmlconcat(List *args);
-extern xmltype *xmlelement(XmlExprState *xmlExpr, ExprContext *econtext);
+extern xmltype *xmlelement(XmlExprState * xmlExpr, ExprContext *econtext);
 extern xmltype *xmlparse(text *data, XmlOptionType xmloption, bool preserve_whitespace);
 extern xmltype *xmlpi(char *target, text *arg, bool arg_is_null, bool *result_is_null);
-extern xmltype *xmlroot(xmltype *data, text *version, int standalone);
-extern bool xml_is_document(xmltype *arg);
-extern text *xmltotext_with_xmloption(xmltype *data, XmlOptionType xmloption_arg);
+extern xmltype *xmlroot(xmltype * data, text *version, int standalone);
+extern bool xml_is_document(xmltype * arg);
+extern text *xmltotext_with_xmloption(xmltype * data, XmlOptionType xmloption_arg);
 
 extern char *map_sql_identifier_to_xml_name(char *ident, bool fully_escaped, bool escape_period);
 extern char *map_xml_name_to_sql_identifier(char *name);
@@ -79,10 +79,10 @@ typedef enum
 {
    XMLBINARY_BASE64,
    XMLBINARY_HEX
-} XmlBinaryType;
+}  XmlBinaryType;
 
 extern XmlBinaryType xmlbinary;
 
 extern XmlOptionType xmloption;
 
-#endif /* XML_H */
+#endif   /* XML_H */
index 7f2e6613b45960d1aa25812775000cf49aab15fe..77b5656f55db5112058a230c3dc51dbd1876e198 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/compatlib/informix.c,v 1.52 2007/10/03 13:20:19 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/compatlib/informix.c,v 1.53 2007/11/15 21:14:45 momjian Exp $ */
 
 #include <math.h>
 #include <ctype.h>
@@ -201,7 +201,7 @@ deccvasc(char *cp, int len, decimal *np)
        }
        else
        {
-           int i = PGTYPESnumeric_to_decimal(result, np);
+           int         i = PGTYPESnumeric_to_decimal(result, np);
 
            free(result);
            if (i != 0)
@@ -700,7 +700,7 @@ initValue(long lng_val)
    value.remaining = value.digits;
 
    /* convert the long to string */
-   if ((value.val_string = (char *) malloc(value.digits + 1)) == NULL) 
+   if ((value.val_string = (char *) malloc(value.digits + 1)) == NULL)
        return -1;
    dig = value.val;
    for (i = value.digits, j = 0; i > 0; i--, j++)
index efc0fe618c8ff6fca82391c1e337a841c0d91c6f..e1f0957d435fb012cc498d6187e8999ba97a2873 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/connect.c,v 1.47 2007/10/03 11:11:12 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/connect.c,v 1.48 2007/11/15 21:14:45 momjian Exp $ */
 
 #define POSTGRES_ECPG_INTERNAL
 #include "postgres_fe.h"
@@ -11,9 +11,9 @@
 #include "sqlca.h"
 
 #ifdef ENABLE_THREAD_SAFETY
-static pthread_mutex_t connections_mutex = PTHREAD_MUTEX_INITIALIZER;
-static pthread_key_t   actual_connection_key;
-static pthread_once_t  actual_connection_key_once = PTHREAD_ONCE_INIT;
+static pthread_mutex_t connections_mutex = PTHREAD_MUTEX_INITIALIZER;
+static pthread_key_t actual_connection_key;
+static pthread_once_t actual_connection_key_once = PTHREAD_ONCE_INIT;
 #endif
 static struct connection *actual_connection = NULL;
 static struct connection *all_connections = NULL;
@@ -272,7 +272,10 @@ ECPGconnect(int lineno, int c, const char *name, const char *user, const char *p
 
    ecpg_init_sqlca(sqlca);
 
-   /* clear auto_mem structure because some error handling functions might access it */
+   /*
+    * clear auto_mem structure because some error handling functions might
+    * access it
+    */
    ecpg_clear_auto_mem();
 
    if (INFORMIX_MODE(compat))
@@ -305,7 +308,7 @@ ECPGconnect(int lineno, int c, const char *name, const char *user, const char *p
    {
        ecpg_free(dbname);
        ecpg_log("ECPGconnect: connection identifier %s is already in use\n",
-               connection_name);
+                connection_name);
        return false;
    }
 
@@ -458,11 +461,11 @@ ECPGconnect(int lineno, int c, const char *name, const char *user, const char *p
    actual_connection = all_connections;
 
    ecpg_log("ECPGconnect: opening database %s on %s port %s %s%s%s%s\n",
-           realname ? realname : "<DEFAULT>",
-           host ? host : "<DEFAULT>",
-           port ? (ecpg_internal_regression_mode ? "<REGRESSION_PORT>" : port) : "<DEFAULT>",
-           options ? "with options " : "", options ? options : "",
-           user ? "for user " : "", user ? user : "");
+            realname ? realname : "<DEFAULT>",
+            host ? host : "<DEFAULT>",
+            port ? (ecpg_internal_regression_mode ? "<REGRESSION_PORT>" : port) : "<DEFAULT>",
+            options ? "with options " : "", options ? options : "",
+            user ? "for user " : "", user ? user : "");
 
    this->connection = PQsetdbLogin(host, port, options, NULL, realname, user, passwd);
 
@@ -472,12 +475,12 @@ ECPGconnect(int lineno, int c, const char *name, const char *user, const char *p
        const char *db = realname ? realname : "<DEFAULT>";
 
        ecpg_log("ECPGconnect: could not open database %s on %s port %s %s%s%s%s in line %d\n\t%s\n",
-               db,
-               host ? host : "<DEFAULT>",
-               port ? (ecpg_internal_regression_mode ? "<REGRESSION_PORT>" : port) : "<DEFAULT>",
-               options ? "with options " : "", options ? options : "",
-               user ? "for user " : "", user ? user : "",
-               lineno, errmsg);
+                db,
+                host ? host : "<DEFAULT>",
+                port ? (ecpg_internal_regression_mode ? "<REGRESSION_PORT>" : port) : "<DEFAULT>",
+                options ? "with options " : "", options ? options : "",
+                user ? "for user " : "", user ? user : "",
+                lineno, errmsg);
 
        ecpg_finish(this);
 #ifdef ENABLE_THREAD_SAFETY
index 07282ffbe2822feb76f1170245d9873716297951..0285c71831f7bf3c3ac4c3f008272d6fd8523556 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.39 2007/10/03 11:11:12 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.40 2007/11/15 21:14:45 momjian Exp $ */
 
 #define POSTGRES_ECPG_INTERNAL
 #include "postgres_fe.h"
@@ -40,9 +40,9 @@ garbage_left(enum ARRAY_TYPE isarray, char *scan_length, enum COMPAT_MODE compat
 
 bool
 ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
-            enum ECPGttype type, enum ECPGttype ind_type,
-            char *var, char *ind, long varcharsize, long offset,
-            long ind_offset, enum ARRAY_TYPE isarray, enum COMPAT_MODE compat, bool force_indicator)
+             enum ECPGttype type, enum ECPGttype ind_type,
+             char *var, char *ind, long varcharsize, long offset,
+             long ind_offset, enum ARRAY_TYPE isarray, enum COMPAT_MODE compat, bool force_indicator)
 {
    struct sqlca_t *sqlca = ECPGget_sqlca();
    char       *pval = (char *) PQgetvalue(results, act_tuple, act_field);
@@ -105,16 +105,16 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
                else
                {
                    ecpg_raise(lineno, ECPG_MISSING_INDICATOR,
-                             ECPG_SQLSTATE_NULL_VALUE_NO_INDICATOR_PARAMETER,
-                             NULL);
+                            ECPG_SQLSTATE_NULL_VALUE_NO_INDICATOR_PARAMETER,
+                              NULL);
                    return (false);
                }
            }
            break;
        default:
            ecpg_raise(lineno, ECPG_UNSUPPORTED,
-                     ECPG_SQLSTATE_ECPG_INTERNAL_ERROR,
-                     ecpg_type_name(ind_type));
+                      ECPG_SQLSTATE_ECPG_INTERNAL_ERROR,
+                      ecpg_type_name(ind_type));
            return (false);
            break;
    }
@@ -129,7 +129,7 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
        if (!pval || *pval != '{')
        {
            ecpg_raise(lineno, ECPG_DATA_NOT_ARRAY,
-                     ECPG_SQLSTATE_DATATYPE_MISMATCH, NULL);
+                      ECPG_SQLSTATE_DATATYPE_MISMATCH, NULL);
            return (false);
        }
 
@@ -214,7 +214,7 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
                        if (garbage_left(isarray, scan_length, compat))
                        {
                            ecpg_raise(lineno, ECPG_INT_FORMAT,
-                                     ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
+                                      ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
                            return (false);
                        }
                        pval = scan_length;
@@ -248,7 +248,7 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
                        if (garbage_left(isarray, scan_length, compat))
                        {
                            ecpg_raise(lineno, ECPG_UINT_FORMAT,
-                                     ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
+                                      ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
                            return (false);
                        }
                        pval = scan_length;
@@ -326,7 +326,7 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
                        if (garbage_left(isarray, scan_length, compat))
                        {
                            ecpg_raise(lineno, ECPG_FLOAT_FORMAT,
-                                     ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
+                                      ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
                            return (false);
                        }
                        pval = scan_length;
@@ -359,8 +359,8 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
                                *((int *) (var + offset * act_tuple)) = false;
                            else
                                ecpg_raise(lineno, ECPG_CONVERT_BOOL,
-                                         ECPG_SQLSTATE_DATATYPE_MISMATCH,
-                                         "different size");
+                                          ECPG_SQLSTATE_DATATYPE_MISMATCH,
+                                          "different size");
                            break;
                        }
                        else if (pval[0] == 't' && pval[1] == '\0')
@@ -371,8 +371,8 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
                                *((int *) (var + offset * act_tuple)) = true;
                            else
                                ecpg_raise(lineno, ECPG_CONVERT_BOOL,
-                                         ECPG_SQLSTATE_DATATYPE_MISMATCH,
-                                         "different size");
+                                          ECPG_SQLSTATE_DATATYPE_MISMATCH,
+                                          "different size");
                            break;
                        }
                        else if (pval[0] == '\0' && PQgetisnull(results, act_tuple, act_field))
@@ -383,7 +383,7 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
                    }
 
                    ecpg_raise(lineno, ECPG_CONVERT_BOOL,
-                             ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
+                              ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
                    return (false);
                    break;
 
@@ -491,7 +491,7 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
                        if (nres == NULL)
                        {
                            ecpg_log("ecpg_get_data line %d: RESULT: %s errno %d\n",
-                                   lineno, pval ? pval : "", errno);
+                                    lineno, pval ? pval : "", errno);
 
                            if (INFORMIX_MODE(compat))
                            {
@@ -554,7 +554,7 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
                        if (ires == NULL)
                        {
                            ecpg_log("ecpg_get_data line %d: RESULT: %s errno %d\n",
-                                   lineno, pval ? pval : "", errno);
+                                    lineno, pval ? pval : "", errno);
 
                            if (INFORMIX_MODE(compat))
                            {
@@ -608,7 +608,7 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
                        if (errno != 0)
                        {
                            ecpg_log("ecpg_get_data line %d: RESULT: %s errno %d\n",
-                                   lineno, pval ? pval : "", errno);
+                                    lineno, pval ? pval : "", errno);
 
                            if (INFORMIX_MODE(compat))
                            {
@@ -655,7 +655,7 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
                        if (errno != 0)
                        {
                            ecpg_log("ecpg_get_data line %d: RESULT: %s errno %d\n",
-                                   lineno, pval ? pval : "", errno);
+                                    lineno, pval ? pval : "", errno);
 
                            if (INFORMIX_MODE(compat))
                            {
@@ -692,8 +692,8 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
 
                default:
                    ecpg_raise(lineno, ECPG_UNSUPPORTED,
-                             ECPG_SQLSTATE_ECPG_INTERNAL_ERROR,
-                             ecpg_type_name(type));
+                              ECPG_SQLSTATE_ECPG_INTERNAL_ERROR,
+                              ecpg_type_name(type));
                    return (false);
                    break;
            }
index f683c0f28564f205ff55cf3aa38468a39e3201b2..0e76e244b16e22c5465ea12d2990525e36ae4117 100644 (file)
@@ -1,6 +1,6 @@
 /* dynamic SQL support routines
  *
- * $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/descriptor.c,v 1.27 2007/10/03 16:03:25 tgl Exp $
+ * $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/descriptor.c,v 1.28 2007/11/15 21:14:45 momjian Exp $
  */
 
 #define POSTGRES_ECPG_INTERNAL
 #include "sqlca.h"
 #include "sql3types.h"
 
-static void descriptor_free(struct descriptor *desc);
+static void descriptor_free(struct descriptor * desc);
 
 /* We manage descriptors separately for each thread. */
 #ifdef ENABLE_THREAD_SAFETY
-static pthread_key_t   descriptor_key;
-static pthread_once_t  descriptor_once = PTHREAD_ONCE_INIT;
+static pthread_key_t descriptor_key;
+static pthread_once_t descriptor_once = PTHREAD_ONCE_INIT;
 
-static void descriptor_deallocate_all(struct descriptor *list);
+static void descriptor_deallocate_all(struct descriptor * list);
 
 static void
 descriptor_destructor(void *arg)
@@ -44,13 +44,13 @@ get_descriptors(void)
 }
 
 static void
-set_descriptors(struct descriptor *value)
+set_descriptors(struct descriptor * value)
 {
    pthread_setspecific(descriptor_key, value);
 }
-
 #else
-static struct descriptor       *all_descriptors = NULL;
+static struct descriptor *all_descriptors = NULL;
+
 #define get_descriptors()      (all_descriptors)
 #define set_descriptors(value) do { all_descriptors = (value); } while(0)
 #endif
@@ -60,6 +60,7 @@ static PGresult *
 ecpg_result_by_descriptor(int line, const char *name)
 {
    struct descriptor *desc = ecpg_find_desc(line, name);
+
    if (desc == NULL)
        return NULL;
    return desc->result;
@@ -381,7 +382,7 @@ ECPGget_desc(int lineno, const char *desc_name, int index,...)
                if (arrsize > 0 && ntuples > arrsize)
                {
                    ecpg_log("ECPGget_desc line %d: Incorrect number of matches: %d don't fit into array of %d\n",
-                           lineno, ntuples, arrsize);
+                            lineno, ntuples, arrsize);
                    ecpg_raise(lineno, ECPG_TOO_MANY_MATCHES, ECPG_SQLSTATE_CARDINALITY_VIOLATION, NULL);
                    return false;
                }
@@ -450,7 +451,7 @@ ECPGget_desc(int lineno, const char *desc_name, int index,...)
        if (data_var.ind_arrsize > 0 && ntuples > data_var.ind_arrsize)
        {
            ecpg_log("ECPGget_desc line %d: Incorrect number of matches (indicator): %d don't fit into array of %d\n",
-                   lineno, ntuples, data_var.ind_arrsize);
+                    lineno, ntuples, data_var.ind_arrsize);
            ecpg_raise(lineno, ECPG_TOO_MANY_MATCHES, ECPG_SQLSTATE_CARDINALITY_VIOLATION, NULL);
            return false;
        }
@@ -483,6 +484,7 @@ bool
 ECPGset_desc_header(int lineno, const char *desc_name, int count)
 {
    struct descriptor *desc = ecpg_find_desc(lineno, desc_name);
+
    if (desc == NULL)
        return false;
    desc->count = count;
@@ -556,7 +558,7 @@ ECPGset_desc(int lineno, const char *desc_name, int index,...)
            var->varcharsize = 0;
 
        var->next = NULL;
-       
+
        switch (itemtype)
        {
            case ECPGd_data:
@@ -567,7 +569,8 @@ ECPGset_desc(int lineno, const char *desc_name, int index,...)
                        return false;
                    }
 
-                   ecpg_free(desc_item->data); /* free() takes care of a potential NULL value */
+                   ecpg_free(desc_item->data); /* free() takes care of a
+                                                * potential NULL value */
                    desc_item->data = (char *) tobeinserted;
                    tobeinserted = NULL;
                    break;
@@ -611,7 +614,7 @@ ECPGset_desc(int lineno, const char *desc_name, int index,...)
 
 /* Free the descriptor and items in it. */
 static void
-descriptor_free(struct descriptor *desc)
+descriptor_free(struct descriptor * desc)
 {
    struct descriptor_item *desc_item;
 
@@ -658,17 +661,17 @@ ECPGdeallocate_desc(int line, const char *name)
 
 /* Deallocate all descriptors in the list */
 static void
-descriptor_deallocate_all(struct descriptor *list)
+descriptor_deallocate_all(struct descriptor * list)
 {
    while (list)
    {
        struct descriptor *next = list->next;
+
        descriptor_free(list);
        list = next;
    }
 }
-
-#endif /* ENABLE_THREAD_SAFETY */
+#endif   /* ENABLE_THREAD_SAFETY */
 
 bool
 ECPGallocate_desc(int line, const char *name)
@@ -715,7 +718,7 @@ ecpg_find_desc(int line, const char *name)
    }
 
    ecpg_raise(line, ECPG_UNKNOWN_DESCRIPTOR, ECPG_SQLSTATE_INVALID_SQL_DESCRIPTOR_NAME, name);
-   return NULL;    /* not found */
+   return NULL;                /* not found */
 }
 
 bool
index b33d3f857bfd8284512782c7d05a76cb8d006cb5..cce370aca65d8ed95ba8bedc8cb9e67c1426fadc 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/error.c,v 1.18 2007/10/03 11:11:12 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/error.c,v 1.19 2007/11/15 21:14:45 momjian Exp $ */
 
 #define POSTGRES_ECPG_INTERNAL
 #include "postgres_fe.h"
@@ -189,7 +189,7 @@ ecpg_raise_backend(int line, PGresult *result, PGconn *conn, int compat)
        sqlca->sqlcode = ECPG_PGSQL;
 
    ecpg_log("raising sqlstate %.*s (sqlcode: %d) in line %d, '%s'.\n",
-           sizeof(sqlca->sqlstate), sqlca->sqlstate, sqlca->sqlcode, line, sqlca->sqlerrm.sqlerrmc);
+            sizeof(sqlca->sqlstate), sqlca->sqlstate, sqlca->sqlcode, line, sqlca->sqlerrm.sqlerrmc);
 
    /* free all memory we have allocated for the user */
    ECPGfree_auto_mem();
@@ -197,7 +197,7 @@ ecpg_raise_backend(int line, PGresult *result, PGconn *conn, int compat)
 
 /* filter out all error codes */
 bool
-ecpg_check_PQresult(PGresult *results, int lineno, PGconn *connection, enum COMPAT_MODE compat) 
+ecpg_check_PQresult(PGresult *results, int lineno, PGconn *connection, enum COMPAT_MODE compat)
 {
    if (results == NULL)
    {
@@ -230,20 +230,20 @@ ecpg_check_PQresult(PGresult *results, int lineno, PGconn *connection, enum COMP
            return (false);
            break;
        case PGRES_COPY_OUT:
-           return(true);
+           return (true);
            break;
        case PGRES_COPY_IN:
            ecpg_log("ecpg_check_PQresult line %d: Got PGRES_COPY_IN ... tossing.\n", lineno);
            PQendcopy(connection);
            PQclear(results);
-           return(false);
+           return (false);
            break;
        default:
            ecpg_log("ecpg_check_PQresult line %d: Got something else, postgres error.\n",
-                   lineno);
+                    lineno);
            ecpg_raise_backend(lineno, results, connection, compat);
            PQclear(results);
-           return(false);
+           return (false);
            break;
    }
 }
index 034db8570c8c2be6af85e0281a865e7c2d2f7483..689421a9c0aa9f25d284a5a05f1b685889720123 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.72 2007/10/03 11:11:12 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.73 2007/11/15 21:14:45 momjian Exp $ */
 
 /*
  * The aim is to get a simpler inteface to the database routines.
 static char *
 quote_postgres(char *arg, bool quote, int lineno)
 {
-   char    *res;
-   size_t  length;
-   size_t  escaped_len;
-   size_t  buffer_len;
+   char       *res;
+   size_t      length;
+   size_t      escaped_len;
+   size_t      buffer_len;
 
    /*
     * if quote is false we just need to store things in a descriptor they
@@ -56,22 +56,22 @@ quote_postgres(char *arg, bool quote, int lineno)
        res = (char *) ecpg_alloc(buffer_len + 3, lineno);
        if (!res)
            return (res);
-       escaped_len = PQescapeString(res+1, arg, buffer_len);
+       escaped_len = PQescapeString(res + 1, arg, buffer_len);
        if (length == escaped_len)
        {
-           res[0] = res[escaped_len+1] = '\'';
-           res[escaped_len+2] = '\0';
+           res[0] = res[escaped_len + 1] = '\'';
+           res[escaped_len + 2] = '\0';
        }
        else
        {
-           /* 
+           /*
             * We don't know if the target database is using
             * standard_conforming_strings, so we always use E'' strings.
             */
-           memmove(res+2, res+1, escaped_len);
+           memmove(res + 2, res + 1, escaped_len);
            res[0] = ESCAPE_STRING_SYNTAX;
-           res[1] = res[escaped_len+2] = '\'';
-           res[escaped_len+3] = '\0';
+           res[1] = res[escaped_len + 2] = '\'';
+           res[escaped_len + 3] = '\0';
        }
        ecpg_free(arg);
        return res;
@@ -108,31 +108,31 @@ free_statement(struct statement * stmt)
    ecpg_free(stmt);
 }
 
-static int 
+static int
 next_insert(char *text, int pos, bool questionmarks)
 {
    bool        string = false;
-   int         p = pos;
+   int         p = pos;
 
    for (; text[p] != '\0'; p++)
    {
-       if (text[p] == '\\')        /* escape character */
+       if (text[p] == '\\')    /* escape character */
            p++;
        else if (text[p] == '\'')
            string = string ? false : true;
        else if (!string)
        {
-           if (text[p] == '$' && isdigit(text[p+1]))
+           if (text[p] == '$' && isdigit(text[p + 1]))
            {
                /* this can be either a dollar quote or a variable */
-               int i;
+               int         i;
 
                for (i = p + 1; isdigit(text[i]); i++);
-               if (!isalpha(text[i]) && isascii(text[i]) && text[i] != '_')
+               if (!isalpha(text[i]) &&isascii(text[i]) &&text[i] != '_')
                    /* not dollar delimeted quote */
                    return p;
            }
-           else if (questionmarks && text[p] == '?') 
+           else if (questionmarks && text[p] == '?')
            {
                /* also allow old style placeholders */
                return p;
@@ -306,7 +306,7 @@ ecpg_is_type_an_array(int type, const struct statement * stmt, const struct vari
 
 bool
 ecpg_store_result(const PGresult *results, int act_field,
-                const struct statement * stmt, struct variable * var)
+                 const struct statement * stmt, struct variable * var)
 {
    enum ARRAY_TYPE isarray;
    int         act_tuple,
@@ -327,7 +327,7 @@ ecpg_store_result(const PGresult *results, int act_field,
        if ((var->arrsize > 0 && ntuples > var->arrsize) || (var->ind_arrsize > 0 && ntuples > var->ind_arrsize))
        {
            ecpg_log("ecpg_store_result line %d: Incorrect number of matches: %d don't fit into array of %d\n",
-                   stmt->lineno, ntuples, var->arrsize);
+                    stmt->lineno, ntuples, var->arrsize);
            ecpg_raise(stmt->lineno, INFORMIX_MODE(stmt->compat) ? ECPG_INFORMIX_SUBSELECT_NOT_ONE : ECPG_TOO_MANY_MATCHES, ECPG_SQLSTATE_CARDINALITY_VIOLATION, NULL);
            return false;
        }
@@ -422,8 +422,8 @@ ecpg_store_result(const PGresult *results, int act_field,
            int         len = strlen(PQgetvalue(results, act_tuple, act_field)) + 1;
 
            if (!ecpg_get_data(results, act_tuple, act_field, stmt->lineno,
-                             var->type, var->ind_type, current_data_location,
-                             var->ind_value, len, 0, var->ind_offset, isarray, stmt->compat, stmt->force_indicator))
+                            var->type, var->ind_type, current_data_location,
+                              var->ind_value, len, 0, var->ind_offset, isarray, stmt->compat, stmt->force_indicator))
                status = false;
            else
            {
@@ -441,8 +441,8 @@ ecpg_store_result(const PGresult *results, int act_field,
        for (act_tuple = 0; act_tuple < ntuples && status; act_tuple++)
        {
            if (!ecpg_get_data(results, act_tuple, act_field, stmt->lineno,
-                             var->type, var->ind_type, var->value,
-                             var->ind_value, var->varcharsize, var->offset, var->ind_offset, isarray, stmt->compat, stmt->force_indicator))
+                              var->type, var->ind_type, var->value,
+                              var->ind_value, var->varcharsize, var->offset, var->ind_offset, isarray, stmt->compat, stmt->force_indicator))
                status = false;
        }
    }
@@ -451,7 +451,7 @@ ecpg_store_result(const PGresult *results, int act_field,
 
 bool
 ecpg_store_input(const int lineno, const bool force_indicator, const struct variable * var,
-               const char **tobeinserted_p, bool quote)
+                const char **tobeinserted_p, bool quote)
 {
    char       *mallocedval = NULL;
    char       *newcopy = NULL;
@@ -1035,13 +1035,13 @@ ecpg_store_input(const int lineno, const bool force_indicator, const struct vari
 static void
 free_params(const char **paramValues, int nParams, bool print, int lineno)
 {
-   int n;
+   int         n;
 
    for (n = 0; n < nParams; n++)
    {
        if (print)
            ecpg_log("free_params line %d: parameter %d = %s\n", lineno, n + 1, paramValues[n] ? paramValues[n] : "null");
-       ecpg_free((void *)(paramValues[n]));
+       ecpg_free((void *) (paramValues[n]));
    }
    ecpg_free(paramValues);
 }
@@ -1055,22 +1055,22 @@ ecpg_execute(struct statement * stmt)
    PGnotify   *notify;
    struct variable *var;
    int         desc_counter = 0;
-   const char * *paramValues = NULL;
-   int nParams = 0;
-   int position = 0;
+   const char **paramValues = NULL;
+   int         nParams = 0;
+   int         position = 0;
    struct sqlca_t *sqlca = ECPGget_sqlca();
-   bool            clear_result = true;
+   bool        clear_result = true;
 
    /*
-    * If the type is one of the fill in types then we take the argument
-    * and enter it to our parameter array at the first position. Then if there
+    * If the type is one of the fill in types then we take the argument and
+    * enter it to our parameter array at the first position. Then if there
     * are any more fill in types we add more parameters.
     */
    var = stmt->inlist;
    while (var)
    {
        const char *tobeinserted;
-       int counter = 1;
+       int         counter = 1;
 
        tobeinserted = NULL;
 
@@ -1134,8 +1134,9 @@ ecpg_execute(struct statement * stmt)
 
        /*
         * now tobeinserted points to an area that contains the next parameter
-        * if var->type=ECPGt_char_variable we have a dynamic cursor 
-        * we have to simulate a dynamic cursor because there is no backend functionality for it
+        * if var->type=ECPGt_char_variable we have a dynamic cursor we have
+        * to simulate a dynamic cursor because there is no backend
+        * functionality for it
         */
        if (var->type != ECPGt_char_variable)
        {
@@ -1156,17 +1157,19 @@ ecpg_execute(struct statement * stmt)
                 */
                ecpg_raise(stmt->lineno, ECPG_TOO_MANY_ARGUMENTS,
                        ECPG_SQLSTATE_USING_CLAUSE_DOES_NOT_MATCH_PARAMETERS,
-                         NULL);
+                          NULL);
                free_params(paramValues, nParams, false, stmt->lineno);
                return false;
            }
-           
+
            /* let's see if this was an old style placeholder */
-           if (stmt->command[position-1] == '?')
+           if (stmt->command[position - 1] == '?')
            {
                /* yes, replace with new style */
-               int buffersize = sizeof(int) * CHAR_BIT * 10 / 3; /* a rough guess of the size we need */
-               char *buffer, *newcopy;
+               int         buffersize = sizeof(int) * CHAR_BIT * 10 / 3;       /* a rough guess of the
+                                                                                * size we need */
+               char       *buffer,
+                          *newcopy;
 
                if (!(buffer = (char *) ecpg_alloc(buffersize, stmt->lineno)))
                {
@@ -1202,11 +1205,11 @@ ecpg_execute(struct statement * stmt)
        }
        else
        {
-           char *newcopy;
+           char       *newcopy;
 
            if (!(newcopy = (char *) ecpg_alloc(strlen(stmt->command)
-                                              + strlen(tobeinserted)
-                                              + 1, stmt->lineno)))
+                                               + strlen(tobeinserted)
+                                               + 1, stmt->lineno)))
            {
                free_params(paramValues, nParams, false, stmt->lineno);
                return false;
@@ -1221,14 +1224,14 @@ ecpg_execute(struct statement * stmt)
                 */
                ecpg_raise(stmt->lineno, ECPG_TOO_MANY_ARGUMENTS,
                        ECPG_SQLSTATE_USING_CLAUSE_DOES_NOT_MATCH_PARAMETERS,
-                         NULL);
+                          NULL);
                free_params(paramValues, nParams, false, stmt->lineno);
                ecpg_free(newcopy);
                return false;
            }
            else
            {
-               int ph_len = (stmt->command[position] == '?') ? strlen("?") : strlen("$1");
+               int         ph_len = (stmt->command[position] == '?') ? strlen("?") : strlen("$1");
 
                strcpy(newcopy + position - 1, tobeinserted);
 
@@ -1238,14 +1241,14 @@ ecpg_execute(struct statement * stmt)
                 */
                strcat(newcopy,
                       stmt->command
-                      + position 
+                      + position
                       + ph_len - 1);
            }
 
            ecpg_free(stmt->command);
            stmt->command = newcopy;
-           
-           ecpg_free((char *)tobeinserted);
+
+           ecpg_free((char *) tobeinserted);
            tobeinserted = NULL;
        }
 
@@ -1257,7 +1260,7 @@ ecpg_execute(struct statement * stmt)
    if (next_insert(stmt->command, position, stmt->questionmarks) >= 0)
    {
        ecpg_raise(stmt->lineno, ECPG_TOO_FEW_ARGUMENTS,
-                 ECPG_SQLSTATE_USING_CLAUSE_DOES_NOT_MATCH_PARAMETERS, NULL);
+                ECPG_SQLSTATE_USING_CLAUSE_DOES_NOT_MATCH_PARAMETERS, NULL);
        free_params(paramValues, nParams, false, stmt->lineno);
        return false;
    }
@@ -1304,9 +1307,9 @@ ecpg_execute(struct statement * stmt)
    var = stmt->outlist;
    switch (PQresultStatus(results))
    {
-       int         nfields,
-                   ntuples,
-                   act_field;
+           int         nfields,
+                       ntuples,
+                       act_field;
 
        case PGRES_TUPLES_OK:
            nfields = PQnfields(results);
@@ -1318,7 +1321,7 @@ ecpg_execute(struct statement * stmt)
            {
                if (ntuples)
                    ecpg_log("ecpg_execute line %d: Incorrect number of matches: %d\n",
-                           stmt->lineno, ntuples);
+                            stmt->lineno, ntuples);
                ecpg_raise(stmt->lineno, ECPG_NOT_FOUND, ECPG_SQLSTATE_NO_DATA, NULL);
                status = false;
                break;
@@ -1327,6 +1330,7 @@ ecpg_execute(struct statement * stmt)
            if (var != NULL && var->type == ECPGt_descriptor)
            {
                struct descriptor *desc = ecpg_find_desc(stmt->lineno, var->pointer);
+
                if (desc == NULL)
                    status = false;
                else
@@ -1399,9 +1403,13 @@ ecpg_execute(struct statement * stmt)
                break;
            }
        default:
-           /* execution should never reach this code because it is already handled in ECPGcheck_PQresult() */
+
+           /*
+            * execution should never reach this code because it is already
+            * handled in ECPGcheck_PQresult()
+            */
            ecpg_log("ecpg_execute line %d: Got something else, postgres error.\n",
-                   stmt->lineno);
+                    stmt->lineno);
            ecpg_raise_backend(stmt->lineno, results, stmt->connection->connection, stmt->compat);
            status = false;
            break;
@@ -1414,7 +1422,7 @@ ecpg_execute(struct statement * stmt)
    if (notify)
    {
        ecpg_log("ecpg_execute line %d: ASYNC NOTIFY of '%s' from backend pid '%d' received\n",
-               stmt->lineno, notify->relname, notify->be_pid);
+                stmt->lineno, notify->relname, notify->be_pid);
        PQfreemem(notify);
    }
 
@@ -1432,12 +1440,12 @@ ECPGdo(const int lineno, const int compat, const int force_indicator, const char
    enum ECPGttype type;
    struct variable **list;
    enum ECPG_statement_type statement_type = st;
-   char *prepname;
+   char       *prepname;
 
    if (!query)
    {
        ecpg_raise(lineno, ECPG_EMPTY, ECPG_SQLSTATE_ECPG_INTERNAL_ERROR, NULL);
-       return(false);
+       return (false);
    }
 
    /* Make sure we do NOT honor the locale for numeric input/output */
@@ -1462,22 +1470,16 @@ ECPGdo(const int lineno, const int compat, const int force_indicator, const char
    va_start(args, query);
 
    /*
-    * create a list of variables
-    * The variables are listed with input variables preceding outputvariables
-    * The end of each group is marked by an end marker.
-    * per variable we list:
-    * type - as defined in ecpgtype.h
-    * value - where to store the data
-    * varcharsize - length of string in case we have a stringvariable, else 0
-    * arraysize - 0 for pointer (we don't know the size of the array),
-    * 1 for simple variable, size for arrays
-    * offset - offset between ith and (i+1)th entry in an array,
-    * normally that means sizeof(type)
-    * ind_type - type of indicator variable
-    * ind_value - pointer to indicator variable
-    * ind_varcharsize - empty
-    * ind_arraysize -  arraysize of indicator array
-    * ind_offset - indicator offset
+    * create a list of variables The variables are listed with input
+    * variables preceding outputvariables The end of each group is marked by
+    * an end marker. per variable we list: type - as defined in ecpgtype.h
+    * value - where to store the data varcharsize - length of string in case
+    * we have a stringvariable, else 0 arraysize - 0 for pointer (we don't
+    * know the size of the array), 1 for simple variable, size for arrays
+    * offset - offset between ith and (i+1)th entry in an array, normally
+    * that means sizeof(type) ind_type - type of indicator variable ind_value
+    * - pointer to indicator variable ind_varcharsize - empty ind_arraysize -
+    * arraysize of indicator array ind_offset - indicator offset
     */
    if (!(stmt = (struct statement *) ecpg_alloc(sizeof(struct statement), lineno)))
    {
@@ -1487,14 +1489,19 @@ ECPGdo(const int lineno, const int compat, const int force_indicator, const char
        return false;
    }
 
-   /* If statement type is ECPGst_prepnormal we are supposed to prepare
-    * the statement before executing them */
+   /*
+    * If statement type is ECPGst_prepnormal we are supposed to prepare the
+    * statement before executing them
+    */
    if (statement_type == ECPGst_prepnormal)
    {
        if (!ecpg_auto_prepare(lineno, connection_name, questionmarks, &prepname, query))
-           return(false);
+           return (false);
 
-       /* statement is now prepared, so instead of the query we have to execute the name */
+       /*
+        * statement is now prepared, so instead of the query we have to
+        * execute the name
+        */
        stmt->command = prepname;
        statement_type = ECPGst_execute;
    }
@@ -1506,7 +1513,7 @@ ECPGdo(const int lineno, const int compat, const int force_indicator, const char
    if (statement_type == ECPGst_execute)
    {
        /* if we have an EXECUTE command, only the name is send */
-       char *command = ecpg_prepared(stmt->command, con, lineno);
+       char       *command = ecpg_prepared(stmt->command, con, lineno);
 
        if (command)
        {
@@ -1559,7 +1566,8 @@ ECPGdo(const int lineno, const int compat, const int force_indicator, const char
                var->value = var->pointer;
 
            /*
-            * negative values are used to indicate an array without given bounds
+            * negative values are used to indicate an array without given
+            * bounds
             */
            /* reset to zero for us */
            if (var->arrsize < 0)
@@ -1582,7 +1590,8 @@ ECPGdo(const int lineno, const int compat, const int force_indicator, const char
                var->ind_value = var->ind_pointer;
 
            /*
-            * negative values are used to indicate an array without given bounds
+            * negative values are used to indicate an array without given
+            * bounds
             */
            /* reset to zero for us */
            if (var->ind_arrsize < 0)
index f14aca7a1975b0677e2dd3c8fa73fb6d223a8831..e366c9ce44835be4e634cb7297bc6bb4448b0345 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/extern.h,v 1.31 2007/10/03 11:11:12 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/extern.h,v 1.32 2007/11/15 21:14:45 momjian Exp $ */
 
 #ifndef _ECPG_LIB_EXTERN_H
 #define _ECPG_LIB_EXTERN_H
@@ -53,7 +53,7 @@ struct statement
    enum COMPAT_MODE compat;
    bool        force_indicator;
    enum ECPG_statement_type statement_type;
-   bool    questionmarks;
+   bool        questionmarks;
    struct variable *inlist;
    struct variable *outlist;
 };
@@ -115,8 +115,8 @@ struct variable
 void       ecpg_add_mem(void *ptr, int lineno);
 
 bool ecpg_get_data(const PGresult *, int, int, int, enum ECPGttype type,
-            enum ECPGttype, char *, char *, long, long, long,
-            enum ARRAY_TYPE, enum COMPAT_MODE, bool);
+             enum ECPGttype, char *, char *, long, long, long,
+             enum ARRAY_TYPE, enum COMPAT_MODE, bool);
 
 #ifdef ENABLE_THREAD_SAFETY
 void       ecpg_pthreads_init(void);
@@ -128,7 +128,7 @@ void        ecpg_free(void *);
 bool       ecpg_init(const struct connection *, const char *, const int);
 char      *ecpg_strdup(const char *, int);
 const char *ecpg_type_name(enum ECPGttype);
-int ecpg_dynamic_type(Oid);
+int            ecpg_dynamic_type(Oid);
 void       ecpg_free_auto_mem(void);
 void       ecpg_clear_auto_mem(void);
 
@@ -137,17 +137,17 @@ struct descriptor *ecpggetdescp(int, char *);
 struct descriptor *ecpg_find_desc(int line, const char *name);
 
 bool ecpg_store_result(const PGresult *results, int act_field,
-                const struct statement * stmt, struct variable * var);
-bool ecpg_store_input(const int, const bool, const struct variable *, const char **, bool);
-
-bool ecpg_check_PQresult(PGresult *, int, PGconn *, enum COMPAT_MODE);
-void ecpg_raise(int line, int code, const char *sqlstate, const char *str);
-void ecpg_raise_backend(int line, PGresult *result, PGconn *conn, int compat);
-char *ecpg_prepared(const char *, struct connection *, int);
-bool ecpg_deallocate_all_conn(int lineno, enum COMPAT_MODE c, struct connection *conn);
-void ecpg_log(const char *format,...);
-bool ecpg_auto_prepare(int, const char *, const int, char **, const char *);
-void ecpg_init_sqlca(struct sqlca_t * sqlca);
+                 const struct statement * stmt, struct variable * var);
+bool       ecpg_store_input(const int, const bool, const struct variable *, const char **, bool);
+
+bool       ecpg_check_PQresult(PGresult *, int, PGconn *, enum COMPAT_MODE);
+void       ecpg_raise(int line, int code, const char *sqlstate, const char *str);
+void       ecpg_raise_backend(int line, PGresult *result, PGconn *conn, int compat);
+char      *ecpg_prepared(const char *, struct connection *, int);
+bool       ecpg_deallocate_all_conn(int lineno, enum COMPAT_MODE c, struct connection * conn);
+void       ecpg_log(const char *format,...);
+bool       ecpg_auto_prepare(int, const char *, const int, char **, const char *);
+void       ecpg_init_sqlca(struct sqlca_t * sqlca);
 
 /* SQLSTATE values generated or processed by ecpglib (intentionally
  * not exported -- users should refer to the codes directly) */
index cb22a15b75ea76eca4f3c25d4577cbaf5beafe52..63b57177ec2c732eb5ab05616afeec4488f5dce8 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/memory.c,v 1.11 2007/10/03 11:11:12 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/memory.c,v 1.12 2007/11/15 21:14:45 momjian Exp $ */
 
 #define POSTGRES_ECPG_INTERNAL
 #include "postgres_fe.h"
@@ -69,8 +69,8 @@ struct auto_mem
 };
 
 #ifdef ENABLE_THREAD_SAFETY
-static pthread_key_t   auto_mem_key;
-static pthread_once_t  auto_mem_once = PTHREAD_ONCE_INIT;
+static pthread_key_t auto_mem_key;
+static pthread_once_t auto_mem_once = PTHREAD_ONCE_INIT;
 
 static void
 auto_mem_destructor(void *arg)
@@ -92,13 +92,13 @@ get_auto_allocs(void)
 }
 
 static void
-set_auto_allocs(struct auto_mem *am)
+set_auto_allocs(struct auto_mem * am)
 {
    pthread_setspecific(auto_mem_key, am);
 }
-
 #else
-static struct auto_mem *auto_allocs = NULL;
+static struct auto_mem *auto_allocs = NULL;
+
 #define get_auto_allocs()      (auto_allocs)
 #define set_auto_allocs(am)        do { auto_allocs = (am); } while(0)
 #endif
@@ -124,10 +124,11 @@ ECPGfree_auto_mem(void)
        do
        {
            struct auto_mem *act = am;
+
            am = am->next;
            ecpg_free(act->pointer);
            ecpg_free(act);
-       } while(am);
+       } while (am);
        set_auto_allocs(NULL);
    }
 }
@@ -143,9 +144,10 @@ ecpg_clear_auto_mem(void)
        do
        {
            struct auto_mem *act = am;
+
            am = am->next;
            ecpg_free(act);
-       } while(am);
+       } while (am);
        set_auto_allocs(NULL);
    }
 }
index a5aa52afcd024f37b33e87e58f38d84318f93de5..4c2b2447e9162f64f567dc672ccafe0fcbe5e86c 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/misc.c,v 1.40 2007/10/03 11:11:12 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/misc.c,v 1.41 2007/11/15 21:14:45 momjian Exp $ */
 
 #define POSTGRES_ECPG_INTERNAL
 #include "postgres_fe.h"
@@ -26,7 +26,7 @@
 #endif
 #endif
 
-bool ecpg_internal_regression_mode = false;
+bool       ecpg_internal_regression_mode = false;
 
 static struct sqlca_t sqlca_init =
 {
@@ -109,7 +109,7 @@ ecpg_init(const struct connection * con, const char *connection_name, const int
    if (con == NULL)
    {
        ecpg_raise(lineno, ECPG_NO_CONN, ECPG_SQLSTATE_CONNECTION_DOES_NOT_EXIST,
-                 connection_name ? connection_name : "NULL");
+                  connection_name ? connection_name : "NULL");
        return (false);
    }
 
@@ -120,7 +120,7 @@ ecpg_init(const struct connection * con, const char *connection_name, const int
 static void
 ecpg_sqlca_key_destructor(void *arg)
 {
-   free(arg);              /* sqlca structure allocated in ECPGget_sqlca */
+   free(arg);                  /* sqlca structure allocated in ECPGget_sqlca */
 }
 
 static void
@@ -219,10 +219,10 @@ ECPGdebug(int n, FILE *dbgs)
    pthread_mutex_lock(&debug_init_mutex);
 #endif
 
-   if (n > 100) 
+   if (n > 100)
    {
        ecpg_internal_regression_mode = true;
-       simple_debug = n-100;
+       simple_debug = n - 100;
    }
    else
        simple_debug = n;
@@ -420,18 +420,18 @@ win32_pthread_mutex(volatile pthread_mutex_t *mutex)
 {
    if (mutex->handle == NULL)
    {
-       while (InterlockedExchange((LONG *)&mutex->initlock, 1) == 1)
+       while (InterlockedExchange((LONG *) & mutex->initlock, 1) == 1)
            Sleep(0);
        if (mutex->handle == NULL)
            mutex->handle = CreateMutex(NULL, FALSE, NULL);
-       InterlockedExchange((LONG *)&mutex->initlock, 0);
+       InterlockedExchange((LONG *) & mutex->initlock, 0);
    }
 }
 
-static pthread_mutex_t win32_pthread_once_lock = PTHREAD_MUTEX_INITIALIZER;
+static pthread_mutex_t win32_pthread_once_lock = PTHREAD_MUTEX_INITIALIZER;
 
 void
-win32_pthread_once(volatile pthread_once_t *once, void (*fn)(void))
+win32_pthread_once(volatile pthread_once_t *once, void (*fn) (void))
 {
    if (!*once)
    {
@@ -444,6 +444,6 @@ win32_pthread_once(volatile pthread_once_t *once, void (*fn)(void))
        pthread_mutex_unlock(&win32_pthread_once_lock);
    }
 }
+#endif   /* ENABLE_THREAD_SAFETY */
 
-#endif /* ENABLE_THREAD_SAFETY */
-#endif /* WIN32 */
+#endif   /* WIN32 */
index 2433478a05b93c6a17eabf92ab4c40cfaeb391a3..930bb4f64e630825665b27af4fa397db2489e283 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/prepare.c,v 1.23 2007/11/05 20:57:24 tgl Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/prepare.c,v 1.24 2007/11/15 21:14:45 momjian Exp $ */
 
 #define POSTGRES_ECPG_INTERNAL
 #include "postgres_fe.h"
 
 struct prepared_statement
 {
-   char                       *name;
-   bool                        prepared;
-   struct statement           *stmt;
-   struct prepared_statement  *next;
+   char       *name;
+   bool        prepared;
+   struct statement *stmt;
+   struct prepared_statement *next;
 };
 
 #define STMTID_SIZE 32
 
-typedef struct 
+typedef struct
 {
-    int         lineno;
-    char        stmtID[STMTID_SIZE];
-    char        *ecpgQuery;
-    long        execs;                  /* # of executions      */
-    char        *connection;            /* connection for the statement     */
-} stmtCacheEntry;
-
-static int             nextStmtID               = 1;
-static const int       stmtCacheNBuckets        = 2039;     /* # buckets - a prime # */
-static const int       stmtCacheEntPerBucket    = 8;        /* # entries/bucket     */
-static stmtCacheEntry  stmtCacheEntries[16384] = {{0,{0},0,0,0}};
+   int         lineno;
+   char        stmtID[STMTID_SIZE];
+   char       *ecpgQuery;
+   long        execs;          /* # of executions      */
+   char       *connection;     /* connection for the statement     */
+}  stmtCacheEntry;
+
+static int nextStmtID = 1;
+static const int stmtCacheNBuckets = 2039;     /* # buckets - a prime # */
+static const int stmtCacheEntPerBucket = 8;        /* # entries/bucket     */
+static stmtCacheEntry stmtCacheEntries[16384] = {{0, {0}, 0, 0, 0}};
 
 static struct prepared_statement *find_prepared_statement(const char *name,
-   struct connection *con, struct prepared_statement **prev);
-static bool    deallocate_one(int lineno, enum COMPAT_MODE c, struct connection *con,
-   struct prepared_statement *prev, struct prepared_statement *this);
+                struct connection * con, struct prepared_statement ** prev);
+static bool deallocate_one(int lineno, enum COMPAT_MODE c, struct connection * con,
+        struct prepared_statement * prev, struct prepared_statement * this);
 
 static bool
 isvarchar(unsigned char c)
@@ -58,8 +58,9 @@ isvarchar(unsigned char c)
 static bool
 replace_variables(char **text, int lineno, bool questionmarks)
 {
-   bool    string = false;
-   int     counter = 1, ptr = 0;
+   bool        string = false;
+   int         counter = 1,
+               ptr = 0;
 
    for (; (*text)[ptr] != '\0'; ptr++)
    {
@@ -69,21 +70,23 @@ replace_variables(char **text, int lineno, bool questionmarks)
        if (string || (((*text)[ptr] != ':') && ((*text)[ptr] != '?')))
            continue;
 
-       if (((*text)[ptr] == ':') && ((*text)[ptr+1] == ':')) 
-           ptr += 2;       /* skip  '::' */
+       if (((*text)[ptr] == ':') && ((*text)[ptr + 1] == ':'))
+           ptr += 2;           /* skip  '::' */
        else
        {
-           int len;
-           int buffersize = sizeof(int) * CHAR_BIT * 10 / 3; /* a rough guess of the size we need */
-           char *buffer, *newcopy;
+           int         len;
+           int         buffersize = sizeof(int) * CHAR_BIT * 10 / 3;   /* a rough guess of the
+                                                                        * size we need */
+           char       *buffer,
+                      *newcopy;
 
            if (!(buffer = (char *) ecpg_alloc(buffersize, lineno)))
                return false;
 
            snprintf(buffer, buffersize, "$%d", counter++);
 
-           for (len=1; (*text)[ptr+len] && isvarchar((*text)[ptr+len]); len++);
-           if (!(newcopy = (char *) ecpg_alloc(strlen(*text) - len + strlen(buffer) + 1, lineno)))
+           for (len = 1; (*text)[ptr + len] && isvarchar((*text)[ptr + len]); len++);
+           if (!(newcopy = (char *) ecpg_alloc(strlen(*text) -len + strlen(buffer) + 1, lineno)))
            {
                ecpg_free(buffer);
                return false;
@@ -91,16 +94,16 @@ replace_variables(char **text, int lineno, bool questionmarks)
 
            strncpy(newcopy, *text, ptr);
            strcpy(newcopy + ptr, buffer);
-           strcat(newcopy, (*text) + ptr + len);
+           strcat(newcopy, (*text) +ptr + len);
 
            ecpg_free(*text);
            ecpg_free(buffer);
 
            *text = newcopy;
 
-           if ((*text)[ptr] == '\0')       /* we reached the end */
-               ptr--;      /* since we will (*text)[ptr]++ in the top level for
-                            * loop */
+           if ((*text)[ptr] == '\0')   /* we reached the end */
+               ptr--;          /* since we will (*text)[ptr]++ in the top
+                                * level for loop */
        }
    }
    return true;
@@ -110,10 +113,10 @@ replace_variables(char **text, int lineno, bool questionmarks)
 bool
 ECPGprepare(int lineno, const char *connection_name, const int questionmarks, const char *name, const char *variable)
 {
-   struct connection          *con;
-   struct statement           *stmt;
-   struct prepared_statement  *this,
-                              *prev;
+   struct connection *con;
+   struct statement *stmt;
+   struct prepared_statement *this,
+              *prev;
    struct sqlca_t *sqlca = ECPGget_sqlca();
    PGresult   *query;
 
@@ -174,11 +177,12 @@ ECPGprepare(int lineno, const char *connection_name, const int questionmarks, co
    return true;
 }
 
-static struct prepared_statement *find_prepared_statement(const char *name,
-   struct connection *con, struct prepared_statement **prev_)
+static struct prepared_statement *
+find_prepared_statement(const char *name,
+                struct connection * con, struct prepared_statement ** prev_)
 {
-   struct prepared_statement  *this,
-                              *prev;
+   struct prepared_statement *this,
+              *prev;
 
    for (this = con->prep_stmts, prev = NULL; this != NULL; prev = this, this = this->next)
    {
@@ -193,19 +197,20 @@ static struct prepared_statement *find_prepared_statement(const char *name,
 }
 
 static bool
-deallocate_one(int lineno, enum COMPAT_MODE c, struct connection *con, struct prepared_statement *prev, struct prepared_statement *this)
+deallocate_one(int lineno, enum COMPAT_MODE c, struct connection * con, struct prepared_statement * prev, struct prepared_statement * this)
 {
-   bool    r = false;
+   bool        r = false;
 
    ecpg_log("ECPGdeallocate line %d: NAME: %s\n", lineno, this->name);
 
    /* first deallocate the statement in the backend */
    if (this->prepared)
    {
-       char *text;
-       PGresult *query;
-       
+       char       *text;
+       PGresult   *query;
+
        text = (char *) ecpg_alloc(strlen("deallocate \"\" ") + strlen(this->name), this->stmt->lineno);
+
        if (text)
        {
            sprintf(text, "deallocate \"%s\"", this->name);
@@ -220,15 +225,15 @@ deallocate_one(int lineno, enum COMPAT_MODE c, struct connection *con, struct pr
    }
 
    /*
-    * Just ignore all errors since we do not know the list of cursors we
-    * are allowed to free. We have to trust the software.
+    * Just ignore all errors since we do not know the list of cursors we are
+    * allowed to free. We have to trust the software.
     */
    if (!r && !INFORMIX_MODE(c))
    {
        ecpg_raise(lineno, ECPG_INVALID_STMT, ECPG_SQLSTATE_INVALID_SQL_STATEMENT_NAME, this->name);
        return false;
    }
-   
+
    /* okay, free all the resources */
    ecpg_free(this->stmt->command);
    ecpg_free(this->stmt);
@@ -245,9 +250,9 @@ deallocate_one(int lineno, enum COMPAT_MODE c, struct connection *con, struct pr
 bool
 ECPGdeallocate(int lineno, int c, const char *connection_name, const char *name)
 {
-   struct connection          *con;
-   struct prepared_statement  *this,
-                              *prev;
+   struct connection *con;
+   struct prepared_statement *this,
+              *prev;
 
    con = ecpg_get_connection(connection_name);
 
@@ -263,7 +268,7 @@ ECPGdeallocate(int lineno, int c, const char *connection_name, const char *name)
 }
 
 bool
-ecpg_deallocate_all_conn(int lineno, enum COMPAT_MODE c, struct connection *con)
+ecpg_deallocate_all_conn(int lineno, enum COMPAT_MODE c, struct connection * con)
 {
    /* deallocate all prepared statements */
    while (con->prep_stmts)
@@ -282,9 +287,10 @@ ECPGdeallocate_all(int lineno, int compat, const char *connection_name)
 }
 
 char *
-ecpg_prepared(const char *name, struct connection *con, int lineno)
+ecpg_prepared(const char *name, struct connection * con, int lineno)
 {
-   struct prepared_statement  *this;
+   struct prepared_statement *this;
+
    this = find_prepared_statement(name, con, NULL);
    return this ? this->stmt->command : NULL;
 }
@@ -302,97 +308,102 @@ ECPGprepared_statement(const char *connection_name, const char *name, int lineno
 static int
 HashStmt(const char *ecpgQuery)
 {
-    int             stmtIx, bucketNo, hashLeng, stmtLeng;
-    long long       hashVal, rotVal;
-
-    stmtLeng = strlen(ecpgQuery);
-    hashLeng = 50;                          /* use 1st 50 characters of statement       */
-    if(hashLeng > stmtLeng)                 /* if the statement isn't that long         */
-        hashLeng = stmtLeng;                /*      use its actual length               */
-
-    hashVal = 0;
-    for(stmtIx = 0; stmtIx < hashLeng; ++stmtIx)
-    {
-        hashVal = hashVal +  (int) ecpgQuery[stmtIx];
-        hashVal = hashVal << 13;
-        rotVal  = (hashVal & 0x1fff00000000LL) >> 32;
-        hashVal = (hashVal & 0xffffffffLL) | rotVal;
-    }
-
-    bucketNo  = hashVal % stmtCacheNBuckets;
-    bucketNo += 1;                                      /* don't use bucket # 0         */
-
-    return (bucketNo * stmtCacheEntPerBucket);
+   int         stmtIx,
+               bucketNo,
+               hashLeng,
+               stmtLeng;
+   long long   hashVal,
+               rotVal;
+
+   stmtLeng = strlen(ecpgQuery);
+   hashLeng = 50;              /* use 1st 50 characters of statement       */
+   if (hashLeng > stmtLeng)    /* if the statement isn't that long         */
+       hashLeng = stmtLeng;    /* use its actual length               */
+
+   hashVal = 0;
+   for (stmtIx = 0; stmtIx < hashLeng; ++stmtIx)
+   {
+       hashVal = hashVal + (int) ecpgQuery[stmtIx];
+       hashVal = hashVal << 13;
+       rotVal = (hashVal & 0x1fff00000000LL) >> 32;
+       hashVal = (hashVal & 0xffffffffLL) | rotVal;
+   }
+
+   bucketNo = hashVal % stmtCacheNBuckets;
+   bucketNo += 1;              /* don't use bucket # 0         */
+
+   return (bucketNo * stmtCacheEntPerBucket);
 }
 
 /*
  * search the statement cache - search for entry with matching ECPG-format query
  * Returns entry # in cache if found
- *   OR  zero if not present (zero'th entry isn't used)
+ *  OR  zero if not present (zero'th entry isn't used)
  */
 static int
 SearchStmtCache(const char *ecpgQuery)
 {
-    int             entNo, entIx;
-
-/* hash the statement           */
-    entNo = HashStmt(ecpgQuery);
-
-/* search the cache     */
-    for(entIx = 0; entIx < stmtCacheEntPerBucket; ++entIx)
-    {
-        if(stmtCacheEntries[entNo].stmtID[0])   /* check if entry is in use     */
-        {
-       if(!strcmp(ecpgQuery, stmtCacheEntries[entNo].ecpgQuery))
-                   break;                          /* found it     */
-        }
-        ++entNo;                                /* incr entry #     */
-    }
+   int         entNo,
+               entIx;
+
+/* hash the statement          */
+   entNo = HashStmt(ecpgQuery);
+
+/* search the cache        */
+   for (entIx = 0; entIx < stmtCacheEntPerBucket; ++entIx)
+   {
+       if (stmtCacheEntries[entNo].stmtID[0])  /* check if entry is in use     */
+       {
+           if (!strcmp(ecpgQuery, stmtCacheEntries[entNo].ecpgQuery))
+               break;          /* found it     */
+       }
+       ++entNo;                /* incr entry #     */
+   }
 
 /* if entry wasn't found - set entry # to zero  */
-    if(entIx >= stmtCacheEntPerBucket)
-        entNo = 0;
+   if (entIx >= stmtCacheEntPerBucket)
+       entNo = 0;
 
-    return(entNo);
+   return (entNo);
 }
 
 /*
  * free an entry in the statement cache
  * Returns entry # in cache used
- *   OR  negative error code
+ *  OR  negative error code
  */
 static int
-ecpg_freeStmtCacheEntry(int      entNo)          /* entry # to free          */
+ecpg_freeStmtCacheEntry(int entNo)     /* entry # to free          */
 {
-    stmtCacheEntry  *entry;
-    PGresult        *results;
-    char            deallocText[100];
-    struct connection *con;
-
-    entry = &stmtCacheEntries[entNo];
-    if(!entry->stmtID[0])                       /* return if the entry isn't in use     */
-        return(0);
-
-    con = ecpg_get_connection(entry->connection);
-/* free the server resources for the statement                                          */
-    ecpg_log("ecpg_freeStmtCacheEntry line %d: deallocate %s, cache entry #%d\n", entry->lineno, entry->stmtID, entNo);
-    sprintf(deallocText, "DEALLOCATE PREPARE %s", entry->stmtID);
-    results = PQexec(con->connection, deallocText);
-
-    if (!ecpg_check_PQresult(results, entry->lineno, con->connection, ECPG_COMPAT_PGSQL))
-       return(-1);
-    PQclear(results);
-
-    entry->stmtID[0] = '\0';
-
-/* free the memory used by the cache entry      */
-    if(entry->ecpgQuery)
-    {
-   ecpg_free(entry->ecpgQuery);
-        entry->ecpgQuery = 0;
-    }
-
-    return(entNo);
+   stmtCacheEntry *entry;
+   PGresult   *results;
+   char        deallocText[100];
+   struct connection *con;
+
+   entry = &stmtCacheEntries[entNo];
+   if (!entry->stmtID[0])      /* return if the entry isn't in use     */
+       return (0);
+
+   con = ecpg_get_connection(entry->connection);
+/* free the server resources for the statement                                         */
+   ecpg_log("ecpg_freeStmtCacheEntry line %d: deallocate %s, cache entry #%d\n", entry->lineno, entry->stmtID, entNo);
+   sprintf(deallocText, "DEALLOCATE PREPARE %s", entry->stmtID);
+   results = PQexec(con->connection, deallocText);
+
+   if (!ecpg_check_PQresult(results, entry->lineno, con->connection, ECPG_COMPAT_PGSQL))
+       return (-1);
+   PQclear(results);
+
+   entry->stmtID[0] = '\0';
+
+/* free the memory used by the cache entry     */
+   if (entry->ecpgQuery)
+   {
+       ecpg_free(entry->ecpgQuery);
+       entry->ecpgQuery = 0;
+   }
+
+   return (entNo);
 }
 
 /*
@@ -400,63 +411,67 @@ ecpg_freeStmtCacheEntry(int      entNo)          /* entry # to free          */
  * returns entry # in cache used  OR  negative error code
  */
 static int
-AddStmtToCache(int         lineno,         /* line # of statement      */
-               char        *stmtID,        /* statement ID             */
-               const char  *connection,    /* connection               */
-               const char  *ecpgQuery)     /* query                    */
+AddStmtToCache(int lineno,     /* line # of statement      */
+              char *stmtID,    /* statement ID             */
+              const char *connection,  /* connection               */
+              const char *ecpgQuery)   /* query                    */
 {
-    int             ix, initEntNo, luEntNo, entNo;
-    stmtCacheEntry  *entry;
-
-/* hash the statement                                                                   */
-    initEntNo = HashStmt(ecpgQuery);
-
-/* search for an unused entry                                                           */
-    entNo   = initEntNo;            /* start with the initial entry # for the bucket    */
-    luEntNo = initEntNo;            /* use it as the initial 'least used' entry         */
-    for(ix = 0; ix < stmtCacheEntPerBucket; ++ix)
-    {
-        entry = &stmtCacheEntries[entNo];
-        if(!entry->stmtID[0])                       /* unused entry  -  use it          */
-            break;
-        if(entry->execs < stmtCacheEntries[luEntNo].execs)
-            luEntNo = entNo;                        /* save new 'least used' entry      */
-        ++entNo;                                    /* increment entry #                */
-    }
-
-/* if no unused entries were found - use the 'least used' entry found in the bucket     */
-    if(ix >= stmtCacheEntPerBucket)                 /* if no unused entries were found  */
-        entNo = luEntNo;                            /* re-use the 'least used' entry    */
-
-/* 'entNo' is the entry to use - make sure its free                                     */
-    if (ecpg_freeStmtCacheEntry(entNo) < 0)
-       return (-1);
-
-/* add the query to the entry                                                           */
-    entry = &stmtCacheEntries[entNo];
-    entry->lineno = lineno;
-    entry->ecpgQuery = ecpg_strdup(ecpgQuery, lineno);
-    entry->connection = (char *)connection;
-    entry->execs = 0;
-    memcpy(entry->stmtID, stmtID, sizeof(entry->stmtID));
-
-    return(entNo);
+   int         ix,
+               initEntNo,
+               luEntNo,
+               entNo;
+   stmtCacheEntry *entry;
+
+/* hash the statement                                                                  */
+   initEntNo = HashStmt(ecpgQuery);
+
+/* search for an unused entry                                                          */
+   entNo = initEntNo;          /* start with the initial entry # for the
+                                * bucket    */
+   luEntNo = initEntNo;        /* use it as the initial 'least used' entry         */
+   for (ix = 0; ix < stmtCacheEntPerBucket; ++ix)
+   {
+       entry = &stmtCacheEntries[entNo];
+       if (!entry->stmtID[0])  /* unused entry  -  use it          */
+           break;
+       if (entry->execs < stmtCacheEntries[luEntNo].execs)
+           luEntNo = entNo;    /* save new 'least used' entry      */
+       ++entNo;                /* increment entry #                */
+   }
+
+/* if no unused entries were found - use the 'least used' entry found in the bucket        */
+   if (ix >= stmtCacheEntPerBucket)    /* if no unused entries were found  */
+       entNo = luEntNo;        /* re-use the 'least used' entry    */
+
+/* 'entNo' is the entry to use - make sure its free                                        */
+   if (ecpg_freeStmtCacheEntry(entNo) < 0)
+       return (-1);
+
+/* add the query to the entry                                                          */
+   entry = &stmtCacheEntries[entNo];
+   entry->lineno = lineno;
+   entry->ecpgQuery = ecpg_strdup(ecpgQuery, lineno);
+   entry->connection = (char *) connection;
+   entry->execs = 0;
+   memcpy(entry->stmtID, stmtID, sizeof(entry->stmtID));
+
+   return (entNo);
 }
 
 /* handle cache and preparation of statments in auto-prepare mode */
 bool
 ecpg_auto_prepare(int lineno, const char *connection_name, const int questionmarks, char **name, const char *query)
 {
-   int entNo;
+   int         entNo;
 
-   /* search the statement cache for this statement    */
+   /* search the statement cache for this statement    */
    entNo = SearchStmtCache(query);
 
-   /* if not found - add the statement to the cache    */
-   if(entNo)
+   /* if not found - add the statement to the cache    */
+   if (entNo)
    {
        ecpg_log("ecpg_auto_prepare line %d: stmt found in cache, entry %d\n", lineno, entNo);
-       *name = ecpg_strdup(stmtCacheEntries[entNo].stmtID, lineno); 
+       *name = ecpg_strdup(stmtCacheEntries[entNo].stmtID, lineno);
    }
    else
    {
@@ -467,13 +482,13 @@ ecpg_auto_prepare(int lineno, const char *connection_name, const int questionmar
        sprintf(*name, "ecpg%d", nextStmtID++);
 
        if (!ECPGprepare(lineno, connection_name, questionmarks, ecpg_strdup(*name, lineno), query))
-           return(false);
+           return (false);
        if (AddStmtToCache(lineno, *name, connection_name, query) < 0)
-           return(false);
+           return (false);
    }
 
    /* increase usage counter */
    stmtCacheEntries[entNo].execs++;
 
-   return(true);
+   return (true);
 }
index 8a0c779809f4ddec5c990a1b69404a1e0113ac09..e20c73cf75830da5ed600622943a4c2ca23eb342 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/typename.c,v 1.13 2007/10/03 11:11:12 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/typename.c,v 1.14 2007/11/15 21:14:45 momjian Exp $ */
 
 #define POSTGRES_ECPG_INTERNAL
 #include "postgres_fe.h"
@@ -96,6 +96,6 @@ ecpg_dynamic_type(Oid type)
        case NUMERICOID:
            return SQL3_NUMERIC;    /* numeric */
        default:
-           return -(int)type;
+           return -(int) type;
    }
 }
index 991a33dcf1aec883e3558e53ef11e90e15a6b87f..dce8c38715e372157886602a567e604b83fff8fd 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/include/ecpg-pthread-win32.h,v 1.4 2007/10/03 08:55:23 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/include/ecpg-pthread-win32.h,v 1.5 2007/11/15 21:14:45 momjian Exp $ */
 /*
  * pthread mapping macros for win32 native thread implementation
  */
@@ -10,7 +10,6 @@
 #ifndef WIN32
 
 #include <pthread.h>
-
 #else
 
 typedef struct pthread_mutex_t
@@ -19,14 +18,14 @@ typedef struct pthread_mutex_t
    LONG        initlock;
 } pthread_mutex_t;
 
-typedef DWORD      pthread_key_t;
-typedef bool       pthread_once_t;
+typedef DWORD pthread_key_t;
+typedef bool pthread_once_t;
 
 #define PTHREAD_MUTEX_INITIALIZER  { NULL, 0 }
 #define PTHREAD_ONCE_INIT          false
 
-void win32_pthread_mutex(volatile pthread_mutex_t *mutex);
-void win32_pthread_once(volatile pthread_once_t *once, void (*fn)(void));
+void       win32_pthread_mutex(volatile pthread_mutex_t *mutex);
+void       win32_pthread_once(volatile pthread_once_t *once, void (*fn) (void));
 
 #define pthread_mutex_lock(mutex) \
    do { \
@@ -53,9 +52,7 @@ void win32_pthread_once(volatile pthread_once_t *once, void (*fn)(void));
        if (!*(once)) \
            win32_pthread_once((once), (fn)); \
    } while(0)
+#endif   /* WIN32 */
+#endif   /* ENABLE_THREAD_SAFETY */
 
-#endif /* WIN32 */
-
-#endif /* ENABLE_THREAD_SAFETY */
-
-#endif  /* _ECPG_PTHREAD_WIN32_H */
+#endif   /* _ECPG_PTHREAD_WIN32_H */
index 70128d1802d9a9f36aeb80cda2c1c2457cabad26..3910859d348e30fe8aaf90ffeeb31ce9a8427fc7 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/datetime.c,v 1.33 2007/08/14 10:01:52 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/datetime.c,v 1.34 2007/11/15 21:14:45 momjian Exp $ */
 
 #include "postgres_fe.h"
 
@@ -75,7 +75,7 @@ PGTYPESdate_from_asc(char *str, char **endptr)
    }
 
    if (ParseDateTime(str, lowstr, field, ftype, MAXDATEFIELDS, &nf, ptr) != 0 ||
-   DecodeDateTime(field, ftype, nf, &dtype, tm, &fsec, EuroDates) != 0)
+       DecodeDateTime(field, ftype, nf, &dtype, tm, &fsec, EuroDates) != 0)
    {
        errno = PGTYPES_DATE_BAD_DATE;
        return INT_MIN;
index c75775ffb5b49391f3c430930d377a14b3df9d8e..47905dedfe769b028512dd60f296344b23ed7db9 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/dt.h,v 1.38 2007/08/22 08:20:58 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/dt.h,v 1.39 2007/11/15 21:14:45 momjian Exp $ */
 
 #ifndef DT_H
 #define DT_H
@@ -310,24 +310,24 @@ do { \
 #define TIMESTAMP_IS_NOEND(j)  ((j) == DT_NOEND)
 #define TIMESTAMP_NOT_FINITE(j) (TIMESTAMP_IS_NOBEGIN(j) || TIMESTAMP_IS_NOEND(j))
 
-int DecodeTimeOnly(char **, int *, int, int *, struct tm *, fsec_t *, int *);
-int DecodeInterval(char **, int *, int, int *, struct tm *, fsec_t *);
-int DecodeTime(char *, int, int *, struct tm *, fsec_t *);
-int EncodeTimeOnly(struct tm *, fsec_t, int *, int, char *);
-int EncodeDateTime(struct tm *, fsec_t, int *, char **, int, char *, bool);
-int EncodeInterval(struct tm *, fsec_t, int, char *);
-int tm2timestamp(struct tm *, fsec_t, int *, timestamp *);
-int DecodeUnits(int field, char *lowtoken, int *val);
-bool CheckDateTokenTables(void);
-int EncodeDateOnly(struct tm *, int, char *, bool);
-void GetEpochTime(struct tm *);
-int ParseDateTime(char *, char *, char **, int *, int, int *, char **);
-int DecodeDateTime(char **, int *, int, int *, struct tm *, fsec_t *, bool);
-void j2date(int, int *, int *, int *);
-void GetCurrentDateTime(struct tm *);
-int date2j(int, int, int);
-void TrimTrailingZeros(char *);
-void dt2time(double, int *, int *, int *, fsec_t *);
+int            DecodeTimeOnly(char **, int *, int, int *, struct tm *, fsec_t *, int *);
+int            DecodeInterval(char **, int *, int, int *, struct tm *, fsec_t *);
+int            DecodeTime(char *, int, int *, struct tm *, fsec_t *);
+int            EncodeTimeOnly(struct tm *, fsec_t, int *, int, char *);
+int            EncodeDateTime(struct tm *, fsec_t, int *, char **, int, char *, bool);
+int            EncodeInterval(struct tm *, fsec_t, int, char *);
+int            tm2timestamp(struct tm *, fsec_t, int *, timestamp *);
+int            DecodeUnits(int field, char *lowtoken, int *val);
+bool       CheckDateTokenTables(void);
+int            EncodeDateOnly(struct tm *, int, char *, bool);
+void       GetEpochTime(struct tm *);
+int            ParseDateTime(char *, char *, char **, int *, int, int *, char **);
+int            DecodeDateTime(char **, int *, int, int *, struct tm *, fsec_t *, bool);
+void       j2date(int, int *, int *, int *);
+void       GetCurrentDateTime(struct tm *);
+int            date2j(int, int, int);
+void       TrimTrailingZeros(char *);
+void       dt2time(double, int *, int *, int *, fsec_t *);
 
 extern char *pgtypes_date_weekdays_short[];
 extern char *pgtypes_date_months[];
index 212ca0eebb6fd789b784e8a581528c2b117e7b53..62a90352d47cb00ced2adf6f51e7e9beebb9ac69 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/dt_common.c,v 1.43 2007/09/30 11:38:48 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/dt_common.c,v 1.44 2007/11/15 21:14:45 momjian Exp $ */
 
 #include "postgres_fe.h"
 
@@ -214,7 +214,7 @@ static datetkn datetktbl[] = {
    {"irkst", DTZ, POS(36)},    /* Irkutsk Summer Time */
    {"irkt", TZ, POS(32)},      /* Irkutsk Time */
    {"irt", TZ, POS(14)},       /* Iran Time */
-   {"isodow", RESERV, DTK_ISODOW}, /* ISO day of week, Sunday == 7 */
+   {"isodow", RESERV, DTK_ISODOW},     /* ISO day of week, Sunday == 7 */
 #if 0
    isst
 #endif
@@ -1816,7 +1816,7 @@ ParseDateTime(char *timestr, char *lowstr,
  */
 int
 DecodeDateTime(char **field, int *ftype, int nf,
-         int *dtype, struct tm * tm, fsec_t *fsec, bool EuroDates)
+              int *dtype, struct tm * tm, fsec_t *fsec, bool EuroDates)
 {
    int         fmask = 0,
                tmask,
@@ -1829,7 +1829,7 @@ DecodeDateTime(char **field, int *ftype, int nf,
    int         is2digits = FALSE;
    int         bc = FALSE;
    int         t = 0;
-   int         *tzp = &t;
+   int        *tzp = &t;
 
    /***
     * We'll insist on at least all of the date fields, but initialize the
@@ -2377,12 +2377,13 @@ DecodeDateTime(char **field, int *ftype, int nf,
        if (tm->tm_mday < 1 || tm->tm_mday > day_tab[isleap(tm->tm_year)][tm->tm_mon - 1])
            return -1;
 
-       /* backend tried to find local timezone here 
-        * but we don't use the result afterwards anyway
-        * so we only check for this error:
-        * daylight savings time modifier but no standard timezone? */
+       /*
+        * backend tried to find local timezone here but we don't use the
+        * result afterwards anyway so we only check for this error: daylight
+        * savings time modifier but no standard timezone?
+        */
        if ((fmask & DTK_DATE_M) == DTK_DATE_M && tzp != NULL && !(fmask & DTK_M(TZ)) && (fmask & DTK_M(DTZMOD)))
-               return -1;
+           return -1;
    }
 
    return 0;
index 1dbe4d4ef4a382caa9c46c1561c4b3aa3dcf985a..4401c96e4dfa93c2ad7528055c3741b6d1115878 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.c,v 1.101 2007/08/29 13:58:13 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.c,v 1.102 2007/11/15 21:14:45 momjian Exp $ */
 
 /* New main for ecpg, the PostgreSQL embedded SQL precompiler. */
 /* (C) Michael Meskes <[email protected]> Feb 5th, 1998 */
@@ -22,7 +22,7 @@ int           ret_value = 0,
            regression_mode = false,
            auto_prepare = false;
 
-char      *output_filename;
+char      *output_filename;
 
 enum COMPAT_MODE compat = ECPG_COMPAT_PGSQL;
 
@@ -126,7 +126,7 @@ main(int argc, char *const argv[])
        {"help", no_argument, NULL, ECPG_GETOPT_LONG_HELP},
        {"version", no_argument, NULL, ECPG_GETOPT_LONG_VERSION},
        {"regression", no_argument, NULL, ECPG_GETOPT_LONG_REGRESSION},
-       { NULL, 0, NULL, 0}
+       {NULL, 0, NULL, 0}
    };
 
    int         fnr,
@@ -154,12 +154,14 @@ main(int argc, char *const argv[])
            case ECPG_GETOPT_LONG_HELP:
                help(progname);
                exit(0);
-           /*
-            *  -? is an alternative spelling of --help. However it is also
-            *  returned by getopt_long for unknown options. We can distinguish
-            *  both cases by means of the optopt variable which is set to 0 if
-            *  it was really -? and not an unknown option character.
-            */
+
+               /*
+                * -? is an alternative spelling of --help. However it is also
+                * returned by getopt_long for unknown options. We can
+                * distinguish both cases by means of the optopt variable
+                * which is set to 0 if it was really -? and not an unknown
+                * option character.
+                */
            case '?':
                if (optopt == 0)
                {
@@ -177,7 +179,7 @@ main(int argc, char *const argv[])
                else
                    yyout = fopen(output_filename, PG_BINARY_W);
 
-               if (yyout == NULL) 
+               if (yyout == NULL)
                {
                    fprintf(stderr, "%s: could not open file \"%s\": %s\n",
                            progname, output_filename, strerror(errno));
@@ -280,7 +282,7 @@ main(int argc, char *const argv[])
        /* after the options there must not be anything but filenames */
        for (fnr = optind; fnr < argc; fnr++)
        {
-           char *ptr2ext;
+           char       *ptr2ext;
 
            /* If argv[fnr] is "-" we have to read from stdin */
            if (strcmp(argv[fnr], "-") == 0)
@@ -430,7 +432,7 @@ main(int argc, char *const argv[])
 
                /* we need several includes */
                /* but not if we are in header mode */
-               if (regression_mode) 
+               if (regression_mode)
                    fprintf(yyout, "/* Processed by ecpg (regression mode) */\n");
                else
                    fprintf(yyout, "/* Processed by ecpg (%d.%d.%d) */\n", MAJOR_VERSION, MINOR_VERSION, PATCHLEVEL);
@@ -446,7 +448,7 @@ main(int argc, char *const argv[])
                    fprintf(yyout, "/* End of automatic include section */\n");
                }
 
-               if (regression_mode) 
+               if (regression_mode)
                    fprintf(yyout, "#define ECPGdebug(X,Y) ECPGdebug((X)+100,(Y))\n");
 
                output_line_number();
index 6155bc1f7359b7e1129df29903c47ba23580e5a5..98179fe39fcd7a1825da2a178dadd69e5540191e 100644 (file)
@@ -4,7 +4,7 @@
  *   lexical token lookup for reserved words in postgres embedded SQL
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg_keywords.c,v 1.36 2007/08/22 08:20:58 meskes Exp $
+ *   $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg_keywords.c,v 1.37 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -63,4 +63,3 @@ static const ScanKeyword ScanECPGKeywords[] = {
    {"var", SQL_VAR},
    {"whenever", SQL_WHENEVER},
 };
-
index ecd646100eb951fd202ca2c033c28c68ff9e2e24..c9097c87eec19e2785135950a323508bc1f34825 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/extern.h,v 1.69 2007/08/22 08:20:58 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/extern.h,v 1.70 2007/11/15 21:14:45 momjian Exp $ */
 
 #ifndef _ECPG_PREPROC_EXTERN_H
 #define _ECPG_PREPROC_EXTERN_H
@@ -97,11 +97,11 @@ extern void remove_typedefs(int);
 extern void remove_variables(int);
 extern struct variable *new_variable(const char *, struct ECPGtype *, int);
 extern const ScanKeyword *ScanKeywordLookup(char *text);
-extern const ScanKeyword *DoLookup(char *, const ScanKeyword *,const ScanKeyword *);
+extern const ScanKeyword *DoLookup(char *, const ScanKeyword *, const ScanKeyword *);
 extern void scanner_init(const char *);
 extern void parser_init(void);
 extern void scanner_finish(void);
-extern int filtered_base_yylex(void);
+extern int filtered_base_yylex(void);
 
 /* return codes */
 
index 62dffb74af7d8204f559e208a0bf6b930a163349..d6e5c3f64786cd6ce1c20c4b445282665d55d59d 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.83 2007/10/10 06:33:17 meskes Exp $
+ *   $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.84 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -474,4 +474,3 @@ ScanKeywordLookup(char *text)
 
    return DoLookup(word, &ScanECPGKeywords[0], endof(ScanECPGKeywords) - 1);
 }
-
index 2a4a6380044f1e774f9ab64539d0d4d253a59558..74da49a0d20db853df9febab02f80570786ceb89 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/output.c,v 1.22 2007/09/26 10:57:00 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/output.c,v 1.23 2007/11/15 21:14:45 momjian Exp $ */
 
 #include "postgres_fe.h"
 
@@ -130,7 +130,7 @@ output_statement(char *stmt, int whenever_mode, enum ECPG_statement_type st)
    fputs("ECPGt_EORT);", yyout);
    reset_variables();
 
-   whenever_action(whenever_mode|2);
+   whenever_action(whenever_mode | 2);
    free(stmt);
    if (connection != NULL)
        free(connection);
@@ -153,7 +153,8 @@ output_prepare_statement(char *name, char *stmt)
 void
 output_deallocate_prepare_statement(char *name)
 {
-   const char* con = connection ? connection : "NULL";
+   const char *con = connection ? connection : "NULL";
+
    if (strcmp(name, "all"))
    {
        fprintf(yyout, "{ ECPGdeallocate(__LINE__, %d, %s, ", compat, con);
@@ -172,10 +173,12 @@ output_deallocate_prepare_statement(char *name)
 static void
 output_escaped_str(char *str, bool quoted)
 {
-   int i = 0;
-   int len = strlen(str);
-   
-   if (quoted && str[0] == '\"' && str[len-1] == '\"') /* do not escape quotes at beginning and end if quoted string */
+   int         i = 0;
+   int         len = strlen(str);
+
+   if (quoted && str[0] == '\"' && str[len - 1] == '\"')       /* do not escape quotes
+                                                                * at beginning and end
+                                                                * if quoted string */
    {
        i = 1;
        len--;
@@ -200,6 +203,6 @@ output_escaped_str(char *str, bool quoted)
            fputc(str[i], yyout);
    }
 
-   if (quoted && str[0] == '\"' && str[len] == '\"') 
+   if (quoted && str[0] == '\"' && str[len] == '\"')
        fputs("\"", yyout);
 }
index 21fd2dd0a58be36837432212af09f904e4d35670..519973277cce178c4f5e686446af41b7edaf5c83 100644 (file)
@@ -14,7 +14,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/parser.c,v 1.1 2007/10/26 14:17:53 tgl Exp $
+ *   $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/parser.c,v 1.2 2007/11/15 21:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -25,8 +25,8 @@
 #include "preproc.h"
 
 
-static bool have_lookahead;            /* is lookahead info valid? */
-static int lookahead_token;        /* one-token lookahead */
+static bool have_lookahead;        /* is lookahead info valid? */
+static int lookahead_token;    /* one-token lookahead */
 static YYSTYPE lookahead_yylval;   /* yylval for lookahead token */
 static YYLTYPE lookahead_yylloc;   /* yylloc for lookahead token */
 
@@ -67,6 +67,7 @@ filtered_base_yylex(void)
    switch (cur_token)
    {
        case NULLS_P:
+
            /*
             * NULLS FIRST and NULLS LAST must be reduced to one token
             */
@@ -95,6 +96,7 @@ filtered_base_yylex(void)
            break;
 
        case WITH:
+
            /*
             * WITH CASCADED, LOCAL, or CHECK must be reduced to one token
             *
index 67ea33a0a03ad6266161f0685ac1cef89bf676df..9a3f3ef7a39ad0e8b65faae7f2b98e68aa53eb86 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/type.c,v 1.75 2007/10/03 11:11:12 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/type.c,v 1.76 2007/11/15 21:14:45 momjian Exp $ */
 
 #include "postgres_fe.h"
 
@@ -101,7 +101,7 @@ ECPGmake_simple_type(enum ECPGttype type, char *size, int lineno)
    ne->size = size;
    ne->u.element = NULL;
    ne->struct_sizeof = NULL;
-   ne->lineno = lineno; /* only needed for varchar */
+   ne->lineno = lineno;        /* only needed for varchar */
 
    return ne;
 }
@@ -259,7 +259,7 @@ ECPGdump_a_type(FILE *o, const char *name, struct ECPGtype * type,
 
                    ECPGdump_a_simple(o, name,
                                      type->u.element->type,
-                           type->u.element->size, type->size, NULL, prefix, type->lineno);
+                                     type->u.element->size, type->size, NULL, prefix, type->lineno);
 
                    if (ind_type != NULL)
                    {
@@ -328,7 +328,7 @@ ECPGdump_a_simple(FILE *o, const char *name, enum ECPGttype type,
    else
    {
        char       *variable = (char *) mm_alloc(strlen(name) + ((prefix == NULL) ? 0 : strlen(prefix)) + 4);
-       char       *offset = (char *) mm_alloc(strlen(name) + strlen("sizeof(struct varchar_)") + 1 + strlen(varcharsize)+ sizeof(int) * CHAR_BIT * 10 / 3);
+       char       *offset = (char *) mm_alloc(strlen(name) + strlen("sizeof(struct varchar_)") + 1 + strlen(varcharsize) + sizeof(int) * CHAR_BIT * 10 / 3);
 
        switch (type)
        {
index eff94b40d14c52118ec1d919c16bf1fa507d6050..94c1e56f532c023eaf97cd8bdcca77797a84c145 100644 (file)
@@ -25,7 +25,7 @@ struct ECPGtype
        struct ECPGstruct_member *members;      /* A pointer to a list of
                                                 * members. */
    }           u;
-   int lineno;
+   int         lineno;
 };
 
 /* Everything is malloced. */
@@ -97,9 +97,9 @@ struct su_symbol
 
 struct prep
 {
-   char    *name;
-   char    *stmt;
-   char    *type;
+   char       *name;
+   char       *stmt;
+   char       *type;
 };
 
 struct this_type
index ae0aa1c13476c6bd20a8bdb3eec3813d68107a57..a24ac01e1d9dc1b70ebeadd188d01dee6b6dcb81 100644 (file)
@@ -11,7 +11,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/interfaces/ecpg/test/pg_regress_ecpg.c,v 1.2 2007/06/14 13:10:11 mha Exp $
+ * $PostgreSQL: pgsql/src/interfaces/ecpg/test/pg_regress_ecpg.c,v 1.3 2007/11/15 21:14:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -23,13 +23,12 @@ static void
 ecpg_filter(const char *sourcefile, const char *outfile)
 {
    /*
-    * Create a filtered copy of sourcefile, replacing
-    * #line x "./../bla/foo.h"
-    * with
-    * #line x "foo.h"
+    * Create a filtered copy of sourcefile, replacing #line x
+    * "./../bla/foo.h" with #line x "foo.h"
     */
-   FILE *s, *t;
-   char linebuf[LINEBUFSIZE];
+   FILE       *s,
+              *t;
+   char        linebuf[LINEBUFSIZE];
 
    s = fopen(sourcefile, "r");
    if (!s)
@@ -49,9 +48,10 @@ ecpg_filter(const char *sourcefile, const char *outfile)
        /* check for "#line " in the beginning */
        if (strstr(linebuf, "#line ") == linebuf)
        {
-           char *p = strchr(linebuf, '"');
-           char *n;
-           int plen = 1;
+           char       *p = strchr(linebuf, '"');
+           char       *n;
+           int         plen = 1;
+
            while (*p && (*(p + plen) == '.' || strchr(p + plen, '/') != NULL))
            {
                plen++;
@@ -60,8 +60,8 @@ ecpg_filter(const char *sourcefile, const char *outfile)
            if (plen > 1)
            {
                n = (char *) malloc(plen);
-               strncpy(n, p+1, plen - 1);
-               n[plen-1] = '\0';
+               strncpy(n, p + 1, plen - 1);
+               n[plen - 1] = '\0';
                replace_string(linebuf, n, "");
            }
        }
@@ -78,18 +78,21 @@ ecpg_filter(const char *sourcefile, const char *outfile)
 
 static PID_TYPE
 ecpg_start_test(const char *testname,
-               _stringlist **resultfiles,
-               _stringlist **expectfiles,
-               _stringlist **tags)
+               _stringlist ** resultfiles,
+               _stringlist ** expectfiles,
+               _stringlist ** tags)
 {
    PID_TYPE    pid;
    char        inprg[MAXPGPATH];
    char        insource[MAXPGPATH];
-   char        *outfile_stdout, expectfile_stdout[MAXPGPATH];
-   char        *outfile_stderr, expectfile_stderr[MAXPGPATH];
-   char        *outfile_source, expectfile_source[MAXPGPATH];
+   char       *outfile_stdout,
+               expectfile_stdout[MAXPGPATH];
+   char       *outfile_stderr,
+               expectfile_stderr[MAXPGPATH];
+   char       *outfile_source,
+               expectfile_source[MAXPGPATH];
    char        cmd[MAXPGPATH * 3];
-   char        *testname_dash;
+   char       *testname_dash;
 
    snprintf(inprg, sizeof(inprg), "%s/%s", inputdir, testname);
 
@@ -161,11 +164,11 @@ ecpg_init(void)
    /* no reason to set -w for ecpg checks, except for when on windows */
    if (strstr(host_platform, "-win32") || strstr(host_platform, "-mingw32"))
        basic_diff_opts = "-w";
-   else 
+   else
        basic_diff_opts = "";
    if (strstr(host_platform, "-win32") || strstr(host_platform, "-mingw32"))
        pretty_diff_opts = "-C3 -w";
-   else 
+   else
        pretty_diff_opts = "-C3";
 }
 
@@ -174,4 +177,3 @@ main(int argc, char *argv[])
 {
    return regression_main(argc, argv, ecpg_init, ecpg_start_test);
 }
-
index 69ec74c4c03a0ed247db8d5dcd109abe7bff3db6..38cae4de917f197d10eb9c7a55be6a510e6adea0 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/interfaces/libpq/fe-auth.c,v 1.132 2007/09/25 16:29:34 petere Exp $
+ *   $PostgreSQL: pgsql/src/interfaces/libpq/fe-auth.c,v 1.133 2007/11/15 21:14:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -139,8 +139,8 @@ pg_krb5_init(PQExpBuffer errorMessage, struct krb5_info * info)
    if (retval)
    {
        printfPQExpBuffer(errorMessage,
-                "pg_krb5_init: krb5_init_context: %s\n",
-                error_message(retval));
+                         "pg_krb5_init: krb5_init_context: %s\n",
+                         error_message(retval));
        return STATUS_ERROR;
    }
 
@@ -148,8 +148,8 @@ pg_krb5_init(PQExpBuffer errorMessage, struct krb5_info * info)
    if (retval)
    {
        printfPQExpBuffer(errorMessage,
-                "pg_krb5_init: krb5_cc_default: %s\n",
-                error_message(retval));
+                         "pg_krb5_init: krb5_cc_default: %s\n",
+                         error_message(retval));
        krb5_free_context(info->pg_krb5_context);
        return STATUS_ERROR;
    }
@@ -159,8 +159,8 @@ pg_krb5_init(PQExpBuffer errorMessage, struct krb5_info * info)
    if (retval)
    {
        printfPQExpBuffer(errorMessage,
-                "pg_krb5_init: krb5_cc_get_principal: %s\n",
-                error_message(retval));
+                         "pg_krb5_init: krb5_cc_get_principal: %s\n",
+                         error_message(retval));
        krb5_cc_close(info->pg_krb5_context, info->pg_krb5_ccache);
        krb5_free_context(info->pg_krb5_context);
        return STATUS_ERROR;
@@ -170,8 +170,8 @@ pg_krb5_init(PQExpBuffer errorMessage, struct krb5_info * info)
    if (retval)
    {
        printfPQExpBuffer(errorMessage,
-                "pg_krb5_init: krb5_unparse_name: %s\n",
-                error_message(retval));
+                         "pg_krb5_init: krb5_unparse_name: %s\n",
+                         error_message(retval));
        krb5_free_principal(info->pg_krb5_context, info->pg_krb5_client);
        krb5_cc_close(info->pg_krb5_context, info->pg_krb5_ccache);
        krb5_free_context(info->pg_krb5_context);
@@ -235,7 +235,7 @@ pg_krb5_sendauth(PGconn *conn)
    if (!conn->pghost)
    {
        printfPQExpBuffer(&conn->errorMessage,
-                "pg_krb5_sendauth: hostname must be specified for Kerberos authentication\n");
+                         "pg_krb5_sendauth: hostname must be specified for Kerberos authentication\n");
        return STATUS_ERROR;
    }
 
@@ -243,14 +243,14 @@ pg_krb5_sendauth(PGconn *conn)
    if (ret != STATUS_OK)
        return ret;
 
-   retval = krb5_sname_to_principal(info.pg_krb5_context, conn->pghost, 
+   retval = krb5_sname_to_principal(info.pg_krb5_context, conn->pghost,
                                     conn->krbsrvname,
                                     KRB5_NT_SRV_HST, &server);
    if (retval)
    {
        printfPQExpBuffer(&conn->errorMessage,
-                "pg_krb5_sendauth: krb5_sname_to_principal: %s\n",
-                error_message(retval));
+                         "pg_krb5_sendauth: krb5_sname_to_principal: %s\n",
+                         error_message(retval));
        pg_krb5_destroy(&info);
        return STATUS_ERROR;
    }
@@ -265,14 +265,14 @@ pg_krb5_sendauth(PGconn *conn)
        char        sebuf[256];
 
        printfPQExpBuffer(&conn->errorMessage,
-                libpq_gettext("could not set socket to blocking mode: %s\n"), pqStrerror(errno, sebuf, sizeof(sebuf)));
+                         libpq_gettext("could not set socket to blocking mode: %s\n"), pqStrerror(errno, sebuf, sizeof(sebuf)));
        krb5_free_principal(info.pg_krb5_context, server);
        pg_krb5_destroy(&info);
        return STATUS_ERROR;
    }
 
    retval = krb5_sendauth(info.pg_krb5_context, &auth_context,
-                          (krb5_pointer) & conn->sock, (char *) conn->krbsrvname,
+                     (krb5_pointer) & conn->sock, (char *) conn->krbsrvname,
                           info.pg_krb5_client, server,
                           AP_OPTS_MUTUAL_REQUIRED,
                           NULL, 0,     /* no creds, use ccache instead */
@@ -284,12 +284,12 @@ pg_krb5_sendauth(PGconn *conn)
 #if defined(HAVE_KRB5_ERROR_TEXT_DATA)
            printfPQExpBuffer(&conn->errorMessage,
                  libpq_gettext("Kerberos 5 authentication rejected: %*s\n"),
-                    (int) err_ret->text.length, err_ret->text.data);
+                             (int) err_ret->text.length, err_ret->text.data);
 #elif defined(HAVE_KRB5_ERROR_E_DATA)
            printfPQExpBuffer(&conn->errorMessage,
                  libpq_gettext("Kerberos 5 authentication rejected: %*s\n"),
-                    (int) err_ret->e_data->length,
-                    (const char *) err_ret->e_data->data);
+                             (int) err_ret->e_data->length,
+                             (const char *) err_ret->e_data->data);
 #else
 #error "bogus configuration"
 #endif
@@ -297,7 +297,7 @@ pg_krb5_sendauth(PGconn *conn)
        else
        {
            printfPQExpBuffer(&conn->errorMessage,
-                    "krb5_sendauth: %s\n", error_message(retval));
+                             "krb5_sendauth: %s\n", error_message(retval));
        }
 
        if (err_ret)
@@ -314,7 +314,7 @@ pg_krb5_sendauth(PGconn *conn)
 
        printfPQExpBuffer(&conn->errorMessage,
        libpq_gettext("could not restore non-blocking mode on socket: %s\n"),
-                pqStrerror(errno, sebuf, sizeof(sebuf)));
+                         pqStrerror(errno, sebuf, sizeof(sebuf)));
        ret = STATUS_ERROR;
    }
    pg_krb5_destroy(&info);
@@ -335,7 +335,7 @@ pg_krb5_sendauth(PGconn *conn)
  * from src/athena/auth/krb5/src/lib/gssapi/generic/gssapi_generic.c
  */
 static const gss_OID_desc GSS_C_NT_HOSTBASED_SERVICE_desc =
- {10, (void *)"\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x04"};
+{10, (void *) "\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x04"};
 static GSS_DLLIMP gss_OID GSS_C_NT_HOSTBASED_SERVICE = &GSS_C_NT_HOSTBASED_SERVICE_desc;
 #endif
 
@@ -345,22 +345,23 @@ static GSS_DLLIMP gss_OID GSS_C_NT_HOSTBASED_SERVICE = &GSS_C_NT_HOSTBASED_SERVI
  */
 static void
 pg_GSS_error_int(char *mprefix, char *msg, int msglen,
-                 OM_uint32 stat, int type)
+                OM_uint32 stat, int type)
 {
-   int             curlen = 0;
-   OM_uint32       lmaj_s, lmin_s;
-   gss_buffer_desc lmsg;
-   OM_uint32       msg_ctx = 0;
+   int         curlen = 0;
+   OM_uint32   lmaj_s,
+               lmin_s;
+   gss_buffer_desc lmsg;
+   OM_uint32   msg_ctx = 0;
 
-   do 
+   do
    {
-       lmaj_s = gss_display_status(&lmin_s, stat, type, 
-               GSS_C_NO_OID, &msg_ctx, &lmsg);
+       lmaj_s = gss_display_status(&lmin_s, stat, type,
+                                   GSS_C_NO_OID, &msg_ctx, &lmsg);
 
        if (curlen < msglen)
        {
            snprintf(msg + curlen, msglen - curlen, "%s: %s\n",
-                   mprefix, (char *)lmsg.value);
+                    mprefix, (char *) lmsg.value);
            curlen += lmsg.length;
        }
        gss_release_buffer(&lmin_s, &lmsg);
@@ -373,42 +374,44 @@ pg_GSS_error_int(char *mprefix, char *msg, int msglen,
  */
 static void
 pg_GSS_error(char *mprefix, PGconn *conn,
-   OM_uint32 maj_stat, OM_uint32 min_stat)
+            OM_uint32 maj_stat, OM_uint32 min_stat)
 {
-   int mlen;
+   int         mlen;
 
    /* Fetch major error codes */
-   pg_GSS_error_int(mprefix, conn->errorMessage.data, 
-       conn->errorMessage.maxlen, maj_stat, GSS_C_GSS_CODE);
+   pg_GSS_error_int(mprefix, conn->errorMessage.data,
+                    conn->errorMessage.maxlen, maj_stat, GSS_C_GSS_CODE);
    mlen = strlen(conn->errorMessage.data);
 
    /* If there is room left, try to add the minor codes as well */
    if (mlen < conn->errorMessage.maxlen - 1)
-       pg_GSS_error_int(mprefix, conn->errorMessage.data + mlen, 
+       pg_GSS_error_int(mprefix, conn->errorMessage.data + mlen,
                conn->errorMessage.maxlen - mlen, min_stat, GSS_C_MECH_CODE);
 }
 
-/* 
+/*
  * Continue GSS authentication with next token as needed.
  */
 static int
 pg_GSS_continue(PGconn *conn)
 {
-   OM_uint32   maj_stat, min_stat, lmin_s;
+   OM_uint32   maj_stat,
+               min_stat,
+               lmin_s;
 
    maj_stat = gss_init_sec_context(&min_stat,
-           GSS_C_NO_CREDENTIAL,
-           &conn->gctx,
-           conn->gtarg_nam,
-           GSS_C_NO_OID,
-           GSS_C_MUTUAL_FLAG,
-           0,
-           GSS_C_NO_CHANNEL_BINDINGS,
-           (conn->gctx==GSS_C_NO_CONTEXT)?GSS_C_NO_BUFFER:&conn->ginbuf,
-           NULL,
-           &conn->goutbuf,
-           NULL,
-           NULL);
+                                   GSS_C_NO_CREDENTIAL,
+                                   &conn->gctx,
+                                   conn->gtarg_nam,
+                                   GSS_C_NO_OID,
+                                   GSS_C_MUTUAL_FLAG,
+                                   0,
+                                   GSS_C_NO_CHANNEL_BINDINGS,
+         (conn->gctx == GSS_C_NO_CONTEXT) ? GSS_C_NO_BUFFER : &conn->ginbuf,
+                                   NULL,
+                                   &conn->goutbuf,
+                                   NULL,
+                                   NULL);
 
    if (conn->gctx != GSS_C_NO_CONTEXT)
    {
@@ -420,13 +423,13 @@ pg_GSS_continue(PGconn *conn)
    if (conn->goutbuf.length != 0)
    {
        /*
-        * GSS generated data to send to the server. We don't care if it's
-        * the first or subsequent packet, just send the same kind of
-        * password packet.
+        * GSS generated data to send to the server. We don't care if it's the
+        * first or subsequent packet, just send the same kind of password
+        * packet.
         */
        if (pqPacketSend(conn, 'p',
-                   conn->goutbuf.value, conn->goutbuf.length)
-               != STATUS_OK)
+                        conn->goutbuf.value, conn->goutbuf.length)
+           != STATUS_OK)
        {
            gss_release_buffer(&lmin_s, &conn->goutbuf);
            return STATUS_ERROR;
@@ -437,8 +440,8 @@ pg_GSS_continue(PGconn *conn)
    if (maj_stat != GSS_S_COMPLETE && maj_stat != GSS_S_CONTINUE_NEEDED)
    {
        pg_GSS_error(libpq_gettext("GSSAPI continuation error"),
-               conn,
-               maj_stat, min_stat);
+                    conn,
+                    maj_stat, min_stat);
        gss_release_name(&lmin_s, &conn->gtarg_nam);
        if (conn->gctx)
            gss_delete_sec_context(&lmin_s, &conn->gctx, GSS_C_NO_BUFFER);
@@ -451,54 +454,55 @@ pg_GSS_continue(PGconn *conn)
    return STATUS_OK;
 }
 
-/* 
+/*
  * Send initial GSS authentication token
  */
 static int
 pg_GSS_startup(PGconn *conn)
 {
-   OM_uint32   maj_stat, min_stat;
+   OM_uint32   maj_stat,
+               min_stat;
    int         maxlen;
-   gss_buffer_desc temp_gbuf;
+   gss_buffer_desc temp_gbuf;
 
    if (conn->gctx)
    {
        printfPQExpBuffer(&conn->errorMessage,
-               libpq_gettext("duplicate GSS authentication request\n"));
+                   libpq_gettext("duplicate GSS authentication request\n"));
        return STATUS_ERROR;
    }
 
    /*
-    * Import service principal name so the proper ticket can be
-    * acquired by the GSSAPI system.
+    * Import service principal name so the proper ticket can be acquired by
+    * the GSSAPI system.
     */
    maxlen = NI_MAXHOST + strlen(conn->krbsrvname) + 2;
-   temp_gbuf.value = (char*)malloc(maxlen);
-   snprintf(temp_gbuf.value, maxlen, "%s@%s", 
-           conn->krbsrvname, conn->pghost);
+   temp_gbuf.value = (char *) malloc(maxlen);
+   snprintf(temp_gbuf.value, maxlen, "%s@%s",
+            conn->krbsrvname, conn->pghost);
    temp_gbuf.length = strlen(temp_gbuf.value);
 
    maj_stat = gss_import_name(&min_stat, &temp_gbuf,
-           GSS_C_NT_HOSTBASED_SERVICE, &conn->gtarg_nam);
+                              GSS_C_NT_HOSTBASED_SERVICE, &conn->gtarg_nam);
    free(temp_gbuf.value);
 
    if (maj_stat != GSS_S_COMPLETE)
    {
-       pg_GSS_error(libpq_gettext("GSSAPI name import error"), 
-               conn,
-               maj_stat, min_stat);
+       pg_GSS_error(libpq_gettext("GSSAPI name import error"),
+                    conn,
+                    maj_stat, min_stat);
        return STATUS_ERROR;
    }
 
    /*
-    * Initial packet is the same as a continuation packet with
-    * no initial context.
+    * Initial packet is the same as a continuation packet with no initial
+    * context.
     */
    conn->gctx = GSS_C_NO_CONTEXT;
 
    return pg_GSS_continue(conn);
 }
-#endif /* ENABLE_GSS */
+#endif   /* ENABLE_GSS */
 
 
 #ifdef ENABLE_SSPI
@@ -509,30 +513,30 @@ pg_GSS_startup(PGconn *conn)
 static void
 pg_SSPI_error(PGconn *conn, char *mprefix, SECURITY_STATUS r)
 {
-   char sysmsg[256];
+   char        sysmsg[256];
 
    if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, r, 0,
                      sysmsg, sizeof(sysmsg), NULL) == 0)
        printfPQExpBuffer(&conn->errorMessage, "%s: sspi error %x",
-                         mprefix, (unsigned int)r);
+                         mprefix, (unsigned int) r);
    else
        printfPQExpBuffer(&conn->errorMessage, "%s: %s (%x)",
-                         mprefix, sysmsg, (unsigned int)r);
+                         mprefix, sysmsg, (unsigned int) r);
 }
 
-/* 
+/*
  * Continue SSPI authentication with next token as needed.
  */
 static int
 pg_SSPI_continue(PGconn *conn)
 {
-   SECURITY_STATUS r;
-   CtxtHandle      newContext;
-   ULONG           contextAttr;
-   SecBufferDesc   inbuf;
-   SecBufferDesc   outbuf;
-   SecBuffer       OutBuffers[1];
-   SecBuffer       InBuffers[1];
+   SECURITY_STATUS r;
+   CtxtHandle  newContext;
+   ULONG       contextAttr;
+   SecBufferDesc inbuf;
+   SecBufferDesc outbuf;
+   SecBuffer   OutBuffers[1];
+   SecBuffer   InBuffers[1];
 
    if (conn->sspictx != NULL)
    {
@@ -556,18 +560,18 @@ pg_SSPI_continue(PGconn *conn)
    outbuf.ulVersion = SECBUFFER_VERSION;
 
    r = InitializeSecurityContext(conn->sspicred,
-       conn->sspictx,
-       conn->sspitarget,
-       ISC_REQ_ALLOCATE_MEMORY,
-       0,
-       SECURITY_NETWORK_DREP,
-       (conn->sspictx == NULL)?NULL:&inbuf,
-       0,
-       &newContext,
-       &outbuf,
-       &contextAttr,
-       NULL);
-   
+                                 conn->sspictx,
+                                 conn->sspitarget,
+                                 ISC_REQ_ALLOCATE_MEMORY,
+                                 0,
+                                 SECURITY_NETWORK_DREP,
+                                 (conn->sspictx == NULL) ? NULL : &inbuf,
+                                 0,
+                                 &newContext,
+                                 &outbuf,
+                                 &contextAttr,
+                                 NULL);
+
    if (r != SEC_E_OK && r != SEC_I_CONTINUE_NEEDED)
    {
        pg_SSPI_error(conn, libpq_gettext("SSPI continuation error"), r);
@@ -589,8 +593,8 @@ pg_SSPI_continue(PGconn *conn)
    else
    {
        /*
-        * On subsequent runs when we had data to send, free buffers that contained
-        * this data.
+        * On subsequent runs when we had data to send, free buffers that
+        * contained this data.
         */
        free(conn->ginbuf.value);
        conn->ginbuf.value = NULL;
@@ -598,23 +602,24 @@ pg_SSPI_continue(PGconn *conn)
    }
 
    /*
-    * If SSPI returned any data to be sent to the server (as it normally would),
-    * send this data as a password packet.
+    * If SSPI returned any data to be sent to the server (as it normally
+    * would), send this data as a password packet.
     */
    if (outbuf.cBuffers > 0)
    {
        if (outbuf.cBuffers != 1)
        {
            /*
-            * This should never happen, at least not for Kerberos authentication. Keep check
-            * in case it shows up with other authentication methods later.
+            * This should never happen, at least not for Kerberos
+            * authentication. Keep check in case it shows up with other
+            * authentication methods later.
             */
            printfPQExpBuffer(&conn->errorMessage, "SSPI returned invalid number of output buffers\n");
            return STATUS_ERROR;
        }
 
        if (pqPacketSend(conn, 'p',
-           outbuf.pBuffers[0].pvBuffer, outbuf.pBuffers[0].cbBuffer))
+                  outbuf.pBuffers[0].pvBuffer, outbuf.pBuffers[0].cbBuffer))
        {
            FreeContextBuffer(outbuf.pBuffers[0].pvBuffer);
            return STATUS_ERROR;
@@ -626,7 +631,7 @@ pg_SSPI_continue(PGconn *conn)
    return STATUS_OK;
 }
 
-/* 
+/*
  * Send initial SSPI authentication token.
  * If use_negotiate is 0, use kerberos authentication package which is
  * compatible with Unix. If use_negotiate is 1, use the negotiate package
@@ -635,8 +640,8 @@ pg_SSPI_continue(PGconn *conn)
 static int
 pg_SSPI_startup(PGconn *conn, int use_negotiate)
 {
-   SECURITY_STATUS r;
-   TimeStamp       expire;
+   SECURITY_STATUS r;
+   TimeStamp   expire;
 
    conn->sspictx = NULL;
 
@@ -650,7 +655,7 @@ pg_SSPI_startup(PGconn *conn, int use_negotiate)
        return STATUS_ERROR;
    }
 
-   r = AcquireCredentialsHandle(NULL, use_negotiate?"negotiate":"kerberos", SECPKG_CRED_OUTBOUND, NULL, NULL, NULL, NULL, conn->sspicred, &expire);
+   r = AcquireCredentialsHandle(NULL, use_negotiate ? "negotiate" : "kerberos", SECPKG_CRED_OUTBOUND, NULL, NULL, NULL, NULL, conn->sspicred, &expire);
    if (r != SEC_E_OK)
    {
        pg_SSPI_error(conn, "acquire credentials failed", r);
@@ -660,16 +665,16 @@ pg_SSPI_startup(PGconn *conn, int use_negotiate)
    }
 
    /*
-    * Compute target principal name. SSPI has a different format from GSSAPI, but
-    * not more complex. We can skip the @REALM part, because Windows will fill that
-    * in for us automatically.
+    * Compute target principal name. SSPI has a different format from GSSAPI,
+    * but not more complex. We can skip the @REALM part, because Windows will
+    * fill that in for us automatically.
     */
    if (conn->pghost == NULL)
    {
        printfPQExpBuffer(&conn->errorMessage, libpq_gettext("host name must be specified\n"));
        return STATUS_ERROR;
    }
-   conn->sspitarget = malloc(strlen(conn->krbsrvname)+strlen(conn->pghost)+2);
+   conn->sspitarget = malloc(strlen(conn->krbsrvname) + strlen(conn->pghost) + 2);
    if (!conn->sspitarget)
    {
        printfPQExpBuffer(&conn->errorMessage, libpq_gettext("out of memory\n"));
@@ -685,7 +690,7 @@ pg_SSPI_startup(PGconn *conn, int use_negotiate)
 
    return pg_SSPI_continue(conn);
 }
-#endif /* ENABLE_SSPI */
+#endif   /* ENABLE_SSPI */
 
 /*
  * Respond to AUTH_REQ_SCM_CREDS challenge.
@@ -738,14 +743,14 @@ pg_local_sendauth(PGconn *conn)
        char        sebuf[256];
 
        printfPQExpBuffer(&conn->errorMessage,
-                "pg_local_sendauth: sendmsg: %s\n",
-                pqStrerror(errno, sebuf, sizeof(sebuf)));
+                         "pg_local_sendauth: sendmsg: %s\n",
+                         pqStrerror(errno, sebuf, sizeof(sebuf)));
        return STATUS_ERROR;
    }
    return STATUS_OK;
 #else
    printfPQExpBuffer(&conn->errorMessage,
-            libpq_gettext("SCM_CRED authentication method not supported\n"));
+           libpq_gettext("SCM_CRED authentication method not supported\n"));
    return STATUS_ERROR;
 #endif
 }
@@ -850,14 +855,17 @@ pg_fe_sendauth(AuthRequest areq, PGconn *conn)
 #if defined(ENABLE_GSS) || defined(ENABLE_SSPI)
        case AUTH_REQ_GSS:
            {
-               int r;
+               int         r;
+
                pglock_thread();
+
                /*
                 * If we have both GSS and SSPI support compiled in, use SSPI
-                * support by default. This is overridable by a connection string parameter.
-                * Note that when using SSPI we still leave the negotiate parameter off,
-                * since we want SSPI to use the GSSAPI kerberos protocol. For actual
-                * SSPI negotiate protocol, we use AUTH_REQ_SSPI.
+                * support by default. This is overridable by a connection
+                * string parameter. Note that when using SSPI we still leave
+                * the negotiate parameter off, since we want SSPI to use the
+                * GSSAPI kerberos protocol. For actual SSPI negotiate
+                * protocol, we use AUTH_REQ_SSPI.
                 */
 #if defined(ENABLE_GSS) && defined(ENABLE_SSPI)
                if (conn->gsslib && (pg_strcasecmp(conn->gsslib, "gssapi") == 0))
@@ -881,7 +889,8 @@ pg_fe_sendauth(AuthRequest areq, PGconn *conn)
 
        case AUTH_REQ_GSS_CONT:
            {
-               int r;
+               int         r;
+
                pglock_thread();
 #if defined(ENABLE_GSS) && defined(ENABLE_SSPI)
                if (conn->usesspi)
@@ -902,21 +911,21 @@ pg_fe_sendauth(AuthRequest areq, PGconn *conn)
                pgunlock_thread();
            }
            break;
-
 #else
        case AUTH_REQ_GSS:
        case AUTH_REQ_GSS_CONT:
            printfPQExpBuffer(&conn->errorMessage,
-                   libpq_gettext("GSSAPI authentication not supported\n"));
+                    libpq_gettext("GSSAPI authentication not supported\n"));
            return STATUS_ERROR;
 #endif
 
 #ifdef ENABLE_SSPI
        case AUTH_REQ_SSPI:
-           /* 
+
+           /*
             * SSPI has it's own startup message so libpq can decide which
-            * method to use. Indicate to pg_SSPI_startup that we want
-            * SSPI negotiation instead of Kerberos.
+            * method to use. Indicate to pg_SSPI_startup that we want SSPI
+            * negotiation instead of Kerberos.
             */
            pglock_thread();
            if (pg_SSPI_startup(conn, 1) != STATUS_OK)
@@ -930,7 +939,7 @@ pg_fe_sendauth(AuthRequest areq, PGconn *conn)
 #else
        case AUTH_REQ_SSPI:
            printfPQExpBuffer(&conn->errorMessage,
-                   libpq_gettext("SSPI authentication not supported\n"));
+                      libpq_gettext("SSPI authentication not supported\n"));
            return STATUS_ERROR;
 #endif
 
@@ -938,10 +947,10 @@ pg_fe_sendauth(AuthRequest areq, PGconn *conn)
        case AUTH_REQ_MD5:
        case AUTH_REQ_CRYPT:
        case AUTH_REQ_PASSWORD:
-           if (conn->pgpass == NULL || *conn->pgpass== '\0')
+           if (conn->pgpass == NULL || *conn->pgpass == '\0')
            {
                printfPQExpBuffer(&conn->errorMessage,
-                               PQnoPasswordSupplied);
+                                 PQnoPasswordSupplied);
                return STATUS_ERROR;
            }
            if (pg_password_sendauth(conn, conn->pgpass, areq) != STATUS_OK)
index b6f52539371c75382356962f21db14dcf17d5e61..a912c678f957ace8c19c473851ebc9b883e3bc41 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/interfaces/libpq/fe-auth.h,v 1.27 2007/07/23 17:52:06 mha Exp $
+ * $PostgreSQL: pgsql/src/interfaces/libpq/fe-auth.h,v 1.28 2007/11/15 21:14:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -18,7 +18,7 @@
 #include "libpq-int.h"
 
 
-extern int pg_fe_sendauth(AuthRequest areq, PGconn *conn);
+extern int pg_fe_sendauth(AuthRequest areq, PGconn *conn);
 extern char *pg_fe_getauthname(PQExpBuffer errorMessage);
 
 #endif   /* FE_AUTH_H */
index 5318cbaccf0329e6f7da49811122452c016295cf..65033b5af552b5036a8d6a91959e4fd2f50861af 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.352 2007/10/09 15:03:27 mha Exp $
+ *   $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.353 2007/11/15 21:14:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -188,7 +188,11 @@ static const PQconninfoOption PQconninfoOptions[] = {
 #endif
 
 #if defined(ENABLE_GSS) && defined(ENABLE_SSPI)
-   /* GSSAPI and SSPI both enabled, give a way to override which is used by default */
+
+   /*
+    * GSSAPI and SSPI both enabled, give a way to override which is used by
+    * default
+    */
    {"gsslib", "PGGSSLIB", NULL, NULL,
    "GSS-library", "", 7},      /* sizeof("gssapi") = 7 */
 #endif
@@ -584,36 +588,36 @@ PQsetdbLogin(const char *pghost, const char *pgport, const char *pgoptions,
    conn = makeEmptyPGconn();
    if (conn == NULL)
        return NULL;
-    /*
-     * If the dbName parameter contains '=', assume it's a conninfo
-     * string.
-     */
-    if (dbName && strchr(dbName,'='))
-    {
-        if (!connectOptions1(conn, dbName))
-            return conn;
-    }
-    else
-    {
-        /*
-         * Old-style path: first, parse an empty conninfo string in
-         * order to set up the same defaults that PQconnectdb() would use.
-         */
-        if (!connectOptions1(conn, ""))
-            return conn;
-
-        /* Insert dbName parameter value into struct */
-        if (dbName && dbName[0] != '\0')
-        {
-            if (conn->dbName)
-                free(conn->dbName);
-            conn->dbName = strdup(dbName);
-        }
-    }
-
-    /*
-     * Insert remaining parameters into struct, overriding defaults
-     * (as well as any conflicting data from dbName taken as a conninfo).
+
+   /*
+    * If the dbName parameter contains '=', assume it's a conninfo string.
+    */
+   if (dbName && strchr(dbName, '='))
+   {
+       if (!connectOptions1(conn, dbName))
+           return conn;
+   }
+   else
+   {
+       /*
+        * Old-style path: first, parse an empty conninfo string in order to
+        * set up the same defaults that PQconnectdb() would use.
+        */
+       if (!connectOptions1(conn, ""))
+           return conn;
+
+       /* Insert dbName parameter value into struct */
+       if (dbName && dbName[0] != '\0')
+       {
+           if (conn->dbName)
+               free(conn->dbName);
+           conn->dbName = strdup(dbName);
+       }
+   }
+
+   /*
+    * Insert remaining parameters into struct, overriding defaults (as well
+    * as any conflicting data from dbName taken as a conninfo).
     */
    if (pghost && pghost[0] != '\0')
    {
@@ -1507,8 +1511,8 @@ keep_going:                       /* We will come back to here until there is
                /*
                 * Try to validate message length before using it.
                 * Authentication requests can't be very large, although GSS
-                * auth requests may not be that small.  Errors can be
-                * little larger, but not huge.  If we see a large apparent
+                * auth requests may not be that small.  Errors can be a
+                * little larger, but not huge.  If we see a large apparent
                 * length in an error, it means we're really talking to a
                 * pre-3.0-protocol server; cope.
                 */
@@ -1672,16 +1676,18 @@ keep_going:                     /* We will come back to here until there is
                    }
                }
 #if defined(ENABLE_GSS) || defined(ENABLE_SSPI)
+
                /*
                 * Continue GSSAPI/SSPI authentication
                 */
                if (areq == AUTH_REQ_GSS_CONT)
                {
-                   int llen = msgLength - 4;
+                   int         llen = msgLength - 4;
+
                    /*
-                    * We can be called repeatedly for the same buffer.
-                    * Avoid re-allocating the buffer in this case - 
-                    * just re-use the old buffer.
+                    * We can be called repeatedly for the same buffer. Avoid
+                    * re-allocating the buffer in this case - just re-use the
+                    * old buffer.
                     */
                    if (llen != conn->ginbuf.length)
                    {
@@ -2017,6 +2023,7 @@ freePGconn(PGconn *conn)
 #ifdef ENABLE_GSS
    {
        OM_uint32   min_s;
+
        if (conn->gctx)
            gss_delete_sec_context(&min_s, &conn->gctx, GSS_C_NO_BUFFER);
        if (conn->gtarg_nam)
@@ -2542,7 +2549,7 @@ ldapServiceLookup(const char *purl, PQconninfoOption *options,
    if (pg_strncasecmp(url, LDAP_URL, strlen(LDAP_URL)) != 0)
    {
        printfPQExpBuffer(errorMessage,
-       libpq_gettext("invalid LDAP URL \"%s\": scheme must be ldap://\n"), purl);
+                         libpq_gettext("invalid LDAP URL \"%s\": scheme must be ldap://\n"), purl);
        free(url);
        return 3;
    }
@@ -2557,7 +2564,7 @@ ldapServiceLookup(const char *purl, PQconninfoOption *options,
    if (p == NULL || *(p + 1) == '\0' || *(p + 1) == '?')
    {
        printfPQExpBuffer(errorMessage, libpq_gettext(
-                "invalid LDAP URL \"%s\": missing distinguished name\n"), purl);
+            "invalid LDAP URL \"%s\": missing distinguished name\n"), purl);
        free(url);
        return 3;
    }
@@ -2568,7 +2575,7 @@ ldapServiceLookup(const char *purl, PQconninfoOption *options,
    if ((p = strchr(dn, '?')) == NULL || *(p + 1) == '\0' || *(p + 1) == '?')
    {
        printfPQExpBuffer(errorMessage, libpq_gettext(
-           "invalid LDAP URL \"%s\": must have exactly one attribute\n"), purl);
+       "invalid LDAP URL \"%s\": must have exactly one attribute\n"), purl);
        free(url);
        return 3;
    }
@@ -2589,7 +2596,7 @@ ldapServiceLookup(const char *purl, PQconninfoOption *options,
    if ((p = strchr(scopestr, '?')) == NULL || *(p + 1) == '\0' || *(p + 1) == '?')
    {
        printfPQExpBuffer(errorMessage,
-                   libpq_gettext("invalid LDAP URL \"%s\": no filter\n"), purl);
+               libpq_gettext("invalid LDAP URL \"%s\": no filter\n"), purl);
        free(url);
        return 3;
    }
@@ -2610,7 +2617,7 @@ ldapServiceLookup(const char *purl, PQconninfoOption *options,
        if (*portstr == '\0' || *endptr != '\0' || errno || lport < 0 || lport > 65535)
        {
            printfPQExpBuffer(errorMessage, libpq_gettext(
-                       "invalid LDAP URL \"%s\": invalid port number\n"), purl);
+                   "invalid LDAP URL \"%s\": invalid port number\n"), purl);
            free(url);
            return 3;
        }
@@ -2621,7 +2628,7 @@ ldapServiceLookup(const char *purl, PQconninfoOption *options,
    if (strchr(attrs[0], ',') != NULL)
    {
        printfPQExpBuffer(errorMessage, libpq_gettext(
-           "invalid LDAP URL \"%s\": must have exactly one attribute\n"), purl);
+       "invalid LDAP URL \"%s\": must have exactly one attribute\n"), purl);
        free(url);
        return 3;
    }
@@ -3735,7 +3742,11 @@ PasswordFromFile(char *hostname, char *port, char *dbname, char *username)
        return NULL;
    }
 #else
-   /* On Win32, the directory is protected, so we don't have to check the file. */
+
+   /*
+    * On Win32, the directory is protected, so we don't have to check the
+    * file.
+    */
 #endif
 
    fp = fopen(pgpassfile, "r");
index 5bd8315193a1b25bc9de5cf7a9c0d1cd26f69b3c..6bb748d62671016d7ec5f2e9aafa6a1e8a507d59 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/interfaces/libpq/fe-lobj.c,v 1.62 2007/03/03 19:52:46 momjian Exp $
+ *   $PostgreSQL: pgsql/src/interfaces/libpq/fe-lobj.c,v 1.63 2007/11/15 21:14:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -124,7 +124,7 @@ lo_close(PGconn *conn, int fd)
 
 /*
  * lo_truncate
- *    truncates an existing large object to the given size
+ *   truncates an existing large object to the given size
  *
  * returns 0 upon success
  * returns -1 upon failure
@@ -147,14 +147,14 @@ lo_truncate(PGconn *conn, int fd, size_t len)
    if (conn->lobjfuncs->fn_lo_truncate == 0)
    {
        printfPQExpBuffer(&conn->errorMessage,
-             libpq_gettext("cannot determine OID of function lo_truncate\n"));
+           libpq_gettext("cannot determine OID of function lo_truncate\n"));
        return -1;
    }
 
    argv[0].isint = 1;
    argv[0].len = 4;
    argv[0].u.integer = fd;
-   
+
    argv[1].isint = 1;
    argv[1].len = 4;
    argv[1].u.integer = len;
index 4e4a2cd4ac54fc68e4ce94dbdf02205693ac906d..a60f018ae83af5e5dd6cfa7cf4acc0b73a5ed3fa 100644 (file)
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/interfaces/libpq/fe-secure.c,v 1.99 2007/10/03 15:12:45 tgl Exp $
+ *   $PostgreSQL: pgsql/src/interfaces/libpq/fe-secure.c,v 1.100 2007/11/15 21:14:46 momjian Exp $
  *
  * NOTES
  *   [ Most of these notes are wrong/obsolete, but perhaps not all ]
 #include <openssl/ssl.h>
 #include <openssl/bio.h>
 #if (SSLEAY_VERSION_NUMBER >= 0x00907000L)
-#include <openssl/conf.h> 
+#include <openssl/conf.h>
 #endif
 #if (SSLEAY_VERSION_NUMBER >= 0x00907000L) && !defined(OPENSSL_NO_ENGINE)
 #include <openssl/engine.h>
@@ -588,11 +588,11 @@ client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
 
 #ifndef WIN32
    struct stat buf2;
-   FILE        *fp;
+   FILE       *fp;
 #endif
    char        fnbuf[MAXPGPATH];
-   BIO         *bio;
-   PGconn      *conn = (PGconn *) SSL_get_app_data(ssl);
+   BIO        *bio;
+   PGconn     *conn = (PGconn *) SSL_get_app_data(ssl);
    char        sebuf[256];
 
    if (!pqGetHomeDirectory(homedir, sizeof(homedir)))
@@ -605,20 +605,20 @@ client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
    /* read the user certificate */
    snprintf(fnbuf, sizeof(fnbuf), "%s/%s", homedir, USER_CERT_FILE);
 
-   /* 
-    * OpenSSL <= 0.9.8 lacks error stack handling, which means it's likely
-    * to report wrong error messages if access to the cert file fails.
-    * Do our own check for the readability of the file to catch the
-    * majority of such problems before OpenSSL gets involved.
+   /*
+    * OpenSSL <= 0.9.8 lacks error stack handling, which means it's likely to
+    * report wrong error messages if access to the cert file fails. Do our
+    * own check for the readability of the file to catch the majority of such
+    * problems before OpenSSL gets involved.
     */
 #ifndef HAVE_ERR_SET_MARK
    {
-       FILE        *fp2;
+       FILE       *fp2;
 
        if ((fp2 = fopen(fnbuf, "r")) == NULL)
        {
            printfPQExpBuffer(&conn->errorMessage,
-                             libpq_gettext("could not open certificate file \"%s\": %s\n"),
+              libpq_gettext("could not open certificate file \"%s\": %s\n"),
                              fnbuf, pqStrerror(errno, sebuf, sizeof(sebuf)));
            return 0;
        }
@@ -628,7 +628,7 @@ client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
 
    /* save OpenSSL error stack */
    ERR_set_mark();
-   
+
    if ((bio = BIO_new_file(fnbuf, "r")) == NULL)
    {
        printfPQExpBuffer(&conn->errorMessage,
@@ -657,15 +657,15 @@ client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
    if (getenv("PGSSLKEY"))
    {
        /* read the user key from engine */
-       char    *engine_env = getenv("PGSSLKEY");
-       char    *engine_colon = strchr(engine_env, ':');
-       char    *engine_str;
-       ENGINE  *engine_ptr;
+       char       *engine_env = getenv("PGSSLKEY");
+       char       *engine_colon = strchr(engine_env, ':');
+       char       *engine_str;
+       ENGINE     *engine_ptr;
 
        if (!engine_colon)
        {
            printfPQExpBuffer(&conn->errorMessage,
-               libpq_gettext("invalid value of PGSSLKEY environment variable\n"));
+                             libpq_gettext("invalid value of PGSSLKEY environment variable\n"));
            ERR_pop_to_mark();
            return 0;
        }
@@ -675,10 +675,10 @@ client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
        engine_ptr = ENGINE_by_id(engine_str);
        if (engine_ptr == NULL)
        {
-           char      *err = SSLerrmessage();
+           char       *err = SSLerrmessage();
 
            printfPQExpBuffer(&conn->errorMessage,
-               libpq_gettext("could not load SSL engine \"%s\": %s\n"),
+                    libpq_gettext("could not load SSL engine \"%s\": %s\n"),
                              engine_str, err);
            SSLerrfree(err);
            free(engine_str);
@@ -690,10 +690,10 @@ client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
                                        NULL, NULL);
        if (*pkey == NULL)
        {
-           char      *err = SSLerrmessage();
+           char       *err = SSLerrmessage();
 
            printfPQExpBuffer(&conn->errorMessage,
-               libpq_gettext("could not read private SSL key \"%s\" from engine \"%s\": %s\n"),
+                             libpq_gettext("could not read private SSL key \"%s\" from engine \"%s\": %s\n"),
                              engine_colon + 1, engine_str, err);
            SSLerrfree(err);
            free(engine_str);
@@ -703,15 +703,15 @@ client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
        free(engine_str);
    }
    else
-#endif /* use PGSSLKEY */
+#endif   /* use PGSSLKEY */
    {
        /* read the user key from file */
        snprintf(fnbuf, sizeof(fnbuf), "%s/%s", homedir, USER_KEY_FILE);
        if (stat(fnbuf, &buf) == -1)
        {
            printfPQExpBuffer(&conn->errorMessage,
-                           libpq_gettext("certificate present, but not private key file \"%s\"\n"),
-                           fnbuf);
+                             libpq_gettext("certificate present, but not private key file \"%s\"\n"),
+                             fnbuf);
            ERR_pop_to_mark();
            return 0;
        }
@@ -720,8 +720,8 @@ client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
            buf.st_uid != geteuid())
        {
            printfPQExpBuffer(&conn->errorMessage,
-               libpq_gettext("private key file \"%s\" has wrong permissions\n"),
-                           fnbuf);
+           libpq_gettext("private key file \"%s\" has wrong permissions\n"),
+                             fnbuf);
            ERR_pop_to_mark();
            return 0;
        }
@@ -730,8 +730,8 @@ client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
        if ((bio = BIO_new_file(fnbuf, "r")) == NULL)
        {
            printfPQExpBuffer(&conn->errorMessage,
-               libpq_gettext("could not open private key file \"%s\": %s\n"),
-                           fnbuf, pqStrerror(errno, sebuf, sizeof(sebuf)));
+              libpq_gettext("could not open private key file \"%s\": %s\n"),
+                             fnbuf, pqStrerror(errno, sebuf, sizeof(sebuf)));
            ERR_pop_to_mark();
            return 0;
        }
@@ -741,7 +741,7 @@ client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
            buf.st_dev != buf2.st_dev || buf.st_ino != buf2.st_ino)
        {
            printfPQExpBuffer(&conn->errorMessage,
-                           libpq_gettext("private key file \"%s\" changed during execution\n"), fnbuf);
+                             libpq_gettext("private key file \"%s\" changed during execution\n"), fnbuf);
            ERR_pop_to_mark();
            return 0;
        }
@@ -752,8 +752,8 @@ client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
            char       *err = SSLerrmessage();
 
            printfPQExpBuffer(&conn->errorMessage,
-               libpq_gettext("could not read private key file \"%s\": %s\n"),
-                           fnbuf, err);
+              libpq_gettext("could not read private key file \"%s\": %s\n"),
+                             fnbuf, err);
            SSLerrfree(err);
 
            BIO_free(bio);
@@ -852,7 +852,7 @@ init_ssl_system(PGconn *conn)
        {
 #if SSLEAY_VERSION_NUMBER >= 0x00907000L
            OPENSSL_config(NULL);
-#endif         
+#endif
            SSL_library_init();
            SSL_load_error_strings();
        }
index 08a6bd1bb53053efb648b1415393ffb8461f319d..5a9709b073e93bfd9f6d94a7c0a61f3d4b2e4c5a 100644 (file)
@@ -12,7 +12,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/interfaces/libpq/libpq-int.h,v 1.126 2007/07/23 18:59:50 tgl Exp $
+ * $PostgreSQL: pgsql/src/interfaces/libpq/libpq-int.h,v 1.127 2007/11/15 21:14:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 /*
  * Define a fake structure compatible with GSSAPI on Unix.
  */
-typedef struct {
-   void *value;
-   int length;
-} gss_buffer_desc;
+typedef struct
+{
+   void       *value;
+   int         length;
+}  gss_buffer_desc;
 #endif
-#endif /* ENABLE_SSPI */
+#endif   /* ENABLE_SSPI */
 
 #ifdef USE_SSL
 #include <openssl/ssl.h>
@@ -262,7 +263,7 @@ typedef struct pgLobjfuncs
    Oid         fn_lo_unlink;   /* OID of backend function lo_unlink    */
    Oid         fn_lo_lseek;    /* OID of backend function lo_lseek     */
    Oid         fn_lo_tell;     /* OID of backend function lo_tell      */
-   Oid         fn_lo_truncate; /* OID of backend function lo_truncate  */
+   Oid         fn_lo_truncate; /* OID of backend function lo_truncate  */
    Oid         fn_lo_read;     /* OID of backend function LOread       */
    Oid         fn_lo_write;    /* OID of backend function LOwrite      */
 } PGlobjfuncs;
@@ -322,7 +323,7 @@ struct pg_conn
    SockAddr    raddr;          /* Remote address */
    ProtocolVersion pversion;   /* FE/BE protocol version in use */
    int         sversion;       /* server version, e.g. 70401 for 7.4.1 */
-   AuthRequest areq;           /* auth type demanded by server */
+   AuthRequest areq;           /* auth type demanded by server */
 
    /* Transient state needed while establishing connection */
    struct addrinfo *addrlist;  /* list of possible backend addresses */
@@ -374,22 +375,24 @@ struct pg_conn
 #endif
 
 #ifdef ENABLE_GSS
-   gss_ctx_id_t    gctx;       /* GSS context */
-   gss_name_t      gtarg_nam;  /* GSS target name */
-   gss_buffer_desc ginbuf;     /* GSS input token */
-   gss_buffer_desc goutbuf;    /* GSS output token */
+   gss_ctx_id_t gctx;          /* GSS context */
+   gss_name_t  gtarg_nam;      /* GSS target name */
+   gss_buffer_desc ginbuf;     /* GSS input token */
+   gss_buffer_desc goutbuf;    /* GSS output token */
 #endif
 
 #ifdef ENABLE_SSPI
 #ifndef ENABLE_GSS
-   gss_buffer_desc ginbuf;     /* GSS input token */
+   gss_buffer_desc ginbuf;     /* GSS input token */
 #else
-   char            *gsslib;    /* What GSS librart to use ("gssapi" or "sspi") */
+   char       *gsslib;         /* What GSS librart to use ("gssapi" or
+                                * "sspi") */
 #endif
-   CredHandle      *sspicred;  /* SSPI credentials handle */
-   CtxtHandle      *sspictx;   /* SSPI context */
-   char            *sspitarget;/* SSPI target name */
-   int             usesspi;    /* Indicate if SSPI is in use on the connection */
+   CredHandle *sspicred;       /* SSPI credentials handle */
+   CtxtHandle *sspictx;        /* SSPI context */
+   char       *sspitarget;     /* SSPI target name */
+   int         usesspi;        /* Indicate if SSPI is in use on the
+                                * connection */
 #endif
 
 
index b3df4dbc061f830a1f5647c777f20105191727f7..63996f31e543b8f5dc9b4a8b1e424dbcb5ba87bb 100644 (file)
@@ -1,7 +1,7 @@
 /**********************************************************************
  * plperl.c - perl as a procedural language for PostgreSQL
  *
- *   $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.130 2007/10/05 17:06:11 tgl Exp $
+ *   $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.131 2007/11/15 21:14:46 momjian Exp $
  *
  **********************************************************************/
 
@@ -60,9 +60,10 @@ typedef struct plperl_proc_desc
 
 typedef struct plperl_proc_entry
 {
-   char proc_name[NAMEDATALEN]; /* internal name, eg __PLPerl_proc_39987 */
+   char        proc_name[NAMEDATALEN]; /* internal name, eg
+                                        * __PLPerl_proc_39987 */
    plperl_proc_desc *proc_data;
-} plperl_proc_entry;
+}  plperl_proc_entry;
 
 /*
  * The information we cache for the duration of a single call to a
@@ -91,13 +92,13 @@ typedef struct plperl_query_desc
    Oid        *argtypioparams;
 } plperl_query_desc;
 
-/* hash table entry for query desc  */
+/* hash table entry for query desc */
 
 typedef struct plperl_query_entry
 {
-   char query_name[NAMEDATALEN];
+   char        query_name[NAMEDATALEN];
    plperl_query_desc *query_data;
-} plperl_query_entry;
+}  plperl_query_entry;
 
 /**********************************************************************
  * Global data
@@ -110,7 +111,7 @@ typedef enum
    INTERP_TRUSTED,
    INTERP_UNTRUSTED,
    INTERP_BOTH
-} InterpState;
+}  InterpState;
 
 static InterpState interp_state = INTERP_NONE;
 static bool can_run_two = false;
@@ -120,8 +121,8 @@ static PerlInterpreter *plperl_trusted_interp = NULL;
 static PerlInterpreter *plperl_untrusted_interp = NULL;
 static PerlInterpreter *plperl_held_interp = NULL;
 static bool trusted_context;
-static HTAB  *plperl_proc_hash = NULL;
-static HTAB  *plperl_query_hash = NULL;
+static HTAB *plperl_proc_hash = NULL;
+static HTAB *plperl_query_hash = NULL;
 
 static bool plperl_use_strict = false;
 
@@ -177,7 +178,7 @@ _PG_init(void)
 {
    /* Be sure we do initialization only once (should be redundant now) */
    static bool inited = false;
-    HASHCTL     hash_ctl;
+   HASHCTL     hash_ctl;
 
    if (inited)
        return;
@@ -287,8 +288,8 @@ _PG_init(void)
 
 #define TEST_FOR_MULTI \
    "use Config; " \
-   "$Config{usemultiplicity} eq 'define' or "  \
-    "($Config{usethreads} eq 'define' " \
+   "$Config{usemultiplicity} eq 'define' or "  \
+   "($Config{usethreads} eq 'define' " \
    " and $Config{useithreads} eq 'define')"
 
 
@@ -356,7 +357,7 @@ check_interp(bool trusted)
 
 
 static void
-restore_context (bool old_context)
+restore_context(bool old_context)
 {
    if (trusted_context != old_context)
    {
@@ -429,9 +430,9 @@ plperl_init_interp(void)
 
    if (interp_state == INTERP_NONE)
    {
-       SV *res;
+       SV         *res;
 
-       res = eval_pv(TEST_FOR_MULTI,TRUE);
+       res = eval_pv(TEST_FOR_MULTI, TRUE);
        can_run_two = SvIV(res);
        interp_state = INTERP_HELD;
    }
@@ -1152,7 +1153,7 @@ plperl_func_handler(PG_FUNCTION_ARGS)
    Datum       retval;
    ReturnSetInfo *rsi;
    SV         *array_ret = NULL;
-   bool       oldcontext = trusted_context;
+   bool        oldcontext = trusted_context;
 
    /*
     * Create the call_data beforing connecting to SPI, so that it is not
@@ -1307,7 +1308,7 @@ plperl_trigger_handler(PG_FUNCTION_ARGS)
    Datum       retval;
    SV         *svTD;
    HV         *hvTD;
-   bool       oldcontext = trusted_context;
+   bool        oldcontext = trusted_context;
 
    /*
     * Create the call_data beforing connecting to SPI, so that it is not
@@ -1410,8 +1411,8 @@ compile_plperl_function(Oid fn_oid, bool is_trigger)
    plperl_proc_desc *prodesc = NULL;
    int         i;
    plperl_proc_entry *hash_entry;
-   bool found;
-   bool oldcontext = trusted_context;
+   bool        found;
+   bool        oldcontext = trusted_context;
 
    /* We'll need the pg_proc tuple in any case... */
    procTup = SearchSysCache(PROCOID,
@@ -1447,7 +1448,7 @@ compile_plperl_function(Oid fn_oid, bool is_trigger)
         * function's pg_proc entry without changing its OID.
         ************************************************************/
        uptodate = (prodesc->fn_xmin == HeapTupleHeaderGetXmin(procTup->t_data) &&
-               ItemPointerEquals(&prodesc->fn_tid, &procTup->t_self));
+                   ItemPointerEquals(&prodesc->fn_tid, &procTup->t_self));
 
        if (!uptodate)
        {
@@ -1558,7 +1559,7 @@ compile_plperl_function(Oid fn_oid, bool is_trigger)
            prodesc->result_oid = procStruct->prorettype;
            prodesc->fn_retisset = procStruct->proretset;
            prodesc->fn_retistuple = (procStruct->prorettype == RECORDOID ||
-                                     typeStruct->typtype == TYPTYPE_COMPOSITE);
+                                  typeStruct->typtype == TYPTYPE_COMPOSITE);
 
            prodesc->fn_retisarray =
                (typeStruct->typlen == -1 && typeStruct->typelem);
@@ -2109,7 +2110,7 @@ plperl_spi_prepare(char *query, int argc, SV **argv)
 {
    plperl_query_desc *qdesc;
    plperl_query_entry *hash_entry;
-   bool        found;
+   bool        found;
    void       *plan;
    int         i;
 
@@ -2139,8 +2140,10 @@ plperl_spi_prepare(char *query, int argc, SV **argv)
         ************************************************************/
        for (i = 0; i < argc; i++)
        {
-           Oid         typId, typInput, typIOParam;
-            int32       typmod;
+           Oid         typId,
+                       typInput,
+                       typIOParam;
+           int32       typmod;
 
            parseTypeString(SvPV(argv[i], PL_na), &typId, &typmod);
 
@@ -2223,7 +2226,7 @@ plperl_spi_prepare(char *query, int argc, SV **argv)
     ************************************************************/
 
    hash_entry = hash_search(plperl_query_hash, qdesc->qname,
-                            HASH_ENTER,&found);
+                            HASH_ENTER, &found);
    hash_entry->query_data = qdesc;
 
    return newSVstring(qdesc->qname);
@@ -2260,7 +2263,7 @@ plperl_spi_exec_prepared(char *query, HV *attr, int argc, SV **argv)
         ************************************************************/
 
        hash_entry = hash_search(plperl_query_hash, query,
-                                        HASH_FIND,NULL);
+                                HASH_FIND, NULL);
        if (hash_entry == NULL)
            elog(ERROR, "spi_exec_prepared: Invalid prepared query passed");
 
@@ -2401,7 +2404,7 @@ plperl_spi_query_prepared(char *query, int argc, SV **argv)
         * Fetch the saved plan descriptor, see if it's o.k.
         ************************************************************/
        hash_entry = hash_search(plperl_query_hash, query,
-                                        HASH_FIND,NULL);
+                                HASH_FIND, NULL);
        if (hash_entry == NULL)
            elog(ERROR, "spi_exec_prepared: Invalid prepared query passed");
 
@@ -2515,7 +2518,7 @@ plperl_spi_freeplan(char *query)
    plperl_query_entry *hash_entry;
 
    hash_entry = hash_search(plperl_query_hash, query,
-                                        HASH_FIND,NULL);
+                            HASH_FIND, NULL);
    if (hash_entry == NULL)
        elog(ERROR, "spi_exec_prepared: Invalid prepared query passed");
 
@@ -2544,7 +2547,7 @@ plperl_spi_freeplan(char *query)
  * Create a new SV from a string assumed to be in the current database's
  * encoding.
  */
-static SV *
+static SV  *
 newSVstring(const char *str)
 {
    SV         *sv;
@@ -2564,13 +2567,13 @@ newSVstring(const char *str)
 static SV **
 hv_store_string(HV *hv, const char *key, SV *val)
 {
-   int32   klen = strlen(key);
+   int32       klen = strlen(key);
 
    /*
-    * This seems nowhere documented, but under Perl 5.8.0 and up,
-    * hv_store() recognizes a negative klen parameter as meaning
-    * a UTF-8 encoded key.  It does not appear that hashes track
-    * UTF-8-ness of keys at all in Perl 5.6.
+    * This seems nowhere documented, but under Perl 5.8.0 and up, hv_store()
+    * recognizes a negative klen parameter as meaning a UTF-8 encoded key.
+    * It does not appear that hashes track UTF-8-ness of keys at all in Perl
+    * 5.6.
     */
 #if PERL_BCDVERSION >= 0x5008000L
    if (GetDatabaseEncoding() == PG_UTF8)
@@ -2586,7 +2589,7 @@ hv_store_string(HV *hv, const char *key, SV *val)
 static SV **
 hv_fetch_string(HV *hv, const char *key)
 {
-   int32   klen = strlen(key);
+   int32       klen = strlen(key);
 
    /* See notes in hv_store_string */
 #if PERL_BCDVERSION >= 0x5008000L
index 7799cf7c65675c3a90e0eda67d72a0f440ae44c7..edb423e5215b55db3ab5f2f7a7d3b7e03597eb04 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.118 2007/11/11 19:22:49 tgl Exp $
+ *   $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.119 2007/11/15 21:14:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -174,6 +174,7 @@ recheck:
             * storage (if not done already).
             */
            delete_function(function);
+
            /*
             * If the function isn't in active use then we can overwrite the
             * func struct with new data, allowing any other existing fn_extra
@@ -185,8 +186,8 @@ recheck:
             * what a corner case this is.)
             *
             * If we found the function struct via fn_extra then it's possible
-            * a replacement has already been made, so go back and recheck
-            * the hashtable.
+            * a replacement has already been made, so go back and recheck the
+            * hashtable.
             */
            if (function->use_count != 0)
            {
@@ -482,7 +483,7 @@ do_compile(FunctionCallInfo fcinfo,
                {
                    if (rettypeid == ANYARRAYOID)
                        rettypeid = INT4ARRAYOID;
-                   else        /* ANYELEMENT or ANYNONARRAY */
+                   else    /* ANYELEMENT or ANYNONARRAY */
                        rettypeid = INT4OID;
                    /* XXX what could we use for ANYENUM? */
                }
@@ -1890,7 +1891,7 @@ plpgsql_adddatum(PLpgSQL_datum *new)
  * last call.
  *
  * This is used around a DECLARE section to create a list of the VARs
- * that have to be initialized at block entry.  Note that VARs can also
+ * that have to be initialized at block entry. Note that VARs can also
  * be created elsewhere than DECLARE, eg by a FOR-loop, but it is then
  * the responsibility of special-purpose code to initialize them.
  * ----------
@@ -2021,7 +2022,7 @@ plpgsql_resolve_polymorphic_argtypes(int numargs,
            {
                case ANYELEMENTOID:
                case ANYNONARRAYOID:
-               case ANYENUMOID:                /* XXX dubious */
+               case ANYENUMOID:        /* XXX dubious */
                    argtypes[i] = INT4OID;
                    break;
                case ANYARRAYOID:
@@ -2038,7 +2039,7 @@ plpgsql_resolve_polymorphic_argtypes(int numargs,
  * delete_function - clean up as much as possible of a stale function cache
  *
  * We can't release the PLpgSQL_function struct itself, because of the
- * possibility that there are fn_extra pointers to it.  We can release
+ * possibility that there are fn_extra pointers to it. We can release
  * the subsidiary storage, but only if there are no active evaluations
  * in progress.  Otherwise we'll just leak that storage.  Since the
  * case would only occur if a pg_proc update is detected during a nested
index dd415047f3ee523f6eb24449330820640ddbf01e..d06fe494f15248ce48f341b566040a5d579f6e2a 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.199 2007/07/25 04:19:08 neilc Exp $
+ *   $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.200 2007/11/15 21:14:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -43,24 +43,24 @@ static const char *const raise_skip_msg = "RAISE";
  * creates its own "eval_econtext" ExprContext within this estate for
  * per-evaluation workspace.  eval_econtext is freed at normal function exit,
  * and the EState is freed at transaction end (in case of error, we assume
- * that the abort mechanisms clean it all up).  In order to be sure
+ * that the abort mechanisms clean it all up). In order to be sure
  * ExprContext callbacks are handled properly, each subtransaction has to have
- * its own such EState; hence we need a stack.  We use a simple counter to
+ * its own such EState; hence we need a stack. We use a simple counter to
  * distinguish different instantiations of the EState, so that we can tell
  * whether we have a current copy of a prepared expression.
  *
  * This arrangement is a bit tedious to maintain, but it's worth the trouble
  * so that we don't have to re-prepare simple expressions on each trip through
- * a function.  (We assume the case to optimize is many repetitions of a
+ * a function. (We assume the case to optimize is many repetitions of a
  * function within a transaction.)
  */
 typedef struct SimpleEstateStackEntry
 {
-   EState *xact_eval_estate;               /* EState for current xact level */
-   long int    xact_estate_simple_id;      /* ID for xact_eval_estate */
-   SubTransactionId xact_subxid;           /* ID for current subxact */
-   struct SimpleEstateStackEntry *next;    /* next stack entry up */
-} SimpleEstateStackEntry;
+   EState     *xact_eval_estate;       /* EState for current xact level */
+   long int    xact_estate_simple_id;  /* ID for xact_eval_estate */
+   SubTransactionId xact_subxid;       /* ID for current subxact */
+   struct SimpleEstateStackEntry *next;        /* next stack entry up */
+}  SimpleEstateStackEntry;
 
 static SimpleEstateStackEntry *simple_estate_stack = NULL;
 static long int simple_estate_id_counter = 0;
@@ -106,7 +106,7 @@ static int exec_stmt_return(PLpgSQL_execstate *estate,
 static int exec_stmt_return_next(PLpgSQL_execstate *estate,
                      PLpgSQL_stmt_return_next *stmt);
 static int exec_stmt_return_query(PLpgSQL_execstate *estate,
-                     PLpgSQL_stmt_return_query *stmt);
+                      PLpgSQL_stmt_return_query * stmt);
 static int exec_stmt_raise(PLpgSQL_execstate *estate,
                PLpgSQL_stmt_raise *stmt);
 static int exec_stmt_execsql(PLpgSQL_execstate *estate,
@@ -732,15 +732,15 @@ plpgsql_exec_error_callback(void *arg)
         * message dictionary.
         *
         * If both err_text and err_stmt are set, use the err_text as
-        * description, but report the err_stmt's line number.  When
-        * err_stmt is not set, we're in function entry/exit, or some such
-        * place not attached to a specific line number.
+        * description, but report the err_stmt's line number.  When err_stmt
+        * is not set, we're in function entry/exit, or some such place not
+        * attached to a specific line number.
         */
        if (estate->err_stmt != NULL)
        {
            /*
-            * translator: last %s is a phrase such as "during statement
-            * block local variable initialization"
+            * translator: last %s is a phrase such as "during statement block
+            * local variable initialization"
             */
            errcontext("PL/pgSQL function \"%s\" line %d %s",
                       estate->err_func->fn_name,
@@ -899,15 +899,15 @@ exec_stmt_block(PLpgSQL_execstate *estate, PLpgSQL_stmt_block *block)
                    {
                        /*
                         * If needed, give the datatype a chance to reject
-                        * NULLs, by assigning a NULL to the variable.
-                        * We claim the value is of type UNKNOWN, not the
-                        * var's datatype, else coercion will be skipped.
-                        * (Do this before the notnull check to be
-                        * consistent with exec_assign_value.)
+                        * NULLs, by assigning a NULL to the variable. We
+                        * claim the value is of type UNKNOWN, not the var's
+                        * datatype, else coercion will be skipped. (Do this
+                        * before the notnull check to be consistent with
+                        * exec_assign_value.)
                         */
                        if (!var->datatype->typinput.fn_strict)
                        {
-                           bool    valIsNull = true;
+                           bool        valIsNull = true;
 
                            exec_assign_value(estate,
                                              (PLpgSQL_datum *) var,
@@ -991,9 +991,9 @@ exec_stmt_block(PLpgSQL_execstate *estate, PLpgSQL_stmt_block *block)
 
            /*
             * If the block ended with RETURN, we may need to copy the return
-            * value out of the subtransaction eval_context.  This is currently
-            * only needed for scalar result types --- rowtype values will
-            * always exist in the function's own memory context.
+            * value out of the subtransaction eval_context.  This is
+            * currently only needed for scalar result types --- rowtype
+            * values will always exist in the function's own memory context.
             */
            if (rc == PLPGSQL_RC_RETURN &&
                !estate->retisset &&
@@ -1590,7 +1590,7 @@ exec_stmt_fori(PLpgSQL_execstate *estate, PLpgSQL_stmt_fori *stmt)
        if (step_value <= 0)
            ereport(ERROR,
                    (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                    errmsg("BY value of FOR loop must be greater than zero")));
+                 errmsg("BY value of FOR loop must be greater than zero")));
    }
    else
        step_value = 1;
@@ -2151,9 +2151,9 @@ exec_stmt_return_next(PLpgSQL_execstate *estate,
  */
 static int
 exec_stmt_return_query(PLpgSQL_execstate *estate,
-                      PLpgSQL_stmt_return_query *stmt)
+                      PLpgSQL_stmt_return_query * stmt)
 {
-   Portal      portal;
+   Portal      portal;
 
    if (!estate->retisset)
        ereport(ERROR,
@@ -2168,12 +2168,12 @@ exec_stmt_return_query(PLpgSQL_execstate *estate,
    if (!compatible_tupdesc(estate->rettupdesc, portal->tupDesc))
        ereport(ERROR,
                (errcode(ERRCODE_DATATYPE_MISMATCH),
-                errmsg("structure of query does not match function result type")));
+         errmsg("structure of query does not match function result type")));
 
    while (true)
    {
-       MemoryContext   old_cxt;
-       int             i;
+       MemoryContext old_cxt;
+       int         i;
 
        SPI_cursor_fetch(portal, true, 50);
        if (SPI_processed == 0)
@@ -2182,7 +2182,8 @@ exec_stmt_return_query(PLpgSQL_execstate *estate,
        old_cxt = MemoryContextSwitchTo(estate->tuple_store_cxt);
        for (i = 0; i < SPI_processed; i++)
        {
-           HeapTuple tuple = SPI_tuptable->vals[i];
+           HeapTuple   tuple = SPI_tuptable->vals[i];
+
            tuplestore_puttuple(estate->tuple_store, tuple);
        }
        MemoryContextSwitchTo(old_cxt);
@@ -3198,7 +3199,7 @@ exec_stmt_open(PLpgSQL_execstate *estate, PLpgSQL_stmt_open *stmt)
 
 /* ----------
  * exec_stmt_fetch         Fetch from a cursor into a target, or just
- *                          move the current position of the cursor
+ *                         move the current position of the cursor
  * ----------
  */
 static int
@@ -3234,7 +3235,7 @@ exec_stmt_fetch(PLpgSQL_execstate *estate, PLpgSQL_stmt_fetch *stmt)
    /* Calculate position for FETCH_RELATIVE or FETCH_ABSOLUTE */
    if (stmt->expr)
    {
-       bool isnull;
+       bool        isnull;
 
        /* XXX should be doing this in LONG not INT width */
        how_many = exec_eval_integer(estate, stmt->expr, &isnull);
@@ -4153,11 +4154,10 @@ exec_eval_simple_expr(PLpgSQL_execstate *estate,
        return false;
 
    /*
-    * Revalidate cached plan, so that we will notice if it became stale.
-    * (We also need to hold a refcount while using the plan.)  Note that
-    * even if replanning occurs, the length of plancache_list can't change,
-    * since it is a property of the raw parsetree generated from the query
-    * text.
+    * Revalidate cached plan, so that we will notice if it became stale. (We
+    * also need to hold a refcount while using the plan.)  Note that even if
+    * replanning occurs, the length of plancache_list can't change, since it
+    * is a property of the raw parsetree generated from the query text.
     */
    Assert(list_length(expr->plan->plancache_list) == 1);
    plansource = (CachedPlanSource *) linitial(expr->plan->plancache_list);
@@ -4350,13 +4350,13 @@ exec_move_row(PLpgSQL_execstate *estate,
     * Row is a bit more complicated in that we assign the individual
     * attributes of the tuple to the variables the row points to.
     *
-    * NOTE: this code used to demand row->nfields == HeapTupleHeaderGetNatts(tup->t_data,
-    * but that's wrong.  The tuple might have more fields than we expected if
-    * it's from an inheritance-child table of the current table, or it might
-    * have fewer if the table has had columns added by ALTER TABLE. Ignore
-    * extra columns and assume NULL for missing columns, the same as
-    * heap_getattr would do.  We also have to skip over dropped columns in
-    * either the source or destination.
+    * NOTE: this code used to demand row->nfields ==
+    * HeapTupleHeaderGetNatts(tup->t_data, but that's wrong.  The tuple might
+    * have more fields than we expected if it's from an inheritance-child
+    * table of the current table, or it might have fewer if the table has had
+    * columns added by ALTER TABLE. Ignore extra columns and assume NULL for
+    * missing columns, the same as heap_getattr would do.  We also have to
+    * skip over dropped columns in either the source or destination.
     *
     * If we have no tuple data at all, we'll assign NULL to all columns of
     * the row variable.
@@ -4785,7 +4785,7 @@ exec_simple_check_node(Node *node)
 
        case T_XmlExpr:
            {
-               XmlExpr *expr = (XmlExpr *) node;
+               XmlExpr    *expr = (XmlExpr *) node;
 
                if (!exec_simple_check_node((Node *) expr->named_args))
                    return FALSE;
@@ -4854,8 +4854,8 @@ exec_simple_check_plan(PLpgSQL_expr *expr)
    TargetEntry *tle;
 
    /*
-    * Initialize to "not simple", and remember the plan generation number
-    * we last checked.  (If the query produces more or less than one parsetree
+    * Initialize to "not simple", and remember the plan generation number we
+    * last checked.  (If the query produces more or less than one parsetree
     * we just leave expr_simple_generation set to 0.)
     */
    expr->expr_simple_expr = NULL;
@@ -5046,7 +5046,7 @@ plpgsql_subxact_cb(SubXactEvent event, SubTransactionId mySubid,
        simple_estate_stack->xact_subxid == mySubid)
    {
        SimpleEstateStackEntry *next;
-       
+
        if (event == SUBXACT_EVENT_COMMIT_SUB)
            FreeExecutorState(simple_estate_stack->xact_eval_estate);
        next = simple_estate_stack->next;
index 55c8d2eeac787ef461fa6b673d7b2d4a40f7bf01..f2cfdc0155c47f18b6789a448e32377166cd31af 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_funcs.c,v 1.63 2007/07/25 04:19:08 neilc Exp $
+ *   $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_funcs.c,v 1.64 2007/11/15 21:14:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -486,7 +486,7 @@ static void dump_fors(PLpgSQL_stmt_fors *stmt);
 static void dump_exit(PLpgSQL_stmt_exit *stmt);
 static void dump_return(PLpgSQL_stmt_return *stmt);
 static void dump_return_next(PLpgSQL_stmt_return_next *stmt);
-static void dump_return_query(PLpgSQL_stmt_return_query *stmt);
+static void dump_return_query(PLpgSQL_stmt_return_query * stmt);
 static void dump_raise(PLpgSQL_stmt_raise *stmt);
 static void dump_execsql(PLpgSQL_stmt_execsql *stmt);
 static void dump_dynexecute(PLpgSQL_stmt_dynexecute *stmt);
@@ -766,7 +766,7 @@ static void
 dump_fetch(PLpgSQL_stmt_fetch *stmt)
 {
    dump_ind();
-   
+
    if (!stmt->is_move)
    {
        printf("FETCH curvar=%d\n", stmt->curvar);
@@ -814,7 +814,7 @@ dump_cursor_direction(PLpgSQL_stmt_fetch *stmt)
        default:
            printf("??? unknown cursor direction %d", stmt->direction);
    }
-   
+
    if (stmt->expr)
    {
        dump_expr(stmt->expr);
@@ -822,7 +822,7 @@ dump_cursor_direction(PLpgSQL_stmt_fetch *stmt)
    }
    else
        printf("%d\n", stmt->how_many);
-       
+
    dump_indent -= 2;
 }
 
@@ -885,7 +885,7 @@ dump_return_next(PLpgSQL_stmt_return_next *stmt)
 }
 
 static void
-dump_return_query(PLpgSQL_stmt_return_query *stmt)
+dump_return_query(PLpgSQL_stmt_return_query * stmt)
 {
    dump_ind();
    printf("RETURN QUERY ");
@@ -1124,4 +1124,3 @@ plpgsql_dumptree(PLpgSQL_function *func)
    printf("\nEnd of execution tree of function %s\n\n", func->fn_name);
    fflush(stdout);
 }
-
index 4a61379fb556712236b0010dfc5c3656084f9bda..6cac7443830aec3c456eb0683f6daf0ee4150c61 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/pl/plpgsql/src/plpgsql.h,v 1.91 2007/07/25 04:19:09 neilc Exp $
+ *   $PostgreSQL: pgsql/src/pl/plpgsql/src/plpgsql.h,v 1.92 2007/11/15 21:14:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -178,12 +178,12 @@ typedef struct PLpgSQL_expr
    Oid        *plan_argtypes;
    /* fields for "simple expression" fast-path execution: */
    Expr       *expr_simple_expr;       /* NULL means not a simple expr */
-   int         expr_simple_generation; /* plancache generation we checked */
+   int         expr_simple_generation; /* plancache generation we checked */
    Oid         expr_simple_type;       /* result type Oid, if simple */
 
    /*
     * if expr is simple AND prepared in current eval_estate,
-    * expr_simple_state is valid.  Test validity by seeing if expr_simple_id
+    * expr_simple_state is valid.  Test validity by seeing if expr_simple_id
     * matches eval_estate_simple_id.
     */
    ExprState  *expr_simple_state;
@@ -499,7 +499,7 @@ typedef struct
    int         cmd_type;
    int         lineno;
    PLpgSQL_expr *query;
-} PLpgSQL_stmt_return_query;
+}  PLpgSQL_stmt_return_query;
 
 typedef struct
 {                              /* RAISE statement          */
@@ -631,9 +631,9 @@ typedef struct
    SPITupleTable *eval_tuptable;
    uint32      eval_processed;
    Oid         eval_lastoid;
-   ExprContext *eval_econtext; /* for executing simple expressions */
+   ExprContext *eval_econtext; /* for executing simple expressions */
    EState     *eval_estate;    /* EState containing eval_econtext */
-   long int    eval_estate_simple_id;      /* ID for eval_estate */
+   long int    eval_estate_simple_id;  /* ID for eval_estate */
 
    /* status information for error context reporting */
    PLpgSQL_function *err_func; /* current func */
@@ -760,7 +760,7 @@ extern HeapTuple plpgsql_exec_trigger(PLpgSQL_function *func,
                     TriggerData *trigdata);
 extern void plpgsql_xact_cb(XactEvent event, void *arg);
 extern void plpgsql_subxact_cb(SubXactEvent event, SubTransactionId mySubid,
-                              SubTransactionId parentSubid, void *arg);
+                  SubTransactionId parentSubid, void *arg);
 
 /* ----------
  * Functions for the dynamic string handling in pl_funcs.c
index 485550f9323e33e009133d40cc85fc8a531cfa0c..80ce24caef7f2932de0e0bec81462a5cd7cbfc15 100644 (file)
@@ -1,7 +1,7 @@
 /**********************************************************************
  * plpython.c - python as a procedural language for PostgreSQL
  *
- * $PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.103 2007/08/10 03:16:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.104 2007/11/15 21:14:46 momjian Exp $
  *
  *********************************************************************
  */
@@ -28,6 +28,7 @@
  */
 #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
@@ -1603,10 +1604,10 @@ static PyObject *
 PLyBool_FromString(const char *src)
 {
    /*
-    *  We would like to use Py_RETURN_TRUE and Py_RETURN_FALSE here for
-    *  generating SQL from trigger functions, but those are only
-    *  supported in Python >= 2.3, and we support older
-    *  versions.  http://docs.python.org/api/boolObjects.html
+    * We would like to use Py_RETURN_TRUE and Py_RETURN_FALSE here for
+    * generating SQL from trigger functions, but those are only supported in
+    * Python >= 2.3, and we support older versions.
+    * http://docs.python.org/api/boolObjects.html
     */
    if (src[0] == 't')
        return PyBool_FromLong(1);
@@ -1730,8 +1731,8 @@ PLyMapping_ToTuple(PLyTypeInfo * info, PyObject * mapping)
    for (i = 0; i < desc->natts; ++i)
    {
        char       *key;
-       PyObject   * volatile value,
-                  * volatile so;
+       PyObject   *volatile value,
+                  *volatile so;
 
        key = NameStr(desc->attrs[i]->attname);
        value = so = NULL;
@@ -1819,8 +1820,8 @@ PLySequence_ToTuple(PLyTypeInfo * info, PyObject * sequence)
    nulls = palloc(sizeof(char) * desc->natts);
    for (i = 0; i < desc->natts; ++i)
    {
-       PyObject   * volatile value,
-                  * volatile so;
+       PyObject   *volatile value,
+                  *volatile so;
 
        value = so = NULL;
        PG_TRY();
@@ -1890,8 +1891,8 @@ PLyObject_ToTuple(PLyTypeInfo * info, PyObject * object)
    for (i = 0; i < desc->natts; ++i)
    {
        char       *key;
-       PyObject   * volatile value,
-                  * volatile so;
+       PyObject   *volatile value,
+                  *volatile so;
 
        key = NameStr(desc->attrs[i]->attname);
        value = so = NULL;
@@ -2020,13 +2021,13 @@ static PyMethodDef PLy_plan_methods[] = {
 };
 
 static PySequenceMethods PLy_result_as_sequence = {
-   PLy_result_length,      /* sq_length */
-   NULL,                   /* sq_concat */
-   NULL,                   /* sq_repeat */
-   PLy_result_item,        /* sq_item */
-   PLy_result_slice,       /* sq_slice */
-   PLy_result_ass_item,    /* sq_ass_item */
-   PLy_result_ass_slice,   /* sq_ass_slice */
+   PLy_result_length,          /* sq_length */
+   NULL,                       /* sq_concat */
+   NULL,                       /* sq_repeat */
+   PLy_result_item,            /* sq_item */
+   PLy_result_slice,           /* sq_slice */
+   PLy_result_ass_item,        /* sq_ass_item */
+   PLy_result_ass_slice,       /* sq_ass_slice */
 };
 
 static PyTypeObject PLy_ResultType = {
@@ -2327,26 +2328,26 @@ PLy_spi_prepare(PyObject * self, PyObject * args)
                {
                    char       *sptr;
                    HeapTuple   typeTup;
-                   Oid         typeId;
-                   int32       typmod;
+                   Oid         typeId;
+                   int32       typmod;
                    Form_pg_type typeStruct;
 
                    optr = PySequence_GetItem(list, i);
                    if (!PyString_Check(optr))
                        elog(ERROR, "Type names must be strings.");
                    sptr = PyString_AsString(optr);
-                   
+
                    /********************************************************
-                    * Resolve argument type names and then look them up by 
-                    * oid in the system cache, and remember the required 
+                    * Resolve argument type names and then look them up by
+                    * oid in the system cache, and remember the required
                     *information for input conversion.
-                    ********************************************************/ 
+                    ********************************************************/
 
                    parseTypeString(sptr, &typeId, &typmod);
+
                    typeTup = SearchSysCache(TYPEOID,
                                             ObjectIdGetDatum(typeId),
-                                            0,0,0);
+                                            0, 0, 0);
                    if (!HeapTupleIsValid(typeTup))
                        elog(ERROR, "cache lookup failed for type %u", typeId);
 
@@ -2529,7 +2530,7 @@ PLy_spi_execute_plan(PyObject * ob, PyObject * list, long limit)
    }
    PG_CATCH();
    {
-       int     k;
+       int         k;
 
        MemoryContextSwitchTo(oldcontext);
        PLy_error_in_progress = CopyErrorData();
index 675ec9597ad0a0ce62397aced49ef981d7064cd7..4b72b860bbc7e4d1e792462bc1d08b573954a0af 100644 (file)
@@ -2,7 +2,7 @@
  * pltcl.c     - PostgreSQL support for Tcl as
  *               procedural language (PL)
  *
- *   $PostgreSQL: pgsql/src/pl/tcl/pltcl.c,v 1.116 2007/11/07 12:24:24 petere Exp $
+ *   $PostgreSQL: pgsql/src/pl/tcl/pltcl.c,v 1.117 2007/11/15 21:14:46 momjian Exp $
  *
  **********************************************************************/
 
@@ -184,7 +184,7 @@ static void pltcl_build_tuple_argument(HeapTuple tuple, TupleDesc tupdesc,
 static ClientData
 pltcl_InitNotifier(void)
 {
-   static int fakeThreadKey;   /* To give valid address for ClientData */
+   static int  fakeThreadKey;  /* To give valid address for ClientData */
 
    return (ClientData) &(fakeThreadKey);
 }
@@ -225,8 +225,7 @@ pltcl_WaitForEvent(Tcl_Time *timePtr)
 {
    return 0;
 }
-
-#endif /* HAVE_TCL_VERSION(8,2) */
+#endif   /* HAVE_TCL_VERSION(8,2) */
 
 
 /*
@@ -264,20 +263,21 @@ _PG_init(void)
 #endif
 
 #if HAVE_TCL_VERSION(8,4)
+
    /*
     * Override the functions in the Notifier subsystem.  See comments above.
     */
    {
        Tcl_NotifierProcs notifier;
 
-       notifier.setTimerProc          = pltcl_SetTimer;
-       notifier.waitForEventProc      = pltcl_WaitForEvent;
+       notifier.setTimerProc = pltcl_SetTimer;
+       notifier.waitForEventProc = pltcl_WaitForEvent;
        notifier.createFileHandlerProc = pltcl_CreateFileHandler;
        notifier.deleteFileHandlerProc = pltcl_DeleteFileHandler;
-       notifier.initNotifierProc      = pltcl_InitNotifier;
-       notifier.finalizeNotifierProc  = pltcl_FinalizeNotifier;
-       notifier.alertNotifierProc     = pltcl_AlertNotifier;
-       notifier.serviceModeHookProc   = pltcl_ServiceModeHook;
+       notifier.initNotifierProc = pltcl_InitNotifier;
+       notifier.finalizeNotifierProc = pltcl_FinalizeNotifier;
+       notifier.alertNotifierProc = pltcl_AlertNotifier;
+       notifier.serviceModeHookProc = pltcl_ServiceModeHook;
        Tcl_SetNotifier(&notifier);
    }
 #endif
@@ -1048,7 +1048,7 @@ compile_pltcl_function(Oid fn_oid, Oid tgreloid)
        prodesc = (pltcl_proc_desc *) Tcl_GetHashValue(hashent);
 
        uptodate = (prodesc->fn_xmin == HeapTupleHeaderGetXmin(procTup->t_data) &&
-               ItemPointerEquals(&prodesc->fn_tid, &procTup->t_self));
+                   ItemPointerEquals(&prodesc->fn_tid, &procTup->t_self));
 
        if (!uptodate)
        {
@@ -1909,8 +1909,10 @@ pltcl_SPI_prepare(ClientData cdata, Tcl_Interp *interp,
         ************************************************************/
        for (i = 0; i < nargs; i++)
        {
-           Oid         typId, typInput, typIOParam;
-            int32       typmod;
+           Oid         typId,
+                       typInput,
+                       typIOParam;
+           int32       typmod;
 
            parseTypeString(args[i], &typId, &typmod);
 
index 36ff06d509fa341be74fad1ae23648eccaba3332..74b8f4bda7953e107c9820e38e35a31bd4cb45fc 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/port/chklocale.c,v 1.7 2007/10/25 12:29:17 alvherre Exp $
+ *   $PostgreSQL: pgsql/src/port/chklocale.c,v 1.8 2007/11/15 21:14:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -62,7 +62,7 @@ static const struct encoding_match encoding_match_list[] = {
    {PG_EUC_KR, "IBM-eucKR"},
    {PG_EUC_KR, "deckorean"},
    {PG_EUC_KR, "5601"},
-   {PG_EUC_KR, "CP51949"}, /* or 20949 ? */
+   {PG_EUC_KR, "CP51949"},     /* or 20949 ? */
 
    {PG_EUC_TW, "EUC-TW"},
    {PG_EUC_TW, "eucTW"},
@@ -154,7 +154,7 @@ static const struct encoding_match encoding_match_list[] = {
    {PG_ISO_8859_8, "ISO-8859-8"},
    {PG_ISO_8859_8, "ISO8859-8"},
    {PG_ISO_8859_8, "iso88598"},
-    {PG_ISO_8859_8, "CP28598"},
+   {PG_ISO_8859_8, "CP28598"},
 
    {PG_SJIS, "SJIS"},
    {PG_SJIS, "PCK"},
@@ -193,8 +193,8 @@ win32_langinfo(const char *ctype)
    int         ln;
 
    /*
-    * Locale format on Win32 is <Language>_<Country>.<CodePage> .
-    * For example, English_USA.1252.
+    * Locale format on Win32 is <Language>_<Country>.<CodePage> . For
+    * example, English_USA.1252.
     */
    codepage = strrchr(ctype, '.');
    if (!codepage)
@@ -206,7 +206,7 @@ win32_langinfo(const char *ctype)
 
    return r;
 }
-#endif /* WIN32 */
+#endif   /* WIN32 */
 
 #if (defined(HAVE_LANGINFO_H) && defined(CODESET)) || defined(WIN32)
 
@@ -234,17 +234,17 @@ pg_get_encoding_from_locale(const char *ctype)
 
        save = setlocale(LC_CTYPE, NULL);
        if (!save)
-           return PG_SQL_ASCII;        /* setlocale() broken? */
+           return PG_SQL_ASCII;    /* setlocale() broken? */
        /* must copy result, or it might change after setlocale */
        save = strdup(save);
        if (!save)
-           return PG_SQL_ASCII;        /* out of memory; unlikely */
+           return PG_SQL_ASCII;    /* out of memory; unlikely */
 
        name = setlocale(LC_CTYPE, ctype);
        if (!name)
        {
            free(save);
-           return PG_SQL_ASCII;        /* bogus ctype passed in? */
+           return PG_SQL_ASCII;    /* bogus ctype passed in? */
        }
 
 #ifndef WIN32
@@ -263,7 +263,7 @@ pg_get_encoding_from_locale(const char *ctype)
        /* much easier... */
        ctype = setlocale(LC_CTYPE, NULL);
        if (!ctype)
-           return PG_SQL_ASCII;        /* setlocale() broken? */
+           return PG_SQL_ASCII;    /* setlocale() broken? */
 #ifndef WIN32
        sys = nl_langinfo(CODESET);
        if (sys)
@@ -274,7 +274,7 @@ pg_get_encoding_from_locale(const char *ctype)
    }
 
    if (!sys)
-       return PG_SQL_ASCII;        /* out of memory; unlikely */
+       return PG_SQL_ASCII;    /* out of memory; unlikely */
 
    /* If locale is C or POSIX, we can allow all encodings */
    if (pg_strcasecmp(ctype, "C") == 0 || pg_strcasecmp(ctype, "POSIX") == 0)
@@ -296,6 +296,7 @@ pg_get_encoding_from_locale(const char *ctype)
    /* Special-case kluges for particular platforms go here */
 
 #ifdef __darwin__
+
    /*
     * Current OS X has many locales that report an empty string for CODESET,
     * but they all seem to actually use UTF-8.
@@ -309,7 +310,7 @@ pg_get_encoding_from_locale(const char *ctype)
 
    /*
     * We print a warning if we got a CODESET string but couldn't recognize
-    * it.  This means we need another entry in the table.
+    * it.  This means we need another entry in the table.
     */
 #ifdef FRONTEND
    fprintf(stderr, _("could not determine encoding for locale \"%s\": codeset is \"%s\""),
@@ -320,14 +321,13 @@ pg_get_encoding_from_locale(const char *ctype)
    ereport(WARNING,
            (errmsg("could not determine encoding for locale \"%s\": codeset is \"%s\"",
                    ctype, sys),
-            errdetail("Please report this to <[email protected]>.")));
+          errdetail("Please report this to <[email protected]>.")));
 #endif
 
    free(sys);
    return PG_SQL_ASCII;
 }
-
-#else /* (HAVE_LANGINFO_H && CODESET) || WIN32 */
+#else                          /* (HAVE_LANGINFO_H && CODESET) || WIN32 */
 
 /*
  * stub if no platform support
@@ -338,4 +338,4 @@ pg_get_encoding_from_locale(const char *ctype)
    return PG_SQL_ASCII;
 }
 
-#endif /* (HAVE_LANGINFO_H && CODESET) || WIN32 */
+#endif   /* (HAVE_LANGINFO_H && CODESET) || WIN32 */
index 4105ae7efec42118f16ce01c3bb256abe18cb6ba..22bb7678b4b138329b779126610b7cbe43bb56f5 100644 (file)
@@ -10,7 +10,7 @@
  * Win32 (NT, Win2k, XP).  replace() doesn't work on Win95/98/Me.
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/port/dirmod.c,v 1.49 2007/07/25 12:22:54 mha Exp $
+ *   $PostgreSQL: pgsql/src/port/dirmod.c,v 1.50 2007/11/15 21:14:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -103,7 +103,6 @@ fe_repalloc(void *pointer, Size size)
    }
    return res;
 }
-
 #endif   /* FRONTEND */
 
 
@@ -118,10 +117,10 @@ pgrename(const char *from, const char *to)
    int         loops = 0;
 
    /*
-    * We need to loop because even though PostgreSQL uses flags that
-    * allow rename while the file is open, other applications might have
-    * the file open without those flags.  However, we won't wait
-    * indefinitely for someone else to close the file.
+    * We need to loop because even though PostgreSQL uses flags that allow
+    * rename while the file is open, other applications might have the file
+    * open without those flags.  However, we won't wait indefinitely for
+    * someone else to close the file.
     */
 #if defined(WIN32) && !defined(__CYGWIN__)
    while (!MoveFileEx(from, to, MOVEFILE_REPLACE_EXISTING))
@@ -153,10 +152,10 @@ pgunlink(const char *path)
    int         loops = 0;
 
    /*
-    * We need to loop because even though PostgreSQL uses flags that
-    * allow unlink while the file is open, other applications might have
-    * the file open without those flags.  However, we won't wait
-    * indefinitely for someone else to close the file.
+    * We need to loop because even though PostgreSQL uses flags that allow
+    * unlink while the file is open, other applications might have the file
+    * open without those flags.  However, we won't wait indefinitely for
+    * someone else to close the file.
     */
    while (unlink(path))
    {
@@ -173,11 +172,10 @@ pgunlink(const char *path)
 /* We undefined these above; now redefine for possible use below */
 #define rename(from, to)       pgrename(from, to)
 #define unlink(path)           pgunlink(path)
-
 #endif   /* defined(WIN32) || defined(__CYGWIN__) */
 
 
-#if defined(WIN32) && !defined(__CYGWIN__) /* Cygwin has its own symlinks */
+#if defined(WIN32) && !defined(__CYGWIN__)     /* Cygwin has its own symlinks */
 
 /*
  * pgsymlink support:
@@ -283,8 +281,7 @@ pgsymlink(const char *oldpath, const char *newpath)
 
    return 0;
 }
-
-#endif /* defined(WIN32) && !defined(__CYGWIN__) */
+#endif   /* defined(WIN32) && !defined(__CYGWIN__) */
 
 
 /*
@@ -294,7 +291,7 @@ pgsymlink(const char *oldpath, const char *newpath)
  * must call pgfnames_cleanup later to free the memory allocated by this
  * function.
  */
-char **
+char     **
 pgfnames(char *path)
 {
    DIR        *dir;
index 9ec5ae417ff9da2c1edfd9b4464eb6f1c1fd6667..736906f0b245791058b981cc7ee197377c6573d1 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/port/exec.c,v 1.55 2007/01/29 20:22:35 momjian Exp $
+ *   $PostgreSQL: pgsql/src/port/exec.c,v 1.56 2007/11/15 21:14:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -588,11 +588,11 @@ pclose_check(FILE *stream)
                  WTERMSIG(exitstatus));
 #elif defined(HAVE_DECL_SYS_SIGLIST) && HAVE_DECL_SYS_SIGLIST
    {
-       char str[256];
+       char        str[256];
 
        snprintf(str, sizeof(str), "%d: %s", WTERMSIG(exitstatus),
-             WTERMSIG(exitstatus) < NSIG ?
-             sys_siglist[WTERMSIG(exitstatus)] : "(unknown)");
+                WTERMSIG(exitstatus) < NSIG ?
+                sys_siglist[WTERMSIG(exitstatus)] : "(unknown)");
        log_error(_("child process was terminated by signal %s"), str);
    }
 #else
index 88fedc8475c59de1cb0fff19b3db96153af540ef..1d8778b73b1662dbbdc9c69efb47f8b3ea586eb3 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/port/open.c,v 1.20 2007/04/13 10:30:30 mha Exp $
+ * $PostgreSQL: pgsql/src/port/open.c,v 1.21 2007/11/15 21:14:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -25,7 +25,7 @@ openFlagsToCreateFileFlags(int openFlags)
 {
    switch (openFlags & (O_CREAT | O_TRUNC | O_EXCL))
    {
-       /* O_EXCL is meaningless without O_CREAT */
+           /* O_EXCL is meaningless without O_CREAT */
        case 0:
        case O_EXCL:
            return OPEN_EXISTING;
@@ -33,7 +33,7 @@ openFlagsToCreateFileFlags(int openFlags)
        case O_CREAT:
            return OPEN_ALWAYS;
 
-       /* O_EXCL is meaningless without O_CREAT */
+           /* O_EXCL is meaningless without O_CREAT */
        case O_TRUNC:
        case O_TRUNC | O_EXCL:
            return TRUNCATE_EXISTING;
@@ -41,7 +41,7 @@ openFlagsToCreateFileFlags(int openFlags)
        case O_CREAT | O_TRUNC:
            return CREATE_ALWAYS;
 
-       /* O_TRUNC is meaningless with O_CREAT */
+           /* O_TRUNC is meaningless with O_CREAT */
        case O_CREAT | O_EXCL:
        case O_CREAT | O_TRUNC | O_EXCL:
            return CREATE_NEW;
@@ -85,7 +85,7 @@ pgwin32_open(const char *fileName, int fileFlags,...)
              ((fileFlags & _O_SHORT_LIVED) ? FILE_ATTRIBUTE_TEMPORARY : 0) |
                ((fileFlags & O_TEMPORARY) ? FILE_FLAG_DELETE_ON_CLOSE : 0) |
                      ((fileFlags & O_DIRECT) ? FILE_FLAG_NO_BUFFERING : 0) |
-                     ((fileFlags & O_DSYNC) ? FILE_FLAG_WRITE_THROUGH : 0),
+                       ((fileFlags & O_DSYNC) ? FILE_FLAG_WRITE_THROUGH : 0),
                        NULL)) == INVALID_HANDLE_VALUE)
    {
        switch (GetLastError())
index c43843bb4647586202276a442e5dc611271c053a..16c64da6085160b25feb3623d9ed6aa67e87fe5b 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/port/path.c,v 1.72 2007/10/23 17:58:01 mha Exp $
+ *   $PostgreSQL: pgsql/src/port/path.c,v 1.73 2007/11/15 21:14:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -628,13 +628,14 @@ get_home_path(char *ret_path)
    strlcpy(ret_path, pwd->pw_dir, MAXPGPATH);
    return true;
 #else
-   char        *tmppath;
+   char       *tmppath;
 
-    /*
-     * Note: We use getenv here because the more modern SHGetSpecialFolderPath()
-     * will force us to link with shell32.lib which eats valuable desktop heap.
-     */
-    tmppath = getenv("APPDATA");
+   /*
+    * Note: We use getenv here because the more modern
+    * SHGetSpecialFolderPath() will force us to link with shell32.lib which
+    * eats valuable desktop heap.
+    */
+   tmppath = getenv("APPDATA");
    if (!tmppath)
        return false;
    snprintf(ret_path, MAXPGPATH, "%s/postgresql", tmppath);
index f447ad0c7bc34b99c72bc4edd1fb8577770beb8e..67c11069e6ee6e34a85500b66e1b3b32e9082e9f 100644 (file)
 /*
  * Appends src to string dst of size siz (unlike strncat, siz is the
  * full size of dst, not space left).  At most siz-1 characters
- * will be copied.  Always NUL terminates (unless siz <= strlen(dst)).
+ * will be copied. Always NUL terminates (unless siz <= strlen(dst)).
  * Returns strlen(src) + MIN(siz, strlen(initial dst)).
  * If retval >= siz, truncation occurred.
  */
 size_t
 strlcat(char *dst, const char *src, size_t siz)
 {
-   char *d = dst;
+   char       *d = dst;
    const char *s = src;
-   size_t n = siz;
-   size_t dlen;
+   size_t      n = siz;
+   size_t      dlen;
 
    /* Find the end of dst and adjust bytes left but don't go past end */
    while (n-- != 0 && *d != '\0')
@@ -41,9 +41,11 @@ strlcat(char *dst, const char *src, size_t siz)
    n = siz - dlen;
 
    if (n == 0)
-       return(dlen + strlen(s));
-   while (*s != '\0') {
-       if (n != 1) {
+       return (dlen + strlen(s));
+   while (*s != '\0')
+   {
+       if (n != 1)
+       {
            *d++ = *s;
            n--;
        }
@@ -51,5 +53,5 @@ strlcat(char *dst, const char *src, size_t siz)
    }
    *d = '\0';
 
-   return(dlen + (s - src));   /* count does not include NUL */
+   return (dlen + (s - src));  /* count does not include NUL */
 }
index 741eb11d1822bea1c37c82f6f4efd56efa21945f..e6a70c7d8f4a09599f4e1df237fe510a9373e80a 100644 (file)
@@ -11,7 +11,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/test/regress/pg_regress.c,v 1.37 2007/09/09 20:40:54 adunstan Exp $
+ * $PostgreSQL: pgsql/src/test/regress/pg_regress.c,v 1.38 2007/11/15 21:14:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -48,10 +48,11 @@ typedef struct _resultmap
  * In non-temp_install mode, the only thing we need is the location of psql,
  * which we expect to find in psqldir, or in the PATH if psqldir isn't given.
  */
-char *bindir = PGBINDIR;
-char *libdir = LIBDIR;
-char *datadir = PGSHAREDIR;
-char *host_platform = HOST_TUPLE;
+char      *bindir = PGBINDIR;
+char      *libdir = LIBDIR;
+char      *datadir = PGSHAREDIR;
+char      *host_platform = HOST_TUPLE;
+
 #ifndef WIN32_ONLY_COMPILER
 static char *makeprog = MAKEPROG;
 #endif
@@ -66,10 +67,10 @@ const char *pretty_diff_opts = "-w -C3";
 
 /* options settable from command line */
 _stringlist *dblist = NULL;
-bool debug = false;
-char *inputdir = ".";
-char *outputdir = ".";
-char *psqldir = NULL;
+bool       debug = false;
+char      *inputdir = ".";
+char      *outputdir = ".";
+char      *psqldir = NULL;
 static _stringlist *loadlanguage = NULL;
 static int max_connections = 0;
 static char *encoding = NULL;
@@ -102,9 +103,9 @@ static int  fail_count = 0;
 static int fail_ignore_count = 0;
 
 static bool
-directory_exists(const char *dir);
+           directory_exists(const char *dir);
 static void
-make_directory(const char *dir);
+           make_directory(const char *dir);
 
 static void
 header(const char *fmt,...)
@@ -123,7 +124,7 @@ psql_command(const char *database, const char *query,...)
 __attribute__((format(printf, 2, 3)));
 
 #ifdef WIN32
-typedef BOOL(WINAPI * __CreateRestrictedToken) (HANDLE, DWORD, DWORD, PSID_AND_ATTRIBUTES, DWORD, PLUID_AND_ATTRIBUTES, DWORD, PSID_AND_ATTRIBUTES, PHANDLE);
+typedef        BOOL(WINAPI * __CreateRestrictedToken) (HANDLE, DWORD, DWORD, PSID_AND_ATTRIBUTES, DWORD, PLUID_AND_ATTRIBUTES, DWORD, PSID_AND_ATTRIBUTES, PHANDLE);
 
 /* Windows API define missing from MingW headers */
 #define DISABLE_MAX_PRIVILEGE  0x1
@@ -133,23 +134,24 @@ typedef BOOL(WINAPI * __CreateRestrictedToken) (HANDLE, DWORD, DWORD, PSID_AND_A
  * allow core files if possible.
  */
 #if defined(HAVE_GETRLIMIT) && defined(RLIMIT_CORE)
-static void 
+static void
 unlimit_core_size(void)
 {
    struct rlimit lim;
-   getrlimit(RLIMIT_CORE,&lim);
+
+   getrlimit(RLIMIT_CORE, &lim);
    if (lim.rlim_max == 0)
    {
        fprintf(stderr,
-               _("%s: cannot set core size,: disallowed by hard limit.\n"), 
+               _("%s: cannot set core size,: disallowed by hard limit.\n"),
                progname);
        return;
    }
    else if (lim.rlim_max == RLIM_INFINITY || lim.rlim_cur < lim.rlim_max)
    {
        lim.rlim_cur = lim.rlim_max;
-       setrlimit(RLIMIT_CORE,&lim);
-   }   
+       setrlimit(RLIMIT_CORE, &lim);
+   }
 }
 #endif
 
@@ -179,7 +181,7 @@ add_stringlist_item(_stringlist ** listhead, const char *str)
  * Free a stringlist.
  */
 static void
-free_stringlist(_stringlist **listhead) 
+free_stringlist(_stringlist ** listhead)
 {
    if (listhead == NULL || *listhead == NULL)
        return;
@@ -194,10 +196,11 @@ free_stringlist(_stringlist **listhead)
  * Split a delimited string into a stringlist
  */
 static void
-split_to_stringlist(const char *s, const char *delim, _stringlist **listhead)
+split_to_stringlist(const char *s, const char *delim, _stringlist ** listhead)
 {
-   char *sc = strdup(s);
-   char *token = strtok(sc, delim);
+   char       *sc = strdup(s);
+   char       *token = strtok(sc, delim);
+
    while (token)
    {
        add_stringlist_item(listhead, token);
@@ -370,11 +373,11 @@ string_matches_pattern(const char *str, const char *pattern)
 void
 replace_string(char *string, char *replace, char *replacement)
 {
-   char *ptr;
+   char       *ptr;
 
-   while ((ptr = strstr(string, replace)) != NULL) 
+   while ((ptr = strstr(string, replace)) != NULL)
    {
-       char *dup = strdup(string);
+       char       *dup = strdup(string);
 
        strlcpy(string, dup, ptr - string + 1);
        strcat(string, replacement);
@@ -392,27 +395,28 @@ replace_string(char *string, char *replace, char *replacement)
 static void
 convert_sourcefiles_in(char *source, char *dest, char *suffix)
 {
-   char    abs_srcdir[MAXPGPATH];
-   char    abs_builddir[MAXPGPATH];
-   char    testtablespace[MAXPGPATH];
-   char    indir[MAXPGPATH];
-   char  **name;
-   char  **names;
-   int     count = 0;
+   char        abs_srcdir[MAXPGPATH];
+   char        abs_builddir[MAXPGPATH];
+   char        testtablespace[MAXPGPATH];
+   char        indir[MAXPGPATH];
+   char      **name;
+   char      **names;
+   int         count = 0;
+
 #ifdef WIN32
-   char *c;
+   char       *c;
 #endif
 
    if (!getcwd(abs_builddir, sizeof(abs_builddir)))
    {
        fprintf(stderr, _("%s: could not get current directory: %s\n"),
-           progname, strerror(errno));
+               progname, strerror(errno));
        exit_nicely(2);
    }
 
    /*
-    * in a VPATH build, use the provided source directory; otherwise, use
-    * the current directory.
+    * in a VPATH build, use the provided source directory; otherwise, use the
+    * current directory.
     */
    if (srcdir)
        strcpy(abs_srcdir, srcdir);
@@ -444,12 +448,12 @@ convert_sourcefiles_in(char *source, char *dest, char *suffix)
    /* finally loop on each file and do the replacement */
    for (name = names; *name; name++)
    {
-       char    srcfile[MAXPGPATH];
-       char    destfile[MAXPGPATH];
-       char    prefix[MAXPGPATH];
-       FILE   *infile,
-              *outfile;
-       char    line[1024];
+       char        srcfile[MAXPGPATH];
+       char        destfile[MAXPGPATH];
+       char        prefix[MAXPGPATH];
+       FILE       *infile,
+                  *outfile;
+       char        line[1024];
 
        /* reject filenames not finishing in ".source" */
        if (strlen(*name) < 8)
@@ -475,7 +479,7 @@ convert_sourcefiles_in(char *source, char *dest, char *suffix)
        if (!outfile)
        {
            fprintf(stderr, _("%s: could not open file \"%s\" for writing: %s\n"),
-               progname, destfile, strerror(errno));
+                   progname, destfile, strerror(errno));
            exit_nicely(2);
        }
        while (fgets(line, sizeof(line), infile))
@@ -500,16 +504,16 @@ convert_sourcefiles_in(char *source, char *dest, char *suffix)
                progname, indir);
        exit_nicely(2);
    }
-   
-    pgfnames_cleanup(names);
+
+   pgfnames_cleanup(names);
 }
 
 /* Create the .sql and .out files from the .source files, if any */
 static void
 convert_sourcefiles(void)
 {
-   struct stat st;
-   int     ret;
+   struct stat st;
+   int         ret;
 
    ret = stat("input", &st);
    if (ret == 0 && S_ISDIR(st.st_mode))
@@ -569,7 +573,7 @@ load_resultmap(void)
        if (!file_type)
        {
            fprintf(stderr, _("incorrectly formatted resultmap entry: %s\n"),
-               buf);
+                   buf);
            exit_nicely(2);
        }
        *file_type++ = '\0';
@@ -615,9 +619,10 @@ load_resultmap(void)
  * Check in resultmap if we should be looking at a different file
  */
 static
-const char *get_expectfile(const char *testname, const char *file)
+const char *
+get_expectfile(const char *testname, const char *file)
 {
-   char *file_type;
+   char       *file_type;
    _resultmap *rm;
 
    /*
@@ -762,7 +767,7 @@ initialize_environment(void)
 
        /* psql will be installed into temp-install bindir */
        psqldir = bindir;
-       
+
        /*
         * Set up shared library paths to include the temp install.
         *
@@ -921,69 +926,69 @@ spawn_process(const char *cmdline)
    return pid;
 #else
    char       *cmdline2;
-   BOOL b;
+   BOOL        b;
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
-   HANDLE origToken;
-   HANDLE restrictedToken;
+   HANDLE      origToken;
+   HANDLE      restrictedToken;
    SID_IDENTIFIER_AUTHORITY NtAuthority = {SECURITY_NT_AUTHORITY};
    SID_AND_ATTRIBUTES dropSids[2];
    __CreateRestrictedToken _CreateRestrictedToken = NULL;
-   HANDLE Advapi32Handle;
+   HANDLE      Advapi32Handle;
 
    ZeroMemory(&si, sizeof(si));
    si.cb = sizeof(si);
-   
+
    Advapi32Handle = LoadLibrary("ADVAPI32.DLL");
    if (Advapi32Handle != NULL)
    {
-      _CreateRestrictedToken = (__CreateRestrictedToken) GetProcAddress(Advapi32Handle, "CreateRestrictedToken");
-   }
-   
-   if (_CreateRestrictedToken == NULL)
-   {
-      if (Advapi32Handle != NULL)
-       FreeLibrary(Advapi32Handle);
-      fprintf(stderr, "ERROR: cannot create restricted tokens on this platform\n");
-      exit_nicely(2);
-   }
-
-   /* Open the current token to use as base for the restricted one */
-   if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &origToken))
-   {
-      fprintf(stderr, "could not open process token: %lu\n", GetLastError());
-      exit_nicely(2);
-   }
+       _CreateRestrictedToken = (__CreateRestrictedToken) GetProcAddress(Advapi32Handle, "CreateRestrictedToken");
+   }
+
+   if (_CreateRestrictedToken == NULL)
+   {
+       if (Advapi32Handle != NULL)
+           FreeLibrary(Advapi32Handle);
+       fprintf(stderr, "ERROR: cannot create restricted tokens on this platform\n");
+       exit_nicely(2);
+   }
+
+   /* Open the current token to use as base for the restricted one */
+   if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &origToken))
+   {
+       fprintf(stderr, "could not open process token: %lu\n", GetLastError());
+       exit_nicely(2);
+   }
 
    /* Allocate list of SIDs to remove */
    ZeroMemory(&dropSids, sizeof(dropSids));
    if (!AllocateAndInitializeSid(&NtAuthority, 2,
-           SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &dropSids[0].Sid) ||
-        !AllocateAndInitializeSid(&NtAuthority, 2,
-          SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_POWER_USERS, 0, 0, 0, 0, 0, 0, &dropSids[1].Sid))
-   {
-      fprintf(stderr, "could not allocate SIDs: %lu\n", GetLastError());
-      exit_nicely(2);
-   }
-   
+                                 SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &dropSids[0].Sid) ||
+       !AllocateAndInitializeSid(&NtAuthority, 2,
+                                 SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_POWER_USERS, 0, 0, 0, 0, 0, 0, &dropSids[1].Sid))
+   {
+       fprintf(stderr, "could not allocate SIDs: %lu\n", GetLastError());
+       exit_nicely(2);
+   }
+
    b = _CreateRestrictedToken(origToken,
-          DISABLE_MAX_PRIVILEGE,
-          sizeof(dropSids)/sizeof(dropSids[0]),
-          dropSids,
-          0, NULL,
-          0, NULL,
-          &restrictedToken);
-
-   FreeSid(dropSids[1].Sid);
-   FreeSid(dropSids[0].Sid);
-   CloseHandle(origToken);
-   FreeLibrary(Advapi32Handle);
-   
-   if (!b)
-   {
-      fprintf(stderr, "could not create restricted token: %lu\n", GetLastError());
-      exit_nicely(2);
-   }
+                              DISABLE_MAX_PRIVILEGE,
+                              sizeof(dropSids) / sizeof(dropSids[0]),
+                              dropSids,
+                              0, NULL,
+                              0, NULL,
+                              &restrictedToken);
+
+   FreeSid(dropSids[1].Sid);
+   FreeSid(dropSids[0].Sid);
+   CloseHandle(origToken);
+   FreeLibrary(Advapi32Handle);
+
+   if (!b)
+   {
+       fprintf(stderr, "could not create restricted token: %lu\n", GetLastError());
+       exit_nicely(2);
+   }
 
    cmdline2 = malloc(strlen(cmdline) + 8);
    sprintf(cmdline2, "cmd /c %s", cmdline);
@@ -1088,16 +1093,17 @@ make_directory(const char *dir)
 static char *
 get_alternative_expectfile(const char *expectfile, int i)
 {
-   char *last_dot;
-   int ssize = strlen(expectfile) + 2 + 1;
-   char *tmp = (char *)malloc(ssize);
-   char *s = (char *)malloc(ssize);
+   char       *last_dot;
+   int         ssize = strlen(expectfile) + 2 + 1;
+   char       *tmp = (char *) malloc(ssize);
+   char       *s = (char *) malloc(ssize);
+
    strcpy(tmp, expectfile);
-   last_dot = strrchr(tmp,'.');
+   last_dot = strrchr(tmp, '.');
    if (!last_dot)
        return NULL;
    *last_dot = '\0';
-   snprintf(s, ssize, "%s_%d.%s", tmp, i, last_dot+1);
+   snprintf(s, ssize, "%s_%d.%s", tmp, i, last_dot + 1);
    free(tmp);
    return s;
 }
@@ -1152,19 +1158,20 @@ results_differ(const char *testname, const char *resultsfile, const char *defaul
    const char *platform_expectfile;
 
    /*
-    * We can pass either the resultsfile or the expectfile, they should
-    * have the same type (filename.type) anyway.
+    * We can pass either the resultsfile or the expectfile, they should have
+    * the same type (filename.type) anyway.
     */
    platform_expectfile = get_expectfile(testname, resultsfile);
 
    strcpy(expectfile, default_expectfile);
-   if (platform_expectfile) 
+   if (platform_expectfile)
    {
        /*
         * Replace everything afer the last slash in expectfile with what the
         * platform_expectfile contains.
         */
-       char *p = strrchr(expectfile, '/');
+       char       *p = strrchr(expectfile, '/');
+
        if (p)
            strcpy(++p, platform_expectfile);
    }
@@ -1190,7 +1197,7 @@ results_differ(const char *testname, const char *resultsfile, const char *defaul
 
    for (i = 0; i <= 9; i++)
    {
-       char *alt_expectfile;
+       char       *alt_expectfile;
 
        alt_expectfile = get_alternative_expectfile(expectfile, i);
        if (!file_exists(alt_expectfile))
@@ -1351,9 +1358,9 @@ run_schedule(const char *schedule, test_function tfunc)
    FILE       *scf;
    int         line_num = 0;
 
-   memset(resultfiles,0,sizeof(_stringlist *) * MAX_PARALLEL_TESTS);
-   memset(expectfiles,0,sizeof(_stringlist *) * MAX_PARALLEL_TESTS);
-   memset(tags,0,sizeof(_stringlist *) * MAX_PARALLEL_TESTS);
+   memset(resultfiles, 0, sizeof(_stringlist *) * MAX_PARALLEL_TESTS);
+   memset(expectfiles, 0, sizeof(_stringlist *) * MAX_PARALLEL_TESTS);
+   memset(tags, 0, sizeof(_stringlist *) * MAX_PARALLEL_TESTS);
 
    scf = fopen(schedule, "r");
    if (!scf)
@@ -1446,7 +1453,7 @@ run_schedule(const char *schedule, test_function tfunc)
        if (num_tests == 1)
        {
            status(_("test %-20s ... "), tests[0]);
-           pids[0] = (tfunc)(tests[0], &resultfiles[0], &expectfiles[0], &tags[0]);
+           pids[0] = (tfunc) (tests[0], &resultfiles[0], &expectfiles[0], &tags[0]);
            wait_for_tests(pids, NULL, 1);
            /* status line is finished below */
        }
@@ -1463,7 +1470,7 @@ run_schedule(const char *schedule, test_function tfunc)
                    wait_for_tests(pids + oldest, tests + oldest, i - oldest);
                    oldest = i;
                }
-               pids[i] = (tfunc)(tests[i], &resultfiles[i], &expectfiles[i], &tags[i]);
+               pids[i] = (tfunc) (tests[i], &resultfiles[i], &expectfiles[i], &tags[i]);
            }
            wait_for_tests(pids + oldest, tests + oldest, i - oldest);
            status_end();
@@ -1473,7 +1480,7 @@ run_schedule(const char *schedule, test_function tfunc)
            status(_("parallel group (%d tests): "), num_tests);
            for (i = 0; i < num_tests; i++)
            {
-               pids[i] = (tfunc)(tests[i], &resultfiles[i], &expectfiles[i], &tags[i]);
+               pids[i] = (tfunc) (tests[i], &resultfiles[i], &expectfiles[i], &tags[i]);
            }
            wait_for_tests(pids, tests, num_tests);
            status_end();
@@ -1482,8 +1489,10 @@ run_schedule(const char *schedule, test_function tfunc)
        /* Check results for all tests */
        for (i = 0; i < num_tests; i++)
        {
-           _stringlist *rl, *el, *tl;
-           bool differ = false;
+           _stringlist *rl,
+                      *el,
+                      *tl;
+           bool        differ = false;
 
            if (num_tests > 1)
                status(_("     %-20s ... "), tests[i]);
@@ -1491,20 +1500,22 @@ run_schedule(const char *schedule, test_function tfunc)
            /*
             * Advance over all three lists simultaneously.
             *
-            * Compare resultfiles[j] with expectfiles[j] always.
-            * Tags are optional but if there are tags, the tag list has the
-            * same length as the other two lists.
+            * Compare resultfiles[j] with expectfiles[j] always. Tags are
+            * optional but if there are tags, the tag list has the same
+            * length as the other two lists.
             */
            for (rl = resultfiles[i], el = expectfiles[i], tl = tags[i];
-               rl != NULL; /* rl and el have the same length */
-               rl = rl->next, el = el->next)
+                rl != NULL;    /* rl and el have the same length */
+                rl = rl->next, el = el->next)
            {
-               bool newdiff;
+               bool        newdiff;
+
                if (tl)
-                   tl = tl->next; /* tl has the same lengt has rl and el if it exists */
+                   tl = tl->next;      /* tl has the same lengt has rl and el
+                                        * if it exists */
 
                newdiff = results_differ(tests[i], rl->str, el->str);
-               if (newdiff && tl) 
+               if (newdiff && tl)
                {
                    printf("%s ", tl->str);
                }
@@ -1558,30 +1569,34 @@ run_single_test(const char *test, test_function tfunc)
    _stringlist *resultfiles = NULL;
    _stringlist *expectfiles = NULL;
    _stringlist *tags = NULL;
-   _stringlist *rl, *el, *tl;
+   _stringlist *rl,
+              *el,
+              *tl;
    bool        differ = false;
 
    status(_("test %-20s ... "), test);
-   pid = (tfunc)(test, &resultfiles, &expectfiles, &tags);
+   pid = (tfunc) (test, &resultfiles, &expectfiles, &tags);
    wait_for_tests(&pid, NULL, 1);
 
    /*
     * Advance over all three lists simultaneously.
     *
-    * Compare resultfiles[j] with expectfiles[j] always.
-    * Tags are optional but if there are tags, the tag list has the
-    * same length as the other two lists.
+    * Compare resultfiles[j] with expectfiles[j] always. Tags are optional
+    * but if there are tags, the tag list has the same length as the other
+    * two lists.
     */
    for (rl = resultfiles, el = expectfiles, tl = tags;
-       rl != NULL; /* rl and el have the same length */
-       rl = rl->next, el = el->next)
+        rl != NULL;            /* rl and el have the same length */
+        rl = rl->next, el = el->next)
    {
-       bool newdiff;
+       bool        newdiff;
+
        if (tl)
-           tl = tl->next; /* tl has the same lengt has rl and el if it exists */
+           tl = tl->next;      /* tl has the same lengt has rl and el if it
+                                * exists */
 
        newdiff = results_differ(test, rl->str, el->str);
-       if (newdiff && tl) 
+       if (newdiff && tl)
        {
            printf("%s ", tl->str);
        }
@@ -1651,6 +1666,7 @@ static void
 create_database(const char *dbname)
 {
    _stringlist *sl;
+
    /*
     * We use template0 so that any installation-local cruft in template1 will
     * not mess up the tests.
@@ -1660,13 +1676,13 @@ create_database(const char *dbname)
        psql_command("postgres", "CREATE DATABASE \"%s\" TEMPLATE=template0 ENCODING='%s'", dbname, encoding);
    else
        psql_command("postgres", "CREATE DATABASE \"%s\" TEMPLATE=template0", dbname);
-   psql_command(dbname, 
-       "ALTER DATABASE \"%s\" SET lc_messages TO 'C';"
-       "ALTER DATABASE \"%s\" SET lc_monetary TO 'C';"
-       "ALTER DATABASE \"%s\" SET lc_numeric TO 'C';"
-       "ALTER DATABASE \"%s\" SET lc_time TO 'C';"
-       "ALTER DATABASE \"%s\" SET timezone_abbreviations TO 'Default';",
-       dbname, dbname, dbname, dbname, dbname);
+   psql_command(dbname,
+                "ALTER DATABASE \"%s\" SET lc_messages TO 'C';"
+                "ALTER DATABASE \"%s\" SET lc_monetary TO 'C';"
+                "ALTER DATABASE \"%s\" SET lc_numeric TO 'C';"
+                "ALTER DATABASE \"%s\" SET lc_time TO 'C';"
+           "ALTER DATABASE \"%s\" SET timezone_abbreviations TO 'Default';",
+                dbname, dbname, dbname, dbname, dbname);
 
    /*
     * Install any requested procedural languages
@@ -1686,14 +1702,14 @@ drop_role_if_exists(const char *rolename)
 }
 
 static void
-create_role(const char *rolename, const _stringlist *granted_dbs)
+create_role(const char *rolename, const _stringlist * granted_dbs)
 {
    header(_("creating role \"%s\""), rolename);
    psql_command("postgres", "CREATE ROLE \"%s\" WITH LOGIN", rolename);
    for (; granted_dbs != NULL; granted_dbs = granted_dbs->next)
    {
        psql_command("postgres", "GRANT ALL ON DATABASE \"%s\" TO \"%s\"",
-           granted_dbs->str, rolename);
+                    granted_dbs->str, rolename);
    }
 }
 
@@ -1797,8 +1813,10 @@ regression_main(int argc, char *argv[], init_function ifunc, test_function tfunc
                printf("pg_regress (PostgreSQL %s)\n", PG_VERSION);
                exit_nicely(0);
            case 1:
-               /* If a default database was specified, we need to remove it before we add
-                * the specified one.
+
+               /*
+                * If a default database was specified, we need to remove it
+                * before we add the specified one.
                 */
                free_stringlist(&dblist);
                split_to_stringlist(strdup(optarg), ", ", &dblist);
@@ -1944,9 +1962,9 @@ regression_main(int argc, char *argv[], init_function ifunc, test_function tfunc
                 SYSTEMQUOTE "\"%s\" -C \"%s\" DESTDIR=\"%s/install\" install with_perl=no with_python=no > \"%s/log/install.log\" 2>&1" SYSTEMQUOTE,
                 makeprog, top_builddir, temp_install, outputdir);
 #else
-      snprintf(buf, sizeof(buf),
-             SYSTEMQUOTE "perl \"%s/src/tools/msvc/install.pl\" \"%s/install\" >\"%s/log/install.log\" 2>&1" SYSTEMQUOTE,
-             top_builddir, temp_install, outputdir);
+       snprintf(buf, sizeof(buf),
+                SYSTEMQUOTE "perl \"%s/src/tools/msvc/install.pl\" \"%s/install\" >\"%s/log/install.log\" 2>&1" SYSTEMQUOTE,
+                top_builddir, temp_install, outputdir);
 #endif
        if (system(buf))
        {
@@ -1971,24 +1989,24 @@ regression_main(int argc, char *argv[], init_function ifunc, test_function tfunc
        /* add any extra config specified to the postgresql.conf */
        if (temp_config != NULL)
        {
-           FILE extra_conf;
-           FILE pg_conf;
-           char line_buf[1024];
+           FILE       *extra_conf;
+           FILE       *pg_conf;
+           char        line_buf[1024];
 
-           snprintf(buf, sizeof(buf),"%s/data/postgresql.conf", temp_install);
-           pg_conf = fopen(buf,"a");
+           snprintf(buf, sizeof(buf), "%s/data/postgresql.conf", temp_install);
+           pg_conf = fopen(buf, "a");
            if (pg_conf == NULL)
            {
                fprintf(stderr, _("\n%s: could not open %s for adding extra config:\nError was %s\n"), progname, buf, strerror(errno));
-               exit_nicely(2);             
+               exit_nicely(2);
            }
-           extra_conf = fopen(temp_config,"r");
+           extra_conf = fopen(temp_config, "r");
            if (extra_conf == NULL)
            {
                fprintf(stderr, _("\n%s: could not open %s to read extra config:\nError was %s\n"), progname, buf, strerror(errno));
-               exit_nicely(2);             
+               exit_nicely(2);
            }
-           while(fgets(line_buf, sizeof(line_buf),extra_conf) != NULL)
+           while (fgets(line_buf, sizeof(line_buf), extra_conf) != NULL)
                fputs(line_buf, pg_conf);
            fclose(extra_conf);
            fclose(pg_conf);
index c820c1fbeb3b7d000f423be5315eb2e8d109c733..ced7a1343afe3409049a54d527ff269d313fe9e4 100644 (file)
@@ -4,7 +4,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/test/regress/pg_regress.h,v 1.1 2007/06/12 11:07:34 mha Exp $
+ * $PostgreSQL: pgsql/src/test/regress/pg_regress.h,v 1.2 2007/11/15 21:14:46 momjian Exp $
  *-------------------------------------------------------------------------
  */
 
@@ -26,11 +26,11 @@ typedef struct _stringlist
    struct _stringlist *next;
 }  _stringlist;
 
-typedef PID_TYPE (*test_function)(const char *,
-               _stringlist **,
-               _stringlist **,
-               _stringlist **);
-typedef void (*init_function)(void);
+typedef PID_TYPE(*test_function) (const char *,
+                         _stringlist **,
+                         _stringlist **,
+                         _stringlist **);
+typedef void (*init_function) (void);
 
 extern char *bindir;
 extern char *libdir;
@@ -41,6 +41,7 @@ extern _stringlist *dblist;
 extern bool debug;
 extern char *inputdir;
 extern char *outputdir;
+
 /*
  * This should not be global but every module should be able to read command
  * line parameters.
@@ -51,9 +52,8 @@ extern const char *basic_diff_opts;
 extern const char *pretty_diff_opts;
 
 int regression_main(int argc, char *argv[],
-                   init_function ifunc, test_function tfunc);
-void add_stringlist_item(_stringlist ** listhead, const char *str);
-PID_TYPE spawn_process(const char *cmdline);
-void exit_nicely(int code);
-void replace_string(char *string, char *replace, char *replacement);
-
+               init_function ifunc, test_function tfunc);
+void       add_stringlist_item(_stringlist ** listhead, const char *str);
+PID_TYPE   spawn_process(const char *cmdline);
+void       exit_nicely(int code);
+void       replace_string(char *string, char *replace, char *replacement);
index fea5c35f5901e849869c97792d2caca03a685e1c..15b12853ce462bb595abc74ac8d3f11055d5a64d 100644 (file)
@@ -11,7 +11,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/test/regress/pg_regress_main.c,v 1.1 2007/06/12 11:07:34 mha Exp $
+ * $PostgreSQL: pgsql/src/test/regress/pg_regress_main.c,v 1.2 2007/11/15 21:14:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -24,9 +24,9 @@
  */
 static PID_TYPE
 psql_start_test(const char *testname,
-               _stringlist **resultfiles,
-               _stringlist **expectfiles,
-               _stringlist **tags)
+               _stringlist ** resultfiles,
+               _stringlist ** expectfiles,
+               _stringlist ** tags)
 {
    PID_TYPE    pid;
    char        infile[MAXPGPATH];
index 0deb63a2c467676abed6b72779bd6467cb6e7ff1..e499ba62f6777c4f16a9b816c2e2707f3ff5088a 100644 (file)
@@ -3,7 +3,7 @@
  * 1996-06-05 by Arthur David Olson ([email protected]).
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/timezone/localtime.c,v 1.18 2007/10/26 13:30:10 tgl Exp $
+ *   $PostgreSQL: pgsql/src/timezone/localtime.c,v 1.19 2007/11/15 21:14:46 momjian Exp $
  */
 
 /*
@@ -122,7 +122,7 @@ detzcode(const char *codep)
 }
 
 int
-tzload(const char *name, char *canonname, struct state *sp)
+tzload(const char *name, char *canonname, struct state * sp)
 {
    const char *p;
    int         i;
@@ -549,10 +549,11 @@ tzparse(const char *name, struct state * sp, int lastditch)
        if (stdlen >= sizeof sp->chars)
            stdlen = (sizeof sp->chars) - 1;
        stdoffset = 0;
+
        /*
-        * Unlike the original zic library, do NOT invoke tzload() here;
-        * we can't assume pg_open_tzfile() is sane yet, and we don't
-        * care about leap seconds anyway.
+        * Unlike the original zic library, do NOT invoke tzload() here; we
+        * can't assume pg_open_tzfile() is sane yet, and we don't care about
+        * leap seconds anyway.
         */
        load_result = -1;
    }
@@ -1081,7 +1082,7 @@ pg_get_timezone_offset(const pg_tz *tz, long int *gmtoff)
 {
    /*
     * The zone could have more than one ttinfo, if it's historically used
-    * more than one abbreviation.  We return TRUE as long as they all have
+    * more than one abbreviation.  We return TRUE as long as they all have
     * the same gmtoff.
     */
    const struct state *sp;
index 7370a9306d5975d5caaaa3d279cf6c04e68e6eaf..58914bb3a46830a0d8ef84b0d76a092d0c2f9de0 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/timezone/pgtz.c,v 1.54 2007/08/25 20:29:25 tgl Exp $
+ *   $PostgreSQL: pgsql/src/timezone/pgtz.c,v 1.55 2007/11/15 21:14:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -39,8 +39,8 @@ static pg_tz gmt_timezone_data;
 
 
 static bool scan_directory_ci(const char *dirname,
-                             const char *fname, int fnamelen,
-                             char *canonname, int canonnamelen);
+                 const char *fname, int fnamelen,
+                 char *canonname, int canonnamelen);
 static const char *identify_system_timezone(void);
 static pg_tz *get_pg_tz_for_zone(const char *tzname);
 static pg_tz *select_default_timezone(void);
@@ -100,7 +100,7 @@ pg_open_tzfile(const char *name, char *canonname)
    for (;;)
    {
        const char *slashptr;
-       int     fnamelen;
+       int         fnamelen;
 
        slashptr = strchr(fname, '/');
        if (slashptr)
@@ -130,7 +130,7 @@ pg_open_tzfile(const char *name, char *canonname)
 
 /*
  * Scan specified directory for a case-insensitive match to fname
- * (of length fnamelen --- fname may not be null terminated!).  If found,
+ * (of length fnamelen --- fname may not be null terminated!). If found,
  * copy the actual filename into canonname and return true.
  */
 static bool
@@ -153,7 +153,7 @@ scan_directory_ci(const char *dirname, const char *fname, int fnamelen,
    while ((direntry = ReadDir(dirdesc, dirname)) != NULL)
    {
        /*
-        * Ignore . and .., plus any other "hidden" files.  This is a security
+        * Ignore . and .., plus any other "hidden" files.  This is a security
         * measure to prevent access to files outside the timezone directory.
         */
        if (direntry->d_name[0] == '.')
@@ -907,7 +907,7 @@ static const struct
        "Australia/Perth"
    },                          /* (GMT+08:00) Perth */
 /* {"W. Central Africa Standard Time", "W. Central Africa Daylight Time",
-    *   *   *   *   *  ""}, Could not find a match for this one. Excluded for now. *//* (
+    *   *   *   *   *   *  ""}, Could not find a match for this one. Excluded for now. *//* (
     * G MT+01:00) West Central Africa */
    {
        "W. Europe Standard Time", "W. Europe Daylight Time",
@@ -1087,7 +1087,7 @@ typedef struct
    /* tznameupper contains the all-upper-case name of the timezone */
    char        tznameupper[TZ_STRLEN_MAX + 1];
    pg_tz       tz;
-} pg_tz_cache;
+}  pg_tz_cache;
 
 static HTAB *timezone_cache = NULL;
 
@@ -1135,8 +1135,8 @@ pg_tzset(const char *name)
    /*
     * Upcase the given name to perform a case-insensitive hashtable search.
     * (We could alternatively downcase it, but we prefer upcase so that we
-    * can get consistently upcased results from tzparse() in case the name
-    * is a POSIX-style timezone spec.)
+    * can get consistently upcased results from tzparse() in case the name is
+    * a POSIX-style timezone spec.)
     */
    p = uppername;
    while (*name)
@@ -1209,7 +1209,7 @@ tz_acceptable(pg_tz *tz)
 
 
 /*
- * Get a pg_tz struct for the given timezone name.  Returns NULL if name
+ * Get a pg_tz struct for the given timezone name. Returns NULL if name
  * is invalid or not an "acceptable" zone.
  */
 static pg_tz *
@@ -1267,18 +1267,17 @@ select_default_timezone(void)
  *
  * This is called before GUC variable initialization begins.  Its purpose
  * is to ensure that elog.c has a pgtz variable available to format timestamps
- * with, in case log_line_prefix is set to a value requiring that.  We cannot
+ * with, in case log_line_prefix is set to a value requiring that. We cannot
  * set log_timezone yet.
  */
 void
 pg_timezone_pre_initialize(void)
 {
    /*
-    * We can't use tzload() because we may not know where PGSHAREDIR
-    * is (in particular this is true in an EXEC_BACKEND subprocess).
-    * Since this timezone variable will only be used for emergency
-    * fallback purposes, it seems OK to just use the "lastditch" case
-    * provided by tzparse().
+    * We can't use tzload() because we may not know where PGSHAREDIR is (in
+    * particular this is true in an EXEC_BACKEND subprocess). Since this
+    * timezone variable will only be used for emergency fallback purposes, it
+    * seems OK to just use the "lastditch" case provided by tzparse().
     */
    if (tzparse("GMT", &gmt_timezone_data.state, TRUE) != 0)
        elog(FATAL, "could not initialize GMT timezone");
index c11882f337a29dc24dc3aafff6892a88bccf45d5..00e9a1e51bb8cf0ad4e7f129b35bbd5ceeedd9e5 100644 (file)
@@ -9,7 +9,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/timezone/pgtz.h,v 1.19 2007/01/05 22:20:04 momjian Exp $
+ *   $PostgreSQL: pgsql/src/timezone/pgtz.h,v 1.20 2007/11/15 21:14:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -64,7 +64,7 @@ struct pg_tz
 extern int pg_open_tzfile(const char *name, char *canonname);
 
 /* in localtime.c */
-extern int tzload(const char *name, char *canonname, struct state *sp);
-extern int tzparse(const char *name, struct state *sp, int lastditch);
+extern int tzload(const char *name, char *canonname, struct state * sp);
+extern int tzparse(const char *name, struct state * sp, int lastditch);
 
 #endif   /* _PGTZ_H */
index ef5cbf4023e7dfdd72cde8dd0e5852aee6ced18a..fd85a064b00dc81e1ef3bb04d535022aa7f1f812 100644 (file)
@@ -40,7 +40,8 @@ main(int argc, char *argv[])
    int         tmpfile,
                i,
                loops = 1000;
-   char       *full_buf = (char *) malloc(XLOG_SEG_SIZE), *buf;
+   char       *full_buf = (char *) malloc(XLOG_SEG_SIZE),
+              *buf;
    char       *filename = FSYNC_FILENAME;
 
    if (argc > 2 && strcmp(argv[1], "-f") == 0)
@@ -65,7 +66,7 @@ main(int argc, char *argv[])
        die("fsync failed");
    close(tmpfile);
 
-   buf = (char *)TYPEALIGN(ALIGNOF_XLOG_BUFFER, full_buf);
+   buf = (char *) TYPEALIGN(ALIGNOF_XLOG_BUFFER, full_buf);
 
    printf("Simple write timing:\n");
    /* write only */
@@ -74,7 +75,7 @@ main(int argc, char *argv[])
    {
        if ((tmpfile = open(filename, O_RDWR, 0)) == -1)
            die("Cannot open output file.");
-       if (write(tmpfile, buf, WRITE_SIZE/2) != WRITE_SIZE/2)
+       if (write(tmpfile, buf, WRITE_SIZE / 2) != WRITE_SIZE / 2)
            die("write failed");
        close(tmpfile);
    }
@@ -92,7 +93,7 @@ main(int argc, char *argv[])
    {
        if ((tmpfile = open(filename, O_RDWR, 0)) == -1)
            die("Cannot open output file.");
-       if (write(tmpfile, buf, WRITE_SIZE/2) != WRITE_SIZE/2)
+       if (write(tmpfile, buf, WRITE_SIZE / 2) != WRITE_SIZE / 2)
            die("write failed");
        if (fsync(tmpfile) != 0)
            die("fsync failed");
@@ -113,7 +114,7 @@ main(int argc, char *argv[])
    {
        if ((tmpfile = open(filename, O_RDWR, 0)) == -1)
            die("Cannot open output file.");
-       if (write(tmpfile, buf, WRITE_SIZE/2) != WRITE_SIZE/2)
+       if (write(tmpfile, buf, WRITE_SIZE / 2) != WRITE_SIZE / 2)
            die("write failed");
        close(tmpfile);
        /* reopen file */
@@ -150,9 +151,9 @@ main(int argc, char *argv[])
    gettimeofday(&start_t, NULL);
    for (i = 0; i < loops; i++)
    {
-       if (write(tmpfile, buf, WRITE_SIZE/2) != WRITE_SIZE/2)
+       if (write(tmpfile, buf, WRITE_SIZE / 2) != WRITE_SIZE / 2)
            die("write failed");
-       if (write(tmpfile, buf, WRITE_SIZE/2) != WRITE_SIZE/2)
+       if (write(tmpfile, buf, WRITE_SIZE / 2) != WRITE_SIZE / 2)
            die("write failed");
    }
    gettimeofday(&elapse_t, NULL);
@@ -173,7 +174,7 @@ main(int argc, char *argv[])
        die("Cannot open output file.");
    gettimeofday(&start_t, NULL);
    for (i = 0; i < loops; i++)
-       if (write(tmpfile, buf, WRITE_SIZE/2) != WRITE_SIZE/2)
+       if (write(tmpfile, buf, WRITE_SIZE / 2) != WRITE_SIZE / 2)
            die("write failed");
    gettimeofday(&elapse_t, NULL);
    close(tmpfile);
@@ -186,7 +187,7 @@ main(int argc, char *argv[])
        die("Cannot open output file.");
    gettimeofday(&start_t, NULL);
    for (i = 0; i < loops; i++)
-       if (write(tmpfile, buf, WRITE_SIZE/2) != WRITE_SIZE/2)
+       if (write(tmpfile, buf, WRITE_SIZE / 2) != WRITE_SIZE / 2)
            die("write failed");
    gettimeofday(&elapse_t, NULL);
    close(tmpfile);
@@ -205,7 +206,7 @@ main(int argc, char *argv[])
    gettimeofday(&start_t, NULL);
    for (i = 0; i < loops; i++)
    {
-       if (write(tmpfile, buf, WRITE_SIZE/2) != WRITE_SIZE/2)
+       if (write(tmpfile, buf, WRITE_SIZE / 2) != WRITE_SIZE / 2)
            die("write failed");
        fdatasync(tmpfile);
    }
@@ -224,7 +225,7 @@ main(int argc, char *argv[])
    gettimeofday(&start_t, NULL);
    for (i = 0; i < loops; i++)
    {
-       if (write(tmpfile, buf, WRITE_SIZE/2) != WRITE_SIZE/2)
+       if (write(tmpfile, buf, WRITE_SIZE / 2) != WRITE_SIZE / 2)
            die("write failed");
        if (fsync(tmpfile) != 0)
            die("fsync failed");
@@ -244,9 +245,9 @@ main(int argc, char *argv[])
    gettimeofday(&start_t, NULL);
    for (i = 0; i < loops; i++)
    {
-       if (write(tmpfile, buf, WRITE_SIZE/2) != WRITE_SIZE/2)
+       if (write(tmpfile, buf, WRITE_SIZE / 2) != WRITE_SIZE / 2)
            die("write failed");
-       if (write(tmpfile, buf, WRITE_SIZE/2) != WRITE_SIZE/2)
+       if (write(tmpfile, buf, WRITE_SIZE / 2) != WRITE_SIZE / 2)
            die("write failed");
    }
    gettimeofday(&elapse_t, NULL);
@@ -265,9 +266,9 @@ main(int argc, char *argv[])
    gettimeofday(&start_t, NULL);
    for (i = 0; i < loops; i++)
    {
-       if (write(tmpfile, buf, WRITE_SIZE/2) != WRITE_SIZE/2)
+       if (write(tmpfile, buf, WRITE_SIZE / 2) != WRITE_SIZE / 2)
            die("write failed");
-       if (write(tmpfile, buf, WRITE_SIZE/2) != WRITE_SIZE/2)
+       if (write(tmpfile, buf, WRITE_SIZE / 2) != WRITE_SIZE / 2)
            die("write failed");
    }
    gettimeofday(&elapse_t, NULL);
@@ -284,9 +285,9 @@ main(int argc, char *argv[])
    gettimeofday(&start_t, NULL);
    for (i = 0; i < loops; i++)
    {
-       if (write(tmpfile, buf, WRITE_SIZE/2) != WRITE_SIZE/2)
+       if (write(tmpfile, buf, WRITE_SIZE / 2) != WRITE_SIZE / 2)
            die("write failed");
-       if (write(tmpfile, buf, WRITE_SIZE/2) != WRITE_SIZE/2)
+       if (write(tmpfile, buf, WRITE_SIZE / 2) != WRITE_SIZE / 2)
            die("write failed");
        fdatasync(tmpfile);
    }
@@ -305,9 +306,9 @@ main(int argc, char *argv[])
    gettimeofday(&start_t, NULL);
    for (i = 0; i < loops; i++)
    {
-       if (write(tmpfile, buf, WRITE_SIZE/2) != WRITE_SIZE/2)
+       if (write(tmpfile, buf, WRITE_SIZE / 2) != WRITE_SIZE / 2)
            die("write failed");
-       if (write(tmpfile, buf, WRITE_SIZE/2) != WRITE_SIZE/2)
+       if (write(tmpfile, buf, WRITE_SIZE / 2) != WRITE_SIZE / 2)
            die("write failed");
        if (fsync(tmpfile) != 0)
            die("fsync failed");