summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/common/heaptuple.c6
-rw-r--r--src/backend/access/common/printtup.c6
-rw-r--r--src/backend/access/common/reloptions.c64
-rw-r--r--src/backend/access/gin/ginarrayproc.c67
-rw-r--r--src/backend/access/gin/ginbtree.c315
-rw-r--r--src/backend/access/gin/ginbulk.c240
-rw-r--r--src/backend/access/gin/gindatapage.c506
-rw-r--r--src/backend/access/gin/ginentrypage.c419
-rw-r--r--src/backend/access/gin/ginget.c448
-rw-r--r--src/backend/access/gin/gininsert.c249
-rw-r--r--src/backend/access/gin/ginscan.c235
-rw-r--r--src/backend/access/gin/ginutil.c160
-rw-r--r--src/backend/access/gin/ginvacuum.c591
-rw-r--r--src/backend/access/gin/ginxlog.c453
-rw-r--r--src/backend/access/gist/gist.c151
-rw-r--r--src/backend/access/gist/gistget.c19
-rw-r--r--src/backend/access/gist/gistproc.c117
-rw-r--r--src/backend/access/gist/gistscan.c6
-rw-r--r--src/backend/access/gist/gistsplit.c482
-rw-r--r--src/backend/access/gist/gistutil.c189
-rw-r--r--src/backend/access/gist/gistvacuum.c194
-rw-r--r--src/backend/access/gist/gistxlog.c150
-rw-r--r--src/backend/access/hash/hashfunc.c8
-rw-r--r--src/backend/access/hash/hashpage.c4
-rw-r--r--src/backend/access/heap/heapam.c86
-rw-r--r--src/backend/access/heap/tuptoaster.c4
-rw-r--r--src/backend/access/index/genam.c4
-rw-r--r--src/backend/access/index/indexam.c8
-rw-r--r--src/backend/access/nbtree/nbtinsert.c50
-rw-r--r--src/backend/access/nbtree/nbtpage.c22
-rw-r--r--src/backend/access/nbtree/nbtree.c152
-rw-r--r--src/backend/access/nbtree/nbtsearch.c53
-rw-r--r--src/backend/access/nbtree/nbtsort.c18
-rw-r--r--src/backend/access/nbtree/nbtutils.c73
-rw-r--r--src/backend/access/nbtree/nbtxlog.c44
-rw-r--r--src/backend/access/transam/clog.c4
-rw-r--r--src/backend/access/transam/multixact.c12
-rw-r--r--src/backend/access/transam/slru.c38
-rw-r--r--src/backend/access/transam/twophase.c6
-rw-r--r--src/backend/access/transam/varsup.c14
-rw-r--r--src/backend/access/transam/xact.c32
-rw-r--r--src/backend/access/transam/xlog.c244
-rw-r--r--src/backend/access/transam/xlogutils.c8
-rw-r--r--src/backend/bootstrap/bootstrap.c9
-rw-r--r--src/backend/catalog/aclchk.c109
-rw-r--r--src/backend/catalog/catalog.c4
-rw-r--r--src/backend/catalog/dependency.c21
-rw-r--r--src/backend/catalog/heap.c36
-rw-r--r--src/backend/catalog/index.c123
-rw-r--r--src/backend/catalog/namespace.c12
-rw-r--r--src/backend/catalog/pg_aggregate.c16
-rw-r--r--src/backend/catalog/pg_depend.c4
-rw-r--r--src/backend/catalog/pg_shdepend.c17
-rw-r--r--src/backend/catalog/pg_type.c42
-rw-r--r--src/backend/catalog/toasting.c4
-rw-r--r--src/backend/commands/aggregatecmds.c24
-rw-r--r--src/backend/commands/analyze.c17
-rw-r--r--src/backend/commands/cluster.c6
-rw-r--r--src/backend/commands/comment.c57
-rw-r--r--src/backend/commands/copy.c181
-rw-r--r--src/backend/commands/dbcommands.c76
-rw-r--r--src/backend/commands/define.c9
-rw-r--r--src/backend/commands/explain.c10
-rw-r--r--src/backend/commands/functioncmds.c8
-rw-r--r--src/backend/commands/indexcmds.c56
-rw-r--r--src/backend/commands/opclasscmds.c20
-rw-r--r--src/backend/commands/operatorcmds.c18
-rw-r--r--src/backend/commands/portalcmds.c6
-rw-r--r--src/backend/commands/prepare.c40
-rw-r--r--src/backend/commands/proclang.c10
-rw-r--r--src/backend/commands/sequence.c16
-rw-r--r--src/backend/commands/tablecmds.c170
-rw-r--r--src/backend/commands/tablespace.c10
-rw-r--r--src/backend/commands/trigger.c67
-rw-r--r--src/backend/commands/typecmds.c18
-rw-r--r--src/backend/commands/user.c32
-rw-r--r--src/backend/commands/vacuum.c108
-rw-r--r--src/backend/commands/vacuumlazy.c31
-rw-r--r--src/backend/commands/variable.c4
-rw-r--r--src/backend/commands/view.c4
-rw-r--r--src/backend/executor/execMain.c86
-rw-r--r--src/backend/executor/execProcnode.c4
-rw-r--r--src/backend/executor/execQual.c38
-rw-r--r--src/backend/executor/execTuples.c8
-rw-r--r--src/backend/executor/execUtils.c6
-rw-r--r--src/backend/executor/functions.c8
-rw-r--r--src/backend/executor/nodeAgg.c90
-rw-r--r--src/backend/executor/nodeAppend.c8
-rw-r--r--src/backend/executor/nodeBitmapHeapscan.c33
-rw-r--r--src/backend/executor/nodeBitmapIndexscan.c18
-rw-r--r--src/backend/executor/nodeHashjoin.c28
-rw-r--r--src/backend/executor/nodeIndexscan.c47
-rw-r--r--src/backend/executor/nodeMaterial.c24
-rw-r--r--src/backend/executor/nodeMergejoin.c14
-rw-r--r--src/backend/executor/nodeNestloop.c10
-rw-r--r--src/backend/executor/nodeSeqscan.c4
-rw-r--r--src/backend/executor/nodeSort.c13
-rw-r--r--src/backend/executor/nodeSubplan.c16
-rw-r--r--src/backend/executor/nodeSubqueryscan.c4
-rw-r--r--src/backend/executor/nodeTidscan.c29
-rw-r--r--src/backend/executor/nodeValuesscan.c56
-rw-r--r--src/backend/executor/spi.c18
-rw-r--r--src/backend/libpq/auth.c263
-rw-r--r--src/backend/libpq/be-secure.c21
-rw-r--r--src/backend/libpq/hba.c6
-rw-r--r--src/backend/libpq/pqcomm.c9
-rw-r--r--src/backend/main/main.c54
-rw-r--r--src/backend/nodes/copyfuncs.c8
-rw-r--r--src/backend/nodes/equalfuncs.c6
-rw-r--r--src/backend/nodes/makefuncs.c4
-rw-r--r--src/backend/nodes/params.c8
-rw-r--r--src/backend/optimizer/path/allpaths.c30
-rw-r--r--src/backend/optimizer/path/clausesel.c20
-rw-r--r--src/backend/optimizer/path/costsize.c53
-rw-r--r--src/backend/optimizer/path/indxpath.c119
-rw-r--r--src/backend/optimizer/path/joinpath.c26
-rw-r--r--src/backend/optimizer/path/joinrels.c28
-rw-r--r--src/backend/optimizer/path/orindxpath.c6
-rw-r--r--src/backend/optimizer/path/pathkeys.c8
-rw-r--r--src/backend/optimizer/path/tidpath.c6
-rw-r--r--src/backend/optimizer/plan/createplan.c69
-rw-r--r--src/backend/optimizer/plan/initsplan.c89
-rw-r--r--src/backend/optimizer/plan/planagg.c12
-rw-r--r--src/backend/optimizer/plan/planmain.c22
-rw-r--r--src/backend/optimizer/plan/planner.c26
-rw-r--r--src/backend/optimizer/plan/setrefs.c18
-rw-r--r--src/backend/optimizer/plan/subselect.c31
-rw-r--r--src/backend/optimizer/prep/prepjointree.c173
-rw-r--r--src/backend/optimizer/prep/prepqual.c10
-rw-r--r--src/backend/optimizer/prep/preptlist.c10
-rw-r--r--src/backend/optimizer/prep/prepunion.c83
-rw-r--r--src/backend/optimizer/util/clauses.c55
-rw-r--r--src/backend/optimizer/util/pathnode.c14
-rw-r--r--src/backend/optimizer/util/plancat.c32
-rw-r--r--src/backend/optimizer/util/predtest.c47
-rw-r--r--src/backend/optimizer/util/relnode.c11
-rw-r--r--src/backend/optimizer/util/restrictinfo.c9
-rw-r--r--src/backend/parser/analyze.c240
-rw-r--r--src/backend/parser/parse_clause.c43
-rw-r--r--src/backend/parser/parse_coerce.c28
-rw-r--r--src/backend/parser/parse_expr.c127
-rw-r--r--src/backend/parser/parse_func.c10
-rw-r--r--src/backend/parser/parse_node.c8
-rw-r--r--src/backend/parser/parse_oper.c21
-rw-r--r--src/backend/parser/parse_relation.c39
-rw-r--r--src/backend/parser/parse_target.c28
-rw-r--r--src/backend/parser/parse_type.c6
-rw-r--r--src/backend/parser/parser.c17
-rw-r--r--src/backend/port/win32/socket.c4
-rw-r--r--src/backend/port/win32/timer.c6
-rw-r--r--src/backend/port/win32_sema.c26
-rw-r--r--src/backend/postmaster/autovacuum.c42
-rw-r--r--src/backend/postmaster/bgwriter.c30
-rw-r--r--src/backend/postmaster/pgstat.c126
-rw-r--r--src/backend/postmaster/postmaster.c67
-rw-r--r--src/backend/rewrite/rewriteDefine.c31
-rw-r--r--src/backend/rewrite/rewriteHandler.c64
-rw-r--r--src/backend/rewrite/rewriteManip.c7
-rw-r--r--src/backend/rewrite/rewriteRemove.c6
-rw-r--r--src/backend/storage/buffer/bufmgr.c47
-rw-r--r--src/backend/storage/buffer/freelist.c14
-rw-r--r--src/backend/storage/file/fd.c10
-rw-r--r--src/backend/storage/freespace/freespace.c15
-rw-r--r--src/backend/storage/ipc/ipci.c10
-rw-r--r--src/backend/storage/ipc/procarray.c25
-rw-r--r--src/backend/storage/ipc/shmem.c62
-rw-r--r--src/backend/storage/lmgr/lmgr.c32
-rw-r--r--src/backend/storage/lmgr/lock.c61
-rw-r--r--src/backend/storage/lmgr/lwlock.c26
-rw-r--r--src/backend/storage/lmgr/proc.c74
-rw-r--r--src/backend/storage/lmgr/s_lock.c5
-rw-r--r--src/backend/storage/page/itemptr.c4
-rw-r--r--src/backend/storage/smgr/md.c6
-rw-r--r--src/backend/storage/smgr/smgr.c18
-rw-r--r--src/backend/tcop/fastpath.c16
-rw-r--r--src/backend/tcop/postgres.c112
-rw-r--r--src/backend/tcop/pquery.c35
-rw-r--r--src/backend/tcop/utility.c33
-rw-r--r--src/backend/utils/adt/arrayfuncs.c36
-rw-r--r--src/backend/utils/adt/datetime.c106
-rw-r--r--src/backend/utils/adt/domains.c30
-rw-r--r--src/backend/utils/adt/float.c88
-rw-r--r--src/backend/utils/adt/formatting.c20
-rw-r--r--src/backend/utils/adt/int.c20
-rw-r--r--src/backend/utils/adt/int8.c4
-rw-r--r--src/backend/utils/adt/like.c14
-rw-r--r--src/backend/utils/adt/lockfuncs.c10
-rw-r--r--src/backend/utils/adt/misc.c20
-rw-r--r--src/backend/utils/adt/network.c98
-rw-r--r--src/backend/utils/adt/numeric.c59
-rw-r--r--src/backend/utils/adt/oid.c10
-rw-r--r--src/backend/utils/adt/pg_locale.c25
-rw-r--r--src/backend/utils/adt/pgstatfuncs.c10
-rw-r--r--src/backend/utils/adt/regexp.c4
-rw-r--r--src/backend/utils/adt/ri_triggers.c18
-rw-r--r--src/backend/utils/adt/ruleutils.c140
-rw-r--r--src/backend/utils/adt/selfuncs.c191
-rw-r--r--src/backend/utils/adt/tid.c18
-rw-r--r--src/backend/utils/adt/timestamp.c75
-rw-r--r--src/backend/utils/adt/varchar.c10
-rw-r--r--src/backend/utils/adt/varlena.c16
-rw-r--r--src/backend/utils/cache/catcache.c6
-rw-r--r--src/backend/utils/cache/inval.c12
-rw-r--r--src/backend/utils/cache/lsyscache.c23
-rw-r--r--src/backend/utils/cache/relcache.c72
-rw-r--r--src/backend/utils/cache/syscache.c5
-rw-r--r--src/backend/utils/cache/typcache.c16
-rw-r--r--src/backend/utils/fmgr/dfmgr.c68
-rw-r--r--src/backend/utils/fmgr/fmgr.c4
-rw-r--r--src/backend/utils/hash/dynahash.c46
-rw-r--r--src/backend/utils/hash/hashfn.c6
-rw-r--r--src/backend/utils/init/globals.c4
-rw-r--r--src/backend/utils/init/miscinit.c8
-rw-r--r--src/backend/utils/init/postinit.c69
-rw-r--r--src/backend/utils/mb/conv.c6
-rw-r--r--src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c8
-rw-r--r--src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c3
-rw-r--r--src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c4
-rw-r--r--src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c14
-rw-r--r--src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c4
-rw-r--r--src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c32
-rw-r--r--src/backend/utils/mb/mbutils.c29
-rw-r--r--src/backend/utils/mb/wchar.c210
-rw-r--r--src/backend/utils/misc/guc.c145
-rw-r--r--src/backend/utils/misc/ps_status.c11
-rw-r--r--src/backend/utils/misc/tzparser.c109
-rw-r--r--src/backend/utils/mmgr/aset.c4
-rw-r--r--src/backend/utils/mmgr/portalmem.c28
-rw-r--r--src/backend/utils/sort/logtape.c24
-rw-r--r--src/backend/utils/sort/tuplesort.c161
-rw-r--r--src/backend/utils/sort/tuplestore.c3
-rw-r--r--src/backend/utils/time/tqual.c10
-rw-r--r--src/bin/initdb/initdb.c256
-rw-r--r--src/bin/pg_config/pg_config.c10
-rw-r--r--src/bin/pg_ctl/pg_ctl.c387
-rw-r--r--src/bin/pg_dump/dumputils.c24
-rw-r--r--src/bin/pg_dump/dumputils.h6
-rw-r--r--src/bin/pg_dump/pg_backup.h4
-rw-r--r--src/bin/pg_dump/pg_backup_archiver.c34
-rw-r--r--src/bin/pg_dump/pg_backup_archiver.h48
-rw-r--r--src/bin/pg_dump/pg_backup_custom.c6
-rw-r--r--src/bin/pg_dump/pg_backup_db.c10
-rw-r--r--src/bin/pg_dump/pg_backup_tar.c19
-rw-r--r--src/bin/pg_dump/pg_dump.c213
-rw-r--r--src/bin/pg_dump/pg_dumpall.c37
-rw-r--r--src/bin/pg_resetxlog/pg_resetxlog.c4
-rw-r--r--src/bin/psql/command.c87
-rw-r--r--src/bin/psql/command.h14
-rw-r--r--src/bin/psql/common.c42
-rw-r--r--src/bin/psql/common.h3
-rw-r--r--src/bin/psql/copy.c50
-rw-r--r--src/bin/psql/describe.c40
-rw-r--r--src/bin/psql/input.c43
-rw-r--r--src/bin/psql/mainloop.c14
-rw-r--r--src/bin/psql/mbprint.c112
-rw-r--r--src/bin/psql/mbprint.h9
-rw-r--r--src/bin/psql/print.c294
-rw-r--r--src/bin/psql/settings.h8
-rw-r--r--src/bin/psql/startup.c5
-rw-r--r--src/bin/psql/stringutils.c4
-rw-r--r--src/bin/psql/tab-complete.c53
-rw-r--r--src/bin/psql/variables.h4
-rw-r--r--src/bin/scripts/common.c11
-rw-r--r--src/bin/scripts/createuser.c20
-rw-r--r--src/include/access/gin.h399
-rw-r--r--src/include/access/gist.h8
-rw-r--r--src/include/access/gist_private.h57
-rw-r--r--src/include/access/heapam.h4
-rw-r--r--src/include/access/hio.h4
-rw-r--r--src/include/access/htup.h8
-rw-r--r--src/include/access/nbtree.h42
-rw-r--r--src/include/access/reloptions.h12
-rw-r--r--src/include/access/relscan.h6
-rw-r--r--src/include/access/skey.h4
-rw-r--r--src/include/access/slru.h6
-rw-r--r--src/include/access/tupdesc.h4
-rw-r--r--src/include/access/xlog_internal.h4
-rw-r--r--src/include/bootstrap/bootstrap.h16
-rw-r--r--src/include/c.h7
-rw-r--r--src/include/catalog/pg_aggregate.h12
-rw-r--r--src/include/catalog/pg_amop.h170
-rw-r--r--src/include/catalog/pg_amproc.h4
-rw-r--r--src/include/catalog/pg_attribute.h4
-rw-r--r--src/include/catalog/pg_class.h4
-rw-r--r--src/include/catalog/pg_control.h4
-rw-r--r--src/include/catalog/pg_index.h4
-rw-r--r--src/include/catalog/pg_operator.h26
-rw-r--r--src/include/catalog/pg_proc.h16
-rw-r--r--src/include/catalog/pg_shdescription.h6
-rw-r--r--src/include/catalog/pg_type.h4
-rw-r--r--src/include/catalog/toasting.h22
-rw-r--r--src/include/commands/comment.h2
-rw-r--r--src/include/commands/defrem.h4
-rw-r--r--src/include/commands/explain.h4
-rw-r--r--src/include/commands/prepare.h25
-rw-r--r--src/include/commands/tablecmds.h6
-rw-r--r--src/include/commands/user.h6
-rw-r--r--src/include/executor/executor.h12
-rw-r--r--src/include/executor/nodeIndexscan.h6
-rw-r--r--src/include/executor/nodeValuesscan.h4
-rw-r--r--src/include/executor/spi.h8
-rw-r--r--src/include/executor/tuptable.h10
-rw-r--r--src/include/fmgr.h23
-rw-r--r--src/include/funcapi.h8
-rw-r--r--src/include/getaddrinfo.h6
-rw-r--r--src/include/libpq/hba.h4
-rw-r--r--src/include/libpq/libpq-be.h6
-rw-r--r--src/include/mb/pg_wchar.h46
-rw-r--r--src/include/nodes/params.h4
-rw-r--r--src/include/nodes/parsenodes.h71
-rw-r--r--src/include/nodes/primnodes.h6
-rw-r--r--src/include/nodes/relation.h81
-rw-r--r--src/include/optimizer/cost.h8
-rw-r--r--src/include/optimizer/pathnode.h4
-rw-r--r--src/include/optimizer/plancat.h6
-rw-r--r--src/include/optimizer/prep.h8
-rw-r--r--src/include/optimizer/restrictinfo.h4
-rw-r--r--src/include/parser/analyze.h8
-rw-r--r--src/include/parser/parse_coerce.h4
-rw-r--r--src/include/parser/parse_func.h4
-rw-r--r--src/include/parser/parse_node.h8
-rw-r--r--src/include/parser/parse_oper.h20
-rw-r--r--src/include/parser/parse_relation.h6
-rw-r--r--src/include/pg_trace.h12
-rw-r--r--src/include/pgstat.h18
-rw-r--r--src/include/port.h41
-rw-r--r--src/include/port/darwin.h3
-rw-r--r--src/include/port/linux.h3
-rw-r--r--src/include/port/netbsd.h3
-rw-r--r--src/include/port/win32.h10
-rw-r--r--src/include/port/win32/dlfcn.h4
-rw-r--r--src/include/port/win32/grp.h4
-rw-r--r--src/include/port/win32/netdb.h3
-rw-r--r--src/include/port/win32/sys/socket.h4
-rw-r--r--src/include/port/win32_msvc/dirent.h16
-rw-r--r--src/include/port/win32_msvc/sys/file.h2
-rw-r--r--src/include/port/win32_msvc/sys/param.h2
-rw-r--r--src/include/port/win32_msvc/sys/time.h2
-rw-r--r--src/include/port/win32_msvc/unistd.h2
-rw-r--r--src/include/port/win32_msvc/utime.h2
-rw-r--r--src/include/storage/freespace.h16
-rw-r--r--src/include/storage/lock.h4
-rw-r--r--src/include/storage/pg_sema.h4
-rw-r--r--src/include/storage/pg_shmem.h4
-rw-r--r--src/include/storage/proc.h4
-rw-r--r--src/include/tcop/tcopprot.h4
-rw-r--r--src/include/utils/acl.h14
-rw-r--r--src/include/utils/catcache.h4
-rw-r--r--src/include/utils/hsearch.h8
-rw-r--r--src/include/utils/lsyscache.h4
-rw-r--r--src/include/utils/portal.h4
-rw-r--r--src/include/utils/rel.h12
-rw-r--r--src/include/utils/resowner.h6
-rw-r--r--src/include/utils/selfuncs.h32
-rw-r--r--src/include/utils/timestamp.h5
-rw-r--r--src/include/utils/tqual.h3
-rw-r--r--src/include/utils/tuplesort.h8
-rw-r--r--src/include/utils/tuplestore.h6
-rw-r--r--src/include/utils/typcache.h6
-rw-r--r--src/include/utils/tzparser.h12
-rw-r--r--src/interfaces/ecpg/compatlib/informix.c20
-rw-r--r--src/interfaces/ecpg/ecpglib/connect.c14
-rw-r--r--src/interfaces/ecpg/ecpglib/data.c869
-rw-r--r--src/interfaces/ecpg/ecpglib/descriptor.c15
-rw-r--r--src/interfaces/ecpg/ecpglib/error.c4
-rw-r--r--src/interfaces/ecpg/ecpglib/execute.c164
-rw-r--r--src/interfaces/ecpg/ecpglib/extern.h3
-rw-r--r--src/interfaces/ecpg/ecpglib/misc.c6
-rw-r--r--src/interfaces/ecpg/ecpglib/prepare.c9
-rw-r--r--src/interfaces/ecpg/include/ecpglib.h4
-rw-r--r--src/interfaces/ecpg/include/pgtypes_date.h4
-rw-r--r--src/interfaces/ecpg/include/pgtypes_interval.h12
-rw-r--r--src/interfaces/ecpg/pgtypeslib/datetime.c7
-rw-r--r--src/interfaces/ecpg/pgtypeslib/interval.c15
-rw-r--r--src/interfaces/ecpg/pgtypeslib/numeric.c17
-rw-r--r--src/interfaces/ecpg/pgtypeslib/timestamp.c175
-rw-r--r--src/interfaces/ecpg/preproc/output.c11
-rw-r--r--src/interfaces/ecpg/test/expected/compat_informix-charfuncs.c12
-rw-r--r--src/interfaces/ecpg/test/expected/compat_informix-dec_test.c121
-rw-r--r--src/interfaces/ecpg/test/expected/compat_informix-rfmtdate.c36
-rw-r--r--src/interfaces/ecpg/test/expected/compat_informix-rfmtlong.c10
-rw-r--r--src/interfaces/ecpg/test/expected/compat_informix-rnull.c275
-rw-r--r--src/interfaces/ecpg/test/expected/compat_informix-test_informix.c220
-rw-r--r--src/interfaces/ecpg/test/expected/compat_informix-test_informix2.c215
-rw-r--r--src/interfaces/ecpg/test/expected/connect-test1.c129
-rw-r--r--src/interfaces/ecpg/test/expected/connect-test2.c75
-rw-r--r--src/interfaces/ecpg/test/expected/connect-test3.c72
-rw-r--r--src/interfaces/ecpg/test/expected/connect-test4.c12
-rw-r--r--src/interfaces/ecpg/test/expected/connect-test5.c129
-rw-r--r--src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c259
-rw-r--r--src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c146
-rw-r--r--src/interfaces/ecpg/test/expected/pgtypeslib-num_test.c86
-rw-r--r--src/interfaces/ecpg/test/expected/pgtypeslib-num_test2.c143
-rw-r--r--src/interfaces/ecpg/test/expected/preproc-comment.c23
-rw-r--r--src/interfaces/ecpg/test/expected/preproc-define.c134
-rw-r--r--src/interfaces/ecpg/test/expected/preproc-init.c162
-rw-r--r--src/interfaces/ecpg/test/expected/preproc-type.c184
-rw-r--r--src/interfaces/ecpg/test/expected/preproc-variable.c240
-rw-r--r--src/interfaces/ecpg/test/expected/preproc-whenever.c223
-rw-r--r--src/interfaces/ecpg/test/expected/sql-array.c197
-rw-r--r--src/interfaces/ecpg/test/expected/sql-binary.c217
-rw-r--r--src/interfaces/ecpg/test/expected/sql-code100.c113
-rw-r--r--src/interfaces/ecpg/test/expected/sql-copystdout.c64
-rw-r--r--src/interfaces/ecpg/test/expected/sql-define.c138
-rw-r--r--src/interfaces/ecpg/test/expected/sql-desc.c375
-rw-r--r--src/interfaces/ecpg/test/expected/sql-dynalloc.c350
-rw-r--r--src/interfaces/ecpg/test/expected/sql-dynalloc2.c202
-rw-r--r--src/interfaces/ecpg/test/expected/sql-dyntest.c489
-rw-r--r--src/interfaces/ecpg/test/expected/sql-execute.c266
-rw-r--r--src/interfaces/ecpg/test/expected/sql-fetch.c190
-rw-r--r--src/interfaces/ecpg/test/expected/sql-func.c112
-rw-r--r--src/interfaces/ecpg/test/expected/sql-indicators.c114
-rw-r--r--src/interfaces/ecpg/test/expected/sql-quote.c143
-rw-r--r--src/interfaces/ecpg/test/expected/sql-show.c119
-rw-r--r--src/interfaces/ecpg/test/expected/sql-update.c130
-rw-r--r--src/interfaces/ecpg/test/expected/thread-thread.c236
-rw-r--r--src/interfaces/ecpg/test/expected/thread-thread_implicit.c236
-rw-r--r--src/interfaces/libpq/fe-auth.c38
-rw-r--r--src/interfaces/libpq/fe-connect.c97
-rw-r--r--src/interfaces/libpq/fe-exec.c61
-rw-r--r--src/interfaces/libpq/fe-lobj.c20
-rw-r--r--src/interfaces/libpq/fe-misc.c4
-rw-r--r--src/interfaces/libpq/fe-print.c4
-rw-r--r--src/interfaces/libpq/fe-protocol3.c65
-rw-r--r--src/interfaces/libpq/fe-secure.c12
-rw-r--r--src/interfaces/libpq/libpq-fe.h11
-rw-r--r--src/interfaces/libpq/libpq-int.h4
-rw-r--r--src/interfaces/libpq/win32.c2
-rw-r--r--src/pl/plperl/plperl.c334
-rw-r--r--src/pl/plperl/plperl.h20
-rw-r--r--src/pl/plpgsql/src/pl_comp.c6
-rw-r--r--src/pl/plpgsql/src/pl_exec.c99
-rw-r--r--src/pl/plpgsql/src/pl_handler.c4
-rw-r--r--src/pl/plpgsql/src/plpgsql.h41
-rw-r--r--src/pl/plpython/plpython.c200
-rw-r--r--src/pl/tcl/pltcl.c20
-rw-r--r--src/port/dirent.c46
-rw-r--r--src/port/getaddrinfo.c5
-rw-r--r--src/port/isinf.c3
-rw-r--r--src/port/open.c12
-rw-r--r--src/port/path.c16
-rw-r--r--src/port/pgsleep.c4
-rw-r--r--src/port/qsort_arg.c4
-rw-r--r--src/port/snprintf.c39
-rw-r--r--src/port/sprompt.c4
-rw-r--r--src/port/strlcpy.c23
-rw-r--r--src/port/strtol.c2
-rw-r--r--src/test/regress/pg_regress.c293
-rw-r--r--src/timezone/pgtz.c36
449 files changed, 14300 insertions, 11657 deletions
diff --git a/src/backend/access/common/heaptuple.c b/src/backend/access/common/heaptuple.c
index d3b06d8ae6..d0f4b3d382 100644
--- a/src/backend/access/common/heaptuple.c
+++ b/src/backend/access/common/heaptuple.c
@@ -16,7 +16,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/common/heaptuple.c,v 1.110 2006/07/14 14:52:16 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/common/heaptuple.c,v 1.111 2006/10/04 00:29:47 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1294,7 +1294,7 @@ slot_getattr(TupleTableSlot *slot, int attnum, bool *isnull)
{
if (tuple == NULL) /* internal error */
elog(ERROR, "cannot extract system attribute from virtual tuple");
- if (slot->tts_mintuple) /* internal error */
+ if (slot->tts_mintuple) /* internal error */
elog(ERROR, "cannot extract system attribute from minimal tuple");
return heap_getsysattr(tuple, attnum, tupleDesc, isnull);
}
@@ -1480,7 +1480,7 @@ slot_attisnull(TupleTableSlot *slot, int attnum)
{
if (tuple == NULL) /* internal error */
elog(ERROR, "cannot extract system attribute from virtual tuple");
- if (slot->tts_mintuple) /* internal error */
+ if (slot->tts_mintuple) /* internal error */
elog(ERROR, "cannot extract system attribute from minimal tuple");
return heap_attisnull(tuple, attnum);
}
diff --git a/src/backend/access/common/printtup.c b/src/backend/access/common/printtup.c
index 82117e5fe6..ab2d8b4771 100644
--- a/src/backend/access/common/printtup.c
+++ b/src/backend/access/common/printtup.c
@@ -9,7 +9,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/common/printtup.c,v 1.98 2006/08/12 02:52:03 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/common/printtup.c,v 1.99 2006/10/04 00:29:47 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -127,8 +127,8 @@ printtup_startup(DestReceiver *self, int operation, TupleDesc typeinfo)
}
/*
- * If we are supposed to emit row descriptions,
- * then send the tuple descriptor of the tuples.
+ * If we are supposed to emit row descriptions, then send the tuple
+ * descriptor of the tuples.
*/
if (myState->sendDescrip)
SendRowDescriptionMessage(typeinfo,
diff --git a/src/backend/access/common/reloptions.c b/src/backend/access/common/reloptions.c
index 8506070f10..0bcda36c06 100644
--- a/src/backend/access/common/reloptions.c
+++ b/src/backend/access/common/reloptions.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/common/reloptions.c,v 1.1 2006/07/03 22:45:36 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/common/reloptions.c,v 1.2 2006/10/04 00:29:47 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -59,7 +59,7 @@ transformRelOptions(Datum oldOptions, List *defList,
/* Copy any oldOptions that aren't to be replaced */
if (oldOptions != (Datum) 0)
{
- ArrayType *array = DatumGetArrayTypeP(oldOptions);
+ ArrayType *array = DatumGetArrayTypeP(oldOptions);
Datum *oldoptions;
int noldoptions;
int i;
@@ -71,15 +71,15 @@ transformRelOptions(Datum oldOptions, List *defList,
for (i = 0; i < noldoptions; i++)
{
- text *oldoption = DatumGetTextP(oldoptions[i]);
- char *text_str = (char *) VARATT_DATA(oldoption);
- int text_len = VARATT_SIZE(oldoption) - VARHDRSZ;
+ text *oldoption = DatumGetTextP(oldoptions[i]);
+ char *text_str = (char *) VARATT_DATA(oldoption);
+ int text_len = VARATT_SIZE(oldoption) - VARHDRSZ;
/* Search for a match in defList */
foreach(cell, defList)
{
- DefElem *def = lfirst(cell);
- int kw_len = strlen(def->defname);
+ DefElem *def = lfirst(cell);
+ int kw_len = strlen(def->defname);
if (text_len > kw_len && text_str[kw_len] == '=' &&
pg_strncasecmp(text_str, def->defname, kw_len) == 0)
@@ -96,33 +96,33 @@ transformRelOptions(Datum oldOptions, List *defList,
}
/*
- * If CREATE/SET, add new options to array; if RESET, just check that
- * the user didn't say RESET (option=val). (Must do this because the
- * grammar doesn't enforce it.)
+ * If CREATE/SET, add new options to array; if RESET, just check that the
+ * user didn't say RESET (option=val). (Must do this because the grammar
+ * doesn't enforce it.)
*/
foreach(cell, defList)
{
- DefElem *def = lfirst(cell);
+ DefElem *def = lfirst(cell);
if (isReset)
{
if (def->arg != NULL)
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
- errmsg("RESET must not include values for parameters")));
+ errmsg("RESET must not include values for parameters")));
}
else
{
- text *t;
+ text *t;
const char *value;
- Size len;
+ Size len;
if (ignoreOids && pg_strcasecmp(def->defname, "oids") == 0)
continue;
/*
- * Flatten the DefElem into a text string like "name=arg".
- * If we have just "name", assume "name=true" is meant.
+ * Flatten the DefElem into a text string like "name=arg". If we
+ * have just "name", assume "name=true" is meant.
*/
if (def->arg != NULL)
value = defGetString(def);
@@ -163,10 +163,10 @@ transformRelOptions(Datum oldOptions, List *defList,
* containing the corresponding value, or NULL if the keyword does not appear.
*/
void
-parseRelOptions(Datum options, int numkeywords, const char * const *keywords,
+parseRelOptions(Datum options, int numkeywords, const char *const * keywords,
char **values, bool validate)
{
- ArrayType *array;
+ ArrayType *array;
Datum *optiondatums;
int noptions;
int i;
@@ -187,21 +187,21 @@ parseRelOptions(Datum options, int numkeywords, const char * const *keywords,
for (i = 0; i < noptions; i++)
{
- text *optiontext = DatumGetTextP(optiondatums[i]);
- char *text_str = (char *) VARATT_DATA(optiontext);
- int text_len = VARATT_SIZE(optiontext) - VARHDRSZ;
- int j;
+ text *optiontext = DatumGetTextP(optiondatums[i]);
+ char *text_str = (char *) VARATT_DATA(optiontext);
+ int text_len = VARATT_SIZE(optiontext) - VARHDRSZ;
+ int j;
/* Search for a match in keywords */
for (j = 0; j < numkeywords; j++)
{
- int kw_len = strlen(keywords[j]);
+ int kw_len = strlen(keywords[j]);
if (text_len > kw_len && text_str[kw_len] == '=' &&
pg_strncasecmp(text_str, keywords[j], kw_len) == 0)
{
- char *value;
- int value_len;
+ char *value;
+ int value_len;
if (values[j] && validate)
ereport(ERROR,
@@ -218,8 +218,8 @@ parseRelOptions(Datum options, int numkeywords, const char * const *keywords,
}
if (j >= numkeywords && validate)
{
- char *s;
- char *p;
+ char *s;
+ char *p;
s = DatumGetCString(DirectFunctionCall1(textout, optiondatums[i]));
p = strchr(s, '=');
@@ -240,17 +240,17 @@ bytea *
default_reloptions(Datum reloptions, bool validate,
int minFillfactor, int defaultFillfactor)
{
- static const char * const default_keywords[1] = { "fillfactor" };
- char *values[1];
- int32 fillfactor;
+ static const char *const default_keywords[1] = {"fillfactor"};
+ char *values[1];
+ int32 fillfactor;
StdRdOptions *result;
parseRelOptions(reloptions, 1, default_keywords, values, validate);
/*
* If no options, we can just return NULL rather than doing anything.
- * (defaultFillfactor is thus not used, but we require callers to pass
- * it anyway since we would need it if more options were added.)
+ * (defaultFillfactor is thus not used, but we require callers to pass it
+ * anyway since we would need it if more options were added.)
*/
if (values[0] == NULL)
return NULL;
diff --git a/src/backend/access/gin/ginarrayproc.c b/src/backend/access/gin/ginarrayproc.c
index 911cf62983..33a8b44a14 100644
--- a/src/backend/access/gin/ginarrayproc.c
+++ b/src/backend/access/gin/ginarrayproc.c
@@ -1,14 +1,14 @@
/*-------------------------------------------------------------------------
*
* ginarrayproc.c
- * support functions for GIN's indexing of any array
+ * support functions for GIN's indexing of any array
*
*
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/gin/ginarrayproc.c,v 1.5 2006/09/10 20:14:20 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gin/ginarrayproc.c,v 1.6 2006/10/04 00:29:47 momjian Exp $
*-------------------------------------------------------------------------
*/
#include "postgres.h"
@@ -23,64 +23,73 @@
#define GinContainedStrategy 3
#define GinEqualStrategy 4
-#define ARRAYCHECK(x) do { \
+#define ARRAYCHECK(x) do { \
if ( ARR_HASNULL(x) ) \
- ereport(ERROR, \
- (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), \
- errmsg("array must not contain nulls"))); \
-} while(0)
+ ereport(ERROR, \
+ (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), \
+ errmsg("array must not contain nulls"))); \
+} while(0)
/*
* Function used as extractValue and extractQuery both
*/
Datum
-ginarrayextract(PG_FUNCTION_ARGS) {
- ArrayType *array;
- uint32 *nentries = (uint32*)PG_GETARG_POINTER(1);
- Datum *entries = NULL;
- int16 elmlen;
- bool elmbyval;
- char elmalign;
+ginarrayextract(PG_FUNCTION_ARGS)
+{
+ ArrayType *array;
+ uint32 *nentries = (uint32 *) PG_GETARG_POINTER(1);
+ Datum *entries = NULL;
+ int16 elmlen;
+ bool elmbyval;
+ char elmalign;
- /* we should guarantee that array will not be destroyed during all operation */
+ /*
+ * we should guarantee that array will not be destroyed during all
+ * operation
+ */
array = PG_GETARG_ARRAYTYPE_P_COPY(0);
ARRAYCHECK(array);
get_typlenbyvalalign(ARR_ELEMTYPE(array),
- &elmlen, &elmbyval, &elmalign);
+ &elmlen, &elmbyval, &elmalign);
deconstruct_array(array,
- ARR_ELEMTYPE(array),
- elmlen, elmbyval, elmalign,
- &entries, NULL, (int*)nentries);
+ ARR_ELEMTYPE(array),
+ elmlen, elmbyval, elmalign,
+ &entries, NULL, (int *) nentries);
/* we should not free array, entries[i] points into it */
PG_RETURN_POINTER(entries);
}
Datum
-ginarrayconsistent(PG_FUNCTION_ARGS) {
- bool *check = (bool*)PG_GETARG_POINTER(0);
- StrategyNumber strategy = PG_GETARG_UINT16(1);
- ArrayType *query = PG_GETARG_ARRAYTYPE_P(2);
- int res, i, nentries;
+ginarrayconsistent(PG_FUNCTION_ARGS)
+{
+ bool *check = (bool *) PG_GETARG_POINTER(0);
+ StrategyNumber strategy = PG_GETARG_UINT16(1);
+ ArrayType *query = PG_GETARG_ARRAYTYPE_P(2);
+ int res,
+ i,
+ nentries;
/* ARRAYCHECK was already done by previous ginarrayextract call */
- switch( strategy ) {
+ switch (strategy)
+ {
case GinOverlapStrategy:
case GinContainedStrategy:
- /* at least one element in check[] is true, so result = true */
+ /* at least one element in check[] is true, so result = true */
res = TRUE;
break;
case GinContainsStrategy:
case GinEqualStrategy:
- nentries=ArrayGetNItems(ARR_NDIM(query), ARR_DIMS(query));
+ nentries = ArrayGetNItems(ARR_NDIM(query), ARR_DIMS(query));
res = TRUE;
- for(i=0;i<nentries;i++)
- if ( !check[i] ) {
+ for (i = 0; i < nentries; i++)
+ if (!check[i])
+ {
res = FALSE;
break;
}
diff --git a/src/backend/access/gin/ginbtree.c b/src/backend/access/gin/ginbtree.c
index bc3e02973f..fc44a5a0c7 100644
--- a/src/backend/access/gin/ginbtree.c
+++ b/src/backend/access/gin/ginbtree.c
@@ -1,14 +1,14 @@
/*-------------------------------------------------------------------------
*
* ginbtree.c
- * page utilities routines for the postgres inverted index access method.
+ * page utilities routines for the postgres inverted index access method.
*
*
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/gin/ginbtree.c,v 1.4 2006/07/14 14:52:16 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gin/ginbtree.c,v 1.5 2006/10/04 00:29:47 momjian Exp $
*-------------------------------------------------------------------------
*/
@@ -20,24 +20,29 @@
* Locks buffer by needed method for search.
*/
static int
-ginTraverseLock(Buffer buffer, bool searchMode) {
- Page page;
- int access=GIN_SHARE;
+ginTraverseLock(Buffer buffer, bool searchMode)
+{
+ Page page;
+ int access = GIN_SHARE;
LockBuffer(buffer, GIN_SHARE);
- page = BufferGetPage( buffer );
- if ( GinPageIsLeaf(page) ) {
- if ( searchMode == FALSE ) {
+ page = BufferGetPage(buffer);
+ if (GinPageIsLeaf(page))
+ {
+ if (searchMode == FALSE)
+ {
/* we should relock our page */
LockBuffer(buffer, GIN_UNLOCK);
LockBuffer(buffer, GIN_EXCLUSIVE);
/* But root can become non-leaf during relock */
- if ( !GinPageIsLeaf(page) ) {
- /* resore old lock type (very rare) */
+ if (!GinPageIsLeaf(page))
+ {
+ /* resore old lock type (very rare) */
LockBuffer(buffer, GIN_UNLOCK);
LockBuffer(buffer, GIN_SHARE);
- } else
+ }
+ else
access = GIN_EXCLUSIVE;
}
}
@@ -45,9 +50,10 @@ ginTraverseLock(Buffer buffer, bool searchMode) {
return access;
}
-GinBtreeStack*
-ginPrepareFindLeafPage(GinBtree btree, BlockNumber blkno) {
- GinBtreeStack *stack = (GinBtreeStack*)palloc(sizeof(GinBtreeStack));
+GinBtreeStack *
+ginPrepareFindLeafPage(GinBtree btree, BlockNumber blkno)
+{
+ GinBtreeStack *stack = (GinBtreeStack *) palloc(sizeof(GinBtreeStack));
stack->blkno = blkno;
stack->buffer = ReadBuffer(btree->index, stack->blkno);
@@ -62,63 +68,73 @@ ginPrepareFindLeafPage(GinBtree btree, BlockNumber blkno) {
/*
* Locates leaf page contained tuple
*/
-GinBtreeStack*
-ginFindLeafPage(GinBtree btree, GinBtreeStack *stack) {
- bool isfirst=TRUE;
+GinBtreeStack *
+ginFindLeafPage(GinBtree btree, GinBtreeStack *stack)
+{
+ bool isfirst = TRUE;
BlockNumber rootBlkno;
- if ( !stack )
+ if (!stack)
stack = ginPrepareFindLeafPage(btree, GIN_ROOT_BLKNO);
rootBlkno = stack->blkno;
- for(;;) {
- Page page;
+ for (;;)
+ {
+ Page page;
BlockNumber child;
- int access=GIN_SHARE;
+ int access = GIN_SHARE;
stack->off = InvalidOffsetNumber;
-
- page = BufferGetPage( stack->buffer );
- if ( isfirst ) {
- if ( GinPageIsLeaf(page) && !btree->searchMode )
+ page = BufferGetPage(stack->buffer);
+
+ if (isfirst)
+ {
+ if (GinPageIsLeaf(page) && !btree->searchMode)
access = GIN_EXCLUSIVE;
isfirst = FALSE;
- } else
+ }
+ else
access = ginTraverseLock(stack->buffer, btree->searchMode);
- /* ok, page is correctly locked, we should check to move right ..,
- root never has a right link, so small optimization */
- while( btree->fullScan==FALSE && stack->blkno != rootBlkno && btree->isMoveRight(btree, page) ) {
+ /*
+ * ok, page is correctly locked, we should check to move right ..,
+ * root never has a right link, so small optimization
+ */
+ while (btree->fullScan == FALSE && stack->blkno != rootBlkno && btree->isMoveRight(btree, page))
+ {
BlockNumber rightlink = GinPageGetOpaque(page)->rightlink;
- if ( rightlink==InvalidBlockNumber )
+ if (rightlink == InvalidBlockNumber)
/* rightmost page */
break;
stack->blkno = rightlink;
LockBuffer(stack->buffer, GIN_UNLOCK);
stack->buffer = ReleaseAndReadBuffer(stack->buffer, btree->index, stack->blkno);
- LockBuffer(stack->buffer, access);
- page = BufferGetPage( stack->buffer );
+ LockBuffer(stack->buffer, access);
+ page = BufferGetPage(stack->buffer);
}
- if ( GinPageIsLeaf(page) ) /* we found, return locked page */
+ if (GinPageIsLeaf(page)) /* we found, return locked page */
return stack;
/* now we have correct buffer, try to find child */
child = btree->findChildPage(btree, stack);
LockBuffer(stack->buffer, GIN_UNLOCK);
- Assert( child != InvalidBlockNumber );
- Assert( stack->blkno != child );
+ Assert(child != InvalidBlockNumber);
+ Assert(stack->blkno != child);
- if ( btree->searchMode ) {
+ if (btree->searchMode)
+ {
/* in search mode we may forget path to leaf */
stack->blkno = child;
- stack->buffer = ReleaseAndReadBuffer( stack->buffer, btree->index, stack->blkno );
- } else {
- GinBtreeStack *ptr = (GinBtreeStack*)palloc(sizeof(GinBtreeStack));
+ stack->buffer = ReleaseAndReadBuffer(stack->buffer, btree->index, stack->blkno);
+ }
+ else
+ {
+ GinBtreeStack *ptr = (GinBtreeStack *) palloc(sizeof(GinBtreeStack));
ptr->parent = stack;
stack = ptr;
@@ -133,93 +149,110 @@ ginFindLeafPage(GinBtree btree, GinBtreeStack *stack) {
}
void
-freeGinBtreeStack( GinBtreeStack *stack ) {
- while(stack) {
- GinBtreeStack *tmp = stack->parent;
- if ( stack->buffer != InvalidBuffer )
+freeGinBtreeStack(GinBtreeStack *stack)
+{
+ while (stack)
+ {
+ GinBtreeStack *tmp = stack->parent;
+
+ if (stack->buffer != InvalidBuffer)
ReleaseBuffer(stack->buffer);
- pfree( stack );
+ pfree(stack);
stack = tmp;
}
}
/*
- * Try to find parent for current stack position, returns correct
+ * Try to find parent for current stack position, returns correct
* parent and child's offset in stack->parent.
* Function should never release root page to prevent conflicts
* with vacuum process
*/
void
-findParents( GinBtree btree, GinBtreeStack *stack,
- BlockNumber rootBlkno) {
-
- Page page;
- Buffer buffer;
- BlockNumber blkno, leftmostBlkno;
+findParents(GinBtree btree, GinBtreeStack *stack,
+ BlockNumber rootBlkno)
+{
+
+ Page page;
+ Buffer buffer;
+ BlockNumber blkno,
+ leftmostBlkno;
OffsetNumber offset;
- GinBtreeStack *root = stack->parent;
- GinBtreeStack *ptr;
+ GinBtreeStack *root = stack->parent;
+ GinBtreeStack *ptr;
- if ( !root ) {
+ if (!root)
+ {
/* XLog mode... */
- root = (GinBtreeStack*)palloc(sizeof(GinBtreeStack));
+ root = (GinBtreeStack *) palloc(sizeof(GinBtreeStack));
root->blkno = rootBlkno;
root->buffer = ReadBuffer(btree->index, rootBlkno);
LockBuffer(root->buffer, GIN_EXCLUSIVE);
root->parent = NULL;
- } else {
- /* find root, we should not release root page until update is finished!! */
- while( root->parent ) {
- ReleaseBuffer( root->buffer );
+ }
+ else
+ {
+ /*
+ * find root, we should not release root page until update is
+ * finished!!
+ */
+ while (root->parent)
+ {
+ ReleaseBuffer(root->buffer);
root = root->parent;
}
- Assert( root->blkno == rootBlkno );
- Assert( BufferGetBlockNumber(root->buffer) == rootBlkno );
+ Assert(root->blkno == rootBlkno);
+ Assert(BufferGetBlockNumber(root->buffer) == rootBlkno);
LockBuffer(root->buffer, GIN_EXCLUSIVE);
}
root->off = InvalidOffsetNumber;
page = BufferGetPage(root->buffer);
- Assert( !GinPageIsLeaf(page) );
+ Assert(!GinPageIsLeaf(page));
/* check trivial case */
- if ( (root->off = btree->findChildPtr(btree, page, stack->blkno, InvalidOffsetNumber)) != InvalidOffsetNumber ) {
+ if ((root->off = btree->findChildPtr(btree, page, stack->blkno, InvalidOffsetNumber)) != InvalidOffsetNumber)
+ {
stack->parent = root;
return;
}
leftmostBlkno = blkno = btree->getLeftMostPage(btree, page);
- LockBuffer(root->buffer, GIN_UNLOCK );
- Assert( blkno!=InvalidBlockNumber );
+ LockBuffer(root->buffer, GIN_UNLOCK);
+ Assert(blkno != InvalidBlockNumber);
- for(;;) {
+ for (;;)
+ {
buffer = ReadBuffer(btree->index, blkno);
LockBuffer(buffer, GIN_EXCLUSIVE);
page = BufferGetPage(buffer);
- if ( GinPageIsLeaf(page) )
+ if (GinPageIsLeaf(page))
elog(ERROR, "Lost path");
leftmostBlkno = btree->getLeftMostPage(btree, page);
- while( (offset = btree->findChildPtr(btree, page, stack->blkno, InvalidOffsetNumber))==InvalidOffsetNumber ) {
+ while ((offset = btree->findChildPtr(btree, page, stack->blkno, InvalidOffsetNumber)) == InvalidOffsetNumber)
+ {
blkno = GinPageGetOpaque(page)->rightlink;
- LockBuffer(buffer,GIN_UNLOCK);
+ LockBuffer(buffer, GIN_UNLOCK);
ReleaseBuffer(buffer);
- if ( blkno == InvalidBlockNumber )
+ if (blkno == InvalidBlockNumber)
break;
buffer = ReadBuffer(btree->index, blkno);
LockBuffer(buffer, GIN_EXCLUSIVE);
page = BufferGetPage(buffer);
}
- if ( blkno != InvalidBlockNumber ) {
- ptr = (GinBtreeStack*)palloc(sizeof(GinBtreeStack));
+ if (blkno != InvalidBlockNumber)
+ {
+ ptr = (GinBtreeStack *) palloc(sizeof(GinBtreeStack));
ptr->blkno = blkno;
ptr->buffer = buffer;
- ptr->parent = root; /* it's may be wrong, but in next call we will correct */
+ ptr->parent = root; /* it's may be wrong, but in next call we will
+ * correct */
ptr->off = offset;
stack->parent = ptr;
return;
@@ -233,79 +266,94 @@ findParents( GinBtree btree, GinBtreeStack *stack,
* Insert value (stored in GinBtree) to tree descibed by stack
*/
void
-ginInsertValue(GinBtree btree, GinBtreeStack *stack) {
- GinBtreeStack *parent = stack;
- BlockNumber rootBlkno = InvalidBuffer;
- Page page, rpage, lpage;
+ginInsertValue(GinBtree btree, GinBtreeStack *stack)
+{
+ GinBtreeStack *parent = stack;
+ BlockNumber rootBlkno = InvalidBuffer;
+ Page page,
+ rpage,
+ lpage;
/* remember root BlockNumber */
- while( parent ) {
+ while (parent)
+ {
rootBlkno = parent->blkno;
parent = parent->parent;
}
- while( stack ) {
+ while (stack)
+ {
XLogRecData *rdata;
- BlockNumber savedRightLink;
+ BlockNumber savedRightLink;
- page = BufferGetPage( stack->buffer );
+ page = BufferGetPage(stack->buffer);
savedRightLink = GinPageGetOpaque(page)->rightlink;
- if ( btree->isEnoughSpace( btree, stack->buffer, stack->off ) ) {
+ if (btree->isEnoughSpace(btree, stack->buffer, stack->off))
+ {
START_CRIT_SECTION();
- btree->placeToPage( btree, stack->buffer, stack->off, &rdata );
+ btree->placeToPage(btree, stack->buffer, stack->off, &rdata);
- if (!btree->index->rd_istemp) {
- XLogRecPtr recptr;
+ if (!btree->index->rd_istemp)
+ {
+ XLogRecPtr recptr;
recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_INSERT, rdata);
PageSetLSN(page, recptr);
PageSetTLI(page, ThisTimeLineID);
- }
+ }
- MarkBufferDirty( stack->buffer );
+ MarkBufferDirty(stack->buffer);
UnlockReleaseBuffer(stack->buffer);
END_CRIT_SECTION();
freeGinBtreeStack(stack->parent);
return;
- } else {
- Buffer rbuffer = GinNewBuffer(btree->index);
- Page newlpage;
+ }
+ else
+ {
+ Buffer rbuffer = GinNewBuffer(btree->index);
+ Page newlpage;
- /* newlpage is a pointer to memory page, it does'nt assosiates with buffer,
- stack->buffer shoud be untouched */
- newlpage = btree->splitPage( btree, stack->buffer, rbuffer, stack->off, &rdata );
+ /*
+ * newlpage is a pointer to memory page, it does'nt assosiates
+ * with buffer, stack->buffer shoud be untouched
+ */
+ newlpage = btree->splitPage(btree, stack->buffer, rbuffer, stack->off, &rdata);
- ((ginxlogSplit*)(rdata->data))->rootBlkno = rootBlkno;
+ ((ginxlogSplit *) (rdata->data))->rootBlkno = rootBlkno;
parent = stack->parent;
- if ( parent == NULL ) {
- /* split root, so we need to allocate new left page and
- place pointer on root to left and right page */
- Buffer lbuffer = GinNewBuffer(btree->index);
+ if (parent == NULL)
+ {
+ /*
+ * split root, so we need to allocate new left page and place
+ * pointer on root to left and right page
+ */
+ Buffer lbuffer = GinNewBuffer(btree->index);
- ((ginxlogSplit*)(rdata->data))->isRootSplit = TRUE;
- ((ginxlogSplit*)(rdata->data))->rrlink = InvalidBlockNumber;
+ ((ginxlogSplit *) (rdata->data))->isRootSplit = TRUE;
+ ((ginxlogSplit *) (rdata->data))->rrlink = InvalidBlockNumber;
- page = BufferGetPage( stack->buffer );
- lpage = BufferGetPage( lbuffer );
- rpage = BufferGetPage( rbuffer );
+ page = BufferGetPage(stack->buffer);
+ lpage = BufferGetPage(lbuffer);
+ rpage = BufferGetPage(rbuffer);
GinPageGetOpaque(rpage)->rightlink = InvalidBlockNumber;
GinPageGetOpaque(newlpage)->rightlink = BufferGetBlockNumber(rbuffer);
- ((ginxlogSplit*)(rdata->data))->lblkno = BufferGetBlockNumber(lbuffer);
+ ((ginxlogSplit *) (rdata->data))->lblkno = BufferGetBlockNumber(lbuffer);
START_CRIT_SECTION();
- GinInitBuffer( stack->buffer, GinPageGetOpaque(newlpage)->flags & ~GIN_LEAF );
- PageRestoreTempPage( newlpage, lpage );
- btree->fillRoot( btree, stack->buffer, lbuffer, rbuffer );
- if (!btree->index->rd_istemp) {
- XLogRecPtr recptr;
+ GinInitBuffer(stack->buffer, GinPageGetOpaque(newlpage)->flags & ~GIN_LEAF);
+ PageRestoreTempPage(newlpage, lpage);
+ btree->fillRoot(btree, stack->buffer, lbuffer, rbuffer);
+ if (!btree->index->rd_istemp)
+ {
+ XLogRecPtr recptr;
recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_SPLIT, rdata);
PageSetLSN(page, recptr);
@@ -324,23 +372,26 @@ ginInsertValue(GinBtree btree, GinBtreeStack *stack) {
UnlockReleaseBuffer(stack->buffer);
END_CRIT_SECTION();
-
+
return;
- } else {
+ }
+ else
+ {
/* split non-root page */
- ((ginxlogSplit*)(rdata->data))->isRootSplit = FALSE;
- ((ginxlogSplit*)(rdata->data))->rrlink = savedRightLink;
+ ((ginxlogSplit *) (rdata->data))->isRootSplit = FALSE;
+ ((ginxlogSplit *) (rdata->data))->rrlink = savedRightLink;
- lpage = BufferGetPage( stack->buffer );
- rpage = BufferGetPage( rbuffer );
+ lpage = BufferGetPage(stack->buffer);
+ rpage = BufferGetPage(rbuffer);
GinPageGetOpaque(rpage)->rightlink = savedRightLink;
GinPageGetOpaque(newlpage)->rightlink = BufferGetBlockNumber(rbuffer);
START_CRIT_SECTION();
- PageRestoreTempPage( newlpage, lpage );
- if (!btree->index->rd_istemp) {
- XLogRecPtr recptr;
+ PageRestoreTempPage(newlpage, lpage);
+ if (!btree->index->rd_istemp)
+ {
+ XLogRecPtr recptr;
recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_SPLIT, rdata);
PageSetLSN(lpage, recptr);
@@ -350,7 +401,7 @@ ginInsertValue(GinBtree btree, GinBtreeStack *stack) {
}
MarkBufferDirty(rbuffer);
UnlockReleaseBuffer(rbuffer);
- MarkBufferDirty( stack->buffer );
+ MarkBufferDirty(stack->buffer);
END_CRIT_SECTION();
}
}
@@ -361,31 +412,33 @@ ginInsertValue(GinBtree btree, GinBtreeStack *stack) {
LockBuffer(parent->buffer, GIN_EXCLUSIVE);
/* move right if it's needed */
- page = BufferGetPage( parent->buffer );
- while( (parent->off=btree->findChildPtr(btree, page, stack->blkno, parent->off)) == InvalidOffsetNumber ) {
+ page = BufferGetPage(parent->buffer);
+ while ((parent->off = btree->findChildPtr(btree, page, stack->blkno, parent->off)) == InvalidOffsetNumber)
+ {
BlockNumber rightlink = GinPageGetOpaque(page)->rightlink;
LockBuffer(parent->buffer, GIN_UNLOCK);
- if ( rightlink==InvalidBlockNumber ) {
- /* rightmost page, but we don't find parent, we should
- use plain search... */
+ if (rightlink == InvalidBlockNumber)
+ {
+ /*
+ * rightmost page, but we don't find parent, we should use
+ * plain search...
+ */
findParents(btree, stack, rootBlkno);
- parent=stack->parent;
- page = BufferGetPage( parent->buffer );
+ parent = stack->parent;
+ page = BufferGetPage(parent->buffer);
break;
}
parent->blkno = rightlink;
parent->buffer = ReleaseAndReadBuffer(parent->buffer, btree->index, parent->blkno);
- LockBuffer(parent->buffer, GIN_EXCLUSIVE);
- page = BufferGetPage( parent->buffer );
+ LockBuffer(parent->buffer, GIN_EXCLUSIVE);
+ page = BufferGetPage(parent->buffer);
}
UnlockReleaseBuffer(stack->buffer);
- pfree( stack );
+ pfree(stack);
stack = parent;
}
}
-
-
diff --git a/src/backend/access/gin/ginbulk.c b/src/backend/access/gin/ginbulk.c
index 5bcd91af14..3db9e332a7 100644
--- a/src/backend/access/gin/ginbulk.c
+++ b/src/backend/access/gin/ginbulk.c
@@ -1,14 +1,14 @@
/*-------------------------------------------------------------------------
*
* ginbulk.c
- * routines for fast build of inverted index
+ * routines for fast build of inverted index
*
*
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/gin/ginbulk.c,v 1.5 2006/08/29 14:05:44 teodor Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gin/ginbulk.c,v 1.6 2006/10/04 00:29:47 momjian Exp $
*-------------------------------------------------------------------------
*/
@@ -22,7 +22,8 @@
#define DEF_NPTR 4
void
-ginInitBA(BuildAccumulator *accum) {
+ginInitBA(BuildAccumulator *accum)
+{
accum->maxdepth = 1;
accum->stackpos = 0;
accum->entries = NULL;
@@ -31,11 +32,13 @@ ginInitBA(BuildAccumulator *accum) {
accum->entryallocator = NULL;
}
-static EntryAccumulator*
-EAAllocate( BuildAccumulator *accum ) {
- if ( accum->entryallocator == NULL || accum->length>=DEF_NENTRY ) {
- accum->entryallocator = palloc(sizeof(EntryAccumulator)*DEF_NENTRY);
- accum->allocatedMemory += sizeof(EntryAccumulator)*DEF_NENTRY;
+static EntryAccumulator *
+EAAllocate(BuildAccumulator *accum)
+{
+ if (accum->entryallocator == NULL || accum->length >= DEF_NENTRY)
+ {
+ accum->entryallocator = palloc(sizeof(EntryAccumulator) * DEF_NENTRY);
+ accum->allocatedMemory += sizeof(EntryAccumulator) * DEF_NENTRY;
accum->length = 0;
}
@@ -48,24 +51,27 @@ EAAllocate( BuildAccumulator *accum ) {
* item pointer are ordered
*/
static void
-ginInsertData(BuildAccumulator *accum, EntryAccumulator *entry, ItemPointer heapptr) {
- if ( entry->number >= entry->length ) {
+ginInsertData(BuildAccumulator *accum, EntryAccumulator *entry, ItemPointer heapptr)
+{
+ if (entry->number >= entry->length)
+ {
accum->allocatedMemory += sizeof(ItemPointerData) * entry->length;
entry->length *= 2;
- entry->list = (ItemPointerData*)repalloc(entry->list,
- sizeof(ItemPointerData)*entry->length);
+ entry->list = (ItemPointerData *) repalloc(entry->list,
+ sizeof(ItemPointerData) * entry->length);
}
- if ( entry->shouldSort==FALSE ) {
- int res = compareItemPointers( entry->list + entry->number - 1, heapptr );
+ if (entry->shouldSort == FALSE)
+ {
+ int res = compareItemPointers(entry->list + entry->number - 1, heapptr);
- Assert( res != 0 );
+ Assert(res != 0);
- if ( res > 0 )
- entry->shouldSort=TRUE;
+ if (res > 0)
+ entry->shouldSort = TRUE;
}
- entry->list[ entry->number ] = *heapptr;
+ entry->list[entry->number] = *heapptr;
entry->number++;
}
@@ -74,7 +80,8 @@ ginInsertData(BuildAccumulator *accum, EntryAccumulator *entry, ItemPointer heap
* to avoid computing the datum size twice.
*/
static Datum
-getDatumCopy(BuildAccumulator *accum, Datum value) {
+getDatumCopy(BuildAccumulator *accum, Datum value)
+{
Form_pg_attribute *att = accum->ginstate->tupdesc->attrs;
Datum res;
@@ -100,51 +107,58 @@ getDatumCopy(BuildAccumulator *accum, Datum value) {
* Find/store one entry from indexed value.
*/
static void
-ginInsertEntry(BuildAccumulator *accum, ItemPointer heapptr, Datum entry) {
- EntryAccumulator *ea = accum->entries, *pea = NULL;
- int res = 0;
- uint32 depth = 1;
-
- while( ea ) {
+ginInsertEntry(BuildAccumulator *accum, ItemPointer heapptr, Datum entry)
+{
+ EntryAccumulator *ea = accum->entries,
+ *pea = NULL;
+ int res = 0;
+ uint32 depth = 1;
+
+ while (ea)
+ {
res = compareEntries(accum->ginstate, entry, ea->value);
- if ( res == 0 )
- break; /* found */
- else {
+ if (res == 0)
+ break; /* found */
+ else
+ {
pea = ea;
- if ( res < 0 )
+ if (res < 0)
ea = ea->left;
else
ea = ea->right;
}
depth++;
}
-
- if ( depth > accum->maxdepth )
+
+ if (depth > accum->maxdepth)
accum->maxdepth = depth;
- if ( ea == NULL ) {
+ if (ea == NULL)
+ {
ea = EAAllocate(accum);
ea->left = ea->right = NULL;
- ea->value = getDatumCopy(accum, entry);
+ ea->value = getDatumCopy(accum, entry);
ea->length = DEF_NPTR;
ea->number = 1;
ea->shouldSort = FALSE;
- ea->list = (ItemPointerData*)palloc(sizeof(ItemPointerData)*DEF_NPTR);
+ ea->list = (ItemPointerData *) palloc(sizeof(ItemPointerData) * DEF_NPTR);
ea->list[0] = *heapptr;
- accum->allocatedMemory += sizeof(ItemPointerData)*DEF_NPTR;
+ accum->allocatedMemory += sizeof(ItemPointerData) * DEF_NPTR;
- if ( pea == NULL )
+ if (pea == NULL)
accum->entries = ea;
- else {
- Assert( res != 0 );
- if ( res < 0 )
+ else
+ {
+ Assert(res != 0);
+ if (res < 0)
pea->left = ea;
else
pea->right = ea;
}
- } else
- ginInsertData( accum, ea, heapptr );
+ }
+ else
+ ginInsertData(accum, ea, heapptr);
}
/*
@@ -152,22 +166,23 @@ ginInsertEntry(BuildAccumulator *accum, ItemPointer heapptr, Datum entry) {
* then calls itself for each parts
*/
static void
-ginChooseElem(BuildAccumulator *accum, ItemPointer heapptr, Datum *entries, uint32 nentry,
- uint32 low, uint32 high, uint32 offset) {
- uint32 pos;
- uint32 middle = (low+high)>>1;
-
- pos = (low+middle)>>1;
- if ( low!=middle && pos>=offset && pos-offset < nentry )
- ginInsertEntry( accum, heapptr, entries[ pos-offset ]);
- pos = (high+middle+1)>>1;
- if ( middle+1 != high && pos>=offset && pos-offset < nentry )
- ginInsertEntry( accum, heapptr, entries[ pos-offset ]);
-
- if ( low!=middle )
- ginChooseElem(accum, heapptr, entries, nentry, low, middle, offset );
- if ( high!=middle+1 )
- ginChooseElem(accum, heapptr, entries, nentry, middle+1, high, offset );
+ginChooseElem(BuildAccumulator *accum, ItemPointer heapptr, Datum *entries, uint32 nentry,
+ uint32 low, uint32 high, uint32 offset)
+{
+ uint32 pos;
+ uint32 middle = (low + high) >> 1;
+
+ pos = (low + middle) >> 1;
+ if (low != middle && pos >= offset && pos - offset < nentry)
+ ginInsertEntry(accum, heapptr, entries[pos - offset]);
+ pos = (high + middle + 1) >> 1;
+ if (middle + 1 != high && pos >= offset && pos - offset < nentry)
+ ginInsertEntry(accum, heapptr, entries[pos - offset]);
+
+ if (low != middle)
+ ginChooseElem(accum, heapptr, entries, nentry, low, middle, offset);
+ if (high != middle + 1)
+ ginChooseElem(accum, heapptr, entries, nentry, middle + 1, high, offset);
}
/*
@@ -176,56 +191,71 @@ ginChooseElem(BuildAccumulator *accum, ItemPointer heapptr, Datum *entries, uint
* next middle on left part and middle of right part.
*/
void
-ginInsertRecordBA( BuildAccumulator *accum, ItemPointer heapptr, Datum *entries, uint32 nentry ) {
- uint32 i, nbit=0, offset;
+ginInsertRecordBA(BuildAccumulator *accum, ItemPointer heapptr, Datum *entries, uint32 nentry)
+{
+ uint32 i,
+ nbit = 0,
+ offset;
- if (nentry==0)
+ if (nentry == 0)
return;
- i=nentry-1;
- for(;i>0;i>>=1) nbit++;
+ i = nentry - 1;
+ for (; i > 0; i >>= 1)
+ nbit++;
- nbit = 1<<nbit;
- offset = (nbit-nentry)/2;
+ nbit = 1 << nbit;
+ offset = (nbit - nentry) / 2;
- ginInsertEntry( accum, heapptr, entries[ (nbit>>1)-offset ]);
+ ginInsertEntry(accum, heapptr, entries[(nbit >> 1) - offset]);
ginChooseElem(accum, heapptr, entries, nentry, 0, nbit, offset);
}
-static int
-qsortCompareItemPointers( const void *a, const void *b ) {
- int res = compareItemPointers( (ItemPointer)a, (ItemPointer)b );
- Assert( res!=0 );
+static int
+qsortCompareItemPointers(const void *a, const void *b)
+{
+ int res = compareItemPointers((ItemPointer) a, (ItemPointer) b);
+
+ Assert(res != 0);
return res;
}
/*
- * walk on binary tree and returns ordered nodes
- */
-static EntryAccumulator*
-walkTree( BuildAccumulator *accum ) {
- EntryAccumulator *entry = accum->stack[ accum->stackpos ];
+ * walk on binary tree and returns ordered nodes
+ */
+static EntryAccumulator *
+walkTree(BuildAccumulator *accum)
+{
+ EntryAccumulator *entry = accum->stack[accum->stackpos];
- if ( entry->list != NULL ) {
+ if (entry->list != NULL)
+ {
/* return entry itself: we already was at left sublink */
return entry;
- } else if ( entry->right && entry->right != accum->stack[ accum->stackpos+1 ] ) {
+ }
+ else if (entry->right && entry->right != accum->stack[accum->stackpos + 1])
+ {
/* go on right sublink */
accum->stackpos++;
entry = entry->right;
/* find most-left value */
- for(;;) {
- accum->stack[ accum->stackpos ] = entry;
- if ( entry->left ) {
+ for (;;)
+ {
+ accum->stack[accum->stackpos] = entry;
+ if (entry->left)
+ {
accum->stackpos++;
entry = entry->left;
- } else
+ }
+ else
break;
}
- } else {
+ }
+ else
+ {
/* we already return all left subtree, itself and right subtree */
- if ( accum->stackpos == 0 )
+ if (accum->stackpos == 0)
return 0;
accum->stackpos--;
return walkTree(accum);
@@ -234,47 +264,53 @@ walkTree( BuildAccumulator *accum ) {
return entry;
}
-ItemPointerData*
-ginGetEntry(BuildAccumulator *accum, Datum *value, uint32 *n) {
- EntryAccumulator *entry;
+ItemPointerData *
+ginGetEntry(BuildAccumulator *accum, Datum *value, uint32 *n)
+{
+ EntryAccumulator *entry;
ItemPointerData *list;
- if ( accum->stack == NULL ) {
+ if (accum->stack == NULL)
+ {
/* first call */
- accum->stack = palloc0(sizeof(EntryAccumulator*)*(accum->maxdepth+1));
+ accum->stack = palloc0(sizeof(EntryAccumulator *) * (accum->maxdepth + 1));
entry = accum->entries;
- if ( entry == NULL )
+ if (entry == NULL)
return NULL;
/* find most-left value */
- for(;;) {
- accum->stack[ accum->stackpos ] = entry;
- if ( entry->left ) {
+ for (;;)
+ {
+ accum->stack[accum->stackpos] = entry;
+ if (entry->left)
+ {
accum->stackpos++;
entry = entry->left;
- } else
+ }
+ else
break;
}
- } else {
- pfree( accum->stack[ accum->stackpos ]->list );
- accum->stack[ accum->stackpos ]->list = NULL;
- entry = walkTree( accum );
+ }
+ else
+ {
+ pfree(accum->stack[accum->stackpos]->list);
+ accum->stack[accum->stackpos]->list = NULL;
+ entry = walkTree(accum);
}
- if ( entry == NULL )
+ if (entry == NULL)
return NULL;
- *n = entry->number;
- *value = entry->value;
- list = entry->list;
+ *n = entry->number;
+ *value = entry->value;
+ list = entry->list;
Assert(list != NULL);
- if ( entry->shouldSort && entry->number > 1 )
+ if (entry->shouldSort && entry->number > 1)
qsort(list, *n, sizeof(ItemPointerData), qsortCompareItemPointers);
return list;
}
-
diff --git a/src/backend/access/gin/gindatapage.c b/src/backend/access/gin/gindatapage.c
index 5789dc18f9..94b07f3ed9 100644
--- a/src/backend/access/gin/gindatapage.c
+++ b/src/backend/access/gin/gindatapage.c
@@ -1,14 +1,14 @@
/*-------------------------------------------------------------------------
*
* gindatapage.c
- * page utilities routines for the postgres inverted index access method.
+ * page utilities routines for the postgres inverted index access method.
*
*
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/gin/gindatapage.c,v 1.3 2006/07/16 00:52:05 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gin/gindatapage.c,v 1.4 2006/10/04 00:29:47 momjian Exp $
*-------------------------------------------------------------------------
*/
@@ -16,50 +16,56 @@
#include "access/gin.h"
int
-compareItemPointers( ItemPointer a, ItemPointer b ) {
- if ( GinItemPointerGetBlockNumber(a) == GinItemPointerGetBlockNumber(b) ) {
- if ( GinItemPointerGetOffsetNumber(a) == GinItemPointerGetOffsetNumber(b) )
+compareItemPointers(ItemPointer a, ItemPointer b)
+{
+ if (GinItemPointerGetBlockNumber(a) == GinItemPointerGetBlockNumber(b))
+ {
+ if (GinItemPointerGetOffsetNumber(a) == GinItemPointerGetOffsetNumber(b))
return 0;
- return ( GinItemPointerGetOffsetNumber(a) > GinItemPointerGetOffsetNumber(b) ) ? 1 : -1;
- }
+ return (GinItemPointerGetOffsetNumber(a) > GinItemPointerGetOffsetNumber(b)) ? 1 : -1;
+ }
- return ( GinItemPointerGetBlockNumber(a) > GinItemPointerGetBlockNumber(b) ) ? 1 : -1;
+ return (GinItemPointerGetBlockNumber(a) > GinItemPointerGetBlockNumber(b)) ? 1 : -1;
}
/*
* Merge two ordered array of itempointer
*/
-void
-MergeItemPointers(ItemPointerData *dst, ItemPointerData *a, uint32 na, ItemPointerData *b, uint32 nb) {
+void
+MergeItemPointers(ItemPointerData *dst, ItemPointerData *a, uint32 na, ItemPointerData *b, uint32 nb)
+{
ItemPointerData *dptr = dst;
- ItemPointerData *aptr = a, *bptr = b;
+ ItemPointerData *aptr = a,
+ *bptr = b;
- while( aptr - a < na && bptr - b < nb ) {
- if ( compareItemPointers(aptr, bptr) > 0 )
+ while (aptr - a < na && bptr - b < nb)
+ {
+ if (compareItemPointers(aptr, bptr) > 0)
*dptr++ = *bptr++;
else
*dptr++ = *aptr++;
}
- while( aptr - a < na )
+ while (aptr - a < na)
*dptr++ = *aptr++;
- while( bptr - b < nb )
+ while (bptr - b < nb)
*dptr++ = *bptr++;
}
/*
- * Checks, should we move to right link...
+ * Checks, should we move to right link...
* Compares inserting itemp pointer with right bound of current page
*/
static bool
-dataIsMoveRight(GinBtree btree, Page page) {
- ItemPointer iptr = GinDataPageGetRightBound(page);
+dataIsMoveRight(GinBtree btree, Page page)
+{
+ ItemPointer iptr = GinDataPageGetRightBound(page);
- if ( GinPageRightMost(page) )
- return FALSE;
+ if (GinPageRightMost(page))
+ return FALSE;
- return ( compareItemPointers( btree->items + btree->curitem, iptr ) > 0 ) ? TRUE : FALSE;
+ return (compareItemPointers(btree->items + btree->curitem, iptr) > 0) ? TRUE : FALSE;
}
/*
@@ -67,94 +73,113 @@ dataIsMoveRight(GinBtree btree, Page page) {
* page correctly choosen and searching value SHOULD be on page
*/
static BlockNumber
-dataLocateItem(GinBtree btree, GinBtreeStack *stack) {
- OffsetNumber low, high, maxoff;
- PostingItem *pitem=NULL;
- int result;
- Page page = BufferGetPage( stack->buffer );
-
- Assert( !GinPageIsLeaf(page) );
- Assert( GinPageIsData(page) );
-
- if ( btree->fullScan ) {
+dataLocateItem(GinBtree btree, GinBtreeStack *stack)
+{
+ OffsetNumber low,
+ high,
+ maxoff;
+ PostingItem *pitem = NULL;
+ int result;
+ Page page = BufferGetPage(stack->buffer);
+
+ Assert(!GinPageIsLeaf(page));
+ Assert(GinPageIsData(page));
+
+ if (btree->fullScan)
+ {
stack->off = FirstOffsetNumber;
stack->predictNumber *= GinPageGetOpaque(page)->maxoff;
return btree->getLeftMostPage(btree, page);
}
low = FirstOffsetNumber;
- maxoff = high = GinPageGetOpaque(page)->maxoff;
- Assert( high >= low );
+ maxoff = high = GinPageGetOpaque(page)->maxoff;
+ Assert(high >= low);
high++;
- while (high > low) {
+ while (high > low)
+ {
OffsetNumber mid = low + ((high - low) / 2);
- pitem = (PostingItem*)GinDataPageGetItem(page,mid);
- if ( mid == maxoff )
- /* Right infinity, page already correctly choosen
- with a help of dataIsMoveRight */
+ pitem = (PostingItem *) GinDataPageGetItem(page, mid);
+
+ if (mid == maxoff)
+
+ /*
+ * Right infinity, page already correctly choosen with a help of
+ * dataIsMoveRight
+ */
result = -1;
- else {
- pitem = (PostingItem*)GinDataPageGetItem(page,mid);
- result = compareItemPointers( btree->items + btree->curitem, &( pitem->key ) );
+ else
+ {
+ pitem = (PostingItem *) GinDataPageGetItem(page, mid);
+ result = compareItemPointers(btree->items + btree->curitem, &(pitem->key));
}
- if ( result == 0 ) {
+ if (result == 0)
+ {
stack->off = mid;
return PostingItemGetBlockNumber(pitem);
- } else if ( result > 0 )
+ }
+ else if (result > 0)
low = mid + 1;
else
high = mid;
}
- Assert( high>=FirstOffsetNumber && high <= maxoff );
+ Assert(high >= FirstOffsetNumber && high <= maxoff);
stack->off = high;
- pitem = (PostingItem*)GinDataPageGetItem(page,high);
+ pitem = (PostingItem *) GinDataPageGetItem(page, high);
return PostingItemGetBlockNumber(pitem);
}
-/*
+/*
* Searches correct position for value on leaf page.
- * Page should be corrrectly choosen.
+ * Page should be corrrectly choosen.
* Returns true if value found on page.
*/
static bool
-dataLocateLeafItem(GinBtree btree, GinBtreeStack *stack) {
- Page page = BufferGetPage( stack->buffer );
- OffsetNumber low, high;
- int result;
-
- Assert( GinPageIsLeaf(page) );
- Assert( GinPageIsData(page) );
-
- if ( btree->fullScan ) {
+dataLocateLeafItem(GinBtree btree, GinBtreeStack *stack)
+{
+ Page page = BufferGetPage(stack->buffer);
+ OffsetNumber low,
+ high;
+ int result;
+
+ Assert(GinPageIsLeaf(page));
+ Assert(GinPageIsData(page));
+
+ if (btree->fullScan)
+ {
stack->off = FirstOffsetNumber;
return TRUE;
}
- low=FirstOffsetNumber;
+ low = FirstOffsetNumber;
high = GinPageGetOpaque(page)->maxoff;
- if ( high < low ) {
+ if (high < low)
+ {
stack->off = FirstOffsetNumber;
return false;
}
high++;
- while (high > low) {
+ while (high > low)
+ {
OffsetNumber mid = low + ((high - low) / 2);
- result = compareItemPointers( btree->items + btree->curitem, (ItemPointer)GinDataPageGetItem(page,mid) );
+ result = compareItemPointers(btree->items + btree->curitem, (ItemPointer) GinDataPageGetItem(page, mid));
- if ( result == 0 ) {
+ if (result == 0)
+ {
stack->off = mid;
return true;
- } else if ( result > 0 )
+ }
+ else if (result > 0)
low = mid + 1;
else
high = mid;
@@ -169,34 +194,41 @@ dataLocateLeafItem(GinBtree btree, GinBtreeStack *stack) {
* offset of PostingItem
*/
static OffsetNumber
-dataFindChildPtr(GinBtree btree, Page page, BlockNumber blkno, OffsetNumber storedOff) {
- OffsetNumber i, maxoff = GinPageGetOpaque(page)->maxoff;
+dataFindChildPtr(GinBtree btree, Page page, BlockNumber blkno, OffsetNumber storedOff)
+{
+ OffsetNumber i,
+ maxoff = GinPageGetOpaque(page)->maxoff;
PostingItem *pitem;
- Assert( !GinPageIsLeaf(page) );
- Assert( GinPageIsData(page) );
+ Assert(!GinPageIsLeaf(page));
+ Assert(GinPageIsData(page));
/* if page isn't changed, we returns storedOff */
- if ( storedOff>= FirstOffsetNumber && storedOff<=maxoff) {
- pitem = (PostingItem*)GinDataPageGetItem(page, storedOff);
- if ( PostingItemGetBlockNumber(pitem) == blkno )
+ if (storedOff >= FirstOffsetNumber && storedOff <= maxoff)
+ {
+ pitem = (PostingItem *) GinDataPageGetItem(page, storedOff);
+ if (PostingItemGetBlockNumber(pitem) == blkno)
return storedOff;
- /* we hope, that needed pointer goes to right. It's true
- if there wasn't a deletion */
- for( i=storedOff+1 ; i <= maxoff ; i++ ) {
- pitem = (PostingItem*)GinDataPageGetItem(page, i);
- if ( PostingItemGetBlockNumber(pitem) == blkno )
+ /*
+ * we hope, that needed pointer goes to right. It's true if there
+ * wasn't a deletion
+ */
+ for (i = storedOff + 1; i <= maxoff; i++)
+ {
+ pitem = (PostingItem *) GinDataPageGetItem(page, i);
+ if (PostingItemGetBlockNumber(pitem) == blkno)
return i;
}
- maxoff = storedOff-1;
+ maxoff = storedOff - 1;
}
/* last chance */
- for( i=FirstOffsetNumber; i <= maxoff ; i++ ) {
- pitem = (PostingItem*)GinDataPageGetItem(page, i);
- if ( PostingItemGetBlockNumber(pitem) == blkno )
+ for (i = FirstOffsetNumber; i <= maxoff; i++)
+ {
+ pitem = (PostingItem *) GinDataPageGetItem(page, i);
+ if (PostingItemGetBlockNumber(pitem) == blkno)
return i;
}
@@ -207,14 +239,15 @@ dataFindChildPtr(GinBtree btree, Page page, BlockNumber blkno, OffsetNumber stor
* retunrs blkno of lefmost child
*/
static BlockNumber
-dataGetLeftMostPage(GinBtree btree, Page page) {
+dataGetLeftMostPage(GinBtree btree, Page page)
+{
PostingItem *pitem;
- Assert( !GinPageIsLeaf(page) );
- Assert( GinPageIsData(page) );
- Assert( GinPageGetOpaque(page)->maxoff >= FirstOffsetNumber );
+ Assert(!GinPageIsLeaf(page));
+ Assert(GinPageIsData(page));
+ Assert(GinPageGetOpaque(page)->maxoff >= FirstOffsetNumber);
- pitem = (PostingItem*)GinDataPageGetItem(page, FirstOffsetNumber);
+ pitem = (PostingItem *) GinDataPageGetItem(page, FirstOffsetNumber);
return PostingItemGetBlockNumber(pitem);
}
@@ -223,18 +256,22 @@ dataGetLeftMostPage(GinBtree btree, Page page) {
* correct value! depending on leaf or non-leaf page
*/
void
-GinDataPageAddItem( Page page, void *data, OffsetNumber offset ) {
+GinDataPageAddItem(Page page, void *data, OffsetNumber offset)
+{
OffsetNumber maxoff = GinPageGetOpaque(page)->maxoff;
- char *ptr;
-
- if ( offset == InvalidOffsetNumber ) {
- ptr = GinDataPageGetItem(page,maxoff+1);
- } else {
- ptr = GinDataPageGetItem(page,offset);
- if ( maxoff+1-offset != 0 )
- memmove( ptr+GinSizeOfItem(page), ptr, (maxoff-offset+1) * GinSizeOfItem(page) );
+ char *ptr;
+
+ if (offset == InvalidOffsetNumber)
+ {
+ ptr = GinDataPageGetItem(page, maxoff + 1);
}
- memcpy( ptr, data, GinSizeOfItem(page) );
+ else
+ {
+ ptr = GinDataPageGetItem(page, offset);
+ if (maxoff + 1 - offset != 0)
+ memmove(ptr + GinSizeOfItem(page), ptr, (maxoff - offset + 1) * GinSizeOfItem(page));
+ }
+ memcpy(ptr, data, GinSizeOfItem(page));
GinPageGetOpaque(page)->maxoff++;
}
@@ -243,15 +280,16 @@ GinDataPageAddItem( Page page, void *data, OffsetNumber offset ) {
* Deletes posting item from non-leaf page
*/
void
-PageDeletePostingItem(Page page, OffsetNumber offset) {
- OffsetNumber maxoff = GinPageGetOpaque(page)->maxoff;
+PageDeletePostingItem(Page page, OffsetNumber offset)
+{
+ OffsetNumber maxoff = GinPageGetOpaque(page)->maxoff;
- Assert( !GinPageIsLeaf(page) );
- Assert( offset>=FirstOffsetNumber && offset <= maxoff );
+ Assert(!GinPageIsLeaf(page));
+ Assert(offset >= FirstOffsetNumber && offset <= maxoff);
- if ( offset != maxoff )
- memmove( GinDataPageGetItem(page,offset), GinDataPageGetItem(page,offset+1),
- sizeof(PostingItem) * (maxoff-offset) );
+ if (offset != maxoff)
+ memmove(GinDataPageGetItem(page, offset), GinDataPageGetItem(page, offset + 1),
+ sizeof(PostingItem) * (maxoff - offset));
GinPageGetOpaque(page)->maxoff--;
}
@@ -261,19 +299,24 @@ PageDeletePostingItem(Page page, OffsetNumber offset) {
* item pointer never deletes!
*/
static bool
-dataIsEnoughSpace( GinBtree btree, Buffer buf, OffsetNumber off ) {
- Page page = BufferGetPage(buf);
-
- Assert( GinPageIsData(page) );
- Assert( !btree->isDelete );
-
- if ( GinPageIsLeaf(page) ) {
- if ( GinPageRightMost(page) && off > GinPageGetOpaque(page)->maxoff ) {
- if ( (btree->nitem - btree->curitem) * sizeof(ItemPointerData) <= GinDataPageGetFreeSpace(page) )
+dataIsEnoughSpace(GinBtree btree, Buffer buf, OffsetNumber off)
+{
+ Page page = BufferGetPage(buf);
+
+ Assert(GinPageIsData(page));
+ Assert(!btree->isDelete);
+
+ if (GinPageIsLeaf(page))
+ {
+ if (GinPageRightMost(page) && off > GinPageGetOpaque(page)->maxoff)
+ {
+ if ((btree->nitem - btree->curitem) * sizeof(ItemPointerData) <= GinDataPageGetFreeSpace(page))
return true;
- } else if ( sizeof(ItemPointerData) <= GinDataPageGetFreeSpace(page) )
+ }
+ else if (sizeof(ItemPointerData) <= GinDataPageGetFreeSpace(page))
return true;
- } else if ( sizeof(PostingItem) <= GinDataPageGetFreeSpace(page) )
+ }
+ else if (sizeof(PostingItem) <= GinDataPageGetFreeSpace(page))
return true;
return false;
@@ -285,14 +328,17 @@ dataIsEnoughSpace( GinBtree btree, Buffer buf, OffsetNumber off ) {
* item pointer never deletes!
*/
static BlockNumber
-dataPrepareData( GinBtree btree, Page page, OffsetNumber off) {
+dataPrepareData(GinBtree btree, Page page, OffsetNumber off)
+{
BlockNumber ret = InvalidBlockNumber;
- Assert( GinPageIsData(page) );
+ Assert(GinPageIsData(page));
- if ( !GinPageIsLeaf(page) && btree->rightblkno != InvalidBlockNumber ) {
- PostingItem *pitem = (PostingItem*)GinDataPageGetItem(page,off);
- PostingItemSetBlockNumber( pitem, btree->rightblkno );
+ if (!GinPageIsLeaf(page) && btree->rightblkno != InvalidBlockNumber)
+ {
+ PostingItem *pitem = (PostingItem *) GinDataPageGetItem(page, off);
+
+ PostingItemSetBlockNumber(pitem, btree->rightblkno);
ret = btree->rightblkno;
}
@@ -301,24 +347,25 @@ dataPrepareData( GinBtree btree, Page page, OffsetNumber off) {
return ret;
}
-/*
+/*
* Places keys to page and fills WAL record. In case leaf page and
* build mode puts all ItemPointers to page.
*/
static void
-dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prdata) {
- Page page = BufferGetPage(buf);
+dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prdata)
+{
+ Page page = BufferGetPage(buf);
static XLogRecData rdata[3];
- int sizeofitem = GinSizeOfItem(page);
- static ginxlogInsert data;
+ int sizeofitem = GinSizeOfItem(page);
+ static ginxlogInsert data;
*prdata = rdata;
- Assert( GinPageIsData(page) );
+ Assert(GinPageIsData(page));
- data.updateBlkno = dataPrepareData( btree, page, off );
+ data.updateBlkno = dataPrepareData(btree, page, off);
data.node = btree->index->rd_node;
- data.blkno = BufferGetBlockNumber( buf );
+ data.blkno = BufferGetBlockNumber(buf);
data.offset = off;
data.nitem = 1;
data.isDelete = FALSE;
@@ -337,109 +384,124 @@ dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prda
rdata[1].next = &rdata[2];
rdata[2].buffer = InvalidBuffer;
- rdata[2].data = (GinPageIsLeaf(page)) ? ((char*)(btree->items+btree->curitem)) : ((char*)&(btree->pitem));
+ rdata[2].data = (GinPageIsLeaf(page)) ? ((char *) (btree->items + btree->curitem)) : ((char *) &(btree->pitem));
rdata[2].len = sizeofitem;
rdata[2].next = NULL;
- if ( GinPageIsLeaf(page) ) {
- if ( GinPageRightMost(page) && off > GinPageGetOpaque(page)->maxoff ) {
+ if (GinPageIsLeaf(page))
+ {
+ if (GinPageRightMost(page) && off > GinPageGetOpaque(page)->maxoff)
+ {
/* usually, create index... */
- uint32 savedPos = btree->curitem;
+ uint32 savedPos = btree->curitem;
- while( btree->curitem < btree->nitem ) {
- GinDataPageAddItem(page, btree->items+btree->curitem, off);
+ while (btree->curitem < btree->nitem)
+ {
+ GinDataPageAddItem(page, btree->items + btree->curitem, off);
off++;
btree->curitem++;
}
- data.nitem = btree->curitem-savedPos;
+ data.nitem = btree->curitem - savedPos;
rdata[2].len = sizeofitem * data.nitem;
- } else {
- GinDataPageAddItem(page, btree->items+btree->curitem, off);
+ }
+ else
+ {
+ GinDataPageAddItem(page, btree->items + btree->curitem, off);
btree->curitem++;
}
- } else
- GinDataPageAddItem(page, &(btree->pitem), off);
+ }
+ else
+ GinDataPageAddItem(page, &(btree->pitem), off);
}
/*
* split page and fills WAL record. original buffer(lbuf) leaves untouched,
- * returns shadow page of lbuf filled new data. In leaf page and build mode puts all
+ * returns shadow page of lbuf filled new data. In leaf page and build mode puts all
* ItemPointers to pages. Also, in build mode splits data by way to full fulled
* left page
*/
static Page
-dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRecData **prdata) {
+dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRecData **prdata)
+{
static ginxlogSplit data;
static XLogRecData rdata[4];
- static char vector[2*BLCKSZ];
- char *ptr;
+ static char vector[2 * BLCKSZ];
+ char *ptr;
OffsetNumber separator;
- ItemPointer bound;
- Page lpage = GinPageGetCopyPage( BufferGetPage( lbuf ) );
- ItemPointerData oldbound = *GinDataPageGetRightBound(lpage);
- int sizeofitem = GinSizeOfItem(lpage);
+ ItemPointer bound;
+ Page lpage = GinPageGetCopyPage(BufferGetPage(lbuf));
+ ItemPointerData oldbound = *GinDataPageGetRightBound(lpage);
+ int sizeofitem = GinSizeOfItem(lpage);
OffsetNumber maxoff = GinPageGetOpaque(lpage)->maxoff;
- Page rpage = BufferGetPage( rbuf );
- Size pageSize = PageGetPageSize( lpage );
- Size freeSpace;
- uint32 nCopied = 1;
+ Page rpage = BufferGetPage(rbuf);
+ Size pageSize = PageGetPageSize(lpage);
+ Size freeSpace;
+ uint32 nCopied = 1;
- GinInitPage( rpage, GinPageGetOpaque(lpage)->flags, pageSize );
+ GinInitPage(rpage, GinPageGetOpaque(lpage)->flags, pageSize);
freeSpace = GinDataPageGetFreeSpace(rpage);
*prdata = rdata;
- data.leftChildBlkno = ( GinPageIsLeaf(lpage) ) ?
- InvalidOffsetNumber : PostingItemGetBlockNumber( &(btree->pitem) );
- data.updateBlkno = dataPrepareData( btree, lpage, off );
+ data.leftChildBlkno = (GinPageIsLeaf(lpage)) ?
+ InvalidOffsetNumber : PostingItemGetBlockNumber(&(btree->pitem));
+ data.updateBlkno = dataPrepareData(btree, lpage, off);
- memcpy(vector, GinDataPageGetItem(lpage, FirstOffsetNumber),
- maxoff*sizeofitem);
+ memcpy(vector, GinDataPageGetItem(lpage, FirstOffsetNumber),
+ maxoff * sizeofitem);
- if ( GinPageIsLeaf(lpage) && GinPageRightMost(lpage) && off > GinPageGetOpaque(lpage)->maxoff ) {
+ if (GinPageIsLeaf(lpage) && GinPageRightMost(lpage) && off > GinPageGetOpaque(lpage)->maxoff)
+ {
nCopied = 0;
- while( btree->curitem < btree->nitem && maxoff*sizeof(ItemPointerData) < 2*(freeSpace - sizeof(ItemPointerData)) ) {
- memcpy( vector + maxoff*sizeof(ItemPointerData), btree->items+btree->curitem,
- sizeof(ItemPointerData) );
+ while (btree->curitem < btree->nitem && maxoff * sizeof(ItemPointerData) < 2 * (freeSpace - sizeof(ItemPointerData)))
+ {
+ memcpy(vector + maxoff * sizeof(ItemPointerData), btree->items + btree->curitem,
+ sizeof(ItemPointerData));
maxoff++;
nCopied++;
btree->curitem++;
}
- } else {
- ptr = vector + (off-1)*sizeofitem;
- if ( maxoff+1-off != 0 )
- memmove( ptr+sizeofitem, ptr, (maxoff-off+1) * sizeofitem );
- if ( GinPageIsLeaf(lpage) ) {
- memcpy(ptr, btree->items+btree->curitem, sizeofitem );
+ }
+ else
+ {
+ ptr = vector + (off - 1) * sizeofitem;
+ if (maxoff + 1 - off != 0)
+ memmove(ptr + sizeofitem, ptr, (maxoff - off + 1) * sizeofitem);
+ if (GinPageIsLeaf(lpage))
+ {
+ memcpy(ptr, btree->items + btree->curitem, sizeofitem);
btree->curitem++;
- } else
- memcpy(ptr, &(btree->pitem), sizeofitem );
-
+ }
+ else
+ memcpy(ptr, &(btree->pitem), sizeofitem);
+
maxoff++;
}
- /* we suppose that during index creation table scaned from
- begin to end, so ItemPointers are monotonically increased.. */
- if ( btree->isBuild && GinPageRightMost(lpage) )
- separator=freeSpace/sizeofitem;
+ /*
+ * we suppose that during index creation table scaned from begin to end,
+ * so ItemPointers are monotonically increased..
+ */
+ if (btree->isBuild && GinPageRightMost(lpage))
+ separator = freeSpace / sizeofitem;
else
- separator=maxoff/2;
+ separator = maxoff / 2;
- GinInitPage( rpage, GinPageGetOpaque(lpage)->flags, pageSize );
- GinInitPage( lpage, GinPageGetOpaque(rpage)->flags, pageSize );
+ GinInitPage(rpage, GinPageGetOpaque(lpage)->flags, pageSize);
+ GinInitPage(lpage, GinPageGetOpaque(rpage)->flags, pageSize);
- memcpy( GinDataPageGetItem(lpage, FirstOffsetNumber), vector, separator * sizeofitem );
+ memcpy(GinDataPageGetItem(lpage, FirstOffsetNumber), vector, separator * sizeofitem);
GinPageGetOpaque(lpage)->maxoff = separator;
- memcpy( GinDataPageGetItem(rpage, FirstOffsetNumber),
- vector + separator * sizeofitem, (maxoff-separator) * sizeofitem );
- GinPageGetOpaque(rpage)->maxoff = maxoff-separator;
-
- PostingItemSetBlockNumber( &(btree->pitem), BufferGetBlockNumber(lbuf) );
- if ( GinPageIsLeaf(lpage) )
- btree->pitem.key = *(ItemPointerData*)GinDataPageGetItem(lpage,
- GinPageGetOpaque(lpage)->maxoff);
- else
- btree->pitem.key = ((PostingItem*)GinDataPageGetItem(lpage,
- GinPageGetOpaque(lpage)->maxoff))->key;
+ memcpy(GinDataPageGetItem(rpage, FirstOffsetNumber),
+ vector + separator * sizeofitem, (maxoff - separator) * sizeofitem);
+ GinPageGetOpaque(rpage)->maxoff = maxoff - separator;
+
+ PostingItemSetBlockNumber(&(btree->pitem), BufferGetBlockNumber(lbuf));
+ if (GinPageIsLeaf(lpage))
+ btree->pitem.key = *(ItemPointerData *) GinDataPageGetItem(lpage,
+ GinPageGetOpaque(lpage)->maxoff);
+ else
+ btree->pitem.key = ((PostingItem *) GinDataPageGetItem(lpage,
+ GinPageGetOpaque(lpage)->maxoff))->key;
btree->rightblkno = BufferGetBlockNumber(rbuf);
/* set up right bound for left page */
@@ -452,8 +514,8 @@ dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRe
data.node = btree->index->rd_node;
data.rootBlkno = InvalidBlockNumber;
- data.lblkno = BufferGetBlockNumber( lbuf );
- data.rblkno = BufferGetBlockNumber( rbuf );
+ data.lblkno = BufferGetBlockNumber(lbuf);
+ data.rblkno = BufferGetBlockNumber(rbuf);
data.separator = separator;
data.nitem = maxoff;
data.isData = TRUE;
@@ -468,34 +530,37 @@ dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRe
rdata[1].buffer = InvalidBuffer;
rdata[1].data = vector;
- rdata[1].len = MAXALIGN( maxoff * sizeofitem );
+ rdata[1].len = MAXALIGN(maxoff * sizeofitem);
rdata[1].next = NULL;
return lpage;
}
/*
- * Fills new root by right bound values from child.
+ * Fills new root by right bound values from child.
* Also called from ginxlog, should not use btree
*/
void
-dataFillRoot(GinBtree btree, Buffer root, Buffer lbuf, Buffer rbuf) {
- Page page = BufferGetPage(root),
- lpage = BufferGetPage(lbuf),
- rpage = BufferGetPage(rbuf);
- PostingItem li, ri;
+dataFillRoot(GinBtree btree, Buffer root, Buffer lbuf, Buffer rbuf)
+{
+ Page page = BufferGetPage(root),
+ lpage = BufferGetPage(lbuf),
+ rpage = BufferGetPage(rbuf);
+ PostingItem li,
+ ri;
li.key = *GinDataPageGetRightBound(lpage);
- PostingItemSetBlockNumber( &li, BufferGetBlockNumber(lbuf) );
- GinDataPageAddItem(page, &li, InvalidOffsetNumber );
+ PostingItemSetBlockNumber(&li, BufferGetBlockNumber(lbuf));
+ GinDataPageAddItem(page, &li, InvalidOffsetNumber);
ri.key = *GinDataPageGetRightBound(rpage);
- PostingItemSetBlockNumber( &ri, BufferGetBlockNumber(rbuf) );
- GinDataPageAddItem(page, &ri, InvalidOffsetNumber );
+ PostingItemSetBlockNumber(&ri, BufferGetBlockNumber(rbuf));
+ GinDataPageAddItem(page, &ri, InvalidOffsetNumber);
}
void
-prepareDataScan( GinBtree btree, Relation index) {
+prepareDataScan(GinBtree btree, Relation index)
+{
memset(btree, 0, sizeof(GinBtreeData));
btree->index = index;
btree->isMoveRight = dataIsMoveRight;
@@ -509,21 +574,22 @@ prepareDataScan( GinBtree btree, Relation index) {
btree->fillRoot = dataFillRoot;
btree->searchMode = FALSE;
- btree->isDelete = FALSE;
+ btree->isDelete = FALSE;
btree->fullScan = FALSE;
- btree->isBuild= FALSE;
+ btree->isBuild = FALSE;
}
-GinPostingTreeScan*
-prepareScanPostingTree( Relation index, BlockNumber rootBlkno, bool searchMode) {
- GinPostingTreeScan *gdi = (GinPostingTreeScan*)palloc0( sizeof(GinPostingTreeScan) );
+GinPostingTreeScan *
+prepareScanPostingTree(Relation index, BlockNumber rootBlkno, bool searchMode)
+{
+ GinPostingTreeScan *gdi = (GinPostingTreeScan *) palloc0(sizeof(GinPostingTreeScan));
+
+ prepareDataScan(&gdi->btree, index);
- prepareDataScan( &gdi->btree, index );
-
gdi->btree.searchMode = searchMode;
gdi->btree.fullScan = searchMode;
- gdi->stack = ginPrepareFindLeafPage( &gdi->btree, rootBlkno );
+ gdi->stack = ginPrepareFindLeafPage(&gdi->btree, rootBlkno);
return gdi;
}
@@ -532,33 +598,35 @@ prepareScanPostingTree( Relation index, BlockNumber rootBlkno, bool searchMode)
* Inserts array of item pointers, may execute several tree scan (very rare)
*/
void
-insertItemPointer(GinPostingTreeScan *gdi, ItemPointerData *items, uint32 nitem) {
+insertItemPointer(GinPostingTreeScan *gdi, ItemPointerData *items, uint32 nitem)
+{
BlockNumber rootBlkno = gdi->stack->blkno;
gdi->btree.items = items;
gdi->btree.nitem = nitem;
gdi->btree.curitem = 0;
- while( gdi->btree.curitem < gdi->btree.nitem ) {
+ while (gdi->btree.curitem < gdi->btree.nitem)
+ {
if (!gdi->stack)
- gdi->stack = ginPrepareFindLeafPage( &gdi->btree, rootBlkno );
+ gdi->stack = ginPrepareFindLeafPage(&gdi->btree, rootBlkno);
- gdi->stack = ginFindLeafPage( &gdi->btree, gdi->stack );
+ gdi->stack = ginFindLeafPage(&gdi->btree, gdi->stack);
- if ( gdi->btree.findItem( &(gdi->btree), gdi->stack ) )
- elog(ERROR,"item pointer (%u,%d) already exists",
- ItemPointerGetBlockNumber(gdi->btree.items + gdi->btree.curitem),
- ItemPointerGetOffsetNumber(gdi->btree.items + gdi->btree.curitem));
+ if (gdi->btree.findItem(&(gdi->btree), gdi->stack))
+ elog(ERROR, "item pointer (%u,%d) already exists",
+ ItemPointerGetBlockNumber(gdi->btree.items + gdi->btree.curitem),
+ ItemPointerGetOffsetNumber(gdi->btree.items + gdi->btree.curitem));
ginInsertValue(&(gdi->btree), gdi->stack);
- gdi->stack=NULL;
+ gdi->stack = NULL;
}
}
Buffer
-scanBeginPostingTree( GinPostingTreeScan *gdi ) {
- gdi->stack = ginFindLeafPage( &gdi->btree, gdi->stack );
+scanBeginPostingTree(GinPostingTreeScan *gdi)
+{
+ gdi->stack = ginFindLeafPage(&gdi->btree, gdi->stack);
return gdi->stack->buffer;
}
-
diff --git a/src/backend/access/gin/ginentrypage.c b/src/backend/access/gin/ginentrypage.c
index 6e3cc75ce0..129c955096 100644
--- a/src/backend/access/gin/ginentrypage.c
+++ b/src/backend/access/gin/ginentrypage.c
@@ -1,14 +1,14 @@
/*-------------------------------------------------------------------------
*
* ginentrypage.c
- * page utilities routines for the postgres inverted index access method.
+ * page utilities routines for the postgres inverted index access method.
*
*
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/gin/ginentrypage.c,v 1.3 2006/07/14 14:52:16 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gin/ginentrypage.c,v 1.4 2006/10/04 00:29:47 momjian Exp $
*-------------------------------------------------------------------------
*/
@@ -23,48 +23,52 @@
* 1) Posting list
* - itup->t_info & INDEX_SIZE_MASK contains size of tuple as usial
* - ItemPointerGetBlockNumber(&itup->t_tid) contains original
- * size of tuple (without posting list).
+ * size of tuple (without posting list).
* Macroses: GinGetOrigSizePosting(itup) / GinSetOrigSizePosting(itup,n)
* - ItemPointerGetOffsetNumber(&itup->t_tid) contains number
* of elements in posting list (number of heap itempointer)
* Macroses: GinGetNPosting(itup) / GinSetNPosting(itup,n)
- * - After usial part of tuple there is a posting list
+ * - After usial part of tuple there is a posting list
* Macros: GinGetPosting(itup)
* 2) Posting tree
* - itup->t_info & INDEX_SIZE_MASK contains size of tuple as usial
- * - ItemPointerGetBlockNumber(&itup->t_tid) contains block number of
+ * - ItemPointerGetBlockNumber(&itup->t_tid) contains block number of
* root of posting tree
* - ItemPointerGetOffsetNumber(&itup->t_tid) contains magick number GIN_TREE_POSTING
*/
IndexTuple
-GinFormTuple(GinState *ginstate, Datum key, ItemPointerData *ipd, uint32 nipd) {
- bool isnull=FALSE;
+GinFormTuple(GinState *ginstate, Datum key, ItemPointerData *ipd, uint32 nipd)
+{
+ bool isnull = FALSE;
IndexTuple itup;
- itup = index_form_tuple(ginstate->tupdesc, &key, &isnull);
+ itup = index_form_tuple(ginstate->tupdesc, &key, &isnull);
- GinSetOrigSizePosting( itup, IndexTupleSize(itup) );
+ GinSetOrigSizePosting(itup, IndexTupleSize(itup));
- if ( nipd > 0 ) {
- uint32 newsize = MAXALIGN(SHORTALIGN(IndexTupleSize(itup)) + sizeof(ItemPointerData)*nipd);
+ if (nipd > 0)
+ {
+ uint32 newsize = MAXALIGN(SHORTALIGN(IndexTupleSize(itup)) + sizeof(ItemPointerData) * nipd);
- if ( newsize >= INDEX_SIZE_MASK )
+ if (newsize >= INDEX_SIZE_MASK)
return NULL;
- if ( newsize > TOAST_INDEX_TARGET && nipd > 1 )
+ if (newsize > TOAST_INDEX_TARGET && nipd > 1)
return NULL;
- itup = repalloc( itup, newsize );
+ itup = repalloc(itup, newsize);
/* set new size */
- itup->t_info &= ~INDEX_SIZE_MASK;
+ itup->t_info &= ~INDEX_SIZE_MASK;
itup->t_info |= newsize;
- if ( ipd )
- memcpy( GinGetPosting(itup), ipd, sizeof(ItemPointerData)*nipd );
- GinSetNPosting(itup, nipd);
- } else {
- GinSetNPosting(itup, 0);
+ if (ipd)
+ memcpy(GinGetPosting(itup), ipd, sizeof(ItemPointerData) * nipd);
+ GinSetNPosting(itup, nipd);
+ }
+ else
+ {
+ GinSetNPosting(itup, 0);
}
return itup;
}
@@ -74,31 +78,35 @@ GinFormTuple(GinState *ginstate, Datum key, ItemPointerData *ipd, uint32 nipd) {
* so we don't use right bound, we use rightest key instead.
*/
static IndexTuple
-getRightMostTuple(Page page) {
+getRightMostTuple(Page page)
+{
OffsetNumber maxoff = PageGetMaxOffsetNumber(page);
+
return (IndexTuple) PageGetItem(page, PageGetItemId(page, maxoff));
}
Datum
-ginGetHighKey(GinState *ginstate, Page page) {
- IndexTuple itup;
- bool isnull;
+ginGetHighKey(GinState *ginstate, Page page)
+{
+ IndexTuple itup;
+ bool isnull;
itup = getRightMostTuple(page);
- return index_getattr(itup, FirstOffsetNumber, ginstate->tupdesc, &isnull);
+ return index_getattr(itup, FirstOffsetNumber, ginstate->tupdesc, &isnull);
}
-static bool
-entryIsMoveRight(GinBtree btree, Page page) {
- Datum highkey;
+static bool
+entryIsMoveRight(GinBtree btree, Page page)
+{
+ Datum highkey;
- if ( GinPageRightMost(page) )
+ if (GinPageRightMost(page))
return FALSE;
highkey = ginGetHighKey(btree->ginstate, page);
- if ( compareEntries(btree->ginstate, btree->entryValue, highkey) > 0 )
+ if (compareEntries(btree->ginstate, btree->entryValue, highkey) > 0)
return TRUE;
return FALSE;
@@ -109,16 +117,20 @@ entryIsMoveRight(GinBtree btree, Page page) {
* page correctly choosen and searching value SHOULD be on page
*/
static BlockNumber
-entryLocateEntry(GinBtree btree, GinBtreeStack *stack) {
- OffsetNumber low, high, maxoff;
- IndexTuple itup = NULL;
- int result;
- Page page = BufferGetPage( stack->buffer );
-
- Assert( !GinPageIsLeaf(page) );
- Assert( !GinPageIsData(page) );
-
- if ( btree->fullScan ) {
+entryLocateEntry(GinBtree btree, GinBtreeStack *stack)
+{
+ OffsetNumber low,
+ high,
+ maxoff;
+ IndexTuple itup = NULL;
+ int result;
+ Page page = BufferGetPage(stack->buffer);
+
+ Assert(!GinPageIsLeaf(page));
+ Assert(!GinPageIsData(page));
+
+ if (btree->fullScan)
+ {
stack->off = FirstOffsetNumber;
stack->predictNumber *= PageGetMaxOffsetNumber(page);
return btree->getLeftMostPage(btree, page);
@@ -126,39 +138,43 @@ entryLocateEntry(GinBtree btree, GinBtreeStack *stack) {
low = FirstOffsetNumber;
maxoff = high = PageGetMaxOffsetNumber(page);
- Assert( high >= low );
+ Assert(high >= low);
high++;
- while (high > low) {
+ while (high > low)
+ {
OffsetNumber mid = low + ((high - low) / 2);
- if ( mid == maxoff && GinPageRightMost(page) )
+ if (mid == maxoff && GinPageRightMost(page))
/* Right infinity */
result = -1;
- else {
- bool isnull;
+ else
+ {
+ bool isnull;
itup = (IndexTuple) PageGetItem(page, PageGetItemId(page, mid));
- result = compareEntries(btree->ginstate, btree->entryValue,
- index_getattr(itup, FirstOffsetNumber, btree->ginstate->tupdesc, &isnull) );
+ result = compareEntries(btree->ginstate, btree->entryValue,
+ index_getattr(itup, FirstOffsetNumber, btree->ginstate->tupdesc, &isnull));
}
- if ( result == 0 ) {
+ if (result == 0)
+ {
stack->off = mid;
- Assert( GinItemPointerGetBlockNumber(&(itup)->t_tid) != GIN_ROOT_BLKNO );
+ Assert(GinItemPointerGetBlockNumber(&(itup)->t_tid) != GIN_ROOT_BLKNO);
return GinItemPointerGetBlockNumber(&(itup)->t_tid);
- } else if ( result > 0 )
+ }
+ else if (result > 0)
low = mid + 1;
else
high = mid;
}
- Assert( high>=FirstOffsetNumber && high <= maxoff );
+ Assert(high >= FirstOffsetNumber && high <= maxoff);
stack->off = high;
itup = (IndexTuple) PageGetItem(page, PageGetItemId(page, high));
- Assert( GinItemPointerGetBlockNumber(&(itup)->t_tid) != GIN_ROOT_BLKNO );
+ Assert(GinItemPointerGetBlockNumber(&(itup)->t_tid) != GIN_ROOT_BLKNO);
return GinItemPointerGetBlockNumber(&(itup)->t_tid);
}
@@ -168,15 +184,18 @@ entryLocateEntry(GinBtree btree, GinBtreeStack *stack) {
* Returns true if value found on page.
*/
static bool
-entryLocateLeafEntry(GinBtree btree, GinBtreeStack *stack) {
- Page page = BufferGetPage( stack->buffer );
- OffsetNumber low, high;
- IndexTuple itup;
+entryLocateLeafEntry(GinBtree btree, GinBtreeStack *stack)
+{
+ Page page = BufferGetPage(stack->buffer);
+ OffsetNumber low,
+ high;
+ IndexTuple itup;
- Assert( GinPageIsLeaf(page) );
- Assert( !GinPageIsData(page) );
+ Assert(GinPageIsLeaf(page));
+ Assert(!GinPageIsData(page));
- if ( btree->fullScan ) {
+ if (btree->fullScan)
+ {
stack->off = FirstOffsetNumber;
return TRUE;
}
@@ -184,26 +203,30 @@ entryLocateLeafEntry(GinBtree btree, GinBtreeStack *stack) {
low = FirstOffsetNumber;
high = PageGetMaxOffsetNumber(page);
- if ( high < low ) {
+ if (high < low)
+ {
stack->off = FirstOffsetNumber;
return false;
}
high++;
- while (high > low) {
+ while (high > low)
+ {
OffsetNumber mid = low + ((high - low) / 2);
- bool isnull;
- int result;
+ bool isnull;
+ int result;
itup = (IndexTuple) PageGetItem(page, PageGetItemId(page, mid));
result = compareEntries(btree->ginstate, btree->entryValue,
- index_getattr(itup, FirstOffsetNumber, btree->ginstate->tupdesc, &isnull) );
+ index_getattr(itup, FirstOffsetNumber, btree->ginstate->tupdesc, &isnull));
- if ( result == 0 ) {
+ if (result == 0)
+ {
stack->off = mid;
return true;
- } else if ( result > 0 )
+ }
+ else if (result > 0)
low = mid + 1;
else
high = mid;
@@ -214,33 +237,40 @@ entryLocateLeafEntry(GinBtree btree, GinBtreeStack *stack) {
}
static OffsetNumber
-entryFindChildPtr(GinBtree btree, Page page, BlockNumber blkno, OffsetNumber storedOff) {
- OffsetNumber i, maxoff = PageGetMaxOffsetNumber(page);
- IndexTuple itup;
+entryFindChildPtr(GinBtree btree, Page page, BlockNumber blkno, OffsetNumber storedOff)
+{
+ OffsetNumber i,
+ maxoff = PageGetMaxOffsetNumber(page);
+ IndexTuple itup;
- Assert( !GinPageIsLeaf(page) );
- Assert( !GinPageIsData(page) );
+ Assert(!GinPageIsLeaf(page));
+ Assert(!GinPageIsData(page));
/* if page isn't changed, we returns storedOff */
- if ( storedOff>= FirstOffsetNumber && storedOff<=maxoff) {
+ if (storedOff >= FirstOffsetNumber && storedOff <= maxoff)
+ {
itup = (IndexTuple) PageGetItem(page, PageGetItemId(page, storedOff));
- if ( GinItemPointerGetBlockNumber(&(itup)->t_tid) == blkno )
+ if (GinItemPointerGetBlockNumber(&(itup)->t_tid) == blkno)
return storedOff;
- /* we hope, that needed pointer goes to right. It's true
- if there wasn't a deletion */
- for( i=storedOff+1 ; i <= maxoff ; i++ ) {
+ /*
+ * we hope, that needed pointer goes to right. It's true if there
+ * wasn't a deletion
+ */
+ for (i = storedOff + 1; i <= maxoff; i++)
+ {
itup = (IndexTuple) PageGetItem(page, PageGetItemId(page, i));
- if ( GinItemPointerGetBlockNumber(&(itup)->t_tid) == blkno )
+ if (GinItemPointerGetBlockNumber(&(itup)->t_tid) == blkno)
return i;
}
- maxoff = storedOff-1;
+ maxoff = storedOff - 1;
}
/* last chance */
- for( i=FirstOffsetNumber; i <= maxoff ; i++ ) {
+ for (i = FirstOffsetNumber; i <= maxoff; i++)
+ {
itup = (IndexTuple) PageGetItem(page, PageGetItemId(page, i));
- if ( GinItemPointerGetBlockNumber(&(itup)->t_tid) == blkno )
+ if (GinItemPointerGetBlockNumber(&(itup)->t_tid) == blkno)
return i;
}
@@ -248,31 +278,35 @@ entryFindChildPtr(GinBtree btree, Page page, BlockNumber blkno, OffsetNumber sto
}
static BlockNumber
-entryGetLeftMostPage(GinBtree btree, Page page) {
- IndexTuple itup;
+entryGetLeftMostPage(GinBtree btree, Page page)
+{
+ IndexTuple itup;
- Assert( !GinPageIsLeaf(page) );
- Assert( !GinPageIsData(page) );
- Assert( PageGetMaxOffsetNumber(page) >= FirstOffsetNumber );
+ Assert(!GinPageIsLeaf(page));
+ Assert(!GinPageIsData(page));
+ Assert(PageGetMaxOffsetNumber(page) >= FirstOffsetNumber);
itup = (IndexTuple) PageGetItem(page, PageGetItemId(page, FirstOffsetNumber));
- return GinItemPointerGetBlockNumber(&(itup)->t_tid);
+ return GinItemPointerGetBlockNumber(&(itup)->t_tid);
}
static bool
-entryIsEnoughSpace( GinBtree btree, Buffer buf, OffsetNumber off ) {
- Size itupsz = 0;
- Page page = BufferGetPage(buf);
+entryIsEnoughSpace(GinBtree btree, Buffer buf, OffsetNumber off)
+{
+ Size itupsz = 0;
+ Page page = BufferGetPage(buf);
+
+ Assert(btree->entry);
+ Assert(!GinPageIsData(page));
- Assert( btree->entry );
- Assert( !GinPageIsData(page) );
+ if (btree->isDelete)
+ {
+ IndexTuple itup = (IndexTuple) PageGetItem(page, PageGetItemId(page, off));
- if ( btree->isDelete ) {
- IndexTuple itup = (IndexTuple)PageGetItem(page, PageGetItemId(page, off));
- itupsz = MAXALIGN( IndexTupleSize( itup ) ) + sizeof(ItemIdData);
+ itupsz = MAXALIGN(IndexTupleSize(itup)) + sizeof(ItemIdData);
}
- if ( PageGetFreeSpace(page) + itupsz >= MAXALIGN(IndexTupleSize(btree->entry)) + sizeof(ItemIdData) )
+ if (PageGetFreeSpace(page) + itupsz >= MAXALIGN(IndexTupleSize(btree->entry)) + sizeof(ItemIdData))
return true;
return false;
@@ -284,19 +318,23 @@ entryIsEnoughSpace( GinBtree btree, Buffer buf, OffsetNumber off ) {
* if child split is occured
*/
static BlockNumber
-entryPreparePage( GinBtree btree, Page page, OffsetNumber off) {
+entryPreparePage(GinBtree btree, Page page, OffsetNumber off)
+{
BlockNumber ret = InvalidBlockNumber;
- Assert( btree->entry );
- Assert( !GinPageIsData(page) );
+ Assert(btree->entry);
+ Assert(!GinPageIsData(page));
- if ( btree->isDelete ) {
- Assert( GinPageIsLeaf(page) );
+ if (btree->isDelete)
+ {
+ Assert(GinPageIsLeaf(page));
PageIndexTupleDelete(page, off);
}
- if ( !GinPageIsLeaf(page) && btree->rightblkno != InvalidBlockNumber ) {
- IndexTuple itup = (IndexTuple)PageGetItem(page, PageGetItemId(page, off));
+ if (!GinPageIsLeaf(page) && btree->rightblkno != InvalidBlockNumber)
+ {
+ IndexTuple itup = (IndexTuple) PageGetItem(page, PageGetItemId(page, off));
+
ItemPointerSet(&itup->t_tid, btree->rightblkno, InvalidOffsetNumber);
ret = btree->rightblkno;
}
@@ -310,22 +348,23 @@ entryPreparePage( GinBtree btree, Page page, OffsetNumber off) {
* Place tuple on page and fills WAL record
*/
static void
-entryPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prdata) {
- Page page = BufferGetPage(buf);
+entryPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prdata)
+{
+ Page page = BufferGetPage(buf);
static XLogRecData rdata[3];
- OffsetNumber placed;
- static ginxlogInsert data;
+ OffsetNumber placed;
+ static ginxlogInsert data;
*prdata = rdata;
- data.updateBlkno = entryPreparePage( btree, page, off );
+ data.updateBlkno = entryPreparePage(btree, page, off);
- placed = PageAddItem( page, (Item)btree->entry, IndexTupleSize(btree->entry), off, LP_USED);
- if ( placed != off )
+ placed = PageAddItem(page, (Item) btree->entry, IndexTupleSize(btree->entry), off, LP_USED);
+ if (placed != off)
elog(ERROR, "failed to add item to index page in \"%s\"",
- RelationGetRelationName(btree->index));
+ RelationGetRelationName(btree->index));
data.node = btree->index->rd_node;
- data.blkno = BufferGetBlockNumber( buf );
+ data.blkno = BufferGetBlockNumber(buf);
data.offset = off;
data.nitem = 1;
data.isDelete = btree->isDelete;
@@ -358,87 +397,99 @@ entryPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prd
* an equal number!
*/
static Page
-entrySplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRecData **prdata) {
+entrySplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRecData **prdata)
+{
static XLogRecData rdata[2];
- OffsetNumber i, maxoff, separator=InvalidOffsetNumber;
- Size totalsize=0;
- Size lsize = 0, size;
- static char tupstore[ 2*BLCKSZ ];
- char *ptr;
- IndexTuple itup, leftrightmost=NULL;
- static ginxlogSplit data;
- Datum value;
- bool isnull;
- Page page;
- Page lpage = GinPageGetCopyPage( BufferGetPage( lbuf ) );
- Page rpage = BufferGetPage( rbuf );
- Size pageSize = PageGetPageSize( lpage );
+ OffsetNumber i,
+ maxoff,
+ separator = InvalidOffsetNumber;
+ Size totalsize = 0;
+ Size lsize = 0,
+ size;
+ static char tupstore[2 * BLCKSZ];
+ char *ptr;
+ IndexTuple itup,
+ leftrightmost = NULL;
+ static ginxlogSplit data;
+ Datum value;
+ bool isnull;
+ Page page;
+ Page lpage = GinPageGetCopyPage(BufferGetPage(lbuf));
+ Page rpage = BufferGetPage(rbuf);
+ Size pageSize = PageGetPageSize(lpage);
*prdata = rdata;
- data.leftChildBlkno = ( GinPageIsLeaf(lpage) ) ?
- InvalidOffsetNumber : GinItemPointerGetBlockNumber( &(btree->entry->t_tid) );
- data.updateBlkno = entryPreparePage( btree, lpage, off );
+ data.leftChildBlkno = (GinPageIsLeaf(lpage)) ?
+ InvalidOffsetNumber : GinItemPointerGetBlockNumber(&(btree->entry->t_tid));
+ data.updateBlkno = entryPreparePage(btree, lpage, off);
maxoff = PageGetMaxOffsetNumber(lpage);
- ptr = tupstore;
+ ptr = tupstore;
- for(i=FirstOffsetNumber; i<=maxoff; i++) {
- if ( i==off ) {
- size = MAXALIGN( IndexTupleSize(btree->entry) );
+ for (i = FirstOffsetNumber; i <= maxoff; i++)
+ {
+ if (i == off)
+ {
+ size = MAXALIGN(IndexTupleSize(btree->entry));
memcpy(ptr, btree->entry, size);
- ptr+=size;
+ ptr += size;
totalsize += size + sizeof(ItemIdData);
}
- itup = (IndexTuple)PageGetItem(lpage, PageGetItemId(lpage, i));
- size = MAXALIGN( IndexTupleSize(itup) );
+ itup = (IndexTuple) PageGetItem(lpage, PageGetItemId(lpage, i));
+ size = MAXALIGN(IndexTupleSize(itup));
memcpy(ptr, itup, size);
- ptr+=size;
+ ptr += size;
totalsize += size + sizeof(ItemIdData);
}
- if ( off==maxoff+1 ) {
- size = MAXALIGN( IndexTupleSize(btree->entry) );
+ if (off == maxoff + 1)
+ {
+ size = MAXALIGN(IndexTupleSize(btree->entry));
memcpy(ptr, btree->entry, size);
- ptr+=size;
+ ptr += size;
totalsize += size + sizeof(ItemIdData);
}
- GinInitPage( rpage, GinPageGetOpaque(lpage)->flags, pageSize );
- GinInitPage( lpage, GinPageGetOpaque(rpage)->flags, pageSize );
+ GinInitPage(rpage, GinPageGetOpaque(lpage)->flags, pageSize);
+ GinInitPage(lpage, GinPageGetOpaque(rpage)->flags, pageSize);
ptr = tupstore;
- maxoff++;
+ maxoff++;
lsize = 0;
page = lpage;
- for(i=FirstOffsetNumber; i<=maxoff; i++) {
- itup = (IndexTuple)ptr;
-
- if ( lsize > totalsize/2 ) {
- if ( separator==InvalidOffsetNumber )
- separator = i-1;
+ for (i = FirstOffsetNumber; i <= maxoff; i++)
+ {
+ itup = (IndexTuple) ptr;
+
+ if (lsize > totalsize / 2)
+ {
+ if (separator == InvalidOffsetNumber)
+ separator = i - 1;
page = rpage;
- } else {
+ }
+ else
+ {
leftrightmost = itup;
- lsize += MAXALIGN( IndexTupleSize(itup) ) + sizeof(ItemIdData);
+ lsize += MAXALIGN(IndexTupleSize(itup)) + sizeof(ItemIdData);
}
- if ( PageAddItem( page, (Item)itup, IndexTupleSize(itup), InvalidOffsetNumber, LP_USED) == InvalidOffsetNumber )
+ if (PageAddItem(page, (Item) itup, IndexTupleSize(itup), InvalidOffsetNumber, LP_USED) == InvalidOffsetNumber)
elog(ERROR, "failed to add item to index page in \"%s\"",
- RelationGetRelationName(btree->index));
- ptr += MAXALIGN( IndexTupleSize(itup) );
+ RelationGetRelationName(btree->index));
+ ptr += MAXALIGN(IndexTupleSize(itup));
}
-
+
value = index_getattr(leftrightmost, FirstOffsetNumber, btree->ginstate->tupdesc, &isnull);
- btree->entry = GinFormTuple( btree->ginstate, value, NULL, 0);
- ItemPointerSet(&(btree->entry)->t_tid, BufferGetBlockNumber( lbuf ), InvalidOffsetNumber);
- btree->rightblkno = BufferGetBlockNumber( rbuf );
-
+ btree->entry = GinFormTuple(btree->ginstate, value, NULL, 0);
+ ItemPointerSet(&(btree->entry)->t_tid, BufferGetBlockNumber(lbuf), InvalidOffsetNumber);
+ btree->rightblkno = BufferGetBlockNumber(rbuf);
+
data.node = btree->index->rd_node;
data.rootBlkno = InvalidBlockNumber;
- data.lblkno = BufferGetBlockNumber( lbuf );
- data.rblkno = BufferGetBlockNumber( rbuf );
+ data.lblkno = BufferGetBlockNumber(lbuf);
+ data.rblkno = BufferGetBlockNumber(rbuf);
data.separator = separator;
data.nitem = maxoff;
data.isData = FALSE;
@@ -458,23 +509,28 @@ entrySplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogR
return lpage;
}
-/*
+/*
* return newly allocate rightmost tuple
*/
IndexTuple
-ginPageGetLinkItup(Buffer buf) {
- IndexTuple itup, nitup;
- Page page = BufferGetPage(buf);
-
- itup = getRightMostTuple( page );
- if ( GinPageIsLeaf(page) && !GinIsPostingTree(itup) ) {
- nitup = (IndexTuple)palloc( MAXALIGN(GinGetOrigSizePosting(itup)) );
- memcpy( nitup, itup, GinGetOrigSizePosting(itup) );
+ginPageGetLinkItup(Buffer buf)
+{
+ IndexTuple itup,
+ nitup;
+ Page page = BufferGetPage(buf);
+
+ itup = getRightMostTuple(page);
+ if (GinPageIsLeaf(page) && !GinIsPostingTree(itup))
+ {
+ nitup = (IndexTuple) palloc(MAXALIGN(GinGetOrigSizePosting(itup)));
+ memcpy(nitup, itup, GinGetOrigSizePosting(itup));
nitup->t_info &= ~INDEX_SIZE_MASK;
nitup->t_info |= GinGetOrigSizePosting(itup);
- } else {
- nitup = (IndexTuple)palloc( MAXALIGN(IndexTupleSize(itup)) );
- memcpy( nitup, itup, IndexTupleSize(itup) );
+ }
+ else
+ {
+ nitup = (IndexTuple) palloc(MAXALIGN(IndexTupleSize(itup)));
+ memcpy(nitup, itup, IndexTupleSize(itup));
}
ItemPointerSet(&nitup->t_tid, BufferGetBlockNumber(buf), InvalidOffsetNumber);
@@ -486,23 +542,25 @@ ginPageGetLinkItup(Buffer buf) {
* Also called from ginxlog, should not use btree
*/
void
-entryFillRoot(GinBtree btree, Buffer root, Buffer lbuf, Buffer rbuf) {
- Page page;
- IndexTuple itup;
+entryFillRoot(GinBtree btree, Buffer root, Buffer lbuf, Buffer rbuf)
+{
+ Page page;
+ IndexTuple itup;
page = BufferGetPage(root);
- itup = ginPageGetLinkItup( lbuf );
- if ( PageAddItem( page, (Item)itup, IndexTupleSize(itup), InvalidOffsetNumber, LP_USED) == InvalidOffsetNumber )
+ itup = ginPageGetLinkItup(lbuf);
+ if (PageAddItem(page, (Item) itup, IndexTupleSize(itup), InvalidOffsetNumber, LP_USED) == InvalidOffsetNumber)
elog(ERROR, "failed to add item to index root page");
- itup = ginPageGetLinkItup( rbuf );
- if ( PageAddItem( page, (Item)itup, IndexTupleSize(itup), InvalidOffsetNumber, LP_USED) == InvalidOffsetNumber )
+ itup = ginPageGetLinkItup(rbuf);
+ if (PageAddItem(page, (Item) itup, IndexTupleSize(itup), InvalidOffsetNumber, LP_USED) == InvalidOffsetNumber)
elog(ERROR, "failed to add item to index root page");
}
void
-prepareEntryScan( GinBtree btree, Relation index, Datum value, GinState *ginstate) {
+prepareEntryScan(GinBtree btree, Relation index, Datum value, GinState *ginstate)
+{
memset(btree, 0, sizeof(GinBtreeData));
btree->isMoveRight = entryIsMoveRight;
@@ -524,4 +582,3 @@ prepareEntryScan( GinBtree btree, Relation index, Datum value, GinState *ginstat
btree->fullScan = FALSE;
btree->isBuild = FALSE;
}
-
diff --git a/src/backend/access/gin/ginget.c b/src/backend/access/gin/ginget.c
index d40612f3ad..090bbe4f25 100644
--- a/src/backend/access/gin/ginget.c
+++ b/src/backend/access/gin/ginget.c
@@ -1,14 +1,14 @@
/*-------------------------------------------------------------------------
*
* ginget.c
- * fetch tuples from a GIN scan.
+ * fetch tuples from a GIN scan.
*
*
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/gin/ginget.c,v 1.2 2006/07/14 14:52:16 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gin/ginget.c,v 1.3 2006/10/04 00:29:47 momjian Exp $
*-------------------------------------------------------------------------
*/
@@ -18,15 +18,17 @@
#include "utils/memutils.h"
static OffsetNumber
-findItemInPage( Page page, ItemPointer item, OffsetNumber off ) {
+findItemInPage(Page page, ItemPointer item, OffsetNumber off)
+{
OffsetNumber maxoff = GinPageGetOpaque(page)->maxoff;
- int res;
+ int res;
- for(; off<=maxoff; off++) {
- res = compareItemPointers( item, (ItemPointer)GinDataPageGetItem(page, off) );
- Assert( res>= 0 );
+ for (; off <= maxoff; off++)
+ {
+ res = compareItemPointers(item, (ItemPointer) GinDataPageGetItem(page, off));
+ Assert(res >= 0);
- if ( res == 0 )
+ if (res == 0)
return off;
}
@@ -38,24 +40,29 @@ findItemInPage( Page page, ItemPointer item, OffsetNumber off ) {
* Stop* functions unlock buffer (but don't release!)
*/
static void
-startScanEntry( Relation index, GinState *ginstate, GinScanEntry entry, bool firstCall ) {
- if ( entry->master != NULL ) {
+startScanEntry(Relation index, GinState *ginstate, GinScanEntry entry, bool firstCall)
+{
+ if (entry->master != NULL)
+ {
entry->isFinished = entry->master->isFinished;
return;
}
- if ( firstCall ) {
- /* at first call we should find entry, and
- begin scan of posting tree or just store posting list in memory */
+ if (firstCall)
+ {
+ /*
+ * at first call we should find entry, and begin scan of posting tree
+ * or just store posting list in memory
+ */
GinBtreeData btreeEntry;
- GinBtreeStack *stackEntry;
- Page page;
- bool needUnlock = TRUE;
+ GinBtreeStack *stackEntry;
+ Page page;
+ bool needUnlock = TRUE;
- prepareEntryScan( &btreeEntry, index, entry->entry, ginstate );
+ prepareEntryScan(&btreeEntry, index, entry->entry, ginstate);
btreeEntry.searchMode = TRUE;
stackEntry = ginFindLeafPage(&btreeEntry, NULL);
- page = BufferGetPage( stackEntry->buffer );
+ page = BufferGetPage(stackEntry->buffer);
entry->isFinished = TRUE;
entry->buffer = InvalidBuffer;
@@ -65,103 +72,115 @@ startScanEntry( Relation index, GinState *ginstate, GinScanEntry entry, bool fir
entry->reduceResult = FALSE;
entry->predictNumberResult = 0;
- if ( btreeEntry.findItem( &btreeEntry, stackEntry ) ) {
- IndexTuple itup = (IndexTuple) PageGetItem(page, PageGetItemId(page, stackEntry->off));
+ if (btreeEntry.findItem(&btreeEntry, stackEntry))
+ {
+ IndexTuple itup = (IndexTuple) PageGetItem(page, PageGetItemId(page, stackEntry->off));
- if ( GinIsPostingTree(itup) ) {
+ if (GinIsPostingTree(itup))
+ {
BlockNumber rootPostingTree = GinGetPostingTree(itup);
GinPostingTreeScan *gdi;
- Page page;
+ Page page;
LockBuffer(stackEntry->buffer, GIN_UNLOCK);
- needUnlock = FALSE;
- gdi = prepareScanPostingTree( index, rootPostingTree, TRUE );
+ needUnlock = FALSE;
+ gdi = prepareScanPostingTree(index, rootPostingTree, TRUE);
- entry->buffer = scanBeginPostingTree( gdi );
- IncrBufferRefCount( entry->buffer );
+ entry->buffer = scanBeginPostingTree(gdi);
+ IncrBufferRefCount(entry->buffer);
- page = BufferGetPage( entry->buffer );
- entry->predictNumberResult = gdi->stack->predictNumber * GinPageGetOpaque(page)->maxoff;
+ page = BufferGetPage(entry->buffer);
+ entry->predictNumberResult = gdi->stack->predictNumber * GinPageGetOpaque(page)->maxoff;
- freeGinBtreeStack( gdi->stack );
- pfree( gdi );
+ freeGinBtreeStack(gdi->stack);
+ pfree(gdi);
entry->isFinished = FALSE;
- } else if ( GinGetNPosting(itup) > 0 ) {
+ }
+ else if (GinGetNPosting(itup) > 0)
+ {
entry->nlist = GinGetNPosting(itup);
- entry->list = (ItemPointerData*)palloc( sizeof(ItemPointerData) * entry->nlist );
- memcpy( entry->list, GinGetPosting(itup), sizeof(ItemPointerData) * entry->nlist );
+ entry->list = (ItemPointerData *) palloc(sizeof(ItemPointerData) * entry->nlist);
+ memcpy(entry->list, GinGetPosting(itup), sizeof(ItemPointerData) * entry->nlist);
entry->isFinished = FALSE;
}
}
- if ( needUnlock )
+ if (needUnlock)
LockBuffer(stackEntry->buffer, GIN_UNLOCK);
- freeGinBtreeStack( stackEntry );
- } else if ( entry->buffer != InvalidBuffer ) {
+ freeGinBtreeStack(stackEntry);
+ }
+ else if (entry->buffer != InvalidBuffer)
+ {
/* we should find place were we was stopped */
BlockNumber blkno;
- Page page;
+ Page page;
- LockBuffer( entry->buffer, GIN_SHARE );
+ LockBuffer(entry->buffer, GIN_SHARE);
- if ( !ItemPointerIsValid( &entry->curItem ) )
+ if (!ItemPointerIsValid(&entry->curItem))
/* start position */
return;
- Assert( entry->offset!=InvalidOffsetNumber );
+ Assert(entry->offset != InvalidOffsetNumber);
- page = BufferGetPage( entry->buffer );
+ page = BufferGetPage(entry->buffer);
/* try to find curItem in current buffer */
- if ( (entry->offset=findItemInPage(page , &entry->curItem, entry->offset))!=InvalidOffsetNumber )
+ if ((entry->offset = findItemInPage(page, &entry->curItem, entry->offset)) != InvalidOffsetNumber)
return;
/* walk to right */
- while( (blkno = GinPageGetOpaque( page )->rightlink)!=InvalidBlockNumber ) {
- LockBuffer( entry->buffer, GIN_UNLOCK );
- entry->buffer = ReleaseAndReadBuffer( entry->buffer, index, blkno );
- LockBuffer( entry->buffer, GIN_SHARE );
- page = BufferGetPage( entry->buffer );
-
- if ( (entry->offset=findItemInPage(page , &entry->curItem, FirstOffsetNumber))!=InvalidOffsetNumber )
+ while ((blkno = GinPageGetOpaque(page)->rightlink) != InvalidBlockNumber)
+ {
+ LockBuffer(entry->buffer, GIN_UNLOCK);
+ entry->buffer = ReleaseAndReadBuffer(entry->buffer, index, blkno);
+ LockBuffer(entry->buffer, GIN_SHARE);
+ page = BufferGetPage(entry->buffer);
+
+ if ((entry->offset = findItemInPage(page, &entry->curItem, FirstOffsetNumber)) != InvalidOffsetNumber)
return;
}
- elog(ERROR,"Logic error: lost previously founded ItemId");
+ elog(ERROR, "Logic error: lost previously founded ItemId");
}
}
static void
-stopScanEntry( GinScanEntry entry ) {
- if ( entry->buffer != InvalidBuffer )
- LockBuffer( entry->buffer, GIN_UNLOCK );
+stopScanEntry(GinScanEntry entry)
+{
+ if (entry->buffer != InvalidBuffer)
+ LockBuffer(entry->buffer, GIN_UNLOCK);
}
static void
-startScanKey( Relation index, GinState *ginstate, GinScanKey key ) {
- uint32 i;
-
- for(i=0;i<key->nentries;i++)
- startScanEntry( index, ginstate, key->scanEntry+i, key->firstCall );
-
- if ( key->firstCall ) {
- memset( key->entryRes, TRUE, sizeof(bool) * key->nentries );
+startScanKey(Relation index, GinState *ginstate, GinScanKey key)
+{
+ uint32 i;
+
+ for (i = 0; i < key->nentries; i++)
+ startScanEntry(index, ginstate, key->scanEntry + i, key->firstCall);
+
+ if (key->firstCall)
+ {
+ memset(key->entryRes, TRUE, sizeof(bool) * key->nentries);
key->isFinished = FALSE;
key->firstCall = FALSE;
- if ( GinFuzzySearchLimit > 0 ) {
+ if (GinFuzzySearchLimit > 0)
+ {
/*
- * If all of keys more than treshold 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 treshold 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++)
- if ( key->scanEntry[i].predictNumberResult <= key->nentries * GinFuzzySearchLimit )
- return;
-
- for(i=0;i<key->nentries;i++)
- if ( key->scanEntry[i].predictNumberResult > key->nentries * GinFuzzySearchLimit ) {
+ for (i = 0; i < key->nentries; i++)
+ if (key->scanEntry[i].predictNumberResult <= key->nentries * GinFuzzySearchLimit)
+ return;
+
+ for (i = 0; i < key->nentries; i++)
+ if (key->scanEntry[i].predictNumberResult > key->nentries * GinFuzzySearchLimit)
+ {
key->scanEntry[i].predictNumberResult /= key->nentries;
key->scanEntry[i].reduceResult = TRUE;
}
@@ -170,50 +189,60 @@ startScanKey( Relation index, GinState *ginstate, GinScanKey key ) {
}
static void
-stopScanKey( GinScanKey key ) {
- uint32 i;
+stopScanKey(GinScanKey key)
+{
+ uint32 i;
- for(i=0;i<key->nentries;i++)
- stopScanEntry( key->scanEntry+i );
+ for (i = 0; i < key->nentries; i++)
+ stopScanEntry(key->scanEntry + i);
}
static void
-startScan( IndexScanDesc scan ) {
- uint32 i;
- GinScanOpaque so = (GinScanOpaque) scan->opaque;
+startScan(IndexScanDesc scan)
+{
+ uint32 i;
+ GinScanOpaque so = (GinScanOpaque) scan->opaque;
- for(i=0; i<so->nkeys; i++)
- startScanKey( scan->indexRelation, &so->ginstate, so->keys + i );
+ for (i = 0; i < so->nkeys; i++)
+ startScanKey(scan->indexRelation, &so->ginstate, so->keys + i);
}
static void
-stopScan( IndexScanDesc scan ) {
- uint32 i;
- GinScanOpaque so = (GinScanOpaque) scan->opaque;
+stopScan(IndexScanDesc scan)
+{
+ uint32 i;
+ GinScanOpaque so = (GinScanOpaque) scan->opaque;
- for(i=0; i<so->nkeys; i++)
- stopScanKey( so->keys + i );
+ for (i = 0; i < so->nkeys; i++)
+ stopScanKey(so->keys + i);
}
static void
-entryGetNextItem( Relation index, GinScanEntry entry ) {
- Page page = BufferGetPage( entry->buffer );
+entryGetNextItem(Relation index, GinScanEntry entry)
+{
+ Page page = BufferGetPage(entry->buffer);
entry->offset++;
- if ( entry->offset <= GinPageGetOpaque( page )->maxoff && GinPageGetOpaque( page )->maxoff >= FirstOffsetNumber ) {
- entry->curItem = *(ItemPointerData*)GinDataPageGetItem(page, entry->offset);
- } else {
- BlockNumber blkno = GinPageGetOpaque( page )->rightlink;
-
- LockBuffer( entry->buffer, GIN_UNLOCK );
- if ( blkno == InvalidBlockNumber ) {
- ReleaseBuffer( entry->buffer );
+ if (entry->offset <= GinPageGetOpaque(page)->maxoff && GinPageGetOpaque(page)->maxoff >= FirstOffsetNumber)
+ {
+ entry->curItem = *(ItemPointerData *) GinDataPageGetItem(page, entry->offset);
+ }
+ else
+ {
+ BlockNumber blkno = GinPageGetOpaque(page)->rightlink;
+
+ LockBuffer(entry->buffer, GIN_UNLOCK);
+ if (blkno == InvalidBlockNumber)
+ {
+ ReleaseBuffer(entry->buffer);
entry->buffer = InvalidBuffer;
entry->isFinished = TRUE;
- } else {
- entry->buffer = ReleaseAndReadBuffer( entry->buffer, index, blkno );
- LockBuffer( entry->buffer, GIN_SHARE );
+ }
+ else
+ {
+ entry->buffer = ReleaseAndReadBuffer(entry->buffer, index, blkno);
+ LockBuffer(entry->buffer, GIN_SHARE);
entry->offset = InvalidOffsetNumber;
entryGetNextItem(index, entry);
}
@@ -221,29 +250,37 @@ entryGetNextItem( Relation index, GinScanEntry entry ) {
}
#define gin_rand() (((double) random()) / ((double) MAX_RANDOM_VALUE))
-#define dropItem(e) ( gin_rand() > ((double)GinFuzzySearchLimit)/((double)((e)->predictNumberResult)) )
+#define dropItem(e) ( gin_rand() > ((double)GinFuzzySearchLimit)/((double)((e)->predictNumberResult)) )
/*
- * Sets entry->curItem to new found heap item pointer for one
+ * Sets entry->curItem to new found heap item pointer for one
* entry of one scan key
*/
static bool
-entryGetItem( Relation index, GinScanEntry entry ) {
- if ( entry->master ) {
+entryGetItem(Relation index, GinScanEntry entry)
+{
+ if (entry->master)
+ {
entry->isFinished = entry->master->isFinished;
entry->curItem = entry->master->curItem;
- } else if ( entry->list ) {
+ }
+ else if (entry->list)
+ {
entry->offset++;
- if ( entry->offset <= entry->nlist )
- entry->curItem = entry->list[ entry->offset - 1 ];
- else {
- ItemPointerSet( &entry->curItem, InvalidBlockNumber, InvalidOffsetNumber );
+ if (entry->offset <= entry->nlist)
+ entry->curItem = entry->list[entry->offset - 1];
+ else
+ {
+ ItemPointerSet(&entry->curItem, InvalidBlockNumber, InvalidOffsetNumber);
entry->isFinished = TRUE;
}
- } else {
- do {
+ }
+ else
+ {
+ do
+ {
entryGetNextItem(index, entry);
- } while ( entry->isFinished == FALSE && entry->reduceResult == TRUE && dropItem(entry) );
+ } while (entry->isFinished == FALSE && entry->reduceResult == TRUE && dropItem(entry));
}
return entry->isFinished;
@@ -254,155 +291,180 @@ entryGetItem( Relation index, GinScanEntry entry ) {
* returns isFinished!
*/
static bool
-keyGetItem( Relation index, GinState *ginstate, MemoryContext tempCtx, GinScanKey key ) {
- uint32 i;
- GinScanEntry entry;
- bool res;
- MemoryContext oldCtx;
-
- if ( key->isFinished )
+keyGetItem(Relation index, GinState *ginstate, MemoryContext tempCtx, GinScanKey key)
+{
+ uint32 i;
+ GinScanEntry entry;
+ bool res;
+ MemoryContext oldCtx;
+
+ if (key->isFinished)
return TRUE;
- do {
- /* move forward from previously value and set new curItem,
- which is minimal from entries->curItems */
- ItemPointerSetMax( &key->curItem );
- for(i=0;i<key->nentries;i++) {
- entry = key->scanEntry+i;
-
- if ( key->entryRes[i] ) {
- if ( entry->isFinished == FALSE && entryGetItem(index, entry) == FALSE ) {
- if (compareItemPointers( &entry->curItem, &key->curItem ) < 0)
+ do
+ {
+ /*
+ * move forward from previously value and set new curItem, which is
+ * minimal from entries->curItems
+ */
+ ItemPointerSetMax(&key->curItem);
+ for (i = 0; i < key->nentries; i++)
+ {
+ entry = key->scanEntry + i;
+
+ if (key->entryRes[i])
+ {
+ if (entry->isFinished == FALSE && entryGetItem(index, entry) == FALSE)
+ {
+ if (compareItemPointers(&entry->curItem, &key->curItem) < 0)
key->curItem = entry->curItem;
- } else
+ }
+ else
key->entryRes[i] = FALSE;
- } else if ( entry->isFinished == FALSE ) {
- if (compareItemPointers( &entry->curItem, &key->curItem ) < 0)
+ }
+ else if (entry->isFinished == FALSE)
+ {
+ if (compareItemPointers(&entry->curItem, &key->curItem) < 0)
key->curItem = entry->curItem;
- }
+ }
}
- if ( ItemPointerIsMax( &key->curItem ) ) {
+ if (ItemPointerIsMax(&key->curItem))
+ {
/* all entries are finished */
key->isFinished = TRUE;
return TRUE;
}
-
- if ( key->nentries == 1 ) {
+
+ if (key->nentries == 1)
+ {
/* we can do not call consistentFn !! */
key->entryRes[0] = TRUE;
return FALSE;
}
/* setting up array for consistentFn */
- for(i=0;i<key->nentries;i++) {
- entry = key->scanEntry+i;
-
- if ( entry->isFinished == FALSE && compareItemPointers( &entry->curItem, &key->curItem )==0 )
+ for (i = 0; i < key->nentries; i++)
+ {
+ entry = key->scanEntry + i;
+
+ if (entry->isFinished == FALSE && compareItemPointers(&entry->curItem, &key->curItem) == 0)
key->entryRes[i] = TRUE;
else
key->entryRes[i] = FALSE;
}
oldCtx = MemoryContextSwitchTo(tempCtx);
- res = DatumGetBool( FunctionCall3(
- &ginstate->consistentFn,
- PointerGetDatum( key->entryRes ),
- UInt16GetDatum( key->strategy ),
- key->query
- ));
+ res = DatumGetBool(FunctionCall3(
+ &ginstate->consistentFn,
+ PointerGetDatum(key->entryRes),
+ UInt16GetDatum(key->strategy),
+ key->query
+ ));
MemoryContextSwitchTo(oldCtx);
MemoryContextReset(tempCtx);
- } while( !res );
-
+ } while (!res);
+
return FALSE;
}
/*
- * Get heap item pointer from scan
- * returns true if found
+ * Get heap item pointer from scan
+ * returns true if found
*/
static bool
-scanGetItem( IndexScanDesc scan, ItemPointerData *item ) {
- uint32 i;
- GinScanOpaque so = (GinScanOpaque) scan->opaque;
-
- ItemPointerSetMin( item );
- for(i=0;i<so->nkeys;i++) {
- GinScanKey key = so->keys+i;
-
- if ( keyGetItem( scan->indexRelation, &so->ginstate, so->tempCtx, key )==FALSE ) {
- if ( compareItemPointers( item, &key->curItem ) < 0 )
+scanGetItem(IndexScanDesc scan, ItemPointerData *item)
+{
+ uint32 i;
+ GinScanOpaque so = (GinScanOpaque) scan->opaque;
+
+ ItemPointerSetMin(item);
+ for (i = 0; i < so->nkeys; i++)
+ {
+ GinScanKey key = so->keys + i;
+
+ if (keyGetItem(scan->indexRelation, &so->ginstate, so->tempCtx, key) == FALSE)
+ {
+ if (compareItemPointers(item, &key->curItem) < 0)
*item = key->curItem;
- } else
- return FALSE; /* finshed one of keys */
+ }
+ else
+ return FALSE; /* finshed one of keys */
}
-
- for(i=1;i<=so->nkeys;i++) {
- GinScanKey key = so->keys+i-1;
- for(;;) {
- int cmp = compareItemPointers( item, &key->curItem );
+ for (i = 1; i <= so->nkeys; i++)
+ {
+ GinScanKey key = so->keys + i - 1;
+
+ for (;;)
+ {
+ int cmp = compareItemPointers(item, &key->curItem);
- if ( cmp == 0 )
+ if (cmp == 0)
break;
- else if ( cmp > 0 ) {
- if ( keyGetItem( scan->indexRelation, &so->ginstate, so->tempCtx, key )==TRUE )
- return FALSE; /* finshed one of keys */
- } else { /* returns to begin */
+ else if (cmp > 0)
+ {
+ if (keyGetItem(scan->indexRelation, &so->ginstate, so->tempCtx, key) == TRUE)
+ return FALSE; /* finshed one of keys */
+ }
+ else
+ { /* returns to begin */
*item = key->curItem;
- i=0;
+ i = 0;
break;
}
}
}
- return TRUE;
+ return TRUE;
}
#define GinIsNewKey(s) ( ((GinScanOpaque) scan->opaque)->keys == NULL )
-Datum
-gingetmulti(PG_FUNCTION_ARGS) {
- IndexScanDesc scan = (IndexScanDesc) PG_GETARG_POINTER(0);
+Datum
+gingetmulti(PG_FUNCTION_ARGS)
+{
+ IndexScanDesc scan = (IndexScanDesc) PG_GETARG_POINTER(0);
ItemPointer tids = (ItemPointer) PG_GETARG_POINTER(1);
- int32 max_tids = PG_GETARG_INT32(2);
- int32 *returned_tids = (int32 *) PG_GETARG_POINTER(3);
+ int32 max_tids = PG_GETARG_INT32(2);
+ int32 *returned_tids = (int32 *) PG_GETARG_POINTER(3);
- if ( GinIsNewKey(scan) )
- newScanKey( scan );
+ if (GinIsNewKey(scan))
+ newScanKey(scan);
- startScan( scan );
+ startScan(scan);
*returned_tids = 0;
- do {
- if ( scanGetItem( scan, tids + *returned_tids ) )
+ do
+ {
+ if (scanGetItem(scan, tids + *returned_tids))
(*returned_tids)++;
else
break;
- } while ( *returned_tids < max_tids );
+ } while (*returned_tids < max_tids);
- stopScan( scan );
+ stopScan(scan);
PG_RETURN_BOOL(*returned_tids == max_tids);
}
Datum
-gingettuple(PG_FUNCTION_ARGS) {
+gingettuple(PG_FUNCTION_ARGS)
+{
IndexScanDesc scan = (IndexScanDesc) PG_GETARG_POINTER(0);
ScanDirection dir = (ScanDirection) PG_GETARG_INT32(1);
- bool res;
+ bool res;
- if ( dir != ForwardScanDirection )
+ if (dir != ForwardScanDirection)
elog(ERROR, "Gin doesn't support other scan directions than forward");
-
- if ( GinIsNewKey(scan) )
- newScanKey( scan );
- startScan( scan );
+ if (GinIsNewKey(scan))
+ newScanKey(scan);
+
+ startScan(scan);
res = scanGetItem(scan, &scan->xs_ctup.t_self);
- stopScan( scan );
+ stopScan(scan);
PG_RETURN_BOOL(res);
}
diff --git a/src/backend/access/gin/gininsert.c b/src/backend/access/gin/gininsert.c
index 60107a5770..e4f87e720d 100644
--- a/src/backend/access/gin/gininsert.c
+++ b/src/backend/access/gin/gininsert.c
@@ -1,14 +1,14 @@
/*-------------------------------------------------------------------------
*
* gininsert.c
- * insert routines for the postgres inverted index access method.
+ * insert routines for the postgres inverted index access method.
*
*
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/gin/gininsert.c,v 1.4 2006/07/14 14:52:16 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gin/gininsert.c,v 1.5 2006/10/04 00:29:47 momjian Exp $
*-------------------------------------------------------------------------
*/
@@ -19,12 +19,13 @@
#include "miscadmin.h"
#include "utils/memutils.h"
-typedef struct {
- GinState ginstate;
- double indtuples;
- MemoryContext tmpCtx;
- MemoryContext funcCtx;
- BuildAccumulator accum;
+typedef struct
+{
+ GinState ginstate;
+ double indtuples;
+ MemoryContext tmpCtx;
+ MemoryContext funcCtx;
+ BuildAccumulator accum;
} GinBuildState;
/*
@@ -32,24 +33,26 @@ typedef struct {
* suppose that items[] fits to page
*/
static BlockNumber
-createPostingTree( Relation index, ItemPointerData *items, uint32 nitems ) {
+createPostingTree(Relation index, ItemPointerData *items, uint32 nitems)
+{
BlockNumber blkno;
- Buffer buffer = GinNewBuffer(index);
- Page page;
+ Buffer buffer = GinNewBuffer(index);
+ Page page;
START_CRIT_SECTION();
- GinInitBuffer( buffer, GIN_DATA|GIN_LEAF );
+ GinInitBuffer(buffer, GIN_DATA | GIN_LEAF);
page = BufferGetPage(buffer);
blkno = BufferGetBlockNumber(buffer);
- memcpy( GinDataPageGetData(page), items, sizeof(ItemPointerData) * nitems );
+ memcpy(GinDataPageGetData(page), items, sizeof(ItemPointerData) * nitems);
GinPageGetOpaque(page)->maxoff = nitems;
- if (!index->rd_istemp) {
- XLogRecPtr recptr;
+ if (!index->rd_istemp)
+ {
+ XLogRecPtr recptr;
XLogRecData rdata[2];
- ginxlogCreatePostingTree data;
+ ginxlogCreatePostingTree data;
data.node = index->rd_node;
data.blkno = blkno;
@@ -71,7 +74,7 @@ createPostingTree( Relation index, ItemPointerData *items, uint32 nitems ) {
PageSetLSN(page, recptr);
PageSetTLI(page, ThisTimeLineID);
- }
+ }
MarkBufferDirty(buffer);
UnlockReleaseBuffer(buffer);
@@ -89,21 +92,25 @@ createPostingTree( Relation index, ItemPointerData *items, uint32 nitems ) {
* GinFormTuple().
*/
static IndexTuple
-addItemPointersToTuple(Relation index, GinState *ginstate, GinBtreeStack *stack,
- IndexTuple old, ItemPointerData *items, uint32 nitem, bool isBuild) {
- bool isnull;
- Datum key = index_getattr(old, FirstOffsetNumber, ginstate->tupdesc, &isnull);
- IndexTuple res = GinFormTuple(ginstate, key, NULL, nitem + GinGetNPosting(old));
-
- if ( res ) {
+addItemPointersToTuple(Relation index, GinState *ginstate, GinBtreeStack *stack,
+ IndexTuple old, ItemPointerData *items, uint32 nitem, bool isBuild)
+{
+ bool isnull;
+ Datum key = index_getattr(old, FirstOffsetNumber, ginstate->tupdesc, &isnull);
+ IndexTuple res = GinFormTuple(ginstate, key, NULL, nitem + GinGetNPosting(old));
+
+ if (res)
+ {
/* good, small enough */
- MergeItemPointers( GinGetPosting(res),
- GinGetPosting(old), GinGetNPosting(old),
- items, nitem
- );
-
+ MergeItemPointers(GinGetPosting(res),
+ GinGetPosting(old), GinGetNPosting(old),
+ items, nitem
+ );
+
GinSetNPosting(res, nitem + GinGetNPosting(old));
- } else {
+ }
+ else
+ {
BlockNumber postingRoot;
GinPostingTreeScan *gdi;
@@ -112,7 +119,7 @@ addItemPointersToTuple(Relation index, GinState *ginstate, GinBtreeStack *stack,
postingRoot = createPostingTree(index, GinGetPosting(old), GinGetNPosting(old));
GinSetPostingTree(res, postingRoot);
- gdi = prepareScanPostingTree(index, postingRoot, FALSE);
+ gdi = prepareScanPostingTree(index, postingRoot, FALSE);
gdi->btree.isBuild = isBuild;
insertItemPointer(gdi, items, nitem);
@@ -124,36 +131,39 @@ addItemPointersToTuple(Relation index, GinState *ginstate, GinBtreeStack *stack,
}
/*
- * Inserts only one entry to the index, but it can adds more that 1
- * ItemPointer.
+ * Inserts only one entry to the index, but it can adds more that 1
+ * ItemPointer.
*/
static void
-ginEntryInsert( Relation index, GinState *ginstate, Datum value, ItemPointerData *items, uint32 nitem, bool isBuild) {
- GinBtreeData btree;
+ginEntryInsert(Relation index, GinState *ginstate, Datum value, ItemPointerData *items, uint32 nitem, bool isBuild)
+{
+ GinBtreeData btree;
GinBtreeStack *stack;
- IndexTuple itup;
- Page page;
+ IndexTuple itup;
+ Page page;
- prepareEntryScan( &btree, index, value, ginstate );
+ prepareEntryScan(&btree, index, value, ginstate);
stack = ginFindLeafPage(&btree, NULL);
- page = BufferGetPage( stack->buffer );
+ page = BufferGetPage(stack->buffer);
- if ( btree.findItem( &btree, stack ) ) {
+ if (btree.findItem(&btree, stack))
+ {
/* found entry */
itup = (IndexTuple) PageGetItem(page, PageGetItemId(page, stack->off));
- if ( GinIsPostingTree(itup) ) {
+ if (GinIsPostingTree(itup))
+ {
/* lock root of posting tree */
GinPostingTreeScan *gdi;
- BlockNumber rootPostingTree = GinGetPostingTree(itup);
+ BlockNumber rootPostingTree = GinGetPostingTree(itup);
/* release all stack */
LockBuffer(stack->buffer, GIN_UNLOCK);
- freeGinBtreeStack( stack );
+ freeGinBtreeStack(stack);
/* insert into posting tree */
- gdi = prepareScanPostingTree( index, rootPostingTree, FALSE );
+ gdi = prepareScanPostingTree(index, rootPostingTree, FALSE);
gdi->btree.isBuild = isBuild;
insertItemPointer(gdi, items, nitem);
@@ -163,23 +173,26 @@ ginEntryInsert( Relation index, GinState *ginstate, Datum value, ItemPointerData
itup = addItemPointersToTuple(index, ginstate, stack, itup, items, nitem, isBuild);
btree.isDelete = TRUE;
- } else {
+ }
+ else
+ {
/* We suppose, that tuple can store at list one itempointer */
- itup = GinFormTuple( ginstate, value, items, 1);
- if ( itup==NULL || IndexTupleSize(itup) >= GinMaxItemSize )
+ itup = GinFormTuple(ginstate, value, items, 1);
+ if (itup == NULL || IndexTupleSize(itup) >= GinMaxItemSize)
elog(ERROR, "huge tuple");
- if ( nitem>1 ) {
+ if (nitem > 1)
+ {
IndexTuple previtup = itup;
- itup = addItemPointersToTuple(index, ginstate, stack, previtup, items+1, nitem-1, isBuild);
+ itup = addItemPointersToTuple(index, ginstate, stack, previtup, items + 1, nitem - 1, isBuild);
pfree(previtup);
}
}
btree.entry = itup;
ginInsertValue(&btree, stack);
- pfree( itup );
+ pfree(itup);
}
/*
@@ -187,48 +200,53 @@ ginEntryInsert( Relation index, GinState *ginstate, Datum value, ItemPointerData
* Function isnt use during normal insert
*/
static uint32
-ginHeapTupleBulkInsert(GinBuildState *buildstate, Datum value, ItemPointer heapptr) {
- Datum *entries;
- uint32 nentries;
+ginHeapTupleBulkInsert(GinBuildState *buildstate, Datum value, ItemPointer heapptr)
+{
+ Datum *entries;
+ uint32 nentries;
MemoryContext oldCtx;
oldCtx = MemoryContextSwitchTo(buildstate->funcCtx);
- entries = extractEntriesSU( buildstate->accum.ginstate, value, &nentries);
+ entries = extractEntriesSU(buildstate->accum.ginstate, value, &nentries);
MemoryContextSwitchTo(oldCtx);
- if ( nentries==0 )
+ if (nentries == 0)
/* nothing to insert */
return 0;
- ginInsertRecordBA( &buildstate->accum, heapptr, entries, nentries);
+ ginInsertRecordBA(&buildstate->accum, heapptr, entries, nentries);
MemoryContextReset(buildstate->funcCtx);
return nentries;
}
-static void
+static void
ginBuildCallback(Relation index, HeapTuple htup, Datum *values,
- bool *isnull, bool tupleIsAlive, void *state) {
+ bool *isnull, bool tupleIsAlive, void *state)
+{
- GinBuildState *buildstate = (GinBuildState*)state;
+ GinBuildState *buildstate = (GinBuildState *) state;
MemoryContext oldCtx;
- if ( *isnull )
+ if (*isnull)
return;
oldCtx = MemoryContextSwitchTo(buildstate->tmpCtx);
buildstate->indtuples += ginHeapTupleBulkInsert(buildstate, *values, &htup->t_self);
- /* we use only half maintenance_work_mem, because there is some leaks
- during insertion and extract values */
- if ( buildstate->accum.allocatedMemory >= maintenance_work_mem*1024L/2L ) {
- ItemPointerData *list;
- Datum entry;
- uint32 nlist;
+ /*
+ * we use only half maintenance_work_mem, because there is some leaks
+ * during insertion and extract values
+ */
+ if (buildstate->accum.allocatedMemory >= maintenance_work_mem * 1024L / 2L)
+ {
+ ItemPointerData *list;
+ Datum entry;
+ uint32 nlist;
- while( (list=ginGetEntry(&buildstate->accum, &entry, &nlist)) != NULL )
+ while ((list = ginGetEntry(&buildstate->accum, &entry, &nlist)) != NULL)
ginEntryInsert(index, &buildstate->ginstate, entry, list, nlist, TRUE);
MemoryContextReset(buildstate->tmpCtx);
@@ -239,22 +257,23 @@ ginBuildCallback(Relation index, HeapTuple htup, Datum *values,
}
Datum
-ginbuild(PG_FUNCTION_ARGS) {
- Relation heap = (Relation) PG_GETARG_POINTER(0);
- Relation index = (Relation) PG_GETARG_POINTER(1);
+ginbuild(PG_FUNCTION_ARGS)
+{
+ Relation heap = (Relation) PG_GETARG_POINTER(0);
+ Relation index = (Relation) PG_GETARG_POINTER(1);
IndexInfo *indexInfo = (IndexInfo *) PG_GETARG_POINTER(2);
IndexBuildResult *result;
- double reltuples;
- GinBuildState buildstate;
+ double reltuples;
+ GinBuildState buildstate;
Buffer buffer;
- ItemPointerData *list;
- Datum entry;
- uint32 nlist;
+ ItemPointerData *list;
+ Datum entry;
+ uint32 nlist;
MemoryContext oldCtx;
if (RelationGetNumberOfBlocks(index) != 0)
elog(ERROR, "index \"%s\" already contains data",
- RelationGetRelationName(index));
+ RelationGetRelationName(index));
initGinState(&buildstate.ginstate, index);
@@ -262,10 +281,11 @@ ginbuild(PG_FUNCTION_ARGS) {
buffer = GinNewBuffer(index);
START_CRIT_SECTION();
GinInitBuffer(buffer, GIN_LEAF);
- if (!index->rd_istemp) {
- XLogRecPtr recptr;
+ if (!index->rd_istemp)
+ {
+ XLogRecPtr recptr;
XLogRecData rdata;
- Page page;
+ Page page;
rdata.buffer = InvalidBuffer;
rdata.data = (char *) &(index->rd_node);
@@ -279,7 +299,7 @@ ginbuild(PG_FUNCTION_ARGS) {
PageSetLSN(page, recptr);
PageSetTLI(page, ThisTimeLineID);
- }
+ }
MarkBufferDirty(buffer);
UnlockReleaseBuffer(buffer);
@@ -293,26 +313,26 @@ ginbuild(PG_FUNCTION_ARGS) {
* inserted into the index
*/
buildstate.tmpCtx = AllocSetContextCreate(CurrentMemoryContext,
- "Gin build temporary context",
- ALLOCSET_DEFAULT_MINSIZE,
- ALLOCSET_DEFAULT_INITSIZE,
- ALLOCSET_DEFAULT_MAXSIZE);
+ "Gin build temporary context",
+ ALLOCSET_DEFAULT_MINSIZE,
+ ALLOCSET_DEFAULT_INITSIZE,
+ ALLOCSET_DEFAULT_MAXSIZE);
buildstate.funcCtx = AllocSetContextCreate(buildstate.tmpCtx,
- "Gin build temporary context for user-defined function",
- ALLOCSET_DEFAULT_MINSIZE,
- ALLOCSET_DEFAULT_INITSIZE,
- ALLOCSET_DEFAULT_MAXSIZE);
+ "Gin build temporary context for user-defined function",
+ ALLOCSET_DEFAULT_MINSIZE,
+ ALLOCSET_DEFAULT_INITSIZE,
+ ALLOCSET_DEFAULT_MAXSIZE);
buildstate.accum.ginstate = &buildstate.ginstate;
- ginInitBA( &buildstate.accum );
+ ginInitBA(&buildstate.accum);
/* do the heap scan */
reltuples = IndexBuildHeapScan(heap, index, indexInfo,
- ginBuildCallback, (void *) &buildstate);
+ ginBuildCallback, (void *) &buildstate);
oldCtx = MemoryContextSwitchTo(buildstate.tmpCtx);
- while( (list=ginGetEntry(&buildstate.accum, &entry, &nlist)) != NULL )
+ while ((list = ginGetEntry(&buildstate.accum, &entry, &nlist)) != NULL)
ginEntryInsert(index, &buildstate.ginstate, entry, list, nlist, TRUE);
MemoryContextSwitchTo(oldCtx);
@@ -333,55 +353,58 @@ ginbuild(PG_FUNCTION_ARGS) {
* Inserts value during normal insertion
*/
static uint32
-ginHeapTupleInsert( Relation index, GinState *ginstate, Datum value, ItemPointer item) {
- Datum *entries;
- uint32 i,nentries;
+ginHeapTupleInsert(Relation index, GinState *ginstate, Datum value, ItemPointer item)
+{
+ Datum *entries;
+ uint32 i,
+ nentries;
- entries = extractEntriesSU( ginstate, value, &nentries);
+ entries = extractEntriesSU(ginstate, value, &nentries);
- if ( nentries==0 )
+ if (nentries == 0)
/* nothing to insert */
return 0;
- for(i=0;i<nentries;i++)
+ for (i = 0; i < nentries; i++)
ginEntryInsert(index, ginstate, entries[i], item, 1, FALSE);
return nentries;
}
Datum
-gininsert(PG_FUNCTION_ARGS) {
- Relation index = (Relation) PG_GETARG_POINTER(0);
- Datum *values = (Datum *) PG_GETARG_POINTER(1);
- bool *isnull = (bool *) PG_GETARG_POINTER(2);
+gininsert(PG_FUNCTION_ARGS)
+{
+ Relation index = (Relation) PG_GETARG_POINTER(0);
+ Datum *values = (Datum *) PG_GETARG_POINTER(1);
+ bool *isnull = (bool *) PG_GETARG_POINTER(2);
ItemPointer ht_ctid = (ItemPointer) PG_GETARG_POINTER(3);
+
#ifdef NOT_USED
- Relation heapRel = (Relation) PG_GETARG_POINTER(4);
- bool checkUnique = PG_GETARG_BOOL(5);
+ Relation heapRel = (Relation) PG_GETARG_POINTER(4);
+ bool checkUnique = PG_GETARG_BOOL(5);
#endif
- GinState ginstate;
+ GinState ginstate;
MemoryContext oldCtx;
MemoryContext insertCtx;
- uint32 res;
+ uint32 res;
- if ( *isnull )
+ if (*isnull)
PG_RETURN_BOOL(false);
insertCtx = AllocSetContextCreate(CurrentMemoryContext,
- "Gin insert temporary context",
- ALLOCSET_DEFAULT_MINSIZE,
- ALLOCSET_DEFAULT_INITSIZE,
- ALLOCSET_DEFAULT_MAXSIZE);
+ "Gin insert temporary context",
+ ALLOCSET_DEFAULT_MINSIZE,
+ ALLOCSET_DEFAULT_INITSIZE,
+ ALLOCSET_DEFAULT_MAXSIZE);
oldCtx = MemoryContextSwitchTo(insertCtx);
initGinState(&ginstate, index);
- res = ginHeapTupleInsert(index, &ginstate, *values, ht_ctid);
+ res = ginHeapTupleInsert(index, &ginstate, *values, ht_ctid);
MemoryContextSwitchTo(oldCtx);
MemoryContextDelete(insertCtx);
- PG_RETURN_BOOL(res>0);
+ PG_RETURN_BOOL(res > 0);
}
-
diff --git a/src/backend/access/gin/ginscan.c b/src/backend/access/gin/ginscan.c
index 2093f1ce8a..b69f409e1c 100644
--- a/src/backend/access/gin/ginscan.c
+++ b/src/backend/access/gin/ginscan.c
@@ -1,14 +1,14 @@
/*-------------------------------------------------------------------------
*
* ginscan.c
- * routines to manage scans inverted index relations
+ * routines to manage scans inverted index relations
*
*
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/gin/ginscan.c,v 1.5 2006/09/14 11:26:49 teodor Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gin/ginscan.c,v 1.6 2006/10/04 00:29:48 momjian Exp $
*-------------------------------------------------------------------------
*/
@@ -19,11 +19,12 @@
#include "utils/memutils.h"
-Datum
-ginbeginscan(PG_FUNCTION_ARGS) {
- Relation rel = (Relation) PG_GETARG_POINTER(0);
- int keysz = PG_GETARG_INT32(1);
- ScanKey scankey = (ScanKey) PG_GETARG_POINTER(2);
+Datum
+ginbeginscan(PG_FUNCTION_ARGS)
+{
+ Relation rel = (Relation) PG_GETARG_POINTER(0);
+ int keysz = PG_GETARG_INT32(1);
+ ScanKey scankey = (ScanKey) PG_GETARG_POINTER(2);
IndexScanDesc scan;
scan = RelationGetIndexScan(rel, keysz, scankey);
@@ -32,22 +33,25 @@ ginbeginscan(PG_FUNCTION_ARGS) {
}
static void
-fillScanKey( GinState *ginstate, GinScanKey key, Datum query,
- Datum *entryValues, uint32 nEntryValues, StrategyNumber strategy ) {
- uint32 i,j;
+fillScanKey(GinState *ginstate, GinScanKey key, Datum query,
+ Datum *entryValues, uint32 nEntryValues, StrategyNumber strategy)
+{
+ uint32 i,
+ j;
key->nentries = nEntryValues;
- key->entryRes = (bool*)palloc0( sizeof(bool) * nEntryValues );
- key->scanEntry = (GinScanEntry) palloc( sizeof(GinScanEntryData) * nEntryValues );
+ key->entryRes = (bool *) palloc0(sizeof(bool) * nEntryValues);
+ key->scanEntry = (GinScanEntry) palloc(sizeof(GinScanEntryData) * nEntryValues);
key->strategy = strategy;
key->query = query;
- key->firstCall= TRUE;
- ItemPointerSet( &(key->curItem), InvalidBlockNumber, InvalidOffsetNumber );
+ key->firstCall = TRUE;
+ ItemPointerSet(&(key->curItem), InvalidBlockNumber, InvalidOffsetNumber);
- for(i=0; i<nEntryValues; i++) {
+ for (i = 0; i < nEntryValues; i++)
+ {
key->scanEntry[i].pval = key->entryRes + i;
key->scanEntry[i].entry = entryValues[i];
- ItemPointerSet( &(key->scanEntry[i].curItem), InvalidBlockNumber, InvalidOffsetNumber );
+ ItemPointerSet(&(key->scanEntry[i].curItem), InvalidBlockNumber, InvalidOffsetNumber);
key->scanEntry[i].offset = InvalidOffsetNumber;
key->scanEntry[i].buffer = InvalidBuffer;
key->scanEntry[i].list = NULL;
@@ -55,8 +59,9 @@ fillScanKey( GinState *ginstate, GinScanKey key, Datum query,
/* link to the equals entry in current scan key */
key->scanEntry[i].master = NULL;
- for( j=0; j<i; j++)
- if ( compareEntries( ginstate, entryValues[i], entryValues[j] ) == 0 ) {
+ for (j = 0; j < i; j++)
+ if (compareEntries(ginstate, entryValues[i], entryValues[j]) == 0)
+ {
key->scanEntry[i].master = key->scanEntry + j;
break;
}
@@ -66,23 +71,27 @@ fillScanKey( GinState *ginstate, GinScanKey key, Datum query,
#ifdef NOT_USED
static void
-resetScanKeys(GinScanKey keys, uint32 nkeys) {
- uint32 i, j;
+resetScanKeys(GinScanKey keys, uint32 nkeys)
+{
+ uint32 i,
+ j;
- if ( keys == NULL )
+ if (keys == NULL)
return;
- for(i=0;i<nkeys;i++) {
- GinScanKey key = keys + i;
+ for (i = 0; i < nkeys; i++)
+ {
+ GinScanKey key = keys + i;
key->firstCall = TRUE;
- ItemPointerSet( &(key->curItem), InvalidBlockNumber, InvalidOffsetNumber );
+ ItemPointerSet(&(key->curItem), InvalidBlockNumber, InvalidOffsetNumber);
- for(j=0;j<key->nentries;j++) {
- if ( key->scanEntry[j].buffer != InvalidBuffer )
- ReleaseBuffer( key->scanEntry[i].buffer );
+ for (j = 0; j < key->nentries; j++)
+ {
+ if (key->scanEntry[j].buffer != InvalidBuffer)
+ ReleaseBuffer(key->scanEntry[i].buffer);
- ItemPointerSet( &(key->scanEntry[j].curItem), InvalidBlockNumber, InvalidOffsetNumber );
+ ItemPointerSet(&(key->scanEntry[j].curItem), InvalidBlockNumber, InvalidOffsetNumber);
key->scanEntry[j].offset = InvalidOffsetNumber;
key->scanEntry[j].buffer = InvalidBuffer;
key->scanEntry[j].list = NULL;
@@ -90,111 +99,121 @@ resetScanKeys(GinScanKey keys, uint32 nkeys) {
}
}
}
-
#endif
static void
-freeScanKeys(GinScanKey keys, uint32 nkeys, bool removeRes) {
- uint32 i, j;
+freeScanKeys(GinScanKey keys, uint32 nkeys, bool removeRes)
+{
+ uint32 i,
+ j;
- if ( keys == NULL )
+ if (keys == NULL)
return;
- for(i=0;i<nkeys;i++) {
- GinScanKey key = keys + i;
+ for (i = 0; i < nkeys; i++)
+ {
+ GinScanKey key = keys + i;
- for(j=0;j<key->nentries;j++) {
- if ( key->scanEntry[j].buffer != InvalidBuffer )
- ReleaseBuffer( key->scanEntry[j].buffer );
- if ( removeRes && key->scanEntry[j].list )
+ for (j = 0; j < key->nentries; j++)
+ {
+ if (key->scanEntry[j].buffer != InvalidBuffer)
+ ReleaseBuffer(key->scanEntry[j].buffer);
+ if (removeRes && key->scanEntry[j].list)
pfree(key->scanEntry[j].list);
}
- if ( removeRes )
+ if (removeRes)
pfree(key->entryRes);
pfree(key->scanEntry);
}
-
+
pfree(keys);
}
void
-newScanKey( IndexScanDesc scan ) {
- ScanKey scankey = scan->keyData;
+newScanKey(IndexScanDesc scan)
+{
+ ScanKey scankey = scan->keyData;
GinScanOpaque so = (GinScanOpaque) scan->opaque;
- int i;
- uint32 nkeys = 0;
+ int i;
+ uint32 nkeys = 0;
- so->keys = (GinScanKey) palloc( scan->numberOfKeys * sizeof(GinScanKeyData) );
+ so->keys = (GinScanKey) palloc(scan->numberOfKeys * sizeof(GinScanKeyData));
if (scan->numberOfKeys < 1)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("GIN indexes do not support whole-index scans")));
+ errmsg("GIN indexes do not support whole-index scans")));
- for(i=0; i<scan->numberOfKeys; i++) {
- Datum* entryValues;
- uint32 nEntryValues;
+ for (i = 0; i < scan->numberOfKeys; i++)
+ {
+ Datum *entryValues;
+ uint32 nEntryValues;
- if ( scankey[i].sk_flags & SK_ISNULL )
+ if (scankey[i].sk_flags & SK_ISNULL)
elog(ERROR, "Gin doesn't support NULL as scan key");
- Assert( scankey[i].sk_attno == 1 );
-
- entryValues = (Datum*)DatumGetPointer(
- FunctionCall3(
- &so->ginstate.extractQueryFn,
- scankey[i].sk_argument,
- PointerGetDatum( &nEntryValues ),
- UInt16GetDatum(scankey[i].sk_strategy)
- )
- );
- if ( entryValues==NULL || nEntryValues == 0 )
+ Assert(scankey[i].sk_attno == 1);
+
+ entryValues = (Datum *) DatumGetPointer(
+ FunctionCall3(
+ &so->ginstate.extractQueryFn,
+ scankey[i].sk_argument,
+ PointerGetDatum(&nEntryValues),
+ UInt16GetDatum(scankey[i].sk_strategy)
+ )
+ );
+ if (entryValues == NULL || nEntryValues == 0)
/* full scan... */
continue;
- fillScanKey( &so->ginstate, &(so->keys[nkeys]), scankey[i].sk_argument,
- entryValues, nEntryValues, scankey[i].sk_strategy );
+ fillScanKey(&so->ginstate, &(so->keys[nkeys]), scankey[i].sk_argument,
+ entryValues, nEntryValues, scankey[i].sk_strategy);
nkeys++;
}
so->nkeys = nkeys;
- if ( so->nkeys == 0 )
+ if (so->nkeys == 0)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("GIN index doesn't support search with void query")));
+ errmsg("GIN index doesn't support search with void query")));
pgstat_count_index_scan(&scan->xs_pgstat_info);
}
Datum
-ginrescan(PG_FUNCTION_ARGS) {
+ginrescan(PG_FUNCTION_ARGS)
+{
IndexScanDesc scan = (IndexScanDesc) PG_GETARG_POINTER(0);
- ScanKey scankey = (ScanKey) PG_GETARG_POINTER(1);
- GinScanOpaque so;
+ ScanKey scankey = (ScanKey) PG_GETARG_POINTER(1);
+ GinScanOpaque so;
so = (GinScanOpaque) scan->opaque;
- if ( so == NULL ) {
+ if (so == NULL)
+ {
/* if called from ginbeginscan */
- so = (GinScanOpaque)palloc( sizeof(GinScanOpaqueData) );
+ so = (GinScanOpaque) palloc(sizeof(GinScanOpaqueData));
so->tempCtx = AllocSetContextCreate(CurrentMemoryContext,
- "Gin scan temporary context",
- ALLOCSET_DEFAULT_MINSIZE,
- ALLOCSET_DEFAULT_INITSIZE,
- ALLOCSET_DEFAULT_MAXSIZE);
+ "Gin scan temporary context",
+ ALLOCSET_DEFAULT_MINSIZE,
+ ALLOCSET_DEFAULT_INITSIZE,
+ ALLOCSET_DEFAULT_MAXSIZE);
initGinState(&so->ginstate, scan->indexRelation);
scan->opaque = so;
- } else {
+ }
+ else
+ {
freeScanKeys(so->keys, so->nkeys, TRUE);
freeScanKeys(so->markPos, so->nkeys, FALSE);
}
- so->markPos=so->keys=NULL;
+ so->markPos = so->keys = NULL;
- if ( scankey && scan->numberOfKeys > 0 ) {
+ if (scankey && scan->numberOfKeys > 0)
+ {
memmove(scan->keyData, scankey,
- scan->numberOfKeys * sizeof(ScanKeyData));
+ scan->numberOfKeys * sizeof(ScanKeyData));
}
PG_RETURN_VOID();
@@ -202,13 +221,15 @@ ginrescan(PG_FUNCTION_ARGS) {
Datum
-ginendscan(PG_FUNCTION_ARGS) {
+ginendscan(PG_FUNCTION_ARGS)
+{
IndexScanDesc scan = (IndexScanDesc) PG_GETARG_POINTER(0);
- GinScanOpaque so = (GinScanOpaque) scan->opaque;
+ GinScanOpaque so = (GinScanOpaque) scan->opaque;
- if ( so != NULL ) {
- freeScanKeys(so->keys, so->nkeys, TRUE);
- freeScanKeys(so->markPos, so->nkeys, FALSE);
+ if (so != NULL)
+ {
+ freeScanKeys(so->keys, so->nkeys, TRUE);
+ freeScanKeys(so->markPos, so->nkeys, FALSE);
MemoryContextDelete(so->tempCtx);
@@ -219,22 +240,28 @@ ginendscan(PG_FUNCTION_ARGS) {
}
static GinScanKey
-copyScanKeys( GinScanKey keys, uint32 nkeys ) {
+copyScanKeys(GinScanKey keys, uint32 nkeys)
+{
GinScanKey newkeys;
- uint32 i, j;
+ uint32 i,
+ j;
+
+ newkeys = (GinScanKey) palloc(sizeof(GinScanKeyData) * nkeys);
+ memcpy(newkeys, keys, sizeof(GinScanKeyData) * nkeys);
- newkeys = (GinScanKey)palloc( sizeof(GinScanKeyData) * nkeys );
- memcpy( newkeys, keys, sizeof(GinScanKeyData) * nkeys );
+ for (i = 0; i < nkeys; i++)
+ {
+ newkeys[i].scanEntry = (GinScanEntry) palloc(sizeof(GinScanEntryData) * keys[i].nentries);
+ memcpy(newkeys[i].scanEntry, keys[i].scanEntry, sizeof(GinScanEntryData) * keys[i].nentries);
- for(i=0;i<nkeys;i++) {
- newkeys[i].scanEntry = (GinScanEntry)palloc(sizeof(GinScanEntryData) * keys[i].nentries );
- memcpy( newkeys[i].scanEntry, keys[i].scanEntry, sizeof(GinScanEntryData) * keys[i].nentries );
+ for (j = 0; j < keys[i].nentries; j++)
+ {
+ if (keys[i].scanEntry[j].buffer != InvalidBuffer)
+ IncrBufferRefCount(keys[i].scanEntry[j].buffer);
+ if (keys[i].scanEntry[j].master)
+ {
+ int masterN = keys[i].scanEntry[j].master - keys[i].scanEntry;
- for(j=0;j<keys[i].nentries; j++) {
- if ( keys[i].scanEntry[j].buffer != InvalidBuffer )
- IncrBufferRefCount( keys[i].scanEntry[j].buffer );
- if ( keys[i].scanEntry[j].master ) {
- int masterN = keys[i].scanEntry[j].master - keys[i].scanEntry;
newkeys[i].scanEntry[j].master = newkeys[i].scanEntry + masterN;
}
}
@@ -243,24 +270,26 @@ copyScanKeys( GinScanKey keys, uint32 nkeys ) {
return newkeys;
}
-Datum
-ginmarkpos(PG_FUNCTION_ARGS) {
+Datum
+ginmarkpos(PG_FUNCTION_ARGS)
+{
IndexScanDesc scan = (IndexScanDesc) PG_GETARG_POINTER(0);
- GinScanOpaque so = (GinScanOpaque) scan->opaque;
+ GinScanOpaque so = (GinScanOpaque) scan->opaque;
freeScanKeys(so->markPos, so->nkeys, FALSE);
- so->markPos = copyScanKeys( so->keys, so->nkeys );
+ so->markPos = copyScanKeys(so->keys, so->nkeys);
PG_RETURN_VOID();
}
-Datum
-ginrestrpos(PG_FUNCTION_ARGS) {
+Datum
+ginrestrpos(PG_FUNCTION_ARGS)
+{
IndexScanDesc scan = (IndexScanDesc) PG_GETARG_POINTER(0);
- GinScanOpaque so = (GinScanOpaque) scan->opaque;
+ GinScanOpaque so = (GinScanOpaque) scan->opaque;
freeScanKeys(so->keys, so->nkeys, FALSE);
- so->keys = copyScanKeys( so->markPos, so->nkeys );
+ so->keys = copyScanKeys(so->markPos, so->nkeys);
PG_RETURN_VOID();
}
diff --git a/src/backend/access/gin/ginutil.c b/src/backend/access/gin/ginutil.c
index 17eca3d239..e64137a106 100644
--- a/src/backend/access/gin/ginutil.c
+++ b/src/backend/access/gin/ginutil.c
@@ -1,14 +1,14 @@
/*-------------------------------------------------------------------------
*
* ginutil.c
- * utilities routines for the postgres inverted index access method.
+ * utilities routines for the postgres inverted index access method.
*
*
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/gin/ginutil.c,v 1.6 2006/09/05 18:25:10 teodor Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gin/ginutil.c,v 1.7 2006/10/04 00:29:48 momjian Exp $
*-------------------------------------------------------------------------
*/
@@ -19,26 +19,27 @@
#include "access/reloptions.h"
#include "storage/freespace.h"
-void
-initGinState( GinState *state, Relation index ) {
- if ( index->rd_att->natts != 1 )
- elog(ERROR, "numberOfAttributes %d != 1",
- index->rd_att->natts);
-
+void
+initGinState(GinState *state, Relation index)
+{
+ if (index->rd_att->natts != 1)
+ elog(ERROR, "numberOfAttributes %d != 1",
+ index->rd_att->natts);
+
state->tupdesc = index->rd_att;
fmgr_info_copy(&(state->compareFn),
- index_getprocinfo(index, 1, GIN_COMPARE_PROC),
- CurrentMemoryContext);
+ index_getprocinfo(index, 1, GIN_COMPARE_PROC),
+ CurrentMemoryContext);
fmgr_info_copy(&(state->extractValueFn),
- index_getprocinfo(index, 1, GIN_EXTRACTVALUE_PROC),
- CurrentMemoryContext);
+ index_getprocinfo(index, 1, GIN_EXTRACTVALUE_PROC),
+ CurrentMemoryContext);
fmgr_info_copy(&(state->extractQueryFn),
- index_getprocinfo(index, 1, GIN_EXTRACTQUERY_PROC),
- CurrentMemoryContext);
+ index_getprocinfo(index, 1, GIN_EXTRACTQUERY_PROC),
+ CurrentMemoryContext);
fmgr_info_copy(&(state->consistentFn),
- index_getprocinfo(index, 1, GIN_CONSISTENT_PROC),
- CurrentMemoryContext);
+ index_getprocinfo(index, 1, GIN_CONSISTENT_PROC),
+ CurrentMemoryContext);
}
/*
@@ -48,13 +49,16 @@ initGinState( GinState *state, Relation index ) {
*/
Buffer
-GinNewBuffer(Relation index) {
- Buffer buffer;
- bool needLock;
+GinNewBuffer(Relation index)
+{
+ Buffer buffer;
+ bool needLock;
/* First, try to get a page from FSM */
- for(;;) {
+ for (;;)
+ {
BlockNumber blkno = GetFreeIndexPage(&index->rd_node);
+
if (blkno == InvalidBlockNumber)
break;
@@ -64,14 +68,15 @@ GinNewBuffer(Relation index) {
* We have to guard against the possibility that someone else already
* recycled this page; the buffer may be locked if so.
*/
- if (ConditionalLockBuffer(buffer)) {
- Page page = BufferGetPage(buffer);
+ if (ConditionalLockBuffer(buffer))
+ {
+ Page page = BufferGetPage(buffer);
if (PageIsNew(page))
- return buffer; /* OK to use, if never initialized */
+ return buffer; /* OK to use, if never initialized */
if (GinPageIsDeleted(page))
- return buffer; /* OK to use */
+ return buffer; /* OK to use */
LockBuffer(buffer, GIN_UNLOCK);
}
@@ -95,36 +100,39 @@ GinNewBuffer(Relation index) {
}
void
-GinInitPage(Page page, uint32 f, Size pageSize) {
+GinInitPage(Page page, uint32 f, Size pageSize)
+{
GinPageOpaque opaque;
PageInit(page, pageSize, sizeof(GinPageOpaqueData));
opaque = GinPageGetOpaque(page);
- memset( opaque, 0, sizeof(GinPageOpaqueData) );
- opaque->flags = f;
+ memset(opaque, 0, sizeof(GinPageOpaqueData));
+ opaque->flags = f;
opaque->rightlink = InvalidBlockNumber;
}
void
-GinInitBuffer(Buffer b, uint32 f) {
- GinInitPage( BufferGetPage(b), f, BufferGetPageSize(b) );
+GinInitBuffer(Buffer b, uint32 f)
+{
+ GinInitPage(BufferGetPage(b), f, BufferGetPageSize(b));
}
int
-compareEntries(GinState *ginstate, Datum a, Datum b) {
+compareEntries(GinState *ginstate, Datum a, Datum b)
+{
return DatumGetInt32(
- FunctionCall2(
- &ginstate->compareFn,
- a, b
- )
+ FunctionCall2(
+ &ginstate->compareFn,
+ a, b
+ )
);
}
-static FmgrInfo* cmpDatumPtr=NULL;
+static FmgrInfo *cmpDatumPtr = NULL;
-#if defined(__INTEL_COMPILER) && (defined(__ia64__) || defined(__ia64))
-/*
+#if defined(__INTEL_COMPILER) && (defined(__ia64__) || defined(__ia64))
+/*
* Intel Compiler on Intel Itanium with -O2 has a bug around
* change static variable by user function called from
* libc func: it doesn't change. So mark it as volatile.
@@ -132,7 +140,7 @@ static FmgrInfo* cmpDatumPtr=NULL;
* It's a pity, but it's impossible to define optimization
* level here.
*/
-#define VOLATILE volatile
+#define VOLATILE volatile
#else
#define VOLATILE
#endif
@@ -140,57 +148,64 @@ static FmgrInfo* cmpDatumPtr=NULL;
static bool VOLATILE needUnique = FALSE;
static int
-cmpEntries(const void * a, const void * b) {
- int res = DatumGetInt32(
- FunctionCall2(
- cmpDatumPtr,
- *(Datum*)a,
- *(Datum*)b
- )
+cmpEntries(const void *a, const void *b)
+{
+ int res = DatumGetInt32(
+ FunctionCall2(
+ cmpDatumPtr,
+ *(Datum *) a,
+ *(Datum *) b
+ )
);
- if ( res == 0 )
+ if (res == 0)
needUnique = TRUE;
return res;
}
-Datum*
-extractEntriesS(GinState *ginstate, Datum value, uint32 *nentries) {
- Datum *entries;
+Datum *
+extractEntriesS(GinState *ginstate, Datum value, uint32 *nentries)
+{
+ Datum *entries;
- entries = (Datum*)DatumGetPointer(
- FunctionCall2(
- &ginstate->extractValueFn,
- value,
- PointerGetDatum( nentries )
- )
- );
+ entries = (Datum *) DatumGetPointer(
+ FunctionCall2(
+ &ginstate->extractValueFn,
+ value,
+ PointerGetDatum(nentries)
+ )
+ );
- if ( entries == NULL )
+ if (entries == NULL)
*nentries = 0;
- if ( *nentries > 1 ) {
+ if (*nentries > 1)
+ {
cmpDatumPtr = &ginstate->compareFn;
needUnique = FALSE;
- qsort(entries, *nentries, sizeof(Datum), cmpEntries);
+ qsort(entries, *nentries, sizeof(Datum), cmpEntries);
}
return entries;
}
-Datum*
-extractEntriesSU(GinState *ginstate, Datum value, uint32 *nentries) {
- Datum *entries = extractEntriesS(ginstate, value, nentries);
+Datum *
+extractEntriesSU(GinState *ginstate, Datum value, uint32 *nentries)
+{
+ Datum *entries = extractEntriesS(ginstate, value, nentries);
- if ( *nentries>1 && needUnique ) {
- Datum *ptr, *res;
+ if (*nentries > 1 && needUnique)
+ {
+ Datum *ptr,
+ *res;
ptr = res = entries;
- while( ptr - entries < *nentries ) {
- if ( compareEntries(ginstate, *ptr, *res ) != 0 )
+ while (ptr - entries < *nentries)
+ {
+ if (compareEntries(ginstate, *ptr, *res) != 0)
*(++res) = *ptr++;
else
ptr++;
@@ -206,13 +221,14 @@ extractEntriesSU(GinState *ginstate, Datum value, uint32 *nentries) {
* It's analog of PageGetTempPage(), but copies whole page
*/
Page
-GinPageGetCopyPage( Page page ) {
- Size pageSize = PageGetPageSize( page );
- Page tmppage;
+GinPageGetCopyPage(Page page)
+{
+ Size pageSize = PageGetPageSize(page);
+ Page tmppage;
+
+ tmppage = (Page) palloc(pageSize);
+ memcpy(tmppage, page, pageSize);
- tmppage=(Page)palloc( pageSize );
- memcpy( tmppage, page, pageSize );
-
return tmppage;
}
diff --git a/src/backend/access/gin/ginvacuum.c b/src/backend/access/gin/ginvacuum.c
index 31e5f647f0..e0718862c5 100644
--- a/src/backend/access/gin/ginvacuum.c
+++ b/src/backend/access/gin/ginvacuum.c
@@ -1,14 +1,14 @@
/*-------------------------------------------------------------------------
*
* ginvacuum.c
- * delete & vacuum routines for the postgres GIN
+ * delete & vacuum routines for the postgres GIN
*
*
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/gin/ginvacuum.c,v 1.6 2006/09/21 20:31:21 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gin/ginvacuum.c,v 1.7 2006/10/04 00:29:48 momjian Exp $
*-------------------------------------------------------------------------
*/
@@ -21,42 +21,50 @@
#include "storage/freespace.h"
#include "commands/vacuum.h"
-typedef struct {
- Relation index;
- IndexBulkDeleteResult *result;
- IndexBulkDeleteCallback callback;
- void *callback_state;
- GinState ginstate;
+typedef struct
+{
+ Relation index;
+ IndexBulkDeleteResult *result;
+ IndexBulkDeleteCallback callback;
+ void *callback_state;
+ GinState ginstate;
} GinVacuumState;
/*
* Cleans array of ItemPointer (removes dead pointers)
* Results are always stored in *cleaned, which will be allocated
- * if its needed. In case of *cleaned!=NULL caller is resposible to
+ * if its needed. In case of *cleaned!=NULL caller is resposible to
* enough space. *cleaned and items may point to the same
* memory addres.
*/
static uint32
-ginVacuumPostingList( GinVacuumState *gvs, ItemPointerData *items, uint32 nitem, ItemPointerData **cleaned ) {
- uint32 i,j=0;
+ginVacuumPostingList(GinVacuumState *gvs, ItemPointerData *items, uint32 nitem, ItemPointerData **cleaned)
+{
+ uint32 i,
+ j = 0;
/*
* just scan over ItemPointer array
*/
- for(i=0;i<nitem;i++) {
- if ( gvs->callback(items+i, gvs->callback_state) ) {
+ for (i = 0; i < nitem; i++)
+ {
+ if (gvs->callback(items + i, gvs->callback_state))
+ {
gvs->result->tuples_removed += 1;
- if ( !*cleaned ) {
- *cleaned = (ItemPointerData*)palloc(sizeof(ItemPointerData)*nitem);
- if ( i!=0 )
- memcpy( *cleaned, items, sizeof(ItemPointerData)*i);
+ if (!*cleaned)
+ {
+ *cleaned = (ItemPointerData *) palloc(sizeof(ItemPointerData) * nitem);
+ if (i != 0)
+ memcpy(*cleaned, items, sizeof(ItemPointerData) * i);
}
- } else {
+ }
+ else
+ {
gvs->result->num_index_tuples += 1;
- if (i!=j)
+ if (i != j)
(*cleaned)[j] = items[i];
j++;
}
@@ -69,56 +77,65 @@ ginVacuumPostingList( GinVacuumState *gvs, ItemPointerData *items, uint32 nitem,
* fills WAL record for vacuum leaf page
*/
static void
-xlogVacuumPage(Relation index, Buffer buffer) {
- Page page = BufferGetPage( buffer );
- XLogRecPtr recptr;
+xlogVacuumPage(Relation index, Buffer buffer)
+{
+ Page page = BufferGetPage(buffer);
+ XLogRecPtr recptr;
XLogRecData rdata[3];
- ginxlogVacuumPage data;
- char *backup;
- char itups[BLCKSZ];
- uint32 len=0;
+ ginxlogVacuumPage data;
+ char *backup;
+ char itups[BLCKSZ];
+ uint32 len = 0;
- Assert( GinPageIsLeaf( page ) );
+ Assert(GinPageIsLeaf(page));
if (index->rd_istemp)
- return;
+ return;
data.node = index->rd_node;
data.blkno = BufferGetBlockNumber(buffer);
- if ( GinPageIsData( page ) ) {
- backup = GinDataPageGetData( page );
- data.nitem = GinPageGetOpaque( page )->maxoff;
- if ( data.nitem )
- len = MAXALIGN( sizeof(ItemPointerData)*data.nitem );
- } else {
- char *ptr;
+ if (GinPageIsData(page))
+ {
+ backup = GinDataPageGetData(page);
+ data.nitem = GinPageGetOpaque(page)->maxoff;
+ if (data.nitem)
+ len = MAXALIGN(sizeof(ItemPointerData) * data.nitem);
+ }
+ else
+ {
+ char *ptr;
OffsetNumber i;
ptr = backup = itups;
- for(i=FirstOffsetNumber;i<=PageGetMaxOffsetNumber(page);i++) {
- IndexTuple itup = (IndexTuple) PageGetItem(page, PageGetItemId(page, i));
- memcpy( ptr, itup, IndexTupleSize( itup ) );
- ptr += MAXALIGN( IndexTupleSize( itup ) );
+ for (i = FirstOffsetNumber; i <= PageGetMaxOffsetNumber(page); i++)
+ {
+ IndexTuple itup = (IndexTuple) PageGetItem(page, PageGetItemId(page, i));
+
+ memcpy(ptr, itup, IndexTupleSize(itup));
+ ptr += MAXALIGN(IndexTupleSize(itup));
}
data.nitem = PageGetMaxOffsetNumber(page);
- len = ptr-backup;
+ len = ptr - backup;
}
rdata[0].buffer = buffer;
- rdata[0].buffer_std = ( GinPageIsData( page ) ) ? FALSE : TRUE;
+ rdata[0].buffer_std = (GinPageIsData(page)) ? FALSE : TRUE;
rdata[0].len = 0;
rdata[0].data = NULL;
rdata[0].next = rdata + 1;
rdata[1].buffer = InvalidBuffer;
rdata[1].len = sizeof(ginxlogVacuumPage);
- rdata[1].data = (char*)&data;
+ rdata[1].data = (char *) &data;
- if ( len == 0 ) {
+ if (len == 0)
+ {
rdata[1].next = NULL;
- } else {
+ }
+ else
+ {
rdata[1].next = rdata + 2;
rdata[2].buffer = InvalidBuffer;
@@ -133,71 +150,84 @@ xlogVacuumPage(Relation index, Buffer buffer) {
}
static bool
-ginVacuumPostingTreeLeaves( GinVacuumState *gvs, BlockNumber blkno, bool isRoot, Buffer *rootBuffer ) {
- Buffer buffer = ReadBuffer( gvs->index, blkno );
- Page page = BufferGetPage( buffer );
- bool hasVoidPage = FALSE;
+ginVacuumPostingTreeLeaves(GinVacuumState *gvs, BlockNumber blkno, bool isRoot, Buffer *rootBuffer)
+{
+ Buffer buffer = ReadBuffer(gvs->index, blkno);
+ Page page = BufferGetPage(buffer);
+ bool hasVoidPage = FALSE;
- /*
+ /*
* 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).
- * If we lock root with with LockBufferForCleanup, new scan process can't begin,
- * but previous may run.
- * ginmarkpos/start* keeps buffer pinned, so we will wait for it.
- * We lock only one posting tree in whole index, so, it's concurrent enough..
- * Side effect: after this is full complete, tree is unused by any other process
+ * never release root page until end (but it can unlock it and lock
+ * again). If we lock root with with LockBufferForCleanup, new scan
+ * process can't begin, but previous may run. ginmarkpos/start* keeps
+ * buffer pinned, so we will wait for it. We lock only one posting tree in
+ * whole index, so, it's concurrent enough.. Side effect: after this is
+ * full complete, tree is unused by any other process
*/
- LockBufferForCleanup( buffer );
+ LockBufferForCleanup(buffer);
- Assert( GinPageIsData(page) );
+ Assert(GinPageIsData(page));
- if ( GinPageIsLeaf(page) ) {
- OffsetNumber newMaxOff, oldMaxOff = GinPageGetOpaque(page)->maxoff;
+ if (GinPageIsLeaf(page))
+ {
+ OffsetNumber newMaxOff,
+ oldMaxOff = GinPageGetOpaque(page)->maxoff;
ItemPointerData *cleaned = NULL;
- newMaxOff = ginVacuumPostingList( gvs,
- (ItemPointer)GinDataPageGetData(page), oldMaxOff, &cleaned );
+ newMaxOff = ginVacuumPostingList(gvs,
+ (ItemPointer) GinDataPageGetData(page), oldMaxOff, &cleaned);
/* saves changes about deleted tuple ... */
- if ( oldMaxOff != newMaxOff ) {
+ if (oldMaxOff != newMaxOff)
+ {
START_CRIT_SECTION();
- if ( newMaxOff > 0 )
- memcpy( GinDataPageGetData(page), cleaned, sizeof(ItemPointerData) * newMaxOff );
- pfree( cleaned );
+ if (newMaxOff > 0)
+ memcpy(GinDataPageGetData(page), cleaned, sizeof(ItemPointerData) * newMaxOff);
+ pfree(cleaned);
GinPageGetOpaque(page)->maxoff = newMaxOff;
- xlogVacuumPage(gvs->index, buffer);
+ xlogVacuumPage(gvs->index, buffer);
- MarkBufferDirty( buffer );
+ MarkBufferDirty(buffer);
END_CRIT_SECTION();
-
- /* if root is a leaf page, we don't desire futher processing */
- if ( !isRoot && GinPageGetOpaque(page)->maxoff < FirstOffsetNumber )
+
+ /* if root is a leaf page, we don't desire futher processing */
+ if (!isRoot && GinPageGetOpaque(page)->maxoff < FirstOffsetNumber)
hasVoidPage = TRUE;
}
- } else {
+ }
+ else
+ {
OffsetNumber i;
- bool isChildHasVoid = FALSE;
+ bool isChildHasVoid = FALSE;
+
+ for (i = FirstOffsetNumber; i <= GinPageGetOpaque(page)->maxoff; i++)
+ {
+ PostingItem *pitem = (PostingItem *) GinDataPageGetItem(page, i);
- for( i=FirstOffsetNumber ; i <= GinPageGetOpaque(page)->maxoff ; i++ ) {
- PostingItem *pitem = (PostingItem*)GinDataPageGetItem(page, i);
- if ( ginVacuumPostingTreeLeaves( gvs, PostingItemGetBlockNumber(pitem), FALSE, NULL ) )
+ if (ginVacuumPostingTreeLeaves(gvs, PostingItemGetBlockNumber(pitem), FALSE, NULL))
isChildHasVoid = TRUE;
}
- if ( isChildHasVoid )
+ if (isChildHasVoid)
hasVoidPage = TRUE;
}
- /* if we have root and theres void pages in tree, then we don't release lock
- to go further processing and guarantee that tree is unused */
- if ( !(isRoot && hasVoidPage) ) {
- UnlockReleaseBuffer( buffer );
- } else {
- Assert( rootBuffer );
+ /*
+ * if we have root and theres void pages in tree, then we don't release
+ * lock to go further processing and guarantee that tree is unused
+ */
+ if (!(isRoot && hasVoidPage))
+ {
+ UnlockReleaseBuffer(buffer);
+ }
+ else
+ {
+ Assert(rootBuffer);
*rootBuffer = buffer;
}
@@ -205,49 +235,54 @@ ginVacuumPostingTreeLeaves( GinVacuumState *gvs, BlockNumber blkno, bool isRoot,
}
static void
-ginDeletePage(GinVacuumState *gvs, BlockNumber deleteBlkno, BlockNumber leftBlkno,
- BlockNumber parentBlkno, OffsetNumber myoff, bool isParentRoot ) {
- Buffer dBuffer = ReadBuffer( gvs->index, deleteBlkno );
- Buffer lBuffer = (leftBlkno==InvalidBlockNumber) ? InvalidBuffer : ReadBuffer( gvs->index, leftBlkno );
- Buffer pBuffer = ReadBuffer( gvs->index, parentBlkno );
- Page page, parentPage;
-
- LockBuffer( dBuffer, GIN_EXCLUSIVE );
- if ( !isParentRoot ) /* parent is already locked by LockBufferForCleanup() */
- LockBuffer( pBuffer, GIN_EXCLUSIVE );
+ginDeletePage(GinVacuumState *gvs, BlockNumber deleteBlkno, BlockNumber leftBlkno,
+ BlockNumber parentBlkno, OffsetNumber myoff, bool isParentRoot)
+{
+ Buffer dBuffer = ReadBuffer(gvs->index, deleteBlkno);
+ Buffer lBuffer = (leftBlkno == InvalidBlockNumber) ? InvalidBuffer : ReadBuffer(gvs->index, leftBlkno);
+ Buffer pBuffer = ReadBuffer(gvs->index, parentBlkno);
+ Page page,
+ parentPage;
+
+ LockBuffer(dBuffer, GIN_EXCLUSIVE);
+ if (!isParentRoot) /* parent is already locked by
+ * LockBufferForCleanup() */
+ LockBuffer(pBuffer, GIN_EXCLUSIVE);
START_CRIT_SECTION();
- if ( leftBlkno!= InvalidBlockNumber ) {
+ if (leftBlkno != InvalidBlockNumber)
+ {
BlockNumber rightlink;
- LockBuffer( lBuffer, GIN_EXCLUSIVE );
+ LockBuffer(lBuffer, GIN_EXCLUSIVE);
- page = BufferGetPage( dBuffer );
+ page = BufferGetPage(dBuffer);
rightlink = GinPageGetOpaque(page)->rightlink;
- page = BufferGetPage( lBuffer );
+ page = BufferGetPage(lBuffer);
GinPageGetOpaque(page)->rightlink = rightlink;
}
- parentPage = BufferGetPage( pBuffer );
+ parentPage = BufferGetPage(pBuffer);
PageDeletePostingItem(parentPage, myoff);
- page = BufferGetPage( dBuffer );
+ page = BufferGetPage(dBuffer);
GinPageGetOpaque(page)->flags = GIN_DELETED;
- if (!gvs->index->rd_istemp) {
- XLogRecPtr recptr;
+ if (!gvs->index->rd_istemp)
+ {
+ XLogRecPtr recptr;
XLogRecData rdata[4];
- ginxlogDeletePage data;
- int n;
+ ginxlogDeletePage data;
+ int n;
data.node = gvs->index->rd_node;
data.blkno = deleteBlkno;
data.parentBlkno = parentBlkno;
data.parentOffset = myoff;
- data.leftBlkno = leftBlkno;
- data.rightLink = GinPageGetOpaque(page)->rightlink;
+ data.leftBlkno = leftBlkno;
+ data.rightLink = GinPageGetOpaque(page)->rightlink;
rdata[0].buffer = dBuffer;
rdata[0].buffer_std = FALSE;
@@ -261,20 +296,22 @@ ginDeletePage(GinVacuumState *gvs, BlockNumber deleteBlkno, BlockNumber leftBlkn
rdata[1].len = 0;
rdata[1].next = rdata + 2;
- if ( leftBlkno!= InvalidBlockNumber ) {
+ if (leftBlkno != InvalidBlockNumber)
+ {
rdata[2].buffer = lBuffer;
rdata[2].buffer_std = FALSE;
rdata[2].data = NULL;
rdata[2].len = 0;
rdata[2].next = rdata + 3;
n = 3;
- } else
+ }
+ else
n = 2;
rdata[n].buffer = InvalidBuffer;
rdata[n].buffer_std = FALSE;
rdata[n].len = sizeof(ginxlogDeletePage);
- rdata[n].data = (char*)&data;
+ rdata[n].data = (char *) &data;
rdata[n].next = NULL;
recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_DELETE_PAGE, rdata);
@@ -282,122 +319,141 @@ ginDeletePage(GinVacuumState *gvs, BlockNumber deleteBlkno, BlockNumber leftBlkn
PageSetTLI(page, ThisTimeLineID);
PageSetLSN(parentPage, recptr);
PageSetTLI(parentPage, ThisTimeLineID);
- if ( leftBlkno!= InvalidBlockNumber ) {
- page = BufferGetPage( lBuffer );
+ if (leftBlkno != InvalidBlockNumber)
+ {
+ page = BufferGetPage(lBuffer);
PageSetLSN(page, recptr);
PageSetTLI(page, ThisTimeLineID);
}
}
- MarkBufferDirty( pBuffer );
- if ( !isParentRoot )
- LockBuffer( pBuffer, GIN_UNLOCK );
- ReleaseBuffer( pBuffer );
+ MarkBufferDirty(pBuffer);
+ if (!isParentRoot)
+ LockBuffer(pBuffer, GIN_UNLOCK);
+ ReleaseBuffer(pBuffer);
- if ( leftBlkno!= InvalidBlockNumber ) {
- MarkBufferDirty( lBuffer );
- UnlockReleaseBuffer( lBuffer );
+ if (leftBlkno != InvalidBlockNumber)
+ {
+ MarkBufferDirty(lBuffer);
+ UnlockReleaseBuffer(lBuffer);
}
- MarkBufferDirty( dBuffer );
- UnlockReleaseBuffer( dBuffer );
+ MarkBufferDirty(dBuffer);
+ UnlockReleaseBuffer(dBuffer);
END_CRIT_SECTION();
gvs->result->pages_deleted++;
}
-typedef struct DataPageDeleteStack {
- struct DataPageDeleteStack *child;
- struct DataPageDeleteStack *parent;
+typedef struct DataPageDeleteStack
+{
+ struct DataPageDeleteStack *child;
+ struct DataPageDeleteStack *parent;
- BlockNumber blkno;
- bool isRoot;
+ BlockNumber blkno;
+ bool isRoot;
} DataPageDeleteStack;
/*
* scans posting tree and deletes empty pages
*/
static bool
-ginScanToDelete( GinVacuumState *gvs, BlockNumber blkno, bool isRoot, DataPageDeleteStack *parent, OffsetNumber myoff ) {
- DataPageDeleteStack *me;
- Buffer buffer;
- Page page;
- bool meDelete = FALSE;
-
- if ( isRoot ) {
+ginScanToDelete(GinVacuumState *gvs, BlockNumber blkno, bool isRoot, DataPageDeleteStack *parent, OffsetNumber myoff)
+{
+ DataPageDeleteStack *me;
+ Buffer buffer;
+ Page page;
+ bool meDelete = FALSE;
+
+ if (isRoot)
+ {
me = parent;
- } else {
- if ( ! parent->child ) {
- me = (DataPageDeleteStack*)palloc0(sizeof(DataPageDeleteStack));
- me->parent=parent;
+ }
+ else
+ {
+ if (!parent->child)
+ {
+ me = (DataPageDeleteStack *) palloc0(sizeof(DataPageDeleteStack));
+ me->parent = parent;
parent->child = me;
me->blkno = InvalidBlockNumber;
- } else
+ }
+ else
me = parent->child;
}
- buffer = ReadBuffer( gvs->index, blkno );
- page = BufferGetPage( buffer );
+ buffer = ReadBuffer(gvs->index, blkno);
+ page = BufferGetPage(buffer);
- Assert( GinPageIsData(page) );
+ Assert(GinPageIsData(page));
- if ( !GinPageIsLeaf(page) ) {
+ if (!GinPageIsLeaf(page))
+ {
OffsetNumber i;
- for(i=FirstOffsetNumber;i<=GinPageGetOpaque(page)->maxoff;i++) {
- PostingItem *pitem = (PostingItem*)GinDataPageGetItem(page, i);
+ for (i = FirstOffsetNumber; i <= GinPageGetOpaque(page)->maxoff; i++)
+ {
+ PostingItem *pitem = (PostingItem *) GinDataPageGetItem(page, i);
- if ( ginScanToDelete( gvs, PostingItemGetBlockNumber(pitem), FALSE, me, i ) )
+ if (ginScanToDelete(gvs, PostingItemGetBlockNumber(pitem), FALSE, me, i))
i--;
}
}
- if ( GinPageGetOpaque(page)->maxoff < FirstOffsetNumber ) {
- if ( !( me->blkno == InvalidBlockNumber && GinPageRightMost(page) ) ) {
+ if (GinPageGetOpaque(page)->maxoff < FirstOffsetNumber)
+ {
+ if (!(me->blkno == InvalidBlockNumber && GinPageRightMost(page)))
+ {
/* we never delete right most branch */
- Assert( !isRoot );
- if ( GinPageGetOpaque(page)->maxoff < FirstOffsetNumber ) {
- ginDeletePage( gvs, blkno, me->blkno, me->parent->blkno, myoff, me->parent->isRoot );
+ Assert(!isRoot);
+ if (GinPageGetOpaque(page)->maxoff < FirstOffsetNumber)
+ {
+ ginDeletePage(gvs, blkno, me->blkno, me->parent->blkno, myoff, me->parent->isRoot);
meDelete = TRUE;
}
}
}
- ReleaseBuffer( buffer );
+ ReleaseBuffer(buffer);
- if ( !meDelete )
+ if (!meDelete)
me->blkno = blkno;
return meDelete;
}
static void
-ginVacuumPostingTree( GinVacuumState *gvs, BlockNumber rootBlkno ) {
- Buffer rootBuffer = InvalidBuffer;
- DataPageDeleteStack root, *ptr, *tmp;
-
- if ( ginVacuumPostingTreeLeaves(gvs, rootBlkno, TRUE, &rootBuffer)==FALSE ) {
- Assert( rootBuffer == InvalidBuffer );
+ginVacuumPostingTree(GinVacuumState *gvs, BlockNumber rootBlkno)
+{
+ Buffer rootBuffer = InvalidBuffer;
+ DataPageDeleteStack root,
+ *ptr,
+ *tmp;
+
+ if (ginVacuumPostingTreeLeaves(gvs, rootBlkno, TRUE, &rootBuffer) == FALSE)
+ {
+ Assert(rootBuffer == InvalidBuffer);
return;
}
- memset(&root,0,sizeof(DataPageDeleteStack));
+ memset(&root, 0, sizeof(DataPageDeleteStack));
root.blkno = rootBlkno;
root.isRoot = TRUE;
vacuum_delay_point();
- ginScanToDelete( gvs, rootBlkno, TRUE, &root, InvalidOffsetNumber );
+ ginScanToDelete(gvs, rootBlkno, TRUE, &root, InvalidOffsetNumber);
ptr = root.child;
- while( ptr ) {
+ while (ptr)
+ {
tmp = ptr->child;
- pfree( ptr );
+ pfree(ptr);
ptr = tmp;
}
- UnlockReleaseBuffer( rootBuffer );
+ UnlockReleaseBuffer(rootBuffer);
}
/*
@@ -406,48 +462,65 @@ ginVacuumPostingTree( GinVacuumState *gvs, BlockNumber rootBlkno ) {
* then page is copied into temprorary one.
*/
static Page
-ginVacuumEntryPage(GinVacuumState *gvs, Buffer buffer, BlockNumber *roots, uint32 *nroot) {
- Page origpage = BufferGetPage( buffer ), tmppage;
- OffsetNumber i, maxoff = PageGetMaxOffsetNumber( origpage );
+ginVacuumEntryPage(GinVacuumState *gvs, Buffer buffer, BlockNumber *roots, uint32 *nroot)
+{
+ Page origpage = BufferGetPage(buffer),
+ tmppage;
+ OffsetNumber i,
+ maxoff = PageGetMaxOffsetNumber(origpage);
tmppage = origpage;
- *nroot=0;
+ *nroot = 0;
- for(i=FirstOffsetNumber; i<= maxoff; i++) {
- IndexTuple itup = (IndexTuple) PageGetItem(tmppage, PageGetItemId(tmppage, i));
+ for (i = FirstOffsetNumber; i <= maxoff; i++)
+ {
+ IndexTuple itup = (IndexTuple) PageGetItem(tmppage, PageGetItemId(tmppage, i));
- if ( GinIsPostingTree(itup) ) {
- /* store posting tree's roots for further processing,
- we can't vacuum it just now due to risk of deadlocks with scans/inserts */
- roots[ *nroot ] = GinItemPointerGetBlockNumber(&itup->t_tid);
+ if (GinIsPostingTree(itup))
+ {
+ /*
+ * store posting tree's roots for further processing, we can't
+ * vacuum it just now due to risk of deadlocks with scans/inserts
+ */
+ roots[*nroot] = GinItemPointerGetBlockNumber(&itup->t_tid);
(*nroot)++;
- } else if ( GinGetNPosting(itup) > 0 ) {
- /* if we already create temrorary page, we will make changes in place */
- ItemPointerData *cleaned = (tmppage==origpage) ? NULL : GinGetPosting(itup );
- uint32 newN = ginVacuumPostingList( gvs, GinGetPosting(itup), GinGetNPosting(itup), &cleaned );
-
- if ( GinGetNPosting(itup) != newN ) {
- bool isnull;
- Datum value;
+ }
+ else if (GinGetNPosting(itup) > 0)
+ {
+ /*
+ * if we already create temrorary page, we will make changes in
+ * place
+ */
+ ItemPointerData *cleaned = (tmppage == origpage) ? NULL : GinGetPosting(itup);
+ uint32 newN = ginVacuumPostingList(gvs, GinGetPosting(itup), GinGetNPosting(itup), &cleaned);
+
+ if (GinGetNPosting(itup) != newN)
+ {
+ bool isnull;
+ Datum value;
/*
- * Some ItemPointers was deleted, so we should remake our tuple
+ * Some ItemPointers was deleted, so we should remake our
+ * tuple
*/
- if ( tmppage==origpage ) {
+ if (tmppage == origpage)
+ {
/*
* On first difference we create temprorary page in memory
* and copies content in to it.
*/
- tmppage=GinPageGetCopyPage ( origpage );
+ tmppage = GinPageGetCopyPage(origpage);
+
+ if (newN > 0)
+ {
+ Size pos = ((char *) GinGetPosting(itup)) - ((char *) origpage);
- if ( newN > 0 ) {
- Size pos = ((char*)GinGetPosting(itup)) - ((char*)origpage);
- memcpy( tmppage+pos, cleaned, sizeof(ItemPointerData)*newN );
+ memcpy(tmppage + pos, cleaned, sizeof(ItemPointerData) * newN);
}
- pfree( cleaned );
+ pfree(cleaned);
/* set itup pointer to new page */
itup = (IndexTuple) PageGetItem(tmppage, PageGetItemId(tmppage, i));
@@ -457,30 +530,31 @@ ginVacuumEntryPage(GinVacuumState *gvs, Buffer buffer, BlockNumber *roots, uint3
itup = GinFormTuple(&gvs->ginstate, value, GinGetPosting(itup), newN);
PageIndexTupleDelete(tmppage, i);
- if ( PageAddItem( tmppage, (Item)itup, IndexTupleSize(itup), i, LP_USED ) != i )
- elog(ERROR, "failed to add item to index page in \"%s\"",
- RelationGetRelationName(gvs->index));
+ if (PageAddItem(tmppage, (Item) itup, IndexTupleSize(itup), i, LP_USED) != i)
+ elog(ERROR, "failed to add item to index page in \"%s\"",
+ RelationGetRelationName(gvs->index));
- pfree( itup );
+ pfree(itup);
}
}
}
- return ( tmppage==origpage ) ? NULL : tmppage;
+ return (tmppage == origpage) ? NULL : tmppage;
}
Datum
-ginbulkdelete(PG_FUNCTION_ARGS) {
+ginbulkdelete(PG_FUNCTION_ARGS)
+{
IndexVacuumInfo *info = (IndexVacuumInfo *) PG_GETARG_POINTER(0);
IndexBulkDeleteResult *stats = (IndexBulkDeleteResult *) PG_GETARG_POINTER(1);
IndexBulkDeleteCallback callback = (IndexBulkDeleteCallback) PG_GETARG_POINTER(2);
void *callback_state = (void *) PG_GETARG_POINTER(3);
Relation index = info->index;
- BlockNumber blkno = GIN_ROOT_BLKNO;
- GinVacuumState gvs;
- Buffer buffer;
- BlockNumber rootOfPostingTree[ BLCKSZ/ (sizeof(IndexTupleData)+sizeof(ItemId)) ];
- uint32 nRoot;
+ BlockNumber blkno = GIN_ROOT_BLKNO;
+ GinVacuumState gvs;
+ Buffer buffer;
+ BlockNumber rootOfPostingTree[BLCKSZ / (sizeof(IndexTupleData) + sizeof(ItemId))];
+ uint32 nRoot;
/* first time through? */
if (stats == NULL)
@@ -494,107 +568,117 @@ ginbulkdelete(PG_FUNCTION_ARGS) {
gvs.callback_state = callback_state;
initGinState(&gvs.ginstate, index);
- buffer = ReadBuffer( index, blkno );
+ buffer = ReadBuffer(index, blkno);
/* find leaf page */
- for(;;) {
- Page page = BufferGetPage( buffer );
- IndexTuple itup;
+ for (;;)
+ {
+ Page page = BufferGetPage(buffer);
+ IndexTuple itup;
- LockBuffer(buffer,GIN_SHARE);
+ LockBuffer(buffer, GIN_SHARE);
- Assert( !GinPageIsData(page) );
+ Assert(!GinPageIsData(page));
- if ( GinPageIsLeaf(page) ) {
- LockBuffer(buffer,GIN_UNLOCK);
- LockBuffer(buffer,GIN_EXCLUSIVE);
+ if (GinPageIsLeaf(page))
+ {
+ LockBuffer(buffer, GIN_UNLOCK);
+ LockBuffer(buffer, GIN_EXCLUSIVE);
- if ( blkno==GIN_ROOT_BLKNO && !GinPageIsLeaf(page) ) {
- LockBuffer(buffer,GIN_UNLOCK);
- continue; /* check it one more */
+ if (blkno == GIN_ROOT_BLKNO && !GinPageIsLeaf(page))
+ {
+ LockBuffer(buffer, GIN_UNLOCK);
+ continue; /* check it one more */
}
- break;
+ break;
}
- Assert( PageGetMaxOffsetNumber(page) >= FirstOffsetNumber );
+ Assert(PageGetMaxOffsetNumber(page) >= FirstOffsetNumber);
itup = (IndexTuple) PageGetItem(page, PageGetItemId(page, FirstOffsetNumber));
blkno = GinItemPointerGetBlockNumber(&(itup)->t_tid);
- Assert( blkno!= InvalidBlockNumber );
+ Assert(blkno != InvalidBlockNumber);
- LockBuffer(buffer,GIN_UNLOCK);
- buffer = ReleaseAndReadBuffer( buffer, index, blkno );
+ LockBuffer(buffer, GIN_UNLOCK);
+ buffer = ReleaseAndReadBuffer(buffer, index, blkno);
}
/* right now we found leftmost page in entry's BTree */
- for(;;) {
- Page page = BufferGetPage( buffer );
- Page resPage;
- uint32 i;
+ for (;;)
+ {
+ Page page = BufferGetPage(buffer);
+ Page resPage;
+ uint32 i;
- Assert( !GinPageIsData(page) );
+ Assert(!GinPageIsData(page));
resPage = ginVacuumEntryPage(&gvs, buffer, rootOfPostingTree, &nRoot);
- blkno = GinPageGetOpaque( page )->rightlink;
+ blkno = GinPageGetOpaque(page)->rightlink;
- if ( resPage ) {
+ if (resPage)
+ {
START_CRIT_SECTION();
- PageRestoreTempPage( resPage, page );
- xlogVacuumPage(gvs.index, buffer);
- MarkBufferDirty( buffer );
+ PageRestoreTempPage(resPage, page);
+ xlogVacuumPage(gvs.index, buffer);
+ MarkBufferDirty(buffer);
UnlockReleaseBuffer(buffer);
END_CRIT_SECTION();
- } else {
+ }
+ else
+ {
UnlockReleaseBuffer(buffer);
}
vacuum_delay_point();
- for(i=0; i<nRoot; i++) {
- ginVacuumPostingTree( &gvs, rootOfPostingTree[i] );
+ for (i = 0; i < nRoot; i++)
+ {
+ ginVacuumPostingTree(&gvs, rootOfPostingTree[i]);
vacuum_delay_point();
}
- if ( blkno==InvalidBlockNumber ) /*rightmost page*/
+ if (blkno == InvalidBlockNumber) /* rightmost page */
break;
- buffer = ReadBuffer( index, blkno );
- LockBuffer(buffer,GIN_EXCLUSIVE);
+ buffer = ReadBuffer(index, blkno);
+ LockBuffer(buffer, GIN_EXCLUSIVE);
}
PG_RETURN_POINTER(gvs.result);
}
-Datum
-ginvacuumcleanup(PG_FUNCTION_ARGS) {
+Datum
+ginvacuumcleanup(PG_FUNCTION_ARGS)
+{
IndexVacuumInfo *info = (IndexVacuumInfo *) PG_GETARG_POINTER(0);
IndexBulkDeleteResult *stats = (IndexBulkDeleteResult *) PG_GETARG_POINTER(1);
- Relation index = info->index;
- bool needLock;
- BlockNumber npages,
+ Relation index = info->index;
+ bool needLock;
+ BlockNumber npages,
blkno;
BlockNumber totFreePages,
nFreePages,
*freePages,
- maxFreePages;
+ maxFreePages;
BlockNumber lastBlock = GIN_ROOT_BLKNO,
- lastFilledBlock = GIN_ROOT_BLKNO;
+ lastFilledBlock = GIN_ROOT_BLKNO;
/* Set up all-zero stats if ginbulkdelete wasn't called */
if (stats == NULL)
stats = (IndexBulkDeleteResult *) palloc0(sizeof(IndexBulkDeleteResult));
+
/*
* XXX we always report the heap tuple count as the number of index
- * entries. This is bogus if the index is partial, but it's real hard
- * to tell how many distinct heap entries are referenced by a GIN index.
+ * entries. This is bogus if the index is partial, but it's real hard to
+ * tell how many distinct heap entries are referenced by a GIN index.
*/
stats->num_index_tuples = info->num_heap_tuples;
/*
- * If vacuum full, we already have exclusive lock on the index.
- * Otherwise, need lock unless it's local to this backend.
+ * If vacuum full, we already have exclusive lock on the index. Otherwise,
+ * need lock unless it's local to this backend.
*/
if (info->vacuum_full)
needLock = false;
@@ -614,32 +698,38 @@ ginvacuumcleanup(PG_FUNCTION_ARGS) {
totFreePages = nFreePages = 0;
freePages = (BlockNumber *) palloc(sizeof(BlockNumber) * maxFreePages);
- for (blkno = GIN_ROOT_BLKNO + 1; blkno < npages; blkno++) {
- Buffer buffer;
- Page page;
+ for (blkno = GIN_ROOT_BLKNO + 1; blkno < npages; blkno++)
+ {
+ Buffer buffer;
+ Page page;
vacuum_delay_point();
-
+
buffer = ReadBuffer(index, blkno);
LockBuffer(buffer, GIN_SHARE);
page = (Page) BufferGetPage(buffer);
- if ( GinPageIsDeleted(page) ) {
+ if (GinPageIsDeleted(page))
+ {
if (nFreePages < maxFreePages)
freePages[nFreePages++] = blkno;
totFreePages++;
- } else
+ }
+ else
lastFilledBlock = blkno;
UnlockReleaseBuffer(buffer);
}
lastBlock = npages - 1;
- if (info->vacuum_full && nFreePages > 0) {
+ if (info->vacuum_full && nFreePages > 0)
+ {
/* try to truncate index */
- int i;
- for (i = 0; i < nFreePages; i++)
- if (freePages[i] >= lastFilledBlock) {
+ int i;
+
+ for (i = 0; i < nFreePages; i++)
+ if (freePages[i] >= lastFilledBlock)
+ {
totFreePages = nFreePages = i;
break;
}
@@ -661,4 +751,3 @@ ginvacuumcleanup(PG_FUNCTION_ARGS) {
PG_RETURN_POINTER(stats);
}
-
diff --git a/src/backend/access/gin/ginxlog.c b/src/backend/access/gin/ginxlog.c
index 265e7de70c..788f290b84 100644
--- a/src/backend/access/gin/ginxlog.c
+++ b/src/backend/access/gin/ginxlog.c
@@ -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.4 2006/08/07 16:57:56 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gin/ginxlog.c,v 1.5 2006/10/04 00:29:48 momjian Exp $
*-------------------------------------------------------------------------
*/
#include "postgres.h"
@@ -17,12 +17,13 @@
#include "access/heapam.h"
#include "utils/memutils.h"
-static MemoryContext opCtx; /* working memory for operations */
+static MemoryContext opCtx; /* working memory for operations */
static MemoryContext topCtx;
-typedef struct ginIncompleteSplit {
- RelFileNode node;
- BlockNumber leftBlkno;
+typedef struct ginIncompleteSplit
+{
+ RelFileNode node;
+ BlockNumber leftBlkno;
BlockNumber rightBlkno;
BlockNumber rootBlkno;
} ginIncompleteSplit;
@@ -30,10 +31,11 @@ typedef struct ginIncompleteSplit {
static List *incomplete_splits;
static void
-pushIncompleteSplit(RelFileNode node, BlockNumber leftBlkno, BlockNumber rightBlkno, BlockNumber rootBlkno) {
- ginIncompleteSplit *split;
+pushIncompleteSplit(RelFileNode node, BlockNumber leftBlkno, BlockNumber rightBlkno, BlockNumber rootBlkno)
+{
+ ginIncompleteSplit *split;
- MemoryContextSwitchTo( topCtx );
+ MemoryContextSwitchTo(topCtx);
split = palloc(sizeof(ginIncompleteSplit));
@@ -44,17 +46,20 @@ pushIncompleteSplit(RelFileNode node, BlockNumber leftBlkno, BlockNumber rightBl
incomplete_splits = lappend(incomplete_splits, split);
- MemoryContextSwitchTo( opCtx );
+ MemoryContextSwitchTo(opCtx);
}
static void
-forgetIncompleteSplit(RelFileNode node, BlockNumber leftBlkno, BlockNumber updateBlkno) {
+forgetIncompleteSplit(RelFileNode node, BlockNumber leftBlkno, BlockNumber updateBlkno)
+{
ListCell *l;
- foreach(l, incomplete_splits) {
- ginIncompleteSplit *split = (ginIncompleteSplit *) lfirst(l);
+ foreach(l, incomplete_splits)
+ {
+ ginIncompleteSplit *split = (ginIncompleteSplit *) lfirst(l);
- if ( RelFileNodeEquals(node, split->node) && leftBlkno == split->leftBlkno && updateBlkno == split->rightBlkno ) {
+ if (RelFileNodeEquals(node, split->node) && leftBlkno == split->leftBlkno && updateBlkno == split->rightBlkno)
+ {
incomplete_splits = list_delete_ptr(incomplete_splits, split);
break;
}
@@ -62,7 +67,8 @@ forgetIncompleteSplit(RelFileNode node, BlockNumber leftBlkno, BlockNumber updat
}
static void
-ginRedoCreateIndex(XLogRecPtr lsn, XLogRecord *record) {
+ginRedoCreateIndex(XLogRecPtr lsn, XLogRecord *record)
+{
RelFileNode *node = (RelFileNode *) XLogRecGetData(record);
Relation reln;
Buffer buffer;
@@ -83,9 +89,10 @@ ginRedoCreateIndex(XLogRecPtr lsn, XLogRecord *record) {
}
static void
-ginRedoCreatePTree(XLogRecPtr lsn, XLogRecord *record) {
- ginxlogCreatePostingTree *data = (ginxlogCreatePostingTree*)XLogRecGetData(record);
- ItemPointerData *items = (ItemPointerData*)(XLogRecGetData(record) + sizeof(ginxlogCreatePostingTree));
+ginRedoCreatePTree(XLogRecPtr lsn, XLogRecord *record)
+{
+ ginxlogCreatePostingTree *data = (ginxlogCreatePostingTree *) XLogRecGetData(record);
+ ItemPointerData *items = (ItemPointerData *) (XLogRecGetData(record) + sizeof(ginxlogCreatePostingTree));
Relation reln;
Buffer buffer;
Page page;
@@ -95,8 +102,8 @@ ginRedoCreatePTree(XLogRecPtr lsn, XLogRecord *record) {
Assert(BufferIsValid(buffer));
page = (Page) BufferGetPage(buffer);
- GinInitBuffer(buffer, GIN_DATA|GIN_LEAF);
- memcpy( GinDataPageGetData(page), items, sizeof(ItemPointerData) * data->nitem );
+ GinInitBuffer(buffer, GIN_DATA | GIN_LEAF);
+ memcpy(GinDataPageGetData(page), items, sizeof(ItemPointerData) * data->nitem);
GinPageGetOpaque(page)->maxoff = data->nitem;
PageSetLSN(page, lsn);
@@ -107,8 +114,9 @@ ginRedoCreatePTree(XLogRecPtr lsn, XLogRecord *record) {
}
static void
-ginRedoInsert(XLogRecPtr lsn, XLogRecord *record) {
- ginxlogInsert *data = (ginxlogInsert*)XLogRecGetData(record);
+ginRedoInsert(XLogRecPtr lsn, XLogRecord *record)
+{
+ ginxlogInsert *data = (ginxlogInsert *) XLogRecGetData(record);
Relation reln;
Buffer buffer;
Page page;
@@ -122,64 +130,73 @@ ginRedoInsert(XLogRecPtr lsn, XLogRecord *record) {
Assert(BufferIsValid(buffer));
page = (Page) BufferGetPage(buffer);
- if ( data->isData ) {
- Assert( data->isDelete == FALSE );
- Assert( GinPageIsData( page ) );
+ if (data->isData)
+ {
+ Assert(data->isDelete == FALSE);
+ Assert(GinPageIsData(page));
- if ( data->isLeaf ) {
+ if (data->isLeaf)
+ {
OffsetNumber i;
- ItemPointerData *items = (ItemPointerData*)( XLogRecGetData(record) + sizeof(ginxlogInsert) );
+ ItemPointerData *items = (ItemPointerData *) (XLogRecGetData(record) + sizeof(ginxlogInsert));
- Assert( GinPageIsLeaf( page ) );
- Assert( data->updateBlkno == InvalidBlockNumber );
+ Assert(GinPageIsLeaf(page));
+ Assert(data->updateBlkno == InvalidBlockNumber);
- for(i=0;i<data->nitem;i++)
- GinDataPageAddItem( page, items+i, data->offset + i );
- } else {
+ for (i = 0; i < data->nitem; i++)
+ GinDataPageAddItem(page, items + i, data->offset + i);
+ }
+ else
+ {
PostingItem *pitem;
- Assert( !GinPageIsLeaf( page ) );
+ Assert(!GinPageIsLeaf(page));
- if ( data->updateBlkno != InvalidBlockNumber ) {
- /* update link to right page after split */
- pitem = (PostingItem*)GinDataPageGetItem(page, data->offset);
- PostingItemSetBlockNumber( pitem, data->updateBlkno );
+ if (data->updateBlkno != InvalidBlockNumber)
+ {
+ /* update link to right page after split */
+ pitem = (PostingItem *) GinDataPageGetItem(page, data->offset);
+ PostingItemSetBlockNumber(pitem, data->updateBlkno);
}
- pitem = (PostingItem*)( XLogRecGetData(record) + sizeof(ginxlogInsert) );
+ pitem = (PostingItem *) (XLogRecGetData(record) + sizeof(ginxlogInsert));
- GinDataPageAddItem( page, pitem, data->offset );
+ GinDataPageAddItem(page, pitem, data->offset);
- if ( data->updateBlkno != InvalidBlockNumber )
- forgetIncompleteSplit(data->node, PostingItemGetBlockNumber( pitem ), data->updateBlkno);
+ if (data->updateBlkno != InvalidBlockNumber)
+ forgetIncompleteSplit(data->node, PostingItemGetBlockNumber(pitem), data->updateBlkno);
}
- } else {
- IndexTuple itup;
+ }
+ else
+ {
+ IndexTuple itup;
- Assert( !GinPageIsData( page ) );
+ Assert(!GinPageIsData(page));
- if ( data->updateBlkno != InvalidBlockNumber ) {
- /* update link to right page after split */
- Assert( !GinPageIsLeaf( page ) );
- Assert( data->offset>=FirstOffsetNumber && data->offset<=PageGetMaxOffsetNumber(page) );
+ if (data->updateBlkno != InvalidBlockNumber)
+ {
+ /* update link to right page after split */
+ Assert(!GinPageIsLeaf(page));
+ Assert(data->offset >= FirstOffsetNumber && data->offset <= PageGetMaxOffsetNumber(page));
itup = (IndexTuple) PageGetItem(page, PageGetItemId(page, data->offset));
ItemPointerSet(&itup->t_tid, data->updateBlkno, InvalidOffsetNumber);
}
- if ( data->isDelete ) {
- Assert( GinPageIsLeaf( page ) );
- Assert( data->offset>=FirstOffsetNumber && data->offset<=PageGetMaxOffsetNumber(page) );
+ if (data->isDelete)
+ {
+ Assert(GinPageIsLeaf(page));
+ Assert(data->offset >= FirstOffsetNumber && data->offset <= PageGetMaxOffsetNumber(page));
PageIndexTupleDelete(page, data->offset);
}
- itup = (IndexTuple)( XLogRecGetData(record) + sizeof(ginxlogInsert) );
+ itup = (IndexTuple) (XLogRecGetData(record) + sizeof(ginxlogInsert));
- if ( PageAddItem( page, (Item)itup, IndexTupleSize(itup), data->offset, LP_USED) == InvalidOffsetNumber )
- elog(ERROR, "failed to add item to index page in %u/%u/%u",
- data->node.spcNode, data->node.dbNode, data->node.relNode );
+ if (PageAddItem(page, (Item) itup, IndexTupleSize(itup), data->offset, LP_USED) == InvalidOffsetNumber)
+ elog(ERROR, "failed to add item to index page in %u/%u/%u",
+ data->node.spcNode, data->node.dbNode, data->node.relNode);
- if ( !data->isLeaf && data->updateBlkno != InvalidBlockNumber )
- forgetIncompleteSplit(data->node, GinItemPointerGetBlockNumber( &itup->t_tid ), data->updateBlkno);
+ if (!data->isLeaf && data->updateBlkno != InvalidBlockNumber)
+ forgetIncompleteSplit(data->node, GinItemPointerGetBlockNumber(&itup->t_tid), data->updateBlkno);
}
PageSetLSN(page, lsn);
@@ -190,18 +207,21 @@ ginRedoInsert(XLogRecPtr lsn, XLogRecord *record) {
}
static void
-ginRedoSplit(XLogRecPtr lsn, XLogRecord *record) {
- ginxlogSplit *data = (ginxlogSplit*)XLogRecGetData(record);
+ginRedoSplit(XLogRecPtr lsn, XLogRecord *record)
+{
+ ginxlogSplit *data = (ginxlogSplit *) XLogRecGetData(record);
Relation reln;
- Buffer lbuffer, rbuffer;
- Page lpage, rpage;
+ Buffer lbuffer,
+ rbuffer;
+ Page lpage,
+ rpage;
uint32 flags = 0;
reln = XLogOpenRelation(data->node);
- if ( data->isLeaf )
+ if (data->isLeaf)
flags |= GIN_LEAF;
- if ( data->isData )
+ if (data->isData)
flags |= GIN_DATA;
lbuffer = XLogReadBuffer(reln, data->lblkno, data->isRootSplit);
@@ -214,50 +234,57 @@ ginRedoSplit(XLogRecPtr lsn, XLogRecord *record) {
rpage = (Page) BufferGetPage(rbuffer);
GinInitBuffer(rbuffer, flags);
- GinPageGetOpaque(lpage)->rightlink = BufferGetBlockNumber( rbuffer );
+ GinPageGetOpaque(lpage)->rightlink = BufferGetBlockNumber(rbuffer);
GinPageGetOpaque(rpage)->rightlink = data->rrlink;
- if ( data->isData ) {
- char *ptr = XLogRecGetData(record) + sizeof(ginxlogSplit);
- Size sizeofitem = GinSizeOfItem(lpage);
+ if (data->isData)
+ {
+ char *ptr = XLogRecGetData(record) + sizeof(ginxlogSplit);
+ Size sizeofitem = GinSizeOfItem(lpage);
OffsetNumber i;
- ItemPointer bound;
+ ItemPointer bound;
- for(i=0;i<data->separator;i++) {
- GinDataPageAddItem( lpage, ptr, InvalidOffsetNumber );
+ for (i = 0; i < data->separator; i++)
+ {
+ GinDataPageAddItem(lpage, ptr, InvalidOffsetNumber);
ptr += sizeofitem;
}
- for(i=data->separator;i<data->nitem;i++) {
- GinDataPageAddItem( rpage, ptr, InvalidOffsetNumber );
+ for (i = data->separator; i < data->nitem; i++)
+ {
+ GinDataPageAddItem(rpage, ptr, InvalidOffsetNumber);
ptr += sizeofitem;
}
/* set up right key */
bound = GinDataPageGetRightBound(lpage);
- if ( data->isLeaf )
- *bound = *(ItemPointerData*)GinDataPageGetItem(lpage, GinPageGetOpaque(lpage)->maxoff);
+ if (data->isLeaf)
+ *bound = *(ItemPointerData *) GinDataPageGetItem(lpage, GinPageGetOpaque(lpage)->maxoff);
else
- *bound = ((PostingItem*)GinDataPageGetItem(lpage, GinPageGetOpaque(lpage)->maxoff))->key;
+ *bound = ((PostingItem *) GinDataPageGetItem(lpage, GinPageGetOpaque(lpage)->maxoff))->key;
bound = GinDataPageGetRightBound(rpage);
*bound = data->rightbound;
- } else {
- IndexTuple itup = (IndexTuple)( XLogRecGetData(record) + sizeof(ginxlogSplit) );
+ }
+ else
+ {
+ IndexTuple itup = (IndexTuple) (XLogRecGetData(record) + sizeof(ginxlogSplit));
OffsetNumber i;
- for(i=0;i<data->separator;i++) {
- if ( PageAddItem( lpage, (Item)itup, IndexTupleSize(itup), InvalidOffsetNumber, LP_USED) == InvalidOffsetNumber )
- elog(ERROR, "failed to add item to index page in %u/%u/%u",
- data->node.spcNode, data->node.dbNode, data->node.relNode );
- itup = (IndexTuple)( ((char*)itup) + MAXALIGN( IndexTupleSize(itup) ) );
+ for (i = 0; i < data->separator; i++)
+ {
+ if (PageAddItem(lpage, (Item) itup, IndexTupleSize(itup), InvalidOffsetNumber, LP_USED) == InvalidOffsetNumber)
+ elog(ERROR, "failed to add item to index page in %u/%u/%u",
+ data->node.spcNode, data->node.dbNode, data->node.relNode);
+ itup = (IndexTuple) (((char *) itup) + MAXALIGN(IndexTupleSize(itup)));
}
- for(i=data->separator;i<data->nitem;i++) {
- if ( PageAddItem( rpage, (Item)itup, IndexTupleSize(itup), InvalidOffsetNumber, LP_USED) == InvalidOffsetNumber )
- elog(ERROR, "failed to add item to index page in %u/%u/%u",
- data->node.spcNode, data->node.dbNode, data->node.relNode );
- itup = (IndexTuple)( ((char*)itup) + MAXALIGN( IndexTupleSize(itup) ) );
+ for (i = data->separator; i < data->nitem; i++)
+ {
+ if (PageAddItem(rpage, (Item) itup, IndexTupleSize(itup), InvalidOffsetNumber, LP_USED) == InvalidOffsetNumber)
+ elog(ERROR, "failed to add item to index page in %u/%u/%u",
+ data->node.spcNode, data->node.dbNode, data->node.relNode);
+ itup = (IndexTuple) (((char *) itup) + MAXALIGN(IndexTupleSize(itup)));
}
}
@@ -269,20 +296,24 @@ ginRedoSplit(XLogRecPtr lsn, XLogRecord *record) {
PageSetTLI(lpage, ThisTimeLineID);
MarkBufferDirty(lbuffer);
- if ( !data->isLeaf && data->updateBlkno != InvalidBlockNumber )
+ if (!data->isLeaf && data->updateBlkno != InvalidBlockNumber)
forgetIncompleteSplit(data->node, data->leftChildBlkno, data->updateBlkno);
- if ( data->isRootSplit ) {
- Buffer rootBuf = XLogReadBuffer(reln, data->rootBlkno, false);
- Page rootPage = BufferGetPage( rootBuf );
+ if (data->isRootSplit)
+ {
+ Buffer rootBuf = XLogReadBuffer(reln, data->rootBlkno, false);
+ Page rootPage = BufferGetPage(rootBuf);
- GinInitBuffer( rootBuf, flags & ~GIN_LEAF );
+ GinInitBuffer(rootBuf, flags & ~GIN_LEAF);
- if ( data->isData ) {
- Assert( data->rootBlkno != GIN_ROOT_BLKNO );
+ if (data->isData)
+ {
+ Assert(data->rootBlkno != GIN_ROOT_BLKNO);
dataFillRoot(NULL, rootBuf, lbuffer, rbuffer);
- } else {
- Assert( data->rootBlkno == GIN_ROOT_BLKNO );
+ }
+ else
+ {
+ Assert(data->rootBlkno == GIN_ROOT_BLKNO);
entryFillRoot(NULL, rootBuf, lbuffer, rbuffer);
}
@@ -291,7 +322,8 @@ ginRedoSplit(XLogRecPtr lsn, XLogRecord *record) {
MarkBufferDirty(rootBuf);
UnlockReleaseBuffer(rootBuf);
- } else
+ }
+ else
pushIncompleteSplit(data->node, data->lblkno, data->rblkno, data->rootBlkno);
UnlockReleaseBuffer(rbuffer);
@@ -299,8 +331,9 @@ ginRedoSplit(XLogRecPtr lsn, XLogRecord *record) {
}
static void
-ginRedoVacuumPage(XLogRecPtr lsn, XLogRecord *record) {
- ginxlogVacuumPage *data = (ginxlogVacuumPage*)XLogRecGetData(record);
+ginRedoVacuumPage(XLogRecPtr lsn, XLogRecord *record)
+{
+ ginxlogVacuumPage *data = (ginxlogVacuumPage *) XLogRecGetData(record);
Relation reln;
Buffer buffer;
Page page;
@@ -314,25 +347,30 @@ ginRedoVacuumPage(XLogRecPtr lsn, XLogRecord *record) {
Assert(BufferIsValid(buffer));
page = (Page) BufferGetPage(buffer);
- if ( GinPageIsData( page ) ) {
- memcpy( GinDataPageGetData(page), XLogRecGetData(record) + sizeof(ginxlogVacuumPage),
- GinSizeOfItem(page) * data->nitem );
+ if (GinPageIsData(page))
+ {
+ memcpy(GinDataPageGetData(page), XLogRecGetData(record) + sizeof(ginxlogVacuumPage),
+ GinSizeOfItem(page) *data->nitem);
GinPageGetOpaque(page)->maxoff = data->nitem;
- } else {
- OffsetNumber i, *tod;
- IndexTuple itup = (IndexTuple)( XLogRecGetData(record) + sizeof(ginxlogVacuumPage) );
-
- tod = (OffsetNumber*)palloc( sizeof(OffsetNumber) * PageGetMaxOffsetNumber(page) );
- for(i=FirstOffsetNumber;i<=PageGetMaxOffsetNumber(page);i++)
- tod[i-1] = i;
-
- PageIndexMultiDelete(page, tod, PageGetMaxOffsetNumber(page));
-
- for(i=0;i<data->nitem;i++) {
- if ( PageAddItem( page, (Item)itup, IndexTupleSize(itup), InvalidOffsetNumber, LP_USED) == InvalidOffsetNumber )
- elog(ERROR, "failed to add item to index page in %u/%u/%u",
- data->node.spcNode, data->node.dbNode, data->node.relNode );
- itup = (IndexTuple)( ((char*)itup) + MAXALIGN( IndexTupleSize(itup) ) );
+ }
+ else
+ {
+ OffsetNumber i,
+ *tod;
+ IndexTuple itup = (IndexTuple) (XLogRecGetData(record) + sizeof(ginxlogVacuumPage));
+
+ tod = (OffsetNumber *) palloc(sizeof(OffsetNumber) * PageGetMaxOffsetNumber(page));
+ for (i = FirstOffsetNumber; i <= PageGetMaxOffsetNumber(page); i++)
+ tod[i - 1] = i;
+
+ PageIndexMultiDelete(page, tod, PageGetMaxOffsetNumber(page));
+
+ for (i = 0; i < data->nitem; i++)
+ {
+ if (PageAddItem(page, (Item) itup, IndexTupleSize(itup), InvalidOffsetNumber, LP_USED) == InvalidOffsetNumber)
+ elog(ERROR, "failed to add item to index page in %u/%u/%u",
+ data->node.spcNode, data->node.dbNode, data->node.relNode);
+ itup = (IndexTuple) (((char *) itup) + MAXALIGN(IndexTupleSize(itup)));
}
}
@@ -344,17 +382,19 @@ ginRedoVacuumPage(XLogRecPtr lsn, XLogRecord *record) {
}
static void
-ginRedoDeletePage(XLogRecPtr lsn, XLogRecord *record) {
- ginxlogDeletePage *data = (ginxlogDeletePage*)XLogRecGetData(record);
+ginRedoDeletePage(XLogRecPtr lsn, XLogRecord *record)
+{
+ ginxlogDeletePage *data = (ginxlogDeletePage *) XLogRecGetData(record);
Relation reln;
Buffer buffer;
Page page;
reln = XLogOpenRelation(data->node);
- if ( !( record->xl_info & XLR_BKP_BLOCK_1) ) {
+ if (!(record->xl_info & XLR_BKP_BLOCK_1))
+ {
buffer = XLogReadBuffer(reln, data->blkno, false);
- page = BufferGetPage( buffer );
+ page = BufferGetPage(buffer);
Assert(GinPageIsData(page));
GinPageGetOpaque(page)->flags = GIN_DELETED;
PageSetLSN(page, lsn);
@@ -363,9 +403,10 @@ ginRedoDeletePage(XLogRecPtr lsn, XLogRecord *record) {
UnlockReleaseBuffer(buffer);
}
- if ( !( record->xl_info & XLR_BKP_BLOCK_2) ) {
+ if (!(record->xl_info & XLR_BKP_BLOCK_2))
+ {
buffer = XLogReadBuffer(reln, data->parentBlkno, false);
- page = BufferGetPage( buffer );
+ page = BufferGetPage(buffer);
Assert(GinPageIsData(page));
Assert(!GinPageIsLeaf(page));
PageDeletePostingItem(page, data->parentOffset);
@@ -375,9 +416,10 @@ ginRedoDeletePage(XLogRecPtr lsn, XLogRecord *record) {
UnlockReleaseBuffer(buffer);
}
- if ( !( record->xl_info & XLR_BKP_BLOCK_2) && data->leftBlkno != InvalidBlockNumber ) {
+ if (!(record->xl_info & XLR_BKP_BLOCK_2) && data->leftBlkno != InvalidBlockNumber)
+ {
buffer = XLogReadBuffer(reln, data->leftBlkno, false);
- page = BufferGetPage( buffer );
+ page = BufferGetPage(buffer);
Assert(GinPageIsData(page));
GinPageGetOpaque(page)->rightlink = data->rightLink;
PageSetLSN(page, lsn);
@@ -387,28 +429,30 @@ ginRedoDeletePage(XLogRecPtr lsn, XLogRecord *record) {
}
}
-void
-gin_redo(XLogRecPtr lsn, XLogRecord *record) {
- uint8 info = record->xl_info & ~XLR_INFO_MASK;
+void
+gin_redo(XLogRecPtr lsn, XLogRecord *record)
+{
+ uint8 info = record->xl_info & ~XLR_INFO_MASK;
topCtx = MemoryContextSwitchTo(opCtx);
- switch (info) {
- case XLOG_GIN_CREATE_INDEX:
+ switch (info)
+ {
+ case XLOG_GIN_CREATE_INDEX:
ginRedoCreateIndex(lsn, record);
break;
- case XLOG_GIN_CREATE_PTREE:
+ case XLOG_GIN_CREATE_PTREE:
ginRedoCreatePTree(lsn, record);
break;
- case XLOG_GIN_INSERT:
+ case XLOG_GIN_INSERT:
ginRedoInsert(lsn, record);
break;
- case XLOG_GIN_SPLIT:
+ case XLOG_GIN_SPLIT:
ginRedoSplit(lsn, record);
break;
- case XLOG_GIN_VACUUM_PAGE:
+ case XLOG_GIN_VACUUM_PAGE:
ginRedoVacuumPage(lsn, record);
break;
- case XLOG_GIN_DELETE_PAGE:
+ case XLOG_GIN_DELETE_PAGE:
ginRedoDeletePage(lsn, record);
break;
default:
@@ -419,110 +463,122 @@ gin_redo(XLogRecPtr lsn, XLogRecord *record) {
}
static void
-desc_node( StringInfo buf, RelFileNode node, BlockNumber blkno ) {
- appendStringInfo(buf,"node: %u/%u/%u blkno: %u",
- node.spcNode, node.dbNode, node.relNode, blkno);
+desc_node(StringInfo buf, RelFileNode node, BlockNumber blkno)
+{
+ appendStringInfo(buf, "node: %u/%u/%u blkno: %u",
+ node.spcNode, node.dbNode, node.relNode, blkno);
}
-void
-gin_desc(StringInfo buf, uint8 xl_info, char *rec) {
- uint8 info = xl_info & ~XLR_INFO_MASK;
+void
+gin_desc(StringInfo buf, uint8 xl_info, char *rec)
+{
+ uint8 info = xl_info & ~XLR_INFO_MASK;
- switch (info) {
- case XLOG_GIN_CREATE_INDEX:
- appendStringInfo(buf,"Create index, ");
- desc_node(buf, *(RelFileNode*)rec, GIN_ROOT_BLKNO );
+ switch (info)
+ {
+ case XLOG_GIN_CREATE_INDEX:
+ appendStringInfo(buf, "Create index, ");
+ desc_node(buf, *(RelFileNode *) rec, GIN_ROOT_BLKNO);
break;
- case XLOG_GIN_CREATE_PTREE:
- appendStringInfo(buf,"Create posting tree, ");
- desc_node(buf, ((ginxlogCreatePostingTree*)rec)->node, ((ginxlogCreatePostingTree*)rec)->blkno );
+ case XLOG_GIN_CREATE_PTREE:
+ appendStringInfo(buf, "Create posting tree, ");
+ desc_node(buf, ((ginxlogCreatePostingTree *) rec)->node, ((ginxlogCreatePostingTree *) rec)->blkno);
break;
- case XLOG_GIN_INSERT:
- appendStringInfo(buf,"Insert item, ");
- desc_node(buf, ((ginxlogInsert*)rec)->node, ((ginxlogInsert*)rec)->blkno );
- appendStringInfo(buf," offset: %u nitem: %u isdata: %c isleaf %c isdelete %c updateBlkno:%u",
- ((ginxlogInsert*)rec)->offset,
- ((ginxlogInsert*)rec)->nitem,
- ( ((ginxlogInsert*)rec)->isData ) ? 'T' : 'F',
- ( ((ginxlogInsert*)rec)->isLeaf ) ? 'T' : 'F',
- ( ((ginxlogInsert*)rec)->isDelete ) ? 'T' : 'F',
- ((ginxlogInsert*)rec)->updateBlkno
- );
+ case XLOG_GIN_INSERT:
+ appendStringInfo(buf, "Insert item, ");
+ desc_node(buf, ((ginxlogInsert *) rec)->node, ((ginxlogInsert *) rec)->blkno);
+ appendStringInfo(buf, " offset: %u nitem: %u isdata: %c isleaf %c isdelete %c updateBlkno:%u",
+ ((ginxlogInsert *) rec)->offset,
+ ((ginxlogInsert *) rec)->nitem,
+ (((ginxlogInsert *) rec)->isData) ? 'T' : 'F',
+ (((ginxlogInsert *) rec)->isLeaf) ? 'T' : 'F',
+ (((ginxlogInsert *) rec)->isDelete) ? 'T' : 'F',
+ ((ginxlogInsert *) rec)->updateBlkno
+ );
break;
- case XLOG_GIN_SPLIT:
- appendStringInfo(buf,"Page split, ");
- desc_node(buf, ((ginxlogSplit*)rec)->node, ((ginxlogSplit*)rec)->lblkno );
- appendStringInfo(buf," isrootsplit: %c", ( ((ginxlogSplit*)rec)->isRootSplit ) ? 'T' : 'F');
+ case XLOG_GIN_SPLIT:
+ appendStringInfo(buf, "Page split, ");
+ desc_node(buf, ((ginxlogSplit *) rec)->node, ((ginxlogSplit *) rec)->lblkno);
+ appendStringInfo(buf, " isrootsplit: %c", (((ginxlogSplit *) rec)->isRootSplit) ? 'T' : 'F');
break;
- case XLOG_GIN_VACUUM_PAGE:
- appendStringInfo(buf,"Vacuum page, ");
- desc_node(buf, ((ginxlogVacuumPage*)rec)->node, ((ginxlogVacuumPage*)rec)->blkno );
+ case XLOG_GIN_VACUUM_PAGE:
+ appendStringInfo(buf, "Vacuum page, ");
+ desc_node(buf, ((ginxlogVacuumPage *) rec)->node, ((ginxlogVacuumPage *) rec)->blkno);
break;
- case XLOG_GIN_DELETE_PAGE:
- appendStringInfo(buf,"Delete page, ");
- desc_node(buf, ((ginxlogDeletePage*)rec)->node, ((ginxlogDeletePage*)rec)->blkno );
+ case XLOG_GIN_DELETE_PAGE:
+ appendStringInfo(buf, "Delete page, ");
+ desc_node(buf, ((ginxlogDeletePage *) rec)->node, ((ginxlogDeletePage *) rec)->blkno);
break;
default:
elog(PANIC, "gin_desc: unknown op code %u", info);
}
}
-void
-gin_xlog_startup(void) {
+void
+gin_xlog_startup(void)
+{
incomplete_splits = NIL;
opCtx = AllocSetContextCreate(CurrentMemoryContext,
- "GIN recovery temporary context",
- ALLOCSET_DEFAULT_MINSIZE,
- ALLOCSET_DEFAULT_INITSIZE,
- ALLOCSET_DEFAULT_MAXSIZE);
+ "GIN recovery temporary context",
+ ALLOCSET_DEFAULT_MINSIZE,
+ ALLOCSET_DEFAULT_INITSIZE,
+ ALLOCSET_DEFAULT_MAXSIZE);
}
static void
-ginContinueSplit( ginIncompleteSplit *split ) {
+ginContinueSplit(ginIncompleteSplit *split)
+{
GinBtreeData btree;
Relation reln;
Buffer buffer;
- GinBtreeStack stack;
+ GinBtreeStack stack;
- /* elog(NOTICE,"ginContinueSplit root:%u l:%u r:%u", split->rootBlkno, split->leftBlkno, split->rightBlkno); */
+ /*
+ * elog(NOTICE,"ginContinueSplit root:%u l:%u r:%u", split->rootBlkno,
+ * split->leftBlkno, split->rightBlkno);
+ */
reln = XLogOpenRelation(split->node);
- buffer = XLogReadBuffer(reln, split->leftBlkno, false);
+ buffer = XLogReadBuffer(reln, split->leftBlkno, false);
- if ( split->rootBlkno == GIN_ROOT_BLKNO ) {
- prepareEntryScan( &btree, reln, (Datum)0, NULL );
- btree.entry = ginPageGetLinkItup( buffer );
- } else {
- Page page = BufferGetPage( buffer );
+ if (split->rootBlkno == GIN_ROOT_BLKNO)
+ {
+ prepareEntryScan(&btree, reln, (Datum) 0, NULL);
+ btree.entry = ginPageGetLinkItup(buffer);
+ }
+ else
+ {
+ Page page = BufferGetPage(buffer);
- prepareDataScan( &btree, reln );
+ prepareDataScan(&btree, reln);
- PostingItemSetBlockNumber( &(btree.pitem), split->leftBlkno );
- if ( GinPageIsLeaf(page) )
- btree.pitem.key = *(ItemPointerData*)GinDataPageGetItem(page,
- GinPageGetOpaque(page)->maxoff);
+ PostingItemSetBlockNumber(&(btree.pitem), split->leftBlkno);
+ if (GinPageIsLeaf(page))
+ btree.pitem.key = *(ItemPointerData *) GinDataPageGetItem(page,
+ GinPageGetOpaque(page)->maxoff);
else
- btree.pitem.key = ((PostingItem*)GinDataPageGetItem(page,
- GinPageGetOpaque(page)->maxoff))->key;
+ btree.pitem.key = ((PostingItem *) GinDataPageGetItem(page,
+ GinPageGetOpaque(page)->maxoff))->key;
}
- btree.rightblkno = split->rightBlkno;
+ btree.rightblkno = split->rightBlkno;
stack.blkno = split->leftBlkno;
stack.buffer = buffer;
stack.off = InvalidOffsetNumber;
stack.parent = NULL;
- findParents( &btree, &stack, split->rootBlkno);
- ginInsertValue( &btree, stack.parent );
+ findParents(&btree, &stack, split->rootBlkno);
+ ginInsertValue(&btree, stack.parent);
- UnlockReleaseBuffer( buffer );
+ UnlockReleaseBuffer(buffer);
}
-void
-gin_xlog_cleanup(void) {
+void
+gin_xlog_cleanup(void)
+{
ListCell *l;
MemoryContext topCtx;
@@ -531,8 +587,9 @@ gin_xlog_cleanup(void) {
foreach(l, incomplete_splits)
{
ginIncompleteSplit *split = (ginIncompleteSplit *) lfirst(l);
- ginContinueSplit( split );
- MemoryContextReset( opCtx );
+
+ ginContinueSplit(split);
+ MemoryContextReset(opCtx);
}
MemoryContextSwitchTo(topCtx);
diff --git a/src/backend/access/gist/gist.c b/src/backend/access/gist/gist.c
index 7b0c0f6b38..60d0affbfc 100644
--- a/src/backend/access/gist/gist.c
+++ b/src/backend/access/gist/gist.c
@@ -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.142 2006/07/14 14:52:16 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gist/gist.c,v 1.143 2006/10/04 00:29:48 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -185,7 +185,7 @@ gistbuildCallback(Relation index,
/* form an index tuple and point it at the heap tuple */
itup = gistFormTuple(&buildstate->giststate, index,
- values, isnull, true /* size is currently bogus */);
+ values, isnull, true /* size is currently bogus */ );
itup->t_tid = htup->t_self;
/*
@@ -199,7 +199,7 @@ gistbuildCallback(Relation index,
* after initial build do not.
*/
gistdoinsert(index, itup,
- RelationGetTargetPageFreeSpace(index, GIST_DEFAULT_FILLFACTOR),
+ RelationGetTargetPageFreeSpace(index, GIST_DEFAULT_FILLFACTOR),
&buildstate->giststate);
buildstate->indtuples += 1;
@@ -236,7 +236,7 @@ gistinsert(PG_FUNCTION_ARGS)
initGISTstate(&giststate, r);
itup = gistFormTuple(&giststate, r,
- values, isnull, true /* size is currently bogus */);
+ values, isnull, true /* size is currently bogus */ );
itup->t_tid = *ht_ctid;
gistdoinsert(r, itup, 0, &giststate);
@@ -285,18 +285,17 @@ gistplacetopage(GISTInsertState *state, GISTSTATE *giststate)
bool is_leaf = (GistPageIsLeaf(state->stack->page)) ? true : false;
/*
- * if (!is_leaf) remove old key:
- * This node's key has been modified, either because a child split
- * occurred or because we needed to adjust our key for an insert in a
- * child node. Therefore, remove the old version of this node's key.
+ * if (!is_leaf) remove old key: This node's key has been modified, either
+ * because a child split occurred or because we needed to adjust our key
+ * for an insert in a child node. Therefore, remove the old version of
+ * this node's key.
*
- * for WAL replay, in the non-split case we handle this by
- * setting up a one-element todelete array; in the split case, it's
- * handled implicitly because the tuple vector passed to gistSplit
- * won't include this tuple.
+ * for WAL replay, in the non-split case we handle this by setting up a
+ * one-element todelete array; in the split case, it's handled implicitly
+ * because the tuple vector passed to gistSplit won't include this tuple.
*
- * XXX: If we want to change fillfactors between node and leaf,
- * fillfactor = (is_leaf ? state->leaf_fillfactor : state->node_fillfactor)
+ * XXX: If we want to change fillfactors between node and leaf, fillfactor
+ * = (is_leaf ? state->leaf_fillfactor : state->node_fillfactor)
*/
if (gistnospace(state->stack->page, state->itup, state->ituplen,
is_leaf ? InvalidOffsetNumber : state->stack->childoffnum,
@@ -307,80 +306,88 @@ gistplacetopage(GISTInsertState *state, GISTSTATE *giststate)
int tlen;
SplitedPageLayout *dist = NULL,
*ptr;
- BlockNumber rrlink = InvalidBlockNumber;
+ BlockNumber rrlink = InvalidBlockNumber;
GistNSN oldnsn;
is_splitted = true;
/*
- * Form index tuples vector to split:
- * remove old tuple if t's needed and add new tuples to vector
+ * Form index tuples vector to split: remove old tuple if t's needed
+ * and add new tuples to vector
*/
itvec = gistextractpage(state->stack->page, &tlen);
- if ( !is_leaf ) {
+ if (!is_leaf)
+ {
/* on inner page we should remove old tuple */
- int pos = state->stack->childoffnum - FirstOffsetNumber;
+ int pos = state->stack->childoffnum - FirstOffsetNumber;
- tlen--;
- if ( pos != tlen )
- memmove( itvec+pos, itvec + pos + 1, sizeof( IndexTuple ) * (tlen-pos) );
+ tlen--;
+ if (pos != tlen)
+ memmove(itvec + pos, itvec + pos + 1, sizeof(IndexTuple) * (tlen - pos));
}
itvec = gistjoinvector(itvec, &tlen, state->itup, state->ituplen);
dist = gistSplit(state->r, state->stack->page, itvec, tlen, giststate);
- state->itup = (IndexTuple*)palloc( sizeof(IndexTuple) * tlen);
+ state->itup = (IndexTuple *) palloc(sizeof(IndexTuple) * tlen);
state->ituplen = 0;
- if (state->stack->blkno != GIST_ROOT_BLKNO) {
- /* if non-root split then we should not allocate new buffer,
- but we must create temporary page to operate */
+ if (state->stack->blkno != GIST_ROOT_BLKNO)
+ {
+ /*
+ * if non-root split then we should not allocate new buffer, but
+ * we must create temporary page to operate
+ */
dist->buffer = state->stack->buffer;
- dist->page = PageGetTempPage( BufferGetPage(dist->buffer), sizeof(GISTPageOpaqueData) );
+ dist->page = PageGetTempPage(BufferGetPage(dist->buffer), sizeof(GISTPageOpaqueData));
- /*clean all flags except F_LEAF */
+ /* clean all flags except F_LEAF */
GistPageGetOpaque(dist->page)->flags = (is_leaf) ? F_LEAF : 0;
}
/* make new pages and fills them */
- for (ptr = dist; ptr; ptr = ptr->next) {
- int i;
- char *data;
+ for (ptr = dist; ptr; ptr = ptr->next)
+ {
+ int i;
+ char *data;
/* get new page */
- if ( ptr->buffer == InvalidBuffer ) {
- ptr->buffer = gistNewBuffer( state->r );
- GISTInitBuffer( ptr->buffer, (is_leaf) ? F_LEAF : 0 );
+ if (ptr->buffer == InvalidBuffer)
+ {
+ ptr->buffer = gistNewBuffer(state->r);
+ GISTInitBuffer(ptr->buffer, (is_leaf) ? F_LEAF : 0);
ptr->page = BufferGetPage(ptr->buffer);
}
- ptr->block.blkno = BufferGetBlockNumber( ptr->buffer );
+ ptr->block.blkno = BufferGetBlockNumber(ptr->buffer);
- /* fill page, we can do it becouse all this 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++) {
- if ( PageAddItem(ptr->page, (Item)data, IndexTupleSize((IndexTuple)data), i+FirstOffsetNumber, LP_USED) == InvalidOffsetNumber )
+ /*
+ * fill page, we can do it becouse all this 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++)
+ {
+ if (PageAddItem(ptr->page, (Item) data, IndexTupleSize((IndexTuple) data), i + FirstOffsetNumber, LP_USED) == InvalidOffsetNumber)
elog(ERROR, "failed to add item to index page in \"%s\"", RelationGetRelationName(state->r));
- data += IndexTupleSize((IndexTuple)data);
+ data += IndexTupleSize((IndexTuple) data);
}
/* set up ItemPointer and remmeber it for parent */
ItemPointerSetBlockNumber(&(ptr->itup->t_tid), ptr->block.blkno);
- state->itup[ state->ituplen ] = ptr->itup;
+ state->itup[state->ituplen] = ptr->itup;
state->ituplen++;
}
/* saves old rightlink */
- if ( state->stack->blkno != GIST_ROOT_BLKNO )
- rrlink = GistPageGetOpaque(dist->page)->rightlink;
+ if (state->stack->blkno != GIST_ROOT_BLKNO)
+ rrlink = GistPageGetOpaque(dist->page)->rightlink;
START_CRIT_SECTION();
/*
- * must mark buffers dirty before XLogInsert, even though we'll
- * still be changing their opaque fields below.
- * set up right links.
+ * must mark buffers dirty before XLogInsert, even though we'll still
+ * be changing their opaque fields below. set up right links.
*/
- for (ptr = dist; ptr; ptr = ptr->next)
+ for (ptr = dist; ptr; ptr = ptr->next)
{
MarkBufferDirty(ptr->buffer);
GistPageGetOpaque(ptr->page)->rightlink = (ptr->next) ?
@@ -388,9 +395,10 @@ gistplacetopage(GISTInsertState *state, GISTSTATE *giststate)
}
/* restore splitted non-root page */
- if ( state->stack->blkno != GIST_ROOT_BLKNO ) {
- PageRestoreTempPage( dist->page, BufferGetPage( dist->buffer ) );
- dist->page = BufferGetPage( dist->buffer );
+ if (state->stack->blkno != GIST_ROOT_BLKNO)
+ {
+ PageRestoreTempPage(dist->page, BufferGetPage(dist->buffer));
+ dist->page = BufferGetPage(dist->buffer);
}
if (!state->r->rd_istemp)
@@ -419,25 +427,27 @@ gistplacetopage(GISTInsertState *state, GISTSTATE *giststate)
/* set up NSN */
oldnsn = GistPageGetOpaque(dist->page)->nsn;
- if ( state->stack->blkno == GIST_ROOT_BLKNO )
+ if (state->stack->blkno == GIST_ROOT_BLKNO)
/* if root split we should put initial value */
oldnsn = PageGetLSN(dist->page);
- for (ptr = dist; ptr; ptr = ptr->next) {
+ for (ptr = dist; ptr; ptr = ptr->next)
+ {
/* only for last set oldnsn */
GistPageGetOpaque(ptr->page)->nsn = (ptr->next) ?
PageGetLSN(ptr->page) : oldnsn;
}
- /*
- * release buffers, if it was a root split then
- * release all buffers because we create all buffers
+ /*
+ * release buffers, if it was a root split then release all buffers
+ * because we create all buffers
*/
- ptr = ( state->stack->blkno == GIST_ROOT_BLKNO ) ? dist : dist->next;
- for(; ptr; ptr = ptr->next)
+ ptr = (state->stack->blkno == GIST_ROOT_BLKNO) ? dist : dist->next;
+ for (; ptr; ptr = ptr->next)
UnlockReleaseBuffer(ptr->buffer);
- if (state->stack->blkno == GIST_ROOT_BLKNO) {
+ if (state->stack->blkno == GIST_ROOT_BLKNO)
+ {
gistnewroot(state->r, state->stack->buffer, state->itup, state->ituplen, &(state->key));
state->needInsertComplete = false;
}
@@ -470,7 +480,7 @@ gistplacetopage(GISTInsertState *state, GISTSTATE *giststate)
}
rdata = formUpdateRdata(state->r->rd_node, state->stack->buffer,
- offs, noffs,
+ offs, noffs,
state->itup, state->ituplen,
&(state->key));
@@ -922,16 +932,16 @@ gistSplit(Relation r,
GistSplitVector v;
GistEntryVector *entryvec;
int i;
- SplitedPageLayout *res = NULL;
+ SplitedPageLayout *res = NULL;
/* generate the item array */
entryvec = palloc(GEVHDRSZ + (len + 1) * sizeof(GISTENTRY));
entryvec->n = len + 1;
- memset( v.spl_lisnull, TRUE, sizeof(bool) * giststate->tupdesc->natts );
- memset( v.spl_risnull, TRUE, sizeof(bool) * giststate->tupdesc->natts );
- gistSplitByKey(r, page, itup, len, giststate,
- &v, entryvec, 0);
+ memset(v.spl_lisnull, TRUE, sizeof(bool) * giststate->tupdesc->natts);
+ memset(v.spl_risnull, TRUE, sizeof(bool) * giststate->tupdesc->natts);
+ gistSplitByKey(r, page, itup, len, giststate,
+ &v, entryvec, 0);
/* form left and right vector */
lvectup = (IndexTuple *) palloc(sizeof(IndexTuple) * (len + 1));
@@ -952,19 +962,20 @@ gistSplit(Relation r,
{
ROTATEDIST(res);
res->block.num = v.splitVector.spl_nright;
- res->list = gistfillitupvec(rvectup, v.splitVector.spl_nright, &( res->lenlist ) );
+ res->list = gistfillitupvec(rvectup, v.splitVector.spl_nright, &(res->lenlist));
res->itup = (v.spl_rightvalid) ? gistFormTuple(giststate, r, v.spl_rattr, v.spl_risnull, false)
: gist_form_invalid_tuple(GIST_ROOT_BLKNO);
}
if (!gistfitpage(lvectup, v.splitVector.spl_nleft))
{
- SplitedPageLayout *resptr, *subres;
+ SplitedPageLayout *resptr,
+ *subres;
resptr = subres = gistSplit(r, page, lvectup, v.splitVector.spl_nleft, giststate);
- /* install on list's tail */
- while( resptr->next )
+ /* install on list's tail */
+ while (resptr->next)
resptr = resptr->next;
resptr->next = res;
@@ -974,7 +985,7 @@ gistSplit(Relation r,
{
ROTATEDIST(res);
res->block.num = v.splitVector.spl_nleft;
- res->list = gistfillitupvec(lvectup, v.splitVector.spl_nleft, &( res->lenlist ) );
+ res->list = gistfillitupvec(lvectup, v.splitVector.spl_nleft, &(res->lenlist));
res->itup = (v.spl_leftvalid) ? gistFormTuple(giststate, r, v.spl_lattr, v.spl_lisnull, false)
: gist_form_invalid_tuple(GIST_ROOT_BLKNO);
}
diff --git a/src/backend/access/gist/gistget.c b/src/backend/access/gist/gistget.c
index ed41f2c335..68a4c18bb8 100644
--- a/src/backend/access/gist/gistget.c
+++ b/src/backend/access/gist/gistget.c
@@ -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.60 2006/07/14 14:52:16 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gist/gistget.c,v 1.61 2006/10/04 00:29:48 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -360,8 +360,7 @@ gistindex_keytest(IndexTuple tuple,
IncrIndexProcessed();
/*
- * Tuple doesn't restore after crash recovery because of incomplete
- * insert
+ * Tuple doesn't restore after crash recovery because of incomplete insert
*/
if (!GistPageIsLeaf(p) && GistTupleIsInvalid(tuple))
return true;
@@ -378,14 +377,18 @@ gistindex_keytest(IndexTuple tuple,
giststate->tupdesc,
&isNull);
- if ( key->sk_flags & SK_ISNULL ) {
- /* is the compared-to datum NULL? on non-leaf page it's possible
- to have nulls in childs :( */
+ if (key->sk_flags & SK_ISNULL)
+ {
+ /*
+ * is the compared-to datum NULL? on non-leaf page it's possible
+ * to have nulls in childs :(
+ */
- if ( isNull || !GistPageIsLeaf(p) )
+ if (isNull || !GistPageIsLeaf(p))
return true;
return false;
- } else if ( isNull )
+ }
+ else if (isNull)
return false;
gistdentryinit(giststate, key->sk_attno - 1, &de,
diff --git a/src/backend/access/gist/gistproc.c b/src/backend/access/gist/gistproc.c
index ccd54bac12..5c021461ee 100644
--- a/src/backend/access/gist/gistproc.c
+++ b/src/backend/access/gist/gistproc.c
@@ -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.8 2006/09/10 00:29:34 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gist/gistproc.c,v 1.9 2006/10/04 00:29:48 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -112,7 +112,8 @@ gist_box_consistent(PG_FUNCTION_ARGS)
}
static void
-adjustBox( BOX *b, BOX *addon ) {
+adjustBox(BOX *b, BOX *addon)
+{
if (b->high.x < addon->high.x)
b->high.x = addon->high.x;
if (b->low.x > addon->low.x)
@@ -146,7 +147,7 @@ gist_box_union(PG_FUNCTION_ARGS)
for (i = 1; i < numranges; i++)
{
cur = DatumGetBoxP(entryvec->vector[i].key);
- adjustBox( pageunion, cur );
+ adjustBox(pageunion, cur);
}
*sizep = sizeof(BOX);
@@ -210,67 +211,79 @@ compare_KB(const void *a, const void *b)
}
static void
-chooseLR( GIST_SPLITVEC *v,
- OffsetNumber *list1, int nlist1, BOX *union1,
- OffsetNumber *list2, int nlist2, BOX *union2 )
+chooseLR(GIST_SPLITVEC *v,
+ OffsetNumber *list1, int nlist1, BOX *union1,
+ OffsetNumber *list2, int nlist2, BOX *union2)
{
- bool firstToLeft = true;
-
- if ( v->spl_ldatum_exists || v->spl_rdatum_exists ) {
- if ( v->spl_ldatum_exists && v->spl_rdatum_exists ) {
- BOX LRl = *union1, LRr = *union2;
- BOX RLl = *union2, RLr = *union1;
- double sizeLR, sizeRL;
-
- adjustBox( &LRl, DatumGetBoxP( v->spl_ldatum ) );
- adjustBox( &LRr, DatumGetBoxP( v->spl_rdatum ) );
- adjustBox( &RLl, DatumGetBoxP( v->spl_ldatum ) );
- adjustBox( &RLr, DatumGetBoxP( v->spl_rdatum ) );
-
- sizeLR = size_box( DirectFunctionCall2(rt_box_inter, BoxPGetDatum(&LRl), BoxPGetDatum(&LRr)) );
- sizeRL = size_box( DirectFunctionCall2(rt_box_inter, BoxPGetDatum(&RLl), BoxPGetDatum(&RLr)) );
+ bool firstToLeft = true;
- if ( sizeLR > sizeRL )
+ if (v->spl_ldatum_exists || v->spl_rdatum_exists)
+ {
+ if (v->spl_ldatum_exists && v->spl_rdatum_exists)
+ {
+ BOX LRl = *union1,
+ LRr = *union2;
+ BOX RLl = *union2,
+ RLr = *union1;
+ double sizeLR,
+ sizeRL;
+
+ adjustBox(&LRl, DatumGetBoxP(v->spl_ldatum));
+ adjustBox(&LRr, DatumGetBoxP(v->spl_rdatum));
+ adjustBox(&RLl, DatumGetBoxP(v->spl_ldatum));
+ adjustBox(&RLr, DatumGetBoxP(v->spl_rdatum));
+
+ sizeLR = size_box(DirectFunctionCall2(rt_box_inter, BoxPGetDatum(&LRl), BoxPGetDatum(&LRr)));
+ sizeRL = size_box(DirectFunctionCall2(rt_box_inter, BoxPGetDatum(&RLl), BoxPGetDatum(&RLr)));
+
+ if (sizeLR > sizeRL)
firstToLeft = false;
- } else {
- float p1, p2;
- GISTENTRY oldUnion, addon;
+ }
+ else
+ {
+ float p1,
+ p2;
+ GISTENTRY oldUnion,
+ addon;
- gistentryinit(oldUnion, ( v->spl_ldatum_exists ) ? v->spl_ldatum : v->spl_rdatum,
+ gistentryinit(oldUnion, (v->spl_ldatum_exists) ? v->spl_ldatum : v->spl_rdatum,
NULL, NULL, InvalidOffsetNumber, FALSE);
-
+
gistentryinit(addon, BoxPGetDatum(union1), NULL, NULL, InvalidOffsetNumber, FALSE);
- DirectFunctionCall3(gist_box_penalty, PointerGetDatum(&oldUnion), PointerGetDatum(&union1), PointerGetDatum(&p1));
+ DirectFunctionCall3(gist_box_penalty, PointerGetDatum(&oldUnion), PointerGetDatum(&union1), PointerGetDatum(&p1));
gistentryinit(addon, BoxPGetDatum(union2), NULL, NULL, InvalidOffsetNumber, FALSE);
DirectFunctionCall3(gist_box_penalty, PointerGetDatum(&oldUnion), PointerGetDatum(&union2), PointerGetDatum(&p2));
- if ( (v->spl_ldatum_exists && p1 > p2) || (v->spl_rdatum_exists && p1 < p2) )
- firstToLeft = false;
+ if ((v->spl_ldatum_exists && p1 > p2) || (v->spl_rdatum_exists && p1 < p2))
+ firstToLeft = false;
}
}
- if ( firstToLeft ) {
+ if (firstToLeft)
+ {
v->spl_left = list1;
v->spl_right = list2;
v->spl_nleft = nlist1;
v->spl_nright = nlist2;
- if ( v->spl_ldatum_exists )
- adjustBox(union1, DatumGetBoxP( v->spl_ldatum ) );
+ if (v->spl_ldatum_exists)
+ adjustBox(union1, DatumGetBoxP(v->spl_ldatum));
v->spl_ldatum = BoxPGetDatum(union1);
- if ( v->spl_rdatum_exists )
- adjustBox(union2, DatumGetBoxP( v->spl_rdatum ) );
+ if (v->spl_rdatum_exists)
+ adjustBox(union2, DatumGetBoxP(v->spl_rdatum));
v->spl_rdatum = BoxPGetDatum(union2);
- } else {
+ }
+ else
+ {
v->spl_left = list2;
v->spl_right = list1;
v->spl_nleft = nlist2;
v->spl_nright = nlist1;
- if ( v->spl_ldatum_exists )
- adjustBox(union2, DatumGetBoxP( v->spl_ldatum ) );
+ if (v->spl_ldatum_exists)
+ adjustBox(union2, DatumGetBoxP(v->spl_ldatum));
v->spl_ldatum = BoxPGetDatum(union2);
- if ( v->spl_rdatum_exists )
- adjustBox(union1, DatumGetBoxP( v->spl_rdatum ) );
+ if (v->spl_rdatum_exists)
+ adjustBox(union1, DatumGetBoxP(v->spl_rdatum));
v->spl_rdatum = BoxPGetDatum(union1);
}
@@ -326,7 +339,7 @@ gist_box_picksplit(PG_FUNCTION_ARGS)
))
allisequal = false;
- adjustBox( &pageunion, cur );
+ adjustBox(&pageunion, cur);
}
nbytes = (maxoff + 2) * sizeof(OffsetNumber);
@@ -359,12 +372,12 @@ gist_box_picksplit(PG_FUNCTION_ARGS)
}
}
- if ( v->spl_ldatum_exists )
- adjustBox( unionL, DatumGetBoxP( v->spl_ldatum ) );
+ if (v->spl_ldatum_exists)
+ adjustBox(unionL, DatumGetBoxP(v->spl_ldatum));
v->spl_ldatum = BoxPGetDatum(unionL);
- if ( v->spl_rdatum_exists )
- adjustBox( unionR, DatumGetBoxP( v->spl_rdatum ) );
+ if (v->spl_rdatum_exists)
+ adjustBox(unionR, DatumGetBoxP(v->spl_rdatum));
v->spl_rdatum = BoxPGetDatum(unionR);
v->spl_ldatum_exists = v->spl_rdatum_exists = false;
@@ -471,13 +484,13 @@ gist_box_picksplit(PG_FUNCTION_ARGS)
}
if (direction == 'x')
- chooseLR( v,
- listL, posL, unionL,
- listR, posR, unionR );
- else
- chooseLR( v,
- listB, posB, unionB,
- listT, posT, unionT );
+ chooseLR(v,
+ listL, posL, unionL,
+ listR, posR, unionR);
+ else
+ chooseLR(v,
+ listB, posB, unionB,
+ listT, posT, unionT);
PG_RETURN_POINTER(v);
}
diff --git a/src/backend/access/gist/gistscan.c b/src/backend/access/gist/gistscan.c
index 0d3c1d2a9a..b0fdb74004 100644
--- a/src/backend/access/gist/gistscan.c
+++ b/src/backend/access/gist/gistscan.c
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/gist/gistscan.c,v 1.64 2006/07/14 14:52:16 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gist/gistscan.c,v 1.65 2006/10/04 00:29:48 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -228,12 +228,12 @@ gistendscan(PG_FUNCTION_ARGS)
static void
gistfreestack(GISTSearchStack *s)
-{
+{
while (s != NULL)
{
GISTSearchStack *p = s->next;
+
pfree(s);
s = p;
}
}
-
diff --git a/src/backend/access/gist/gistsplit.c b/src/backend/access/gist/gistsplit.c
index 8c6683a4cc..14a14509cb 100644
--- a/src/backend/access/gist/gistsplit.c
+++ b/src/backend/access/gist/gistsplit.c
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/gist/gistsplit.c,v 1.2 2006/07/14 14:52:16 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gist/gistsplit.c,v 1.3 2006/10/04 00:29:48 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -16,12 +16,13 @@
#include "access/gist_private.h"
-typedef struct {
- Datum *attr;
- int len;
+typedef struct
+{
+ Datum *attr;
+ int len;
OffsetNumber *entries;
- bool *isnull;
- bool *equiv;
+ bool *isnull;
+ bool *equiv;
} GistSplitUnion;
@@ -29,25 +30,28 @@ typedef struct {
* Forms unions of subkeys after page split, but
* uses only tuples aren't in groups of equalent tuples
*/
-static void
-gistunionsubkeyvec(GISTSTATE *giststate, IndexTuple *itvec,
- GistSplitUnion *gsvp, int startkey) {
- IndexTuple *cleanedItVec;
- int i, cleanedLen=0;
+static void
+gistunionsubkeyvec(GISTSTATE *giststate, IndexTuple *itvec,
+ GistSplitUnion *gsvp, int startkey)
+{
+ IndexTuple *cleanedItVec;
+ int i,
+ cleanedLen = 0;
- cleanedItVec = (IndexTuple*)palloc(sizeof(IndexTuple) * gsvp->len);
+ cleanedItVec = (IndexTuple *) palloc(sizeof(IndexTuple) * gsvp->len);
- for(i=0;i<gsvp->len;i++) {
- if ( gsvp->equiv && gsvp->equiv[gsvp->entries[i]])
+ for (i = 0; i < gsvp->len; i++)
+ {
+ if (gsvp->equiv && gsvp->equiv[gsvp->entries[i]])
continue;
cleanedItVec[cleanedLen++] = itvec[gsvp->entries[i] - 1];
}
- gistMakeUnionItVec(giststate, cleanedItVec, cleanedLen, startkey,
- gsvp->attr, gsvp->isnull);
+ gistMakeUnionItVec(giststate, cleanedItVec, cleanedLen, startkey,
+ gsvp->attr, gsvp->isnull);
- pfree( cleanedItVec );
+ pfree(cleanedItVec);
}
/*
@@ -56,7 +60,7 @@ gistunionsubkeyvec(GISTSTATE *giststate, IndexTuple *itvec,
static void
gistunionsubkey(GISTSTATE *giststate, IndexTuple *itvec, GistSplitVector *spl, int attno)
{
- GistSplitUnion gsvp;
+ GistSplitUnion gsvp;
gsvp.equiv = spl->spl_equiv;
@@ -76,34 +80,40 @@ gistunionsubkey(GISTSTATE *giststate, IndexTuple *itvec, GistSplitVector *spl, i
}
/*
- * find group in vector with equivalent value
+ * find group in vector with equivalent value
*/
static int
gistfindgroup(Relation r, GISTSTATE *giststate, GISTENTRY *valvec, GistSplitVector *spl, int attno)
{
int i;
GISTENTRY entry;
- int len=0;
+ int len = 0;
/*
- * attno key is always not null (see gistSplitByKey), so we may not check for
- * nulls
+ * attno key is always not null (see gistSplitByKey), so we may not check
+ * for nulls
*/
gistentryinit(entry, spl->splitVector.spl_rdatum, r, NULL, (OffsetNumber) 0, FALSE);
- for (i = 0; i < spl->splitVector.spl_nleft; i++) {
- float penalty = gistpenalty(giststate, attno, &entry, false,
- &valvec[spl->splitVector.spl_left[i]], false);
- if ( penalty == 0.0 ) {
+ for (i = 0; i < spl->splitVector.spl_nleft; i++)
+ {
+ float penalty = gistpenalty(giststate, attno, &entry, false,
+ &valvec[spl->splitVector.spl_left[i]], false);
+
+ if (penalty == 0.0)
+ {
spl->spl_equiv[spl->splitVector.spl_left[i]] = true;
len++;
}
}
gistentryinit(entry, spl->splitVector.spl_ldatum, r, NULL, (OffsetNumber) 0, FALSE);
- for (i = 0; i < spl->splitVector.spl_nright; i++) {
- float penalty = gistpenalty(giststate, attno, &entry, false,
- &valvec[spl->splitVector.spl_right[i]], false);
- if ( penalty == 0.0 ) {
+ for (i = 0; i < spl->splitVector.spl_nright; i++)
+ {
+ float penalty = gistpenalty(giststate, attno, &entry, false,
+ &valvec[spl->splitVector.spl_right[i]], false);
+
+ if (penalty == 0.0)
+ {
spl->spl_equiv[spl->splitVector.spl_right[i]] = true;
len++;
}
@@ -113,24 +123,32 @@ gistfindgroup(Relation r, GISTSTATE *giststate, GISTENTRY *valvec, GistSplitVect
}
static void
-cleanupOffsets( OffsetNumber *a, int *len, bool *equiv, int *LenEquiv ) {
- int curlen,i;
- OffsetNumber *curwpos;
+cleanupOffsets(OffsetNumber *a, int *len, bool *equiv, int *LenEquiv)
+{
+ int curlen,
+ i;
+ OffsetNumber *curwpos;
curlen = *len;
curwpos = a;
- for (i = 0; i < *len; i++) {
- if ( equiv[ a[i] ] == FALSE ) {
+ for (i = 0; i < *len; i++)
+ {
+ if (equiv[a[i]] == FALSE)
+ {
*curwpos = a[i];
curwpos++;
- } else {
+ }
+ else
+ {
/* corner case: we shouldn't make void array */
- if ( curlen==1 ) {
- equiv[ a[i] ] = FALSE; /* mark item as non-equivalent */
- i--; /* redo the same */
+ if (curlen == 1)
+ {
+ equiv[a[i]] = FALSE; /* mark item as non-equivalent */
+ i--; /* redo the same */
*LenEquiv -= 1;
continue;
- } else
+ }
+ else
curlen--;
}
}
@@ -139,33 +157,37 @@ cleanupOffsets( OffsetNumber *a, int *len, bool *equiv, int *LenEquiv ) {
}
static void
-placeOne( Relation r, GISTSTATE *giststate, GistSplitVector *v, IndexTuple itup, OffsetNumber off, int attno ) {
+placeOne(Relation r, GISTSTATE *giststate, GistSplitVector *v, IndexTuple itup, OffsetNumber off, int attno)
+{
GISTENTRY identry[INDEX_MAX_KEYS];
bool isnull[INDEX_MAX_KEYS];
- bool toLeft = true;
+ bool toLeft = true;
gistDeCompressAtt(giststate, r, itup, NULL, (OffsetNumber) 0, identry, isnull);
- for(;attno<giststate->tupdesc->natts;attno++) {
- float lpenalty, rpenalty;
+ for (; attno < giststate->tupdesc->natts; attno++)
+ {
+ float lpenalty,
+ rpenalty;
GISTENTRY entry;
- gistentryinit(entry, v->spl_lattr[attno], r, NULL, 0, FALSE);
- lpenalty = gistpenalty(giststate, attno, &entry, v->spl_lisnull[attno], identry+attno, isnull[ attno ]);
- gistentryinit(entry, v->spl_rattr[attno], r, NULL, 0, FALSE);
- rpenalty = gistpenalty(giststate, attno, &entry, v->spl_risnull[attno], identry+attno, isnull[ attno ]);
+ gistentryinit(entry, v->spl_lattr[attno], r, NULL, 0, FALSE);
+ lpenalty = gistpenalty(giststate, attno, &entry, v->spl_lisnull[attno], identry + attno, isnull[attno]);
+ gistentryinit(entry, v->spl_rattr[attno], r, NULL, 0, FALSE);
+ rpenalty = gistpenalty(giststate, attno, &entry, v->spl_risnull[attno], identry + attno, isnull[attno]);
- if ( lpenalty != rpenalty ) {
- if ( lpenalty > rpenalty )
+ if (lpenalty != rpenalty)
+ {
+ if (lpenalty > rpenalty)
toLeft = false;
break;
}
}
- if ( toLeft )
- v->splitVector.spl_left[ v->splitVector.spl_nleft++ ] = off;
+ if (toLeft)
+ v->splitVector.spl_left[v->splitVector.spl_nleft++] = off;
else
- v->splitVector.spl_right[ v->splitVector.spl_nright++ ] = off;
+ v->splitVector.spl_right[v->splitVector.spl_nright++] = off;
}
#define SWAPVAR( s, d, t ) \
@@ -176,71 +198,83 @@ do { \
} while(0)
/*
- * adjust left and right unions according to splits by previous
- * split by firsts columns. This function is called only in case
+ * adjust left and right unions according to splits by previous
+ * split by firsts columns. This function is called only in case
* when pickSplit doesn't support subspplit.
*/
static void
-supportSecondarySplit( Relation r, GISTSTATE *giststate, int attno, GIST_SPLITVEC *sv, Datum oldL, Datum oldR ) {
- bool leaveOnLeft = true, tmpBool;
- GISTENTRY entryL, entryR, entrySL, entrySR;
-
- gistentryinit(entryL, oldL, r, NULL, 0, FALSE);
- gistentryinit(entryR, oldR, r, NULL, 0, FALSE);
- gistentryinit(entrySL, sv->spl_ldatum , r, NULL, 0, FALSE);
- gistentryinit(entrySR, sv->spl_rdatum , r, NULL, 0, FALSE);
-
- if ( sv->spl_ldatum_exists && sv->spl_rdatum_exists ) {
- float penalty1, penalty2;
+supportSecondarySplit(Relation r, GISTSTATE *giststate, int attno, GIST_SPLITVEC *sv, Datum oldL, Datum oldR)
+{
+ bool leaveOnLeft = true,
+ tmpBool;
+ GISTENTRY entryL,
+ entryR,
+ entrySL,
+ entrySR;
+
+ gistentryinit(entryL, oldL, r, NULL, 0, FALSE);
+ gistentryinit(entryR, oldR, r, NULL, 0, FALSE);
+ gistentryinit(entrySL, sv->spl_ldatum, r, NULL, 0, FALSE);
+ gistentryinit(entrySR, sv->spl_rdatum, r, NULL, 0, FALSE);
+
+ if (sv->spl_ldatum_exists && sv->spl_rdatum_exists)
+ {
+ float penalty1,
+ penalty2;
penalty1 = gistpenalty(giststate, attno, &entryL, false, &entrySL, false) +
- gistpenalty(giststate, attno, &entryR, false, &entrySR, false);
+ gistpenalty(giststate, attno, &entryR, false, &entrySR, false);
penalty2 = gistpenalty(giststate, attno, &entryL, false, &entrySR, false) +
- gistpenalty(giststate, attno, &entryR, false, &entrySL, false);
+ gistpenalty(giststate, attno, &entryR, false, &entrySL, false);
- if ( penalty1 > penalty2 )
+ if (penalty1 > penalty2)
leaveOnLeft = false;
- } else {
- GISTENTRY *entry1 = (sv->spl_ldatum_exists) ? &entryL : &entryR;
- float penalty1, penalty2;
+ }
+ else
+ {
+ GISTENTRY *entry1 = (sv->spl_ldatum_exists) ? &entryL : &entryR;
+ float penalty1,
+ penalty2;
/*
- * there is only one previously defined union,
- * so we just choose swap or not by lowest penalty
+ * there is only one previously defined union, so we just choose swap
+ * or not by lowest penalty
*/
penalty1 = gistpenalty(giststate, attno, entry1, false, &entrySL, false);
penalty2 = gistpenalty(giststate, attno, entry1, false, &entrySR, false);
- if ( penalty1 < penalty2 )
- leaveOnLeft = ( sv->spl_ldatum_exists ) ? true : false;
+ if (penalty1 < penalty2)
+ leaveOnLeft = (sv->spl_ldatum_exists) ? true : false;
else
- leaveOnLeft = ( sv->spl_rdatum_exists ) ? true : false;
+ leaveOnLeft = (sv->spl_rdatum_exists) ? true : false;
}
- if ( leaveOnLeft == false ) {
+ if (leaveOnLeft == false)
+ {
/*
- * swap left and right
+ * swap left and right
*/
- OffsetNumber *off, noff;
- Datum datum;
-
- SWAPVAR( sv->spl_left, sv->spl_right, off );
- SWAPVAR( sv->spl_nleft, sv->spl_nright, noff );
- SWAPVAR( sv->spl_ldatum, sv->spl_rdatum, datum );
- gistentryinit(entrySL, sv->spl_ldatum , r, NULL, 0, FALSE);
- gistentryinit(entrySR, sv->spl_rdatum , r, NULL, 0, FALSE);
+ OffsetNumber *off,
+ noff;
+ Datum datum;
+
+ SWAPVAR(sv->spl_left, sv->spl_right, off);
+ SWAPVAR(sv->spl_nleft, sv->spl_nright, noff);
+ SWAPVAR(sv->spl_ldatum, sv->spl_rdatum, datum);
+ gistentryinit(entrySL, sv->spl_ldatum, r, NULL, 0, FALSE);
+ gistentryinit(entrySR, sv->spl_rdatum, r, NULL, 0, FALSE);
}
- if ( sv->spl_ldatum_exists )
+ if (sv->spl_ldatum_exists)
gistMakeUnionKey(giststate, attno, &entryL, false, &entrySL, false,
- &sv->spl_ldatum, &tmpBool);
+ &sv->spl_ldatum, &tmpBool);
- if ( sv->spl_rdatum_exists )
+ if (sv->spl_rdatum_exists)
gistMakeUnionKey(giststate, attno, &entryR, false, &entrySR, false,
- &sv->spl_rdatum, &tmpBool);
+ &sv->spl_rdatum, &tmpBool);
sv->spl_ldatum_exists = sv->spl_rdatum_exists = false;
}
@@ -251,20 +285,21 @@ supportSecondarySplit( Relation r, GISTSTATE *giststate, int attno, GIST_SPLITVE
* get better split.
* Returns TRUE and v->spl_equiv = NULL if left and right unions of attno columns are the same,
* so caller may find better split
- * Returns TRUE and v->spl_equiv != NULL if there is tuples which may be freely moved
+ * Returns TRUE and v->spl_equiv != NULL if there is tuples which may be freely moved
*/
static bool
gistUserPicksplit(Relation r, GistEntryVector *entryvec, int attno, GistSplitVector *v,
IndexTuple *itup, int len, GISTSTATE *giststate)
{
GIST_SPLITVEC *sv = &v->splitVector;
+
/*
* now let the user-defined picksplit function set up the split vector; in
* entryvec have no null value!!
*/
- sv->spl_ldatum_exists = ( v->spl_lisnull[ attno ] ) ? false : true;
- sv->spl_rdatum_exists = ( v->spl_risnull[ attno ] ) ? false : true;
+ sv->spl_ldatum_exists = (v->spl_lisnull[attno]) ? false : true;
+ sv->spl_rdatum_exists = (v->spl_risnull[attno]) ? false : true;
sv->spl_ldatum = v->spl_lattr[attno];
sv->spl_rdatum = v->spl_rattr[attno];
@@ -278,11 +313,12 @@ gistUserPicksplit(Relation r, GistEntryVector *entryvec, int attno, GistSplitVec
if (sv->spl_right[sv->spl_nright - 1] == InvalidOffsetNumber)
sv->spl_right[sv->spl_nright - 1] = (OffsetNumber) (entryvec->n - 1);
- if( sv->spl_ldatum_exists || sv->spl_rdatum_exists ) {
- elog(LOG,"PickSplit method of %d columns of index '%s' doesn't support secondary split",
- attno + 1, RelationGetRelationName(r) );
+ if (sv->spl_ldatum_exists || sv->spl_rdatum_exists)
+ {
+ elog(LOG, "PickSplit method of %d columns of index '%s' doesn't support secondary split",
+ attno + 1, RelationGetRelationName(r));
- supportSecondarySplit( r, giststate, attno, sv, v->spl_lattr[attno], v->spl_rattr[attno] );
+ supportSecondarySplit(r, giststate, attno, sv, v->spl_lattr[attno], v->spl_rattr[attno]);
}
v->spl_lattr[attno] = sv->spl_ldatum;
@@ -296,53 +332,64 @@ gistUserPicksplit(Relation r, GistEntryVector *entryvec, int attno, GistSplitVec
*/
v->spl_equiv = NULL;
- if (giststate->tupdesc->natts > 1 && attno+1 != giststate->tupdesc->natts)
+ if (giststate->tupdesc->natts > 1 && attno + 1 != giststate->tupdesc->natts)
{
- if ( gistKeyIsEQ(giststate, attno, sv->spl_ldatum, sv->spl_rdatum) ) {
+ if (gistKeyIsEQ(giststate, attno, sv->spl_ldatum, sv->spl_rdatum))
+ {
/*
- * Left and right key's unions are equial, so
- * we can get better split by following columns. Note,
- * unions for attno columns are already done.
+ * Left and right key's unions are equial, so we can get better
+ * split by following columns. Note, unions for attno columns are
+ * already done.
*/
return true;
- } else {
+ }
+ else
+ {
int LenEquiv;
- v->spl_equiv = (bool *) palloc0(sizeof(bool) * (entryvec->n+1));
+ v->spl_equiv = (bool *) palloc0(sizeof(bool) * (entryvec->n + 1));
LenEquiv = gistfindgroup(r, giststate, entryvec->vector, v, attno);
/*
- * if possible, we should distribute equivalent tuples
- */
- if (LenEquiv == 0 ) {
+ * if possible, we should distribute equivalent tuples
+ */
+ if (LenEquiv == 0)
+ {
gistunionsubkey(giststate, itup, v, attno + 1);
- } else {
- cleanupOffsets( sv->spl_left, &sv->spl_nleft, v->spl_equiv, &LenEquiv );
- cleanupOffsets( sv->spl_right, &sv->spl_nright, v->spl_equiv, &LenEquiv );
+ }
+ else
+ {
+ cleanupOffsets(sv->spl_left, &sv->spl_nleft, v->spl_equiv, &LenEquiv);
+ cleanupOffsets(sv->spl_right, &sv->spl_nright, v->spl_equiv, &LenEquiv);
gistunionsubkey(giststate, itup, v, attno + 1);
- if (LenEquiv == 1 ) {
+ if (LenEquiv == 1)
+ {
/*
- * In case with one tuple we just choose left-right
- * by penalty. It's simplify user-defined pickSplit
+ * In case with one tuple we just choose left-right by
+ * penalty. It's simplify user-defined pickSplit
*/
OffsetNumber toMove = InvalidOffsetNumber;
- for(toMove=FirstOffsetNumber;toMove<entryvec->n;toMove++)
- if ( v->spl_equiv[ toMove ] )
+ for (toMove = FirstOffsetNumber; toMove < entryvec->n; toMove++)
+ if (v->spl_equiv[toMove])
break;
- Assert( toMove < entryvec->n );
-
- placeOne( r, giststate, v, itup[ toMove-1 ], toMove, attno+1 );
- /* redo gistunionsubkey(): it will not degradate performance,
- * because it's very rarely */
+ Assert(toMove < entryvec->n);
+
+ placeOne(r, giststate, v, itup[toMove - 1], toMove, attno + 1);
+
+ /*
+ * redo gistunionsubkey(): it will not degradate
+ * performance, because it's very rarely
+ */
v->spl_equiv = NULL;
gistunionsubkey(giststate, itup, v, attno + 1);
return false;
- } else if ( LenEquiv > 1 )
+ }
+ else if (LenEquiv > 1)
return true;
}
}
@@ -352,60 +399,65 @@ gistUserPicksplit(Relation r, GistEntryVector *entryvec, int attno, GistSplitVec
}
/*
- * simple split page
+ * simple split page
*/
static void
-gistSplitHalf(GIST_SPLITVEC *v, int len) {
- int i;
+gistSplitHalf(GIST_SPLITVEC *v, int len)
+{
+ int i;
- v->spl_nright = v->spl_nleft = 0;
+ v->spl_nright = v->spl_nleft = 0;
v->spl_left = (OffsetNumber *) palloc(len * sizeof(OffsetNumber));
- v->spl_right= (OffsetNumber *) palloc(len * sizeof(OffsetNumber));
- for(i = 1; i <= len; i++)
- if ( i<len/2 )
- v->spl_right[ v->spl_nright++ ] = i;
+ v->spl_right = (OffsetNumber *) palloc(len * sizeof(OffsetNumber));
+ for (i = 1; i <= len; i++)
+ if (i < len / 2)
+ v->spl_right[v->spl_nright++] = i;
else
- v->spl_left[ v->spl_nleft++ ] = i;
+ v->spl_left[v->spl_nleft++] = i;
}
/*
* if it was invalid tuple then we need special processing.
- * We move all invalid tuples on right page.
+ * We move all invalid tuples on right page.
*
- * if there is no place on left page, gistSplit will be called one more
+ * if there is no place on left page, gistSplit will be called one more
* time for left page.
*
* Normally, we never exec this code, but after crash replay it's possible
* to get 'invalid' tuples (probability is low enough)
*/
static void
-gistSplitByInvalid(GISTSTATE *giststate, GistSplitVector *v, IndexTuple *itup, int len) {
- int i;
- static OffsetNumber offInvTuples[ MaxOffsetNumber ];
- int nOffInvTuples = 0;
+gistSplitByInvalid(GISTSTATE *giststate, GistSplitVector *v, IndexTuple *itup, int len)
+{
+ int i;
+ static OffsetNumber offInvTuples[MaxOffsetNumber];
+ int nOffInvTuples = 0;
for (i = 1; i <= len; i++)
- if ( GistTupleIsInvalid(itup[i - 1]) )
- offInvTuples[ nOffInvTuples++ ] = i;
+ if (GistTupleIsInvalid(itup[i - 1]))
+ offInvTuples[nOffInvTuples++] = i;
- if ( nOffInvTuples == len ) {
+ if (nOffInvTuples == len)
+ {
/* corner case, all tuples are invalid */
- v->spl_rightvalid= v->spl_leftvalid = false;
- gistSplitHalf( &v->splitVector, len );
- } else {
- GistSplitUnion gsvp;
-
+ v->spl_rightvalid = v->spl_leftvalid = false;
+ gistSplitHalf(&v->splitVector, len);
+ }
+ else
+ {
+ GistSplitUnion gsvp;
+
v->splitVector.spl_right = offInvTuples;
v->splitVector.spl_nright = nOffInvTuples;
v->spl_rightvalid = false;
v->splitVector.spl_left = (OffsetNumber *) palloc(len * sizeof(OffsetNumber));
v->splitVector.spl_nleft = 0;
- for(i = 1; i <= len; i++)
- if ( !GistTupleIsInvalid(itup[i - 1]) )
- v->splitVector.spl_left[ v->splitVector.spl_nleft++ ] = i;
+ for (i = 1; i <= len; i++)
+ if (!GistTupleIsInvalid(itup[i - 1]))
+ v->splitVector.spl_left[v->splitVector.spl_nleft++] = i;
v->spl_leftvalid = true;
-
+
gsvp.equiv = NULL;
gsvp.attr = v->spl_lattr;
gsvp.len = v->splitVector.spl_nleft;
@@ -418,52 +470,58 @@ gistSplitByInvalid(GISTSTATE *giststate, GistSplitVector *v, IndexTuple *itup, i
/*
* trys to split page by attno key, in a case of null
- * values move its to separate page.
+ * values move its to separate page.
*/
void
-gistSplitByKey(Relation r, Page page, IndexTuple *itup, int len, GISTSTATE *giststate,
- GistSplitVector *v, GistEntryVector *entryvec, int attno) {
- int i;
- static OffsetNumber offNullTuples[ MaxOffsetNumber ];
- int nOffNullTuples = 0;
+gistSplitByKey(Relation r, Page page, IndexTuple *itup, int len, GISTSTATE *giststate,
+ GistSplitVector *v, GistEntryVector *entryvec, int attno)
+{
+ int i;
+ static OffsetNumber offNullTuples[MaxOffsetNumber];
+ int nOffNullTuples = 0;
- for (i = 1; i <= len; i++) {
- Datum datum;
- bool IsNull;
+ for (i = 1; i <= len; i++)
+ {
+ Datum datum;
+ bool IsNull;
- if (!GistPageIsLeaf(page) && GistTupleIsInvalid(itup[i - 1])) {
+ if (!GistPageIsLeaf(page) && GistTupleIsInvalid(itup[i - 1]))
+ {
gistSplitByInvalid(giststate, v, itup, len);
return;
}
- datum = index_getattr(itup[i - 1], attno+1, giststate->tupdesc, &IsNull);
+ datum = index_getattr(itup[i - 1], attno + 1, giststate->tupdesc, &IsNull);
gistdentryinit(giststate, attno, &(entryvec->vector[i]),
datum, r, page, i,
FALSE, IsNull);
- if ( IsNull )
- offNullTuples[ nOffNullTuples++ ] = i;
+ if (IsNull)
+ offNullTuples[nOffNullTuples++] = i;
}
v->spl_leftvalid = v->spl_rightvalid = true;
- if ( nOffNullTuples == len ) {
- /*
+ if (nOffNullTuples == len)
+ {
+ /*
* Corner case: All keys in attno column are null, we should try to
- * split by keys in next column. It all keys in all columns
- * are NULL just split page half by half
+ * split by keys in next column. It all keys in all columns are NULL
+ * just split page half by half
*/
v->spl_risnull[attno] = v->spl_lisnull[attno] = TRUE;
- if ( attno+1 == r->rd_att->natts )
- gistSplitHalf( &v->splitVector, len );
- else
- gistSplitByKey(r, page, itup, len, giststate, v, entryvec, attno+1);
- } else if ( nOffNullTuples > 0 ) {
- int j=0;
-
- /*
- * We don't want to mix NULLs and not-NULLs keys
- * on one page, so move nulls to right page
+ if (attno + 1 == r->rd_att->natts)
+ gistSplitHalf(&v->splitVector, len);
+ else
+ gistSplitByKey(r, page, itup, len, giststate, v, entryvec, attno + 1);
+ }
+ else if (nOffNullTuples > 0)
+ {
+ int j = 0;
+
+ /*
+ * We don't want to mix NULLs and not-NULLs keys on one page, so move
+ * nulls to right page
*/
v->splitVector.spl_right = offNullTuples;
v->splitVector.spl_nright = nOffNullTuples;
@@ -471,61 +529,71 @@ gistSplitByKey(Relation r, Page page, IndexTuple *itup, int len, GISTSTATE *gist
v->splitVector.spl_left = (OffsetNumber *) palloc(len * sizeof(OffsetNumber));
v->splitVector.spl_nleft = 0;
- for(i = 1; i <= len; i++)
- if ( j<v->splitVector.spl_nright && offNullTuples[j] == i )
+ for (i = 1; i <= len; i++)
+ if (j < v->splitVector.spl_nright && offNullTuples[j] == i)
j++;
else
- v->splitVector.spl_left[ v->splitVector.spl_nleft++ ] = i;
+ v->splitVector.spl_left[v->splitVector.spl_nleft++] = i;
v->spl_equiv = NULL;
gistunionsubkey(giststate, itup, v, attno);
- } else {
+ }
+ else
+ {
/*
* all keys are not-null
*/
- entryvec->n = len+1;
+ entryvec->n = len + 1;
- if ( gistUserPicksplit(r, entryvec, attno, v, itup, len, giststate) && attno+1 != r->rd_att->natts ) {
+ if (gistUserPicksplit(r, entryvec, attno, v, itup, len, giststate) && attno + 1 != r->rd_att->natts)
+ {
/*
- * Splitting on attno column is not optimized: there is a tuples which can be freely
- * left or right page, we will try to split page by
- * following columns
+ * Splitting on attno column is not optimized: there is a tuples
+ * which can be freely left or right page, we will try to split
+ * page by following columns
*/
- if ( v->spl_equiv == NULL ) {
- /* simple case: left and right keys for attno column are equial */
- gistSplitByKey(r, page, itup, len, giststate, v, entryvec, attno+1);
- } else {
+ if (v->spl_equiv == NULL)
+ {
+ /*
+ * simple case: left and right keys for attno column are
+ * equial
+ */
+ gistSplitByKey(r, page, itup, len, giststate, v, entryvec, attno + 1);
+ }
+ else
+ {
/* we should clean up vector from already distributed tuples */
- IndexTuple *newitup = (IndexTuple*)palloc((len + 1) * sizeof(IndexTuple));
- OffsetNumber *map = (OffsetNumber*)palloc((len + 1) * sizeof(IndexTuple));
- int newlen = 0;
+ IndexTuple *newitup = (IndexTuple *) palloc((len + 1) * sizeof(IndexTuple));
+ OffsetNumber *map = (OffsetNumber *) palloc((len + 1) * sizeof(IndexTuple));
+ int newlen = 0;
GIST_SPLITVEC backupSplit = v->splitVector;
- for(i=0; i<len; i++)
- if ( v->spl_equiv[i+1] ) {
- map[ newlen ] = i+1;
- newitup[ newlen++ ] = itup[i];
+ for (i = 0; i < len; i++)
+ if (v->spl_equiv[i + 1])
+ {
+ map[newlen] = i + 1;
+ newitup[newlen++] = itup[i];
}
- Assert( newlen>0 );
+ Assert(newlen > 0);
- backupSplit.spl_left = (OffsetNumber*)palloc(sizeof(OffsetNumber)*len);
- memcpy( backupSplit.spl_left, v->splitVector.spl_left, sizeof(OffsetNumber)*v->splitVector.spl_nleft);
- backupSplit.spl_right = (OffsetNumber*)palloc(sizeof(OffsetNumber)*len);
- memcpy( backupSplit.spl_right, v->splitVector.spl_right, sizeof(OffsetNumber)*v->splitVector.spl_nright);
+ backupSplit.spl_left = (OffsetNumber *) palloc(sizeof(OffsetNumber) * len);
+ memcpy(backupSplit.spl_left, v->splitVector.spl_left, sizeof(OffsetNumber) * v->splitVector.spl_nleft);
+ backupSplit.spl_right = (OffsetNumber *) palloc(sizeof(OffsetNumber) * len);
+ memcpy(backupSplit.spl_right, v->splitVector.spl_right, sizeof(OffsetNumber) * v->splitVector.spl_nright);
- gistSplitByKey(r, page, newitup, newlen, giststate, v, entryvec, attno+1);
+ gistSplitByKey(r, page, newitup, newlen, giststate, v, entryvec, attno + 1);
/* merge result of subsplit */
- for(i=0;i<v->splitVector.spl_nleft;i++)
- backupSplit.spl_left[ backupSplit.spl_nleft++ ] = map[ v->splitVector.spl_left[i]-1 ];
- for(i=0;i<v->splitVector.spl_nright;i++)
- backupSplit.spl_right[ backupSplit.spl_nright++ ] = map[ v->splitVector.spl_right[i]-1 ];
+ for (i = 0; i < v->splitVector.spl_nleft; i++)
+ backupSplit.spl_left[backupSplit.spl_nleft++] = map[v->splitVector.spl_left[i] - 1];
+ for (i = 0; i < v->splitVector.spl_nright; i++)
+ backupSplit.spl_right[backupSplit.spl_nright++] = map[v->splitVector.spl_right[i] - 1];
v->splitVector = backupSplit;
/* reunion left and right datums */
gistunionsubkey(giststate, itup, v, attno);
}
- }
+ }
}
}
diff --git a/src/backend/access/gist/gistutil.c b/src/backend/access/gist/gistutil.c
index 9b1cfc0cf6..ff22bd2b65 100644
--- a/src/backend/access/gist/gistutil.c
+++ b/src/backend/access/gist/gistutil.c
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/gist/gistutil.c,v 1.19 2006/07/14 14:52:16 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gist/gistutil.c,v 1.20 2006/10/04 00:29:48 momjian Exp $
*-------------------------------------------------------------------------
*/
#include "postgres.h"
@@ -22,8 +22,8 @@
* static *S used for temrorary storage (saves stack and palloc() call)
*/
-static Datum attrS[INDEX_MAX_KEYS];
-static bool isnullS[INDEX_MAX_KEYS];
+static Datum attrS[INDEX_MAX_KEYS];
+static bool isnullS[INDEX_MAX_KEYS];
/*
* Write itup vector to page, has no control of free space
@@ -57,14 +57,17 @@ gistfillbuffer(Relation r, Page page, IndexTuple *itup,
bool
gistnospace(Page page, IndexTuple *itvec, int len, OffsetNumber todelete, Size freespace)
{
- unsigned int size = freespace, deleted = 0;
+ unsigned int size = freespace,
+ deleted = 0;
int i;
for (i = 0; i < len; i++)
size += IndexTupleSize(itvec[i]) + sizeof(ItemIdData);
- if ( todelete != InvalidOffsetNumber ) {
- IndexTuple itup = (IndexTuple) PageGetItem(page, PageGetItemId(page, todelete));
+ if (todelete != InvalidOffsetNumber)
+ {
+ IndexTuple itup = (IndexTuple) PageGetItem(page, PageGetItemId(page, todelete));
+
deleted = IndexTupleSize(itup) + sizeof(ItemIdData);
}
@@ -72,11 +75,12 @@ gistnospace(Page page, IndexTuple *itvec, int len, OffsetNumber todelete, Size f
}
bool
-gistfitpage(IndexTuple *itvec, int len) {
- int i;
- Size size=0;
+gistfitpage(IndexTuple *itvec, int len)
+{
+ int i;
+ Size size = 0;
- for(i=0;i<len;i++)
+ for (i = 0; i < len; i++)
size += IndexTupleSize(itvec[i]) + sizeof(ItemIdData);
/* TODO: Consider fillfactor */
@@ -119,56 +123,64 @@ gistjoinvector(IndexTuple *itvec, int *len, IndexTuple *additvec, int addlen)
*/
IndexTupleData *
-gistfillitupvec(IndexTuple *vec, int veclen, int *memlen) {
- char *ptr, *ret;
- int i;
+gistfillitupvec(IndexTuple *vec, int veclen, int *memlen)
+{
+ char *ptr,
+ *ret;
+ int i;
+
+ *memlen = 0;
- *memlen=0;
-
for (i = 0; i < veclen; i++)
*memlen += IndexTupleSize(vec[i]);
ptr = ret = palloc(*memlen);
- for (i = 0; i < veclen; i++) {
+ for (i = 0; i < veclen; i++)
+ {
memcpy(ptr, vec[i], IndexTupleSize(vec[i]));
ptr += IndexTupleSize(vec[i]);
}
- return (IndexTupleData*)ret;
+ return (IndexTupleData *) ret;
}
/*
- * Make unions of keys in IndexTuple vector, return FALSE if itvec contains
+ * Make unions of keys in IndexTuple vector, return FALSE if itvec contains
* invalid tuple. Resulting Datums aren't compressed.
*/
-bool
-gistMakeUnionItVec(GISTSTATE *giststate, IndexTuple *itvec, int len, int startkey,
- Datum *attr, bool *isnull ) {
+bool
+gistMakeUnionItVec(GISTSTATE *giststate, IndexTuple *itvec, int len, int startkey,
+ Datum *attr, bool *isnull)
+{
int i;
GistEntryVector *evec;
- int attrsize;
+ int attrsize;
- evec = (GistEntryVector *) palloc( ( len + 2 ) * sizeof(GISTENTRY) + GEVHDRSZ);
+ evec = (GistEntryVector *) palloc((len + 2) * sizeof(GISTENTRY) + GEVHDRSZ);
- for (i = startkey; i < giststate->tupdesc->natts; i++) {
- int j;
+ for (i = startkey; i < giststate->tupdesc->natts; i++)
+ {
+ int j;
evec->n = 0;
- if ( !isnull[i] ) {
- gistentryinit( evec->vector[evec->n], attr[i],
- NULL, NULL, (OffsetNumber) 0,
- FALSE);
+ if (!isnull[i])
+ {
+ gistentryinit(evec->vector[evec->n], attr[i],
+ NULL, NULL, (OffsetNumber) 0,
+ FALSE);
evec->n++;
}
- for (j = 0; j < len; j++) {
- Datum datum;
- bool IsNull;
+ for (j = 0; j < len; j++)
+ {
+ Datum datum;
+ bool IsNull;
- if (GistTupleIsInvalid(itvec[j]))
- return FALSE; /* signals that union with invalid tuple => result is invalid */
+ if (GistTupleIsInvalid(itvec[j]))
+ return FALSE; /* signals that union with invalid tuple =>
+ * result is invalid */
datum = index_getattr(itvec[j], i + 1, giststate->tupdesc, &IsNull);
if (IsNull)
@@ -183,19 +195,23 @@ gistMakeUnionItVec(GISTSTATE *giststate, IndexTuple *itvec, int len, int startke
}
/* If this tuple vector was all NULLs, the union is NULL */
- if ( evec->n == 0 ) {
+ if (evec->n == 0)
+ {
attr[i] = (Datum) 0;
isnull[i] = TRUE;
- } else {
- if (evec->n == 1) {
+ }
+ else
+ {
+ if (evec->n == 1)
+ {
evec->n = 2;
evec->vector[1] = evec->vector[0];
- }
+ }
/* Make union and store in attr array */
attr[i] = FunctionCall2(&giststate->unionFn[i],
- PointerGetDatum(evec),
- PointerGetDatum(&attrsize));
+ PointerGetDatum(evec),
+ PointerGetDatum(&attrsize));
isnull[i] = FALSE;
}
@@ -213,57 +229,67 @@ gistunion(Relation r, IndexTuple *itvec, int len, GISTSTATE *giststate)
{
memset(isnullS, TRUE, sizeof(bool) * giststate->tupdesc->natts);
- if ( !gistMakeUnionItVec(giststate, itvec, len, 0, attrS, isnullS ) )
- return gist_form_invalid_tuple(InvalidBlockNumber);
+ if (!gistMakeUnionItVec(giststate, itvec, len, 0, attrS, isnullS))
+ return gist_form_invalid_tuple(InvalidBlockNumber);
- return gistFormTuple(giststate, r, attrS, isnullS, false);
+ return gistFormTuple(giststate, r, attrS, isnullS, false);
}
-/*
+/*
* makes union of two key
*/
void
-gistMakeUnionKey( GISTSTATE *giststate, int attno,
- GISTENTRY *entry1, bool isnull1,
- GISTENTRY *entry2, bool isnull2,
- Datum *dst, bool *dstisnull ) {
+gistMakeUnionKey(GISTSTATE *giststate, int attno,
+ GISTENTRY *entry1, bool isnull1,
+ GISTENTRY *entry2, bool isnull2,
+ Datum *dst, bool *dstisnull)
+{
- int dstsize;
+ int dstsize;
- static char storage[ 2 * sizeof(GISTENTRY) + GEVHDRSZ ];
- GistEntryVector *evec = (GistEntryVector*)storage;
+ static char storage[2 * sizeof(GISTENTRY) + GEVHDRSZ];
+ GistEntryVector *evec = (GistEntryVector *) storage;
evec->n = 2;
- if ( isnull1 && isnull2 ) {
+ if (isnull1 && isnull2)
+ {
*dstisnull = TRUE;
- *dst = (Datum)0;
- } else {
- if ( isnull1 == FALSE && isnull2 == FALSE ) {
+ *dst = (Datum) 0;
+ }
+ else
+ {
+ if (isnull1 == FALSE && isnull2 == FALSE)
+ {
evec->vector[0] = *entry1;
evec->vector[1] = *entry2;
- } else if ( isnull1 == FALSE ) {
+ }
+ else if (isnull1 == FALSE)
+ {
evec->vector[0] = *entry1;
evec->vector[1] = *entry1;
- } else {
+ }
+ else
+ {
evec->vector[0] = *entry2;
evec->vector[1] = *entry2;
}
*dstisnull = FALSE;
*dst = FunctionCall2(&giststate->unionFn[attno],
- PointerGetDatum(evec),
- PointerGetDatum(&dstsize));
+ PointerGetDatum(evec),
+ PointerGetDatum(&dstsize));
}
}
bool
-gistKeyIsEQ(GISTSTATE *giststate, int attno, Datum a, Datum b) {
- bool result;
+gistKeyIsEQ(GISTSTATE *giststate, int attno, Datum a, Datum b)
+{
+ bool result;
FunctionCall3(&giststate->equalFn[attno],
- a, b,
- PointerGetDatum(&result));
+ a, b,
+ PointerGetDatum(&result));
return result;
}
@@ -309,22 +335,24 @@ gistgetadjusted(Relation r, IndexTuple oldtup, IndexTuple addtup, GISTSTATE *gis
gistDeCompressAtt(giststate, r, addtup, NULL,
(OffsetNumber) 0, addentries, addisnull);
- for(i = 0; i < r->rd_att->natts; i++) {
- gistMakeUnionKey( giststate, i,
- oldentries + i, oldisnull[i],
- addentries + i, addisnull[i],
- attrS + i, isnullS + i );
+ for (i = 0; i < r->rd_att->natts; i++)
+ {
+ gistMakeUnionKey(giststate, i,
+ oldentries + i, oldisnull[i],
+ addentries + i, addisnull[i],
+ attrS + i, isnullS + i);
- if ( neednew )
+ if (neednew)
/* we already need new key, so we can skip check */
continue;
- if ( isnullS[i] )
+ if (isnullS[i])
/* union of key may be NULL if and only if both keys are NULL */
continue;
- if ( !addisnull[i] ) {
- if ( oldisnull[i] || gistKeyIsEQ(giststate, i, oldentries[i].key, attrS[i])==false )
+ if (!addisnull[i])
+ {
+ if (oldisnull[i] || gistKeyIsEQ(giststate, i, oldentries[i].key, attrS[i]) == false)
neednew = true;
}
}
@@ -363,8 +391,8 @@ gistchoose(Relation r, Page p, IndexTuple it, /* it has compressed entry */
it, NULL, (OffsetNumber) 0,
identry, isnull);
- Assert( maxoff >= FirstOffsetNumber );
- Assert( !GistPageIsLeaf(p) );
+ Assert(maxoff >= FirstOffsetNumber);
+ Assert(!GistPageIsLeaf(p));
for (i = FirstOffsetNumber; i <= maxoff && sum_grow; i = OffsetNumberNext(i))
{
@@ -484,7 +512,7 @@ gistFormTuple(GISTSTATE *giststate, Relation r,
{
gistcentryinit(giststate, i, &centry[i], attdata[i],
r, NULL, (OffsetNumber) 0,
- newValues,
+ newValues,
FALSE);
compatt[i] = centry[i].key;
}
@@ -500,18 +528,19 @@ gistpenalty(GISTSTATE *giststate, int attno,
GISTENTRY *orig, bool isNullOrig,
GISTENTRY *add, bool isNullAdd)
{
- float penalty = 0.0;
+ float penalty = 0.0;
- if ( giststate->penaltyFn[attno].fn_strict==FALSE || ( isNullOrig == FALSE && isNullAdd == FALSE ) )
+ if (giststate->penaltyFn[attno].fn_strict == FALSE || (isNullOrig == FALSE && isNullAdd == FALSE))
FunctionCall3(&giststate->penaltyFn[attno],
PointerGetDatum(orig),
PointerGetDatum(add),
PointerGetDatum(&penalty));
- else if ( isNullOrig && isNullAdd )
+ else if (isNullOrig && isNullAdd)
penalty = 0.0;
else
- penalty = 1e10; /* try to prevent to mix null and non-null value */
-
+ penalty = 1e10; /* try to prevent to mix null and non-null
+ * value */
+
return penalty;
}
diff --git a/src/backend/access/gist/gistvacuum.c b/src/backend/access/gist/gistvacuum.c
index e5c73c8c22..5f5060280d 100644
--- a/src/backend/access/gist/gistvacuum.c
+++ b/src/backend/access/gist/gistvacuum.c
@@ -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.27 2006/09/21 20:31:21 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gist/gistvacuum.c,v 1.28 2006/10/04 00:29:48 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -45,19 +45,24 @@ typedef struct
} ArrayTuple;
/*
- * Make union of keys on page
+ * Make union of keys on page
*/
static IndexTuple
-PageMakeUnionKey(GistVacuum *gv, Buffer buffer) {
- Page page = BufferGetPage( buffer );
+PageMakeUnionKey(GistVacuum *gv, Buffer buffer)
+{
+ Page page = BufferGetPage(buffer);
IndexTuple *vec,
- tmp, res;
+ tmp,
+ res;
int veclen = 0;
MemoryContext oldCtx = MemoryContextSwitchTo(gv->opCtx);
vec = gistextractpage(page, &veclen);
- /* we call gistunion() in temprorary context because user-defined functions called in gistunion()
- may do not free all memory */
+
+ /*
+ * we call gistunion() in temprorary context because user-defined
+ * functions called in gistunion() may do not free all memory
+ */
tmp = gistunion(gv->index, vec, veclen, &(gv->giststate));
MemoryContextSwitchTo(oldCtx);
@@ -73,21 +78,25 @@ PageMakeUnionKey(GistVacuum *gv, Buffer buffer) {
}
static void
-gistDeleteSubtree( GistVacuum *gv, BlockNumber blkno ) {
- Buffer buffer;
- Page page;
+gistDeleteSubtree(GistVacuum *gv, BlockNumber blkno)
+{
+ Buffer buffer;
+ Page page;
buffer = ReadBuffer(gv->index, blkno);
LockBuffer(buffer, GIST_EXCLUSIVE);
page = (Page) BufferGetPage(buffer);
- if ( !GistPageIsLeaf(page) ) {
- int i;
+ if (!GistPageIsLeaf(page))
+ {
+ int i;
+
+ for (i = FirstOffsetNumber; i <= PageGetMaxOffsetNumber(page); i = OffsetNumberNext(i))
+ {
+ ItemId iid = PageGetItemId(page, i);
+ IndexTuple idxtuple = (IndexTuple) PageGetItem(page, iid);
- for (i = FirstOffsetNumber; i <= PageGetMaxOffsetNumber(page); i = OffsetNumberNext(i)) {
- ItemId iid = PageGetItemId(page, i);
- IndexTuple idxtuple = (IndexTuple) PageGetItem(page, iid);
- gistDeleteSubtree(gv, ItemPointerGetBlockNumber(&(idxtuple->t_tid)));
+ gistDeleteSubtree(gv, ItemPointerGetBlockNumber(&(idxtuple->t_tid)));
}
}
@@ -103,7 +112,7 @@ gistDeleteSubtree( GistVacuum *gv, BlockNumber blkno ) {
{
XLogRecData rdata[2];
XLogRecPtr recptr;
- gistxlogPageDelete xlrec;
+ gistxlogPageDelete xlrec;
xlrec.node = gv->index->rd_node;
xlrec.blkno = blkno;
@@ -125,31 +134,34 @@ gistDeleteSubtree( GistVacuum *gv, BlockNumber blkno ) {
}
else
PageSetLSN(page, XLogRecPtrForTemp);
-
+
END_CRIT_SECTION();
UnlockReleaseBuffer(buffer);
}
-static Page
-GistPageGetCopyPage( Page page ) {
- Size pageSize = PageGetPageSize( page );
- Page tmppage;
+static Page
+GistPageGetCopyPage(Page page)
+{
+ Size pageSize = PageGetPageSize(page);
+ Page tmppage;
- tmppage=(Page)palloc( pageSize );
- memcpy( tmppage, page, pageSize );
+ tmppage = (Page) palloc(pageSize);
+ memcpy(tmppage, page, pageSize);
return tmppage;
}
static ArrayTuple
-vacuumSplitPage(GistVacuum *gv, Page tempPage, Buffer buffer, IndexTuple *addon, int curlenaddon) {
+vacuumSplitPage(GistVacuum *gv, Page tempPage, Buffer buffer, IndexTuple *addon, int curlenaddon)
+{
ArrayTuple res = {NULL, 0, false};
IndexTuple *vec;
SplitedPageLayout *dist = NULL,
- *ptr;
- int i, veclen=0;
- BlockNumber blkno = BufferGetBlockNumber(buffer);
+ *ptr;
+ int i,
+ veclen = 0;
+ BlockNumber blkno = BufferGetBlockNumber(buffer);
MemoryContext oldCtx = MemoryContextSwitchTo(gv->opCtx);
vec = gistextractpage(tempPage, &veclen);
@@ -158,67 +170,73 @@ vacuumSplitPage(GistVacuum *gv, Page tempPage, Buffer buffer, IndexTuple *addon,
MemoryContextSwitchTo(oldCtx);
- if (blkno != GIST_ROOT_BLKNO) {
+ if (blkno != GIST_ROOT_BLKNO)
+ {
/* if non-root split then we should not allocate new buffer */
dist->buffer = buffer;
dist->page = tempPage;
/* during vacuum we never split leaf page */
GistPageGetOpaque(dist->page)->flags = 0;
- } else
+ }
+ else
pfree(tempPage);
res.itup = (IndexTuple *) palloc(sizeof(IndexTuple) * veclen);
res.ituplen = 0;
/* make new pages and fills them */
- for (ptr = dist; ptr; ptr = ptr->next) {
- char *data;
+ for (ptr = dist; ptr; ptr = ptr->next)
+ {
+ char *data;
- if ( ptr->buffer == InvalidBuffer ) {
- ptr->buffer = gistNewBuffer( gv->index );
- GISTInitBuffer( ptr->buffer, 0 );
+ if (ptr->buffer == InvalidBuffer)
+ {
+ ptr->buffer = gistNewBuffer(gv->index);
+ GISTInitBuffer(ptr->buffer, 0);
ptr->page = BufferGetPage(ptr->buffer);
}
- ptr->block.blkno = BufferGetBlockNumber( ptr->buffer );
+ ptr->block.blkno = BufferGetBlockNumber(ptr->buffer);
- data = (char*)(ptr->list);
- for(i=0;i<ptr->block.num;i++) {
- if ( PageAddItem(ptr->page, (Item)data, IndexTupleSize((IndexTuple)data), i+FirstOffsetNumber, LP_USED) == InvalidOffsetNumber )
+ data = (char *) (ptr->list);
+ for (i = 0; i < ptr->block.num; i++)
+ {
+ if (PageAddItem(ptr->page, (Item) data, IndexTupleSize((IndexTuple) data), i + FirstOffsetNumber, LP_USED) == InvalidOffsetNumber)
elog(ERROR, "failed to add item to index page in \"%s\"", RelationGetRelationName(gv->index));
- data += IndexTupleSize((IndexTuple)data);
+ data += IndexTupleSize((IndexTuple) data);
}
ItemPointerSetBlockNumber(&(ptr->itup->t_tid), ptr->block.blkno);
- res.itup[ res.ituplen ] = (IndexTuple)palloc(IndexTupleSize(ptr->itup));
- memcpy( res.itup[ res.ituplen ], ptr->itup, IndexTupleSize(ptr->itup) );
+ res.itup[res.ituplen] = (IndexTuple) palloc(IndexTupleSize(ptr->itup));
+ memcpy(res.itup[res.ituplen], ptr->itup, IndexTupleSize(ptr->itup));
res.ituplen++;
}
START_CRIT_SECTION();
- for (ptr = dist; ptr; ptr = ptr->next) {
+ for (ptr = dist; ptr; ptr = ptr->next)
+ {
MarkBufferDirty(ptr->buffer);
GistPageGetOpaque(ptr->page)->rightlink = InvalidBlockNumber;
}
/* restore splitted non-root page */
- if (blkno != GIST_ROOT_BLKNO) {
- PageRestoreTempPage( dist->page, BufferGetPage( dist->buffer ) );
- dist->page = BufferGetPage( dist->buffer );
+ if (blkno != GIST_ROOT_BLKNO)
+ {
+ PageRestoreTempPage(dist->page, BufferGetPage(dist->buffer));
+ dist->page = BufferGetPage(dist->buffer);
}
if (!gv->index->rd_istemp)
{
XLogRecPtr recptr;
XLogRecData *rdata;
- ItemPointerData key; /* set key for incomplete
- * insert */
+ ItemPointerData key; /* set key for incomplete insert */
char *xlinfo;
ItemPointerSet(&key, blkno, TUPLE_IS_VALID);
rdata = formSplitRdata(gv->index->rd_node, blkno,
- false, &key, dist);
+ false, &key, dist);
xlinfo = rdata->data;
recptr = XLogInsert(RM_GIST_ID, XLOG_GIST_PAGE_SPLIT, rdata);
@@ -241,13 +259,12 @@ vacuumSplitPage(GistVacuum *gv, Page tempPage, Buffer buffer, IndexTuple *addon,
{
/* we must keep the buffer pin on the head page */
if (BufferGetBlockNumber(ptr->buffer) != blkno)
- UnlockReleaseBuffer( ptr->buffer );
+ UnlockReleaseBuffer(ptr->buffer);
}
if (blkno == GIST_ROOT_BLKNO)
{
- ItemPointerData key; /* set key for incomplete
- * insert */
+ ItemPointerData key; /* set key for incomplete insert */
ItemPointerSet(&key, blkno, TUPLE_IS_VALID);
@@ -266,7 +283,8 @@ gistVacuumUpdate(GistVacuum *gv, BlockNumber blkno, bool needunion)
{
ArrayTuple res = {NULL, 0, false};
Buffer buffer;
- Page page, tempPage = NULL;
+ Page page,
+ tempPage = NULL;
OffsetNumber i,
maxoff;
ItemId iid;
@@ -278,7 +296,7 @@ gistVacuumUpdate(GistVacuum *gv, BlockNumber blkno, bool needunion)
*addon = NULL;
bool needwrite = false;
OffsetNumber offToDelete[MaxOffsetNumber];
- BlockNumber blkToDelete[MaxOffsetNumber];
+ BlockNumber blkToDelete[MaxOffsetNumber];
ItemPointerData *completed = NULL;
int ncompleted = 0,
lencompleted = 16;
@@ -322,7 +340,7 @@ gistVacuumUpdate(GistVacuum *gv, BlockNumber blkno, bool needunion)
if (chldtuple.ituplen || chldtuple.emptypage)
{
/* update tuple or/and inserts new */
- if ( chldtuple.emptypage )
+ if (chldtuple.emptypage)
blkToDelete[nBlkToDelete++] = ItemPointerGetBlockNumber(&(idxtuple->t_tid));
offToDelete[nOffToDelete++] = i;
PageIndexTupleDelete(tempPage, i);
@@ -333,7 +351,7 @@ gistVacuumUpdate(GistVacuum *gv, BlockNumber blkno, bool needunion)
if (chldtuple.ituplen)
{
- Assert( chldtuple.emptypage == false );
+ Assert(chldtuple.emptypage == false);
while (curlenaddon + chldtuple.ituplen >= lenaddon)
{
lenaddon *= 2;
@@ -367,56 +385,63 @@ gistVacuumUpdate(GistVacuum *gv, BlockNumber blkno, bool needunion)
}
}
}
-
- Assert( maxoff == PageGetMaxOffsetNumber(tempPage) );
+
+ Assert(maxoff == PageGetMaxOffsetNumber(tempPage));
if (curlenaddon)
{
/* insert updated tuples */
- if (gistnospace(tempPage, addon, curlenaddon, InvalidOffsetNumber, 0)) {
+ if (gistnospace(tempPage, addon, curlenaddon, InvalidOffsetNumber, 0))
+ {
/* there is no space on page to insert tuples */
res = vacuumSplitPage(gv, tempPage, buffer, addon, curlenaddon);
- tempPage=NULL; /* vacuumSplitPage() free tempPage */
- needwrite = needunion = false; /* gistSplit already forms unions and writes pages */
- } else
+ tempPage = NULL; /* vacuumSplitPage() free tempPage */
+ needwrite = needunion = false; /* gistSplit already forms
+ * unions and writes pages */
+ }
+ else
/* enough free space */
gistfillbuffer(gv->index, tempPage, addon, curlenaddon, InvalidOffsetNumber);
}
}
- /*
- * If page is empty, we should remove pointer to it before
- * deleting page (except root)
+ /*
+ * If page is empty, we should remove pointer to it before deleting page
+ * (except root)
*/
- if ( blkno != GIST_ROOT_BLKNO && ( PageIsEmpty(page) || (tempPage && PageIsEmpty(tempPage)) ) ) {
+ if (blkno != GIST_ROOT_BLKNO && (PageIsEmpty(page) || (tempPage && PageIsEmpty(tempPage))))
+ {
/*
- * New version of page is empty, so leave it unchanged,
- * upper call will mark our page as deleted.
- * In case of page split we never will be here...
+ * New version of page is empty, so leave it unchanged, upper call
+ * will mark our page as deleted. In case of page split we never will
+ * be here...
*
- * If page was empty it can't become non-empty during processing
+ * If page was empty it can't become non-empty during processing
*/
res.emptypage = true;
UnlockReleaseBuffer(buffer);
- } else {
+ }
+ else
+ {
/* write page and remove its childs if it need */
START_CRIT_SECTION();
- if ( tempPage && needwrite ) {
+ if (tempPage && needwrite)
+ {
PageRestoreTempPage(tempPage, page);
tempPage = NULL;
}
- /* Empty index */
- if (PageIsEmpty(page) && blkno == GIST_ROOT_BLKNO )
+ /* Empty index */
+ if (PageIsEmpty(page) && blkno == GIST_ROOT_BLKNO)
{
needwrite = true;
GistPageSetLeaf(page);
}
-
+
if (needwrite)
{
MarkBufferDirty(buffer);
@@ -446,7 +471,7 @@ gistVacuumUpdate(GistVacuum *gv, BlockNumber blkno, bool needunion)
END_CRIT_SECTION();
- if ( needunion && !PageIsEmpty(page) )
+ if (needunion && !PageIsEmpty(page))
{
res.itup = (IndexTuple *) palloc(sizeof(IndexTuple));
res.ituplen = 1;
@@ -456,7 +481,7 @@ gistVacuumUpdate(GistVacuum *gv, BlockNumber blkno, bool needunion)
UnlockReleaseBuffer(buffer);
/* delete empty children, now we havn't any links to pointed subtrees */
- for(i=0;i<nBlkToDelete;i++)
+ for (i = 0; i < nBlkToDelete; i++)
gistDeleteSubtree(gv, blkToDelete[i]);
if (ncompleted && !gv->index->rd_istemp)
@@ -506,9 +531,10 @@ gistvacuumcleanup(PG_FUNCTION_ARGS)
/* use heap's tuple count */
Assert(info->num_heap_tuples >= 0);
stats->std.num_index_tuples = info->num_heap_tuples;
+
/*
- * XXX the above is wrong if index is partial. Would it be OK to
- * just return NULL, or is there work we must do below?
+ * XXX the above is wrong if index is partial. Would it be OK to just
+ * return NULL, or is there work we must do below?
*/
}
@@ -545,8 +571,8 @@ gistvacuumcleanup(PG_FUNCTION_ARGS)
RelationGetRelationName(rel))));
/*
- * If vacuum full, we already have exclusive lock on the index.
- * Otherwise, need lock unless it's local to this backend.
+ * If vacuum full, we already have exclusive lock on the index. Otherwise,
+ * need lock unless it's local to this backend.
*/
if (info->vacuum_full)
needLock = false;
@@ -725,7 +751,7 @@ gistbulkdelete(PG_FUNCTION_ARGS)
if (callback(&(idxtuple->t_tid), callback_state))
{
- todelete[ntodelete] = i-ntodelete;
+ todelete[ntodelete] = i - ntodelete;
ntodelete++;
stats->std.tuples_removed += 1;
}
@@ -739,7 +765,7 @@ gistbulkdelete(PG_FUNCTION_ARGS)
MarkBufferDirty(buffer);
- for(i=0;i<ntodelete;i++)
+ for (i = 0; i < ntodelete; i++)
PageIndexTupleDelete(page, todelete[i]);
GistMarkTuplesDeleted(page);
@@ -750,7 +776,7 @@ gistbulkdelete(PG_FUNCTION_ARGS)
gistxlogPageUpdate *xlinfo;
rdata = formUpdateRdata(rel->rd_node, buffer,
- todelete, ntodelete,
+ todelete, ntodelete,
NULL, 0,
NULL);
xlinfo = (gistxlogPageUpdate *) rdata->next->data;
diff --git a/src/backend/access/gist/gistxlog.c b/src/backend/access/gist/gistxlog.c
index 9680ed9619..7ba2e6d52c 100644
--- a/src/backend/access/gist/gistxlog.c
+++ b/src/backend/access/gist/gistxlog.c
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/gist/gistxlog.c,v 1.23 2006/08/07 16:57:56 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gist/gistxlog.c,v 1.24 2006/10/04 00:29:48 momjian Exp $
*-------------------------------------------------------------------------
*/
#include "postgres.h"
@@ -55,11 +55,11 @@ typedef struct gistIncompleteInsert
static MemoryContext opCtx; /* working memory for operations */
-static MemoryContext insertCtx; /* holds incomplete_inserts list */
+static MemoryContext insertCtx; /* holds incomplete_inserts list */
static List *incomplete_inserts;
-#define ItemPointerEQ(a, b) \
+#define ItemPointerEQ(a, b) \
( ItemPointerGetOffsetNumber(a) == ItemPointerGetOffsetNumber(b) && \
ItemPointerGetBlockNumber (a) == ItemPointerGetBlockNumber(b) )
@@ -72,8 +72,9 @@ pushIncompleteInsert(RelFileNode node, XLogRecPtr lsn, ItemPointerData key,
MemoryContext oldCxt;
gistIncompleteInsert *ninsert;
- if ( !ItemPointerIsValid(&key) )
- /*
+ if (!ItemPointerIsValid(&key))
+
+ /*
* if key is null then we should not store insertion as incomplete,
* because it's a vacuum operation..
*/
@@ -108,8 +109,8 @@ pushIncompleteInsert(RelFileNode node, XLogRecPtr lsn, ItemPointerData key,
/*
* Stick the new incomplete insert onto the front of the list, not the
- * back. This is so that gist_xlog_cleanup will process incompletions
- * in last-in-first-out order.
+ * back. This is so that gist_xlog_cleanup will process incompletions in
+ * last-in-first-out order.
*/
incomplete_inserts = lcons(ninsert, incomplete_inserts);
@@ -121,10 +122,10 @@ forgetIncompleteInsert(RelFileNode node, ItemPointerData key)
{
ListCell *l;
- if ( !ItemPointerIsValid(&key) )
+ if (!ItemPointerIsValid(&key))
return;
- if (incomplete_inserts==NIL)
+ if (incomplete_inserts == NIL)
return;
foreach(l, incomplete_inserts)
@@ -241,9 +242,12 @@ gistRedoPageUpdateRecord(XLogRecPtr lsn, XLogRecord *record, bool isnewroot)
if (GistPageIsLeaf(page) && xlrec.len == 0 && xlrec.data->ntodelete == 0)
GistClearTuplesDeleted(page);
- if ( !GistPageIsLeaf(page) && PageGetMaxOffsetNumber(page) == InvalidOffsetNumber && xldata->blkno == GIST_ROOT_BLKNO )
- /* all links on non-leaf root page was deleted by vacuum full,
- so root page becomes a leaf */
+ if (!GistPageIsLeaf(page) && PageGetMaxOffsetNumber(page) == InvalidOffsetNumber && xldata->blkno == GIST_ROOT_BLKNO)
+
+ /*
+ * all links on non-leaf root page was deleted by vacuum full, so root
+ * page becomes a leaf
+ */
GistPageSetLeaf(page);
GistPageGetOpaque(page)->rightlink = InvalidBlockNumber;
@@ -432,11 +436,11 @@ static void
out_target(StringInfo buf, RelFileNode node, ItemPointerData key)
{
appendStringInfo(buf, "rel %u/%u/%u",
- node.spcNode, node.dbNode, node.relNode);
- if ( ItemPointerIsValid( &key ) )
+ node.spcNode, node.dbNode, node.relNode);
+ if (ItemPointerIsValid(&key))
appendStringInfo(buf, "; tid %u/%u",
- ItemPointerGetBlockNumber(&key),
- ItemPointerGetOffsetNumber(&key));
+ ItemPointerGetBlockNumber(&key),
+ ItemPointerGetOffsetNumber(&key));
}
static void
@@ -450,8 +454,8 @@ static void
out_gistxlogPageDelete(StringInfo buf, gistxlogPageDelete *xlrec)
{
appendStringInfo(buf, "page_delete: rel %u/%u/%u; blkno %u",
- xlrec->node.spcNode, xlrec->node.dbNode, xlrec->node.relNode,
- xlrec->blkno);
+ xlrec->node.spcNode, xlrec->node.dbNode, xlrec->node.relNode,
+ xlrec->blkno);
}
static void
@@ -460,7 +464,7 @@ out_gistxlogPageSplit(StringInfo buf, gistxlogPageSplit *xlrec)
appendStringInfo(buf, "page_split: ");
out_target(buf, xlrec->node, xlrec->key);
appendStringInfo(buf, "; block number %u splits to %d pages",
- xlrec->origblkno, xlrec->npage);
+ xlrec->origblkno, xlrec->npage);
}
void
@@ -486,15 +490,15 @@ gist_desc(StringInfo buf, uint8 xl_info, char *rec)
break;
case XLOG_GIST_CREATE_INDEX:
appendStringInfo(buf, "create_index: rel %u/%u/%u",
- ((RelFileNode *) rec)->spcNode,
- ((RelFileNode *) rec)->dbNode,
- ((RelFileNode *) rec)->relNode);
+ ((RelFileNode *) rec)->spcNode,
+ ((RelFileNode *) rec)->dbNode,
+ ((RelFileNode *) rec)->relNode);
break;
case XLOG_GIST_INSERT_COMPLETE:
appendStringInfo(buf, "complete_insert: rel %u/%u/%u",
- ((gistxlogInsertComplete *) rec)->node.spcNode,
- ((gistxlogInsertComplete *) rec)->node.dbNode,
- ((gistxlogInsertComplete *) rec)->node.relNode);
+ ((gistxlogInsertComplete *) rec)->node.spcNode,
+ ((gistxlogInsertComplete *) rec)->node.dbNode,
+ ((gistxlogInsertComplete *) rec)->node.relNode);
break;
default:
appendStringInfo(buf, "unknown gist op code %u", info);
@@ -547,22 +551,25 @@ gistxlogFindPath(Relation index, gistIncompleteInsert *insert)
elog(ERROR, "lost parent for block %u", insert->origblkno);
}
-static SplitedPageLayout*
-gistMakePageLayout(Buffer *buffers, int nbuffers) {
- SplitedPageLayout *res=NULL, *resptr;
+static SplitedPageLayout *
+gistMakePageLayout(Buffer *buffers, int nbuffers)
+{
+ SplitedPageLayout *res = NULL,
+ *resptr;
- while( nbuffers-- > 0 ) {
- Page page = BufferGetPage( buffers[ nbuffers ] );
- IndexTuple* vec;
- int veclen;
+ while (nbuffers-- > 0)
+ {
+ Page page = BufferGetPage(buffers[nbuffers]);
+ IndexTuple *vec;
+ int veclen;
- resptr = (SplitedPageLayout*)palloc0( sizeof(SplitedPageLayout) );
+ resptr = (SplitedPageLayout *) palloc0(sizeof(SplitedPageLayout));
- resptr->block.blkno = BufferGetBlockNumber( buffers[ nbuffers ] );
- resptr->block.num = PageGetMaxOffsetNumber( page );
+ resptr->block.blkno = BufferGetBlockNumber(buffers[nbuffers]);
+ resptr->block.num = PageGetMaxOffsetNumber(page);
- vec = gistextractpage( page, &veclen );
- resptr->list = gistfillitupvec( vec, veclen, &(resptr->lenlist) );
+ vec = gistextractpage(page, &veclen);
+ resptr->list = gistfillitupvec(vec, veclen, &(resptr->lenlist));
resptr->next = res;
res = resptr;
@@ -580,7 +587,7 @@ gistMakePageLayout(Buffer *buffers, int nbuffers) {
* Note that we assume the index is now in a valid state, except for the
* unfinished insertion. In particular it's safe to invoke gistFindPath();
* there shouldn't be any garbage pages for it to run into.
- *
+ *
* To complete insert we can't use basic insertion algorithm because
* during insertion we can't call user-defined support functions of opclass.
* So, we insert 'invalid' tuples without real key and do it by separate algorithm.
@@ -607,7 +614,7 @@ gistContinueInsert(gistIncompleteInsert *insert)
itup[i] = gist_form_invalid_tuple(insert->blkno[i]);
/*
- * any insertion of itup[] should make LOG message about
+ * any insertion of itup[] should make LOG message about
*/
if (insert->origblkno == GIST_ROOT_BLKNO)
@@ -626,7 +633,7 @@ gistContinueInsert(gistIncompleteInsert *insert)
Buffer *buffers;
Page *pages;
int numbuffer;
- OffsetNumber *todelete;
+ OffsetNumber *todelete;
/* construct path */
gistxlogFindPath(index, insert);
@@ -642,21 +649,22 @@ gistContinueInsert(gistIncompleteInsert *insert)
int j,
k,
pituplen = 0;
- XLogRecData *rdata;
- XLogRecPtr recptr;
- Buffer tempbuffer = InvalidBuffer;
- int ntodelete = 0;
+ XLogRecData *rdata;
+ XLogRecPtr recptr;
+ Buffer tempbuffer = InvalidBuffer;
+ int ntodelete = 0;
numbuffer = 1;
buffers[0] = ReadBuffer(index, insert->path[i]);
LockBuffer(buffers[0], GIST_EXCLUSIVE);
+
/*
* we check buffer, because we restored page earlier
*/
gistcheckpage(index, buffers[0]);
pages[0] = BufferGetPage(buffers[0]);
- Assert( !GistPageIsLeaf(pages[0]) );
+ Assert(!GistPageIsLeaf(pages[0]));
pituplen = PageGetMaxOffsetNumber(pages[0]);
@@ -678,12 +686,12 @@ gistContinueInsert(gistIncompleteInsert *insert)
}
}
- if ( ntodelete == 0 )
- elog(PANIC,"gistContinueInsert: can't find pointer to page(s)");
+ if (ntodelete == 0)
+ elog(PANIC, "gistContinueInsert: can't find pointer to page(s)");
/*
- * we check space with subtraction only first tuple to delete, hope,
- * that wiil be enough space....
+ * we check space with subtraction only first tuple to delete,
+ * hope, that wiil be enough space....
*/
if (gistnospace(pages[0], itup, lenitup, *todelete, 0))
@@ -699,7 +707,7 @@ gistContinueInsert(gistIncompleteInsert *insert)
if (BufferGetBlockNumber(buffers[0]) == GIST_ROOT_BLKNO)
{
- Buffer tmp;
+ Buffer tmp;
/*
* we split root, just copy content from root to new page
@@ -713,44 +721,48 @@ gistContinueInsert(gistIncompleteInsert *insert)
/* fill new page, root will be changed later */
tempbuffer = ReadBuffer(index, P_NEW);
LockBuffer(tempbuffer, GIST_EXCLUSIVE);
- memcpy( BufferGetPage(tempbuffer), pages[0], BufferGetPageSize(tempbuffer) );
+ memcpy(BufferGetPage(tempbuffer), pages[0], BufferGetPageSize(tempbuffer));
/* swap buffers[0] (was root) and temp buffer */
tmp = buffers[0];
buffers[0] = tempbuffer;
- tempbuffer = tmp; /* now in tempbuffer GIST_ROOT_BLKNO, it is still unchanged */
+ tempbuffer = tmp; /* now in tempbuffer GIST_ROOT_BLKNO,
+ * it is still unchanged */
pages[0] = BufferGetPage(buffers[0]);
}
START_CRIT_SECTION();
- for(j=0;j<ntodelete;j++)
+ for (j = 0; j < ntodelete; j++)
PageIndexTupleDelete(pages[0], todelete[j]);
rdata = formSplitRdata(index->rd_node, insert->path[i],
- false, &(insert->key),
- gistMakePageLayout( buffers, numbuffer ) );
+ false, &(insert->key),
+ gistMakePageLayout(buffers, numbuffer));
- } else {
+ }
+ else
+ {
START_CRIT_SECTION();
- for(j=0;j<ntodelete;j++)
+ for (j = 0; j < ntodelete; j++)
PageIndexTupleDelete(pages[0], todelete[j]);
gistfillbuffer(index, pages[0], itup, lenitup, InvalidOffsetNumber);
- rdata = formUpdateRdata(index->rd_node, buffers[0],
- todelete, ntodelete,
- itup, lenitup, &(insert->key));
+ rdata = formUpdateRdata(index->rd_node, buffers[0],
+ todelete, ntodelete,
+ itup, lenitup, &(insert->key));
}
- /*
- * use insert->key as mark for completion of insert (form*Rdata() above)
- * for following possible replays
+ /*
+ * use insert->key as mark for completion of insert (form*Rdata()
+ * above) for following possible replays
*/
/* write pages, we should mark it dirty befor XLogInsert() */
- for (j = 0; j < numbuffer; j++) {
+ for (j = 0; j < numbuffer; j++)
+ {
GistPageGetOpaque(pages[j])->rightlink = InvalidBlockNumber;
MarkBufferDirty(buffers[j]);
}
@@ -764,12 +776,14 @@ gistContinueInsert(gistIncompleteInsert *insert)
END_CRIT_SECTION();
lenitup = numbuffer;
- for (j = 0; j < numbuffer; j++) {
+ for (j = 0; j < numbuffer; j++)
+ {
itup[j] = gist_form_invalid_tuple(BufferGetBlockNumber(buffers[j]));
UnlockReleaseBuffer(buffers[j]);
}
- if ( tempbuffer != InvalidBuffer ) {
+ if (tempbuffer != InvalidBuffer)
+ {
/*
* it was a root split, so fill it by new values
*/
@@ -780,9 +794,9 @@ gistContinueInsert(gistIncompleteInsert *insert)
}
ereport(LOG,
- (errmsg("index %u/%u/%u needs VACUUM FULL or REINDEX to finish crash recovery",
+ (errmsg("index %u/%u/%u needs VACUUM FULL or REINDEX to finish crash recovery",
insert->node.spcNode, insert->node.dbNode, insert->node.relNode),
- errdetail("Incomplete insertion detected during crash replay.")));
+ errdetail("Incomplete insertion detected during crash replay.")));
}
void
diff --git a/src/backend/access/hash/hashfunc.c b/src/backend/access/hash/hashfunc.c
index 3b05d11ee1..1e2d779a14 100644
--- a/src/backend/access/hash/hashfunc.c
+++ b/src/backend/access/hash/hashfunc.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/hash/hashfunc.c,v 1.47 2006/03/05 15:58:20 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/hash/hashfunc.c,v 1.48 2006/10/04 00:29:48 momjian Exp $
*
* NOTES
* These functions are stored in pg_amproc. For each operator class
@@ -138,9 +138,9 @@ hashtext(PG_FUNCTION_ARGS)
Datum result;
/*
- * Note: this is currently identical in behavior to hashvarlena, but
- * keep it as a separate function in case we someday want to do something
- * different in non-C locales. (See also hashbpchar, if so.)
+ * Note: this is currently identical in behavior to hashvarlena, but keep
+ * it as a separate function in case we someday want to do something
+ * different in non-C locales. (See also hashbpchar, if so.)
*/
result = hash_any((unsigned char *) VARDATA(key),
VARSIZE(key) - VARHDRSZ);
diff --git a/src/backend/access/hash/hashpage.c b/src/backend/access/hash/hashpage.c
index f5a1fcfd81..696d4bf616 100644
--- a/src/backend/access/hash/hashpage.c
+++ b/src/backend/access/hash/hashpage.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/hash/hashpage.c,v 1.59 2006/07/03 22:45:36 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/hash/hashpage.c,v 1.60 2006/10/04 00:29:48 momjian Exp $
*
* NOTES
* Postgres hash pages look like ordinary relation pages. The opaque
@@ -224,7 +224,7 @@ _hash_metapinit(Relation rel)
/*
* Determine the target fill factor (in tuples per bucket) for this index.
* The idea is to make the fill factor correspond to pages about as full
- * as the user-settable fillfactor parameter says. We can compute it
+ * as the user-settable fillfactor parameter says. We can compute it
* exactly if the index datatype is fixed-width, but for var-width there's
* some guessing involved.
*/
diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index 759f0b1f13..57acaf2bb8 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.219 2006/08/18 16:09:08 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.220 2006/10/04 00:29:48 momjian Exp $
*
*
* INTERFACE ROUTINES
@@ -133,9 +133,9 @@ heapgetpage(HeapScanDesc scan, BlockNumber page)
snapshot = scan->rs_snapshot;
/*
- * We must hold share lock on the buffer content while examining
- * tuple visibility. Afterwards, however, the tuples we have found
- * to be visible are guaranteed good as long as we hold the buffer pin.
+ * We must hold share lock on the buffer content while examining tuple
+ * visibility. Afterwards, however, the tuples we have found to be
+ * visible are guaranteed good as long as we hold the buffer pin.
*/
LockBuffer(buffer, BUFFER_LOCK_SHARE);
@@ -223,7 +223,7 @@ heapgettup(HeapScanDesc scan,
tuple->t_data = NULL;
return;
}
- page = 0; /* first page */
+ page = 0; /* first page */
heapgetpage(scan, page);
lineoff = FirstOffsetNumber; /* first offnum */
scan->rs_inited = true;
@@ -231,8 +231,8 @@ heapgettup(HeapScanDesc scan,
else
{
/* continue from previously returned page/tuple */
- page = scan->rs_cblock; /* current page */
- lineoff = /* next offnum */
+ page = scan->rs_cblock; /* current page */
+ lineoff = /* next offnum */
OffsetNumberNext(ItemPointerGetOffsetNumber(&(tuple->t_self)));
}
@@ -263,7 +263,7 @@ heapgettup(HeapScanDesc scan,
else
{
/* continue from previously returned page/tuple */
- page = scan->rs_cblock; /* current page */
+ page = scan->rs_cblock; /* current page */
}
LockBuffer(scan->rs_cbuf, BUFFER_LOCK_SHARE);
@@ -273,12 +273,12 @@ heapgettup(HeapScanDesc scan,
if (!scan->rs_inited)
{
- lineoff = lines; /* final offnum */
+ lineoff = lines; /* final offnum */
scan->rs_inited = true;
}
else
{
- lineoff = /* previous offnum */
+ lineoff = /* previous offnum */
OffsetNumberPrev(ItemPointerGetOffsetNumber(&(tuple->t_self)));
}
/* page and lineoff now reference the physically previous tid */
@@ -450,7 +450,7 @@ heapgettup_pagemode(HeapScanDesc scan,
tuple->t_data = NULL;
return;
}
- page = 0; /* first page */
+ page = 0; /* first page */
heapgetpage(scan, page);
lineindex = 0;
scan->rs_inited = true;
@@ -458,7 +458,7 @@ heapgettup_pagemode(HeapScanDesc scan,
else
{
/* continue from previously returned page/tuple */
- page = scan->rs_cblock; /* current page */
+ page = scan->rs_cblock; /* current page */
lineindex = scan->rs_cindex + 1;
}
@@ -487,7 +487,7 @@ heapgettup_pagemode(HeapScanDesc scan,
else
{
/* continue from previously returned page/tuple */
- page = scan->rs_cblock; /* current page */
+ page = scan->rs_cblock; /* current page */
}
dp = (Page) BufferGetPage(scan->rs_cbuf);
@@ -721,8 +721,8 @@ try_relation_open(Oid relationId, LOCKMODE lockmode)
LockRelationOid(relationId, lockmode);
/*
- * Now that we have the lock, probe to see if the relation really
- * exists or not.
+ * Now that we have the lock, probe to see if the relation really exists
+ * or not.
*/
if (!SearchSysCacheExists(RELOID,
ObjectIdGetDatum(relationId),
@@ -764,7 +764,7 @@ relation_open_nowait(Oid relationId, LOCKMODE lockmode)
if (!ConditionalLockRelationOid(relationId, lockmode))
{
/* try to throw error by name; relation could be deleted... */
- char *relname = get_rel_name(relationId);
+ char *relname = get_rel_name(relationId);
if (relname)
ereport(ERROR,
@@ -774,8 +774,8 @@ relation_open_nowait(Oid relationId, LOCKMODE lockmode)
else
ereport(ERROR,
(errcode(ERRCODE_LOCK_NOT_AVAILABLE),
- errmsg("could not obtain lock on relation with OID %u",
- relationId)));
+ errmsg("could not obtain lock on relation with OID %u",
+ relationId)));
}
}
@@ -801,8 +801,8 @@ relation_openrv(const RangeVar *relation, LOCKMODE lockmode)
/*
* Check for shared-cache-inval messages before trying to open the
- * relation. This is needed to cover the case where the name identifies
- * a rel that has been dropped and recreated since the start of our
+ * relation. This is needed to cover the case where the name identifies a
+ * rel that has been dropped and recreated since the start of our
* transaction: if we don't flush the old syscache entry then we'll latch
* onto that entry and suffer an error when we do RelationIdGetRelation.
* Note that relation_open does not need to do this, since a relation's
@@ -2723,7 +2723,7 @@ l3:
* heap_inplace_update - update a tuple "in place" (ie, overwrite it)
*
* Overwriting violates both MVCC and transactional safety, so the uses
- * of this function in Postgres are extremely limited. Nonetheless we
+ * of this function in Postgres are extremely limited. Nonetheless we
* find some places to use it.
*
* The tuple cannot change size, and therefore it's reasonable to assume
@@ -2840,6 +2840,7 @@ heap_restrpos(HeapScanDesc scan)
if (!ItemPointerIsValid(&scan->rs_mctid))
{
scan->rs_ctup.t_data = NULL;
+
/*
* unpin scan buffers
*/
@@ -2852,7 +2853,7 @@ heap_restrpos(HeapScanDesc scan)
else
{
/*
- * If we reached end of scan, rs_inited will now be false. We must
+ * If we reached end of scan, rs_inited will now be false. We must
* reset it to true to keep heapgettup from doing the wrong thing.
*/
scan->rs_inited = true;
@@ -2862,13 +2863,13 @@ heap_restrpos(HeapScanDesc scan)
scan->rs_cindex = scan->rs_mindex;
heapgettup_pagemode(scan,
NoMovementScanDirection,
- 0, /* needn't recheck scan keys */
+ 0, /* needn't recheck scan keys */
NULL);
}
else
heapgettup(scan,
NoMovementScanDirection,
- 0, /* needn't recheck scan keys */
+ 0, /* needn't recheck scan keys */
NULL);
}
}
@@ -2920,7 +2921,7 @@ log_heap_clean(Relation reln, Buffer buffer, OffsetNumber *unused, int uncnt)
}
/*
- * Perform XLogInsert for a heap-update operation. Caller must already
+ * Perform XLogInsert for a heap-update operation. Caller must already
* have modified the buffer(s) and marked them dirty.
*/
static XLogRecPtr
@@ -3173,8 +3174,8 @@ heap_xlog_insert(XLogRecPtr lsn, XLogRecord *record)
if (record->xl_info & XLOG_HEAP_INIT_PAGE)
{
buffer = XLogReadBuffer(reln,
- ItemPointerGetBlockNumber(&(xlrec->target.tid)),
- true);
+ ItemPointerGetBlockNumber(&(xlrec->target.tid)),
+ true);
Assert(BufferIsValid(buffer));
page = (Page) BufferGetPage(buffer);
@@ -3183,13 +3184,13 @@ heap_xlog_insert(XLogRecPtr lsn, XLogRecord *record)
else
{
buffer = XLogReadBuffer(reln,
- ItemPointerGetBlockNumber(&(xlrec->target.tid)),
- false);
+ ItemPointerGetBlockNumber(&(xlrec->target.tid)),
+ false);
if (!BufferIsValid(buffer))
return;
page = (Page) BufferGetPage(buffer);
- if (XLByteLE(lsn, PageGetLSN(page))) /* changes are applied */
+ if (XLByteLE(lsn, PageGetLSN(page))) /* changes are applied */
{
UnlockReleaseBuffer(buffer);
return;
@@ -3308,6 +3309,7 @@ heap_xlog_update(XLogRecPtr lsn, XLogRecord *record, bool move)
/* Set forward chain link in t_ctid */
htup->t_ctid = xlrec->newtid;
}
+
/*
* this test is ugly, but necessary to avoid thinking that insert change
* is already applied
@@ -3345,7 +3347,7 @@ newt:;
return;
page = (Page) BufferGetPage(buffer);
- if (XLByteLE(lsn, PageGetLSN(page))) /* changes are applied */
+ if (XLByteLE(lsn, PageGetLSN(page))) /* changes are applied */
{
UnlockReleaseBuffer(buffer);
return;
@@ -3548,9 +3550,9 @@ static void
out_target(StringInfo buf, xl_heaptid *target)
{
appendStringInfo(buf, "rel %u/%u/%u; tid %u/%u",
- target->node.spcNode, target->node.dbNode, target->node.relNode,
- ItemPointerGetBlockNumber(&(target->tid)),
- ItemPointerGetOffsetNumber(&(target->tid)));
+ target->node.spcNode, target->node.dbNode, target->node.relNode,
+ ItemPointerGetBlockNumber(&(target->tid)),
+ ItemPointerGetOffsetNumber(&(target->tid)));
}
void
@@ -3586,8 +3588,8 @@ heap_desc(StringInfo buf, uint8 xl_info, char *rec)
appendStringInfo(buf, "update: ");
out_target(buf, &(xlrec->target));
appendStringInfo(buf, "; new %u/%u",
- ItemPointerGetBlockNumber(&(xlrec->newtid)),
- ItemPointerGetOffsetNumber(&(xlrec->newtid)));
+ ItemPointerGetBlockNumber(&(xlrec->newtid)),
+ ItemPointerGetOffsetNumber(&(xlrec->newtid)));
}
else if (info == XLOG_HEAP_MOVE)
{
@@ -3599,24 +3601,24 @@ heap_desc(StringInfo buf, uint8 xl_info, char *rec)
appendStringInfo(buf, "move: ");
out_target(buf, &(xlrec->target));
appendStringInfo(buf, "; new %u/%u",
- ItemPointerGetBlockNumber(&(xlrec->newtid)),
- ItemPointerGetOffsetNumber(&(xlrec->newtid)));
+ ItemPointerGetBlockNumber(&(xlrec->newtid)),
+ ItemPointerGetOffsetNumber(&(xlrec->newtid)));
}
else if (info == XLOG_HEAP_CLEAN)
{
xl_heap_clean *xlrec = (xl_heap_clean *) rec;
appendStringInfo(buf, "clean: rel %u/%u/%u; blk %u",
- xlrec->node.spcNode, xlrec->node.dbNode,
- xlrec->node.relNode, xlrec->block);
+ xlrec->node.spcNode, xlrec->node.dbNode,
+ xlrec->node.relNode, xlrec->block);
}
else if (info == XLOG_HEAP_NEWPAGE)
{
xl_heap_newpage *xlrec = (xl_heap_newpage *) rec;
appendStringInfo(buf, "newpage: rel %u/%u/%u; blk %u",
- xlrec->node.spcNode, xlrec->node.dbNode,
- xlrec->node.relNode, xlrec->blkno);
+ xlrec->node.spcNode, xlrec->node.dbNode,
+ xlrec->node.relNode, xlrec->blkno);
}
else if (info == XLOG_HEAP_LOCK)
{
diff --git a/src/backend/access/heap/tuptoaster.c b/src/backend/access/heap/tuptoaster.c
index 31386de167..07c0a52990 100644
--- a/src/backend/access/heap/tuptoaster.c
+++ b/src/backend/access/heap/tuptoaster.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/heap/tuptoaster.c,v 1.64 2006/09/10 23:33:22 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/heap/tuptoaster.c,v 1.65 2006/10/04 00:29:48 momjian Exp $
*
*
* INTERFACE ROUTINES
@@ -1331,7 +1331,7 @@ toast_fetch_datum_slice(varattrib *attr, int32 sliceoffset, int32 length)
VARATT_SIZEP(result) |= VARATT_FLAG_COMPRESSED;
if (length == 0)
- return result; /* Can save a lot of work at this point! */
+ return result; /* Can save a lot of work at this point! */
startchunk = sliceoffset / TOAST_MAX_CHUNK_SIZE;
endchunk = (sliceoffset + length - 1) / TOAST_MAX_CHUNK_SIZE;
diff --git a/src/backend/access/index/genam.c b/src/backend/access/index/genam.c
index 347d2b5365..26758cc197 100644
--- a/src/backend/access/index/genam.c
+++ b/src/backend/access/index/genam.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/index/genam.c,v 1.58 2006/07/31 20:08:59 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/index/genam.c,v 1.59 2006/10/04 00:29:48 momjian Exp $
*
* NOTES
* many of the old access method routines have been turned into
@@ -86,7 +86,7 @@ RelationGetIndexScan(Relation indexRelation,
else
scan->keyData = NULL;
- scan->is_multiscan = false; /* caller may change this */
+ scan->is_multiscan = false; /* caller may change this */
scan->kill_prior_tuple = false;
scan->ignore_killed_tuples = true; /* default setting */
diff --git a/src/backend/access/index/indexam.c b/src/backend/access/index/indexam.c
index 2663876f49..493e9f0ad0 100644
--- a/src/backend/access/index/indexam.c
+++ b/src/backend/access/index/indexam.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/index/indexam.c,v 1.94 2006/07/31 20:08:59 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/index/indexam.c,v 1.95 2006/10/04 00:29:48 momjian Exp $
*
* INTERFACE ROUTINES
* index_open - open an index relation by relation OID
@@ -122,7 +122,7 @@ static IndexScanDesc index_beginscan_internal(Relation indexRelation,
* index_open - open an index relation by relation OID
*
* If lockmode is not "NoLock", the specified kind of lock is
- * obtained on the index. (Generally, NoLock should only be
+ * obtained on the index. (Generally, NoLock should only be
* used if the caller knows it has some appropriate lock on the
* index already.)
*
@@ -209,7 +209,7 @@ index_insert(Relation indexRelation,
* index_getnext on this scan; index_getnext_indexitem will not use the
* heapRelation link (nor the snapshot). However, the caller had better
* be holding some kind of lock on the heap relation in any case, to ensure
- * no one deletes it (or the index) out from under us. Caller must also
+ * no one deletes it (or the index) out from under us. Caller must also
* be holding a lock on the index.
*/
IndexScanDesc
@@ -553,7 +553,7 @@ index_getmulti(IndexScanDesc scan,
*
* callback routine tells whether a given main-heap tuple is
* to be deleted
- *
+ *
* return value is an optional palloc'd struct of statistics
* ----------------
*/
diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index 910d654443..d74f1a336a 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.143 2006/08/25 04:06:46 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.144 2006/10/04 00:29:48 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -252,7 +252,7 @@ _bt_check_unique(Relation rel, IndexTuple itup, Relation heapRel,
*/
htup.t_self = itup->t_tid;
if (heap_fetch(heapRel, SnapshotSelf, &htup, &hbuffer,
- false, NULL))
+ false, NULL))
{
/* Normal case --- it's still live */
ReleaseBuffer(hbuffer);
@@ -355,7 +355,7 @@ _bt_check_unique(Relation rel, IndexTuple itup, Relation heapRel,
* + updates the metapage if a true root or fast root is split.
*
* On entry, we must have the right buffer in which to do the
- * insertion, and the buffer must be pinned and write-locked. On return,
+ * insertion, and the buffer must be pinned and write-locked. On return,
* we will have dropped both the pin and the lock on the buffer.
*
* If 'afteritem' is >0 then the new tuple must be inserted after the
@@ -608,7 +608,7 @@ _bt_insertonpg(Relation rel,
if (!rel->rd_istemp)
{
xl_btree_insert xlrec;
- BlockNumber xldownlink;
+ BlockNumber xldownlink;
xl_btree_metadata xlmeta;
uint8 xlinfo;
XLogRecPtr recptr;
@@ -888,16 +888,17 @@ _bt_split(Relation rel, Buffer buf, OffsetNumber firstright,
sopaque = (BTPageOpaque) PageGetSpecialPointer(spage);
if (sopaque->btpo_prev != ropaque->btpo_prev)
elog(PANIC, "right sibling's left-link doesn't match");
+
/*
* Check to see if we can set the SPLIT_END flag in the right-hand
* split page; this can save some I/O for vacuum since it need not
* proceed to the right sibling. We can set the flag if the right
- * sibling has a different cycleid: that means it could not be part
- * of a group of pages that were all split off from the same ancestor
+ * sibling has a different cycleid: that means it could not be part of
+ * a group of pages that were all split off from the same ancestor
* page. If you're confused, imagine that page A splits to A B and
* then again, yielding A C B, while vacuum is in progress. Tuples
* originally in A could now be in either B or C, hence vacuum must
- * examine both pages. But if D, our right sibling, has a different
+ * examine both pages. But if D, our right sibling, has a different
* cycleid then it could not contain any tuples that were in A when
* the vacuum started.
*/
@@ -911,8 +912,8 @@ _bt_split(Relation rel, Buffer buf, OffsetNumber firstright,
*
* NO EREPORT(ERROR) till right sibling is updated. We can get away with
* not starting the critical section till here because we haven't been
- * scribbling on the original page yet, and we don't care about the
- * new sibling until it's linked into the btree.
+ * scribbling on the original page yet, and we don't care about the new
+ * sibling until it's linked into the btree.
*/
START_CRIT_SECTION();
@@ -947,8 +948,8 @@ _bt_split(Relation rel, Buffer buf, OffsetNumber firstright,
* Direct access to page is not good but faster - we should implement
* some new func in page API. Note we only store the tuples
* themselves, knowing that the item pointers are in the same order
- * and can be reconstructed by scanning the tuples. See comments
- * for _bt_restore_page().
+ * and can be reconstructed by scanning the tuples. See comments for
+ * _bt_restore_page().
*/
xlrec.leftlen = ((PageHeader) leftpage)->pd_special -
((PageHeader) leftpage)->pd_upper;
@@ -1708,17 +1709,17 @@ _bt_isequal(TupleDesc itupdesc, Page page, OffsetNumber offnum,
static void
_bt_vacuum_one_page(Relation rel, Buffer buffer)
{
- OffsetNumber deletable[MaxOffsetNumber];
- int ndeletable = 0;
- OffsetNumber offnum,
- minoff,
- maxoff;
- Page page = BufferGetPage(buffer);
- BTPageOpaque opaque = (BTPageOpaque) PageGetSpecialPointer(page);
+ OffsetNumber deletable[MaxOffsetNumber];
+ int ndeletable = 0;
+ OffsetNumber offnum,
+ minoff,
+ maxoff;
+ Page page = BufferGetPage(buffer);
+ BTPageOpaque opaque = (BTPageOpaque) PageGetSpecialPointer(page);
/*
- * Scan over all items to see which ones need deleted
- * according to LP_DELETE flags.
+ * Scan over all items to see which ones need deleted according to
+ * LP_DELETE flags.
*/
minoff = P_FIRSTDATAKEY(opaque);
maxoff = PageGetMaxOffsetNumber(page);
@@ -1726,7 +1727,7 @@ _bt_vacuum_one_page(Relation rel, Buffer buffer)
offnum <= maxoff;
offnum = OffsetNumberNext(offnum))
{
- ItemId itemId = PageGetItemId(page, offnum);
+ ItemId itemId = PageGetItemId(page, offnum);
if (ItemIdDeleted(itemId))
deletable[ndeletable++] = offnum;
@@ -1734,10 +1735,11 @@ _bt_vacuum_one_page(Relation rel, Buffer buffer)
if (ndeletable > 0)
_bt_delitems(rel, buffer, deletable, ndeletable);
+
/*
* Note: if we didn't find any LP_DELETE items, then the page's
- * BTP_HAS_GARBAGE hint bit is falsely set. We do not bother
- * expending a separate write to clear it, however. We will clear
- * it when we split the page.
+ * BTP_HAS_GARBAGE hint bit is falsely set. We do not bother expending a
+ * separate write to clear it, however. We will clear it when we split
+ * the page.
*/
}
diff --git a/src/backend/access/nbtree/nbtpage.c b/src/backend/access/nbtree/nbtpage.c
index 080e10c88c..def14adf1f 100644
--- a/src/backend/access/nbtree/nbtpage.c
+++ b/src/backend/access/nbtree/nbtpage.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/nbtree/nbtpage.c,v 1.99 2006/07/25 19:13:00 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/nbtree/nbtpage.c,v 1.100 2006/10/04 00:29:49 momjian Exp $
*
* NOTES
* Postgres btree pages look like ordinary relation pages. The opaque
@@ -124,10 +124,10 @@ _bt_getroot(Relation rel, int access)
/*
* Since the cache might be stale, we check the page more carefully
- * here than normal. We *must* check that it's not deleted.
- * If it's not alone on its level, then we reject too --- this
- * may be overly paranoid but better safe than sorry. Note we
- * don't check P_ISROOT, because that's not set in a "fast root".
+ * here than normal. We *must* check that it's not deleted. If it's
+ * not alone on its level, then we reject too --- this may be overly
+ * paranoid but better safe than sorry. Note we don't check P_ISROOT,
+ * because that's not set in a "fast root".
*/
if (!P_IGNORE(rootopaque) &&
rootopaque->btpo.level == rootlevel &&
@@ -662,18 +662,18 @@ _bt_delitems(Relation rel, Buffer buf,
PageIndexMultiDelete(page, itemnos, nitems);
/*
- * We can clear the vacuum cycle ID since this page has certainly
- * been processed by the current vacuum scan.
+ * We can clear the vacuum cycle ID since this page has certainly been
+ * processed by the current vacuum scan.
*/
opaque = (BTPageOpaque) PageGetSpecialPointer(page);
opaque->btpo_cycleid = 0;
/*
* Mark the page as not containing any LP_DELETE items. This is not
- * certainly true (there might be some that have recently been marked,
- * but weren't included in our target-item list), but it will almost
- * always be true and it doesn't seem worth an additional page scan
- * to check it. Remember that BTP_HAS_GARBAGE is only a hint anyway.
+ * certainly true (there might be some that have recently been marked, but
+ * weren't included in our target-item list), but it will almost always be
+ * true and it doesn't seem worth an additional page scan to check it.
+ * Remember that BTP_HAS_GARBAGE is only a hint anyway.
*/
opaque->btpo_flags &= ~BTP_HAS_GARBAGE;
diff --git a/src/backend/access/nbtree/nbtree.c b/src/backend/access/nbtree/nbtree.c
index fa5b162c90..c9a7a8b5b2 100644
--- a/src/backend/access/nbtree/nbtree.c
+++ b/src/backend/access/nbtree/nbtree.c
@@ -12,7 +12,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/nbtree/nbtree.c,v 1.151 2006/09/21 20:31:22 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/nbtree/nbtree.c,v 1.152 2006/10/04 00:29:49 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -55,7 +55,7 @@ typedef struct
BlockNumber *freePages;
int nFreePages; /* number of entries in freePages[] */
int maxFreePages; /* allocated size of freePages[] */
- BlockNumber totFreePages; /* true total # of free pages */
+ BlockNumber totFreePages; /* true total # of free pages */
MemoryContext pagedelcontext;
} BTVacState;
@@ -70,7 +70,7 @@ static void btvacuumscan(IndexVacuumInfo *info, IndexBulkDeleteResult *stats,
IndexBulkDeleteCallback callback, void *callback_state,
BTCycleId cycleid);
static void btvacuumpage(BTVacState *vstate, BlockNumber blkno,
- BlockNumber orig_blkno);
+ BlockNumber orig_blkno);
/*
@@ -109,8 +109,8 @@ btbuild(PG_FUNCTION_ARGS)
buildstate.spool = _bt_spoolinit(index, indexInfo->ii_Unique, false);
/*
- * If building a unique index, put dead tuples in a second spool to
- * keep them out of the uniqueness check.
+ * If building a unique index, put dead tuples in a second spool to keep
+ * them out of the uniqueness check.
*/
if (indexInfo->ii_Unique)
buildstate.spool2 = _bt_spoolinit(index, false, true);
@@ -146,11 +146,11 @@ btbuild(PG_FUNCTION_ARGS)
#endif /* BTREE_BUILD_STATS */
/*
- * If we are reindexing a pre-existing index, it is critical to send out
- * a relcache invalidation SI message to ensure all backends re-read the
- * index metapage. We expect that the caller will ensure that happens
- * (typically as a side effect of updating index stats, but it must
- * happen even if the stats don't change!)
+ * If we are reindexing a pre-existing index, it is critical to send out a
+ * relcache invalidation SI message to ensure all backends re-read the
+ * index metapage. We expect that the caller will ensure that happens
+ * (typically as a side effect of updating index stats, but it must happen
+ * even if the stats don't change!)
*/
/*
@@ -252,11 +252,11 @@ btgettuple(PG_FUNCTION_ARGS)
if (scan->kill_prior_tuple)
{
/*
- * Yes, remember it for later. (We'll deal with all such tuples
+ * Yes, remember it for later. (We'll deal with all such tuples
* at once right before leaving the index page.) The test for
* numKilled overrun is not just paranoia: if the caller reverses
* direction in the indexscan then the same item might get entered
- * multiple times. It's not worth trying to optimize that, so we
+ * multiple times. It's not worth trying to optimize that, so we
* don't detect it, but instead just forget any excess entries.
*/
if (so->killedItems == NULL)
@@ -316,8 +316,8 @@ btgetmulti(PG_FUNCTION_ARGS)
while (ntids < max_tids)
{
/*
- * Advance to next tuple within page. This is the same as the
- * easy case in _bt_next().
+ * Advance to next tuple within page. This is the same as the easy
+ * case in _bt_next().
*/
if (++so->currPos.itemIndex > so->currPos.lastItem)
{
@@ -373,7 +373,7 @@ btrescan(PG_FUNCTION_ARGS)
so->keyData = (ScanKey) palloc(scan->numberOfKeys * sizeof(ScanKeyData));
else
so->keyData = NULL;
- so->killedItems = NULL; /* until needed */
+ so->killedItems = NULL; /* until needed */
so->numKilled = 0;
scan->opaque = so;
}
@@ -461,9 +461,9 @@ btmarkpos(PG_FUNCTION_ARGS)
/*
* Just record the current itemIndex. If we later step to next page
- * before releasing the marked position, _bt_steppage makes a full copy
- * of the currPos struct in markPos. If (as often happens) the mark is
- * moved before we leave the page, we don't have to do that work.
+ * before releasing the marked position, _bt_steppage makes a full copy of
+ * the currPos struct in markPos. If (as often happens) the mark is moved
+ * before we leave the page, we don't have to do that work.
*/
if (BTScanPosIsValid(so->currPos))
so->markItemIndex = so->currPos.itemIndex;
@@ -485,11 +485,11 @@ btrestrpos(PG_FUNCTION_ARGS)
if (so->markItemIndex >= 0)
{
/*
- * The mark position is on the same page we are currently on.
- * Just restore the itemIndex.
+ * The mark position is on the same page we are currently on. Just
+ * restore the itemIndex.
*/
so->currPos.itemIndex = so->markItemIndex;
- }
+ }
else
{
/* we aren't holding any read locks, but gotta drop the pin */
@@ -527,7 +527,7 @@ Datum
btbulkdelete(PG_FUNCTION_ARGS)
{
IndexVacuumInfo *info = (IndexVacuumInfo *) PG_GETARG_POINTER(0);
- IndexBulkDeleteResult * volatile stats = (IndexBulkDeleteResult *) PG_GETARG_POINTER(1);
+ IndexBulkDeleteResult *volatile stats = (IndexBulkDeleteResult *) PG_GETARG_POINTER(1);
IndexBulkDeleteCallback callback = (IndexBulkDeleteCallback) PG_GETARG_POINTER(2);
void *callback_state = (void *) PG_GETARG_POINTER(3);
Relation rel = info->index;
@@ -569,10 +569,10 @@ btvacuumcleanup(PG_FUNCTION_ARGS)
IndexBulkDeleteResult *stats = (IndexBulkDeleteResult *) PG_GETARG_POINTER(1);
/*
- * If btbulkdelete was called, we need not do anything, just return
- * the stats from the latest btbulkdelete call. If it wasn't called,
- * we must still do a pass over the index, to recycle any newly-recyclable
- * pages and to obtain index statistics.
+ * If btbulkdelete was called, we need not do anything, just return the
+ * stats from the latest btbulkdelete call. If it wasn't called, we must
+ * still do a pass over the index, to recycle any newly-recyclable pages
+ * and to obtain index statistics.
*
* Since we aren't going to actually delete any leaf items, there's no
* need to go through all the vacuum-cycle-ID pushups.
@@ -586,8 +586,8 @@ btvacuumcleanup(PG_FUNCTION_ARGS)
/*
* During a non-FULL vacuum it's quite possible for us to be fooled by
* concurrent page splits into double-counting some index tuples, so
- * disbelieve any total that exceeds the underlying heap's count.
- * (We can't check this during btbulkdelete.)
+ * disbelieve any total that exceeds the underlying heap's count. (We
+ * can't check this during btbulkdelete.)
*/
if (!info->vacuum_full)
{
@@ -622,8 +622,8 @@ btvacuumscan(IndexVacuumInfo *info, IndexBulkDeleteResult *stats,
bool needLock;
/*
- * Reset counts that will be incremented during the scan; needed in
- * case of multiple scans during a single VACUUM command
+ * Reset counts that will be incremented during the scan; needed in case
+ * of multiple scans during a single VACUUM command
*/
stats->num_index_tuples = 0;
stats->pages_deleted = 0;
@@ -647,24 +647,24 @@ btvacuumscan(IndexVacuumInfo *info, IndexBulkDeleteResult *stats,
ALLOCSET_DEFAULT_MAXSIZE);
/*
- * The outer loop iterates over all index pages except the metapage,
- * in physical order (we hope the kernel will cooperate in providing
+ * The outer loop iterates over all index pages except the metapage, in
+ * physical order (we hope the kernel will cooperate in providing
* read-ahead for speed). It is critical that we visit all leaf pages,
* including ones added after we start the scan, else we might fail to
* delete some deletable tuples. Hence, we must repeatedly check the
* relation length. We must acquire the relation-extension lock while
* doing so to avoid a race condition: if someone else is extending the
* relation, there is a window where bufmgr/smgr have created a new
- * all-zero page but it hasn't yet been write-locked by _bt_getbuf().
- * If we manage to scan such a page here, we'll improperly assume it can
- * be recycled. Taking the lock synchronizes things enough to prevent a
+ * all-zero page but it hasn't yet been write-locked by _bt_getbuf(). If
+ * we manage to scan such a page here, we'll improperly assume it can be
+ * recycled. Taking the lock synchronizes things enough to prevent a
* problem: either num_pages won't include the new page, or _bt_getbuf
* already has write lock on the buffer and it will be fully initialized
* before we can examine it. (See also vacuumlazy.c, which has the same
- * issue.) Also, we need not worry if a page is added immediately after
+ * issue.) Also, we need not worry if a page is added immediately after
* we look; the page splitting code already has write-lock on the left
- * page before it adds a right page, so we must already have processed
- * any tuples due to be moved into such a page.
+ * page before it adds a right page, so we must already have processed any
+ * tuples due to be moved into such a page.
*
* We can skip locking for new or temp relations, however, since no one
* else could be accessing them.
@@ -771,7 +771,7 @@ btvacuumpage(BTVacState *vstate, BlockNumber blkno, BlockNumber orig_blkno)
void *callback_state = vstate->callback_state;
Relation rel = info->index;
bool delete_now;
- BlockNumber recurse_to;
+ BlockNumber recurse_to;
Buffer buf;
Page page;
BTPageOpaque opaque;
@@ -796,10 +796,10 @@ restart:
_bt_checkpage(rel, buf);
/*
- * If we are recursing, the only case we want to do anything with is
- * a live leaf page having the current vacuum cycle ID. Any other state
- * implies we already saw the page (eg, deleted it as being empty).
- * In particular, we don't want to risk adding it to freePages twice.
+ * If we are recursing, the only case we want to do anything with is a
+ * live leaf page having the current vacuum cycle ID. Any other state
+ * implies we already saw the page (eg, deleted it as being empty). In
+ * particular, we don't want to risk adding it to freePages twice.
*/
if (blkno != orig_blkno)
{
@@ -838,25 +838,24 @@ restart:
OffsetNumber deletable[MaxOffsetNumber];
int ndeletable;
OffsetNumber offnum,
- minoff,
- maxoff;
+ minoff,
+ maxoff;
/*
- * Trade in the initial read lock for a super-exclusive write
- * lock on this page. We must get such a lock on every leaf page
- * over the course of the vacuum scan, whether or not it actually
- * contains any deletable tuples --- see nbtree/README.
+ * Trade in the initial read lock for a super-exclusive write lock on
+ * this page. We must get such a lock on every leaf page over the
+ * course of the vacuum scan, whether or not it actually contains any
+ * deletable tuples --- see nbtree/README.
*/
LockBuffer(buf, BUFFER_LOCK_UNLOCK);
LockBufferForCleanup(buf);
/*
- * Check whether we need to recurse back to earlier pages. What
- * we are concerned about is a page split that happened since we
- * started the vacuum scan. If the split moved some tuples to a
- * lower page then we might have missed 'em. If so, set up for
- * tail recursion. (Must do this before possibly clearing
- * btpo_cycleid below!)
+ * Check whether we need to recurse back to earlier pages. What we
+ * are concerned about is a page split that happened since we started
+ * the vacuum scan. If the split moved some tuples to a lower page
+ * then we might have missed 'em. If so, set up for tail recursion.
+ * (Must do this before possibly clearing btpo_cycleid below!)
*/
if (vstate->cycleid != 0 &&
opaque->btpo_cycleid == vstate->cycleid &&
@@ -866,8 +865,8 @@ restart:
recurse_to = opaque->btpo_next;
/*
- * Scan over all items to see which ones need deleted
- * according to the callback function.
+ * Scan over all items to see which ones need deleted according to the
+ * callback function.
*/
ndeletable = 0;
minoff = P_FIRSTDATAKEY(opaque);
@@ -890,8 +889,8 @@ restart:
}
/*
- * Apply any needed deletes. We issue just one _bt_delitems()
- * call per page, so as to minimize WAL traffic.
+ * Apply any needed deletes. We issue just one _bt_delitems() call
+ * per page, so as to minimize WAL traffic.
*/
if (ndeletable > 0)
{
@@ -908,8 +907,8 @@ restart:
* have any deletions to do. (If we do, _bt_delitems takes care
* of this.) This ensures we won't process the page again.
*
- * We treat this like a hint-bit update because there's no need
- * to WAL-log it.
+ * We treat this like a hint-bit update because there's no need to
+ * WAL-log it.
*/
if (vstate->cycleid != 0 &&
opaque->btpo_cycleid == vstate->cycleid)
@@ -920,10 +919,10 @@ restart:
}
/*
- * If it's now empty, try to delete; else count the live tuples.
- * We don't delete when recursing, though, to avoid putting entries
- * into freePages out-of-order (doesn't seem worth any extra code to
- * handle the case).
+ * If it's now empty, try to delete; else count the live tuples. We
+ * don't delete when recursing, though, to avoid putting entries into
+ * freePages out-of-order (doesn't seem worth any extra code to handle
+ * the case).
*/
if (minoff > maxoff)
delete_now = (blkno == orig_blkno);
@@ -947,13 +946,12 @@ restart:
stats->pages_deleted++;
/*
- * During VACUUM FULL it's okay to recycle deleted pages
- * immediately, since there can be no other transactions scanning
- * the index. Note that we will only recycle the current page and
- * not any parent pages that _bt_pagedel might have recursed to;
- * this seems reasonable in the name of simplicity. (Trying to do
- * otherwise would mean we'd have to sort the list of recyclable
- * pages we're building.)
+ * During VACUUM FULL it's okay to recycle deleted pages immediately,
+ * since there can be no other transactions scanning the index. Note
+ * that we will only recycle the current page and not any parent pages
+ * that _bt_pagedel might have recursed to; this seems reasonable in
+ * the name of simplicity. (Trying to do otherwise would mean we'd
+ * have to sort the list of recyclable pages we're building.)
*/
if (ndel && info->vacuum_full)
{
@@ -969,11 +967,11 @@ restart:
_bt_relbuf(rel, buf);
/*
- * This is really tail recursion, but if the compiler is too stupid
- * to optimize it as such, we'd eat an uncomfortably large amount of
- * stack space per recursion level (due to the deletable[] array).
- * A failure is improbable since the number of levels isn't likely to be
- * large ... but just in case, let's hand-optimize into a loop.
+ * This is really tail recursion, but if the compiler is too stupid to
+ * optimize it as such, we'd eat an uncomfortably large amount of stack
+ * space per recursion level (due to the deletable[] array). A failure is
+ * improbable since the number of levels isn't likely to be large ... but
+ * just in case, let's hand-optimize into a loop.
*/
if (recurse_to != P_NONE)
{
diff --git a/src/backend/access/nbtree/nbtsearch.c b/src/backend/access/nbtree/nbtsearch.c
index 07bc076e49..6d9be1b017 100644
--- a/src/backend/access/nbtree/nbtsearch.c
+++ b/src/backend/access/nbtree/nbtsearch.c
@@ -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.106 2006/08/24 01:18:34 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/nbtree/nbtsearch.c,v 1.107 2006/10/04 00:29:49 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -22,7 +22,7 @@
static bool _bt_readpage(IndexScanDesc scan, ScanDirection dir,
- OffsetNumber offnum);
+ OffsetNumber offnum);
static bool _bt_steppage(IndexScanDesc scan, ScanDirection dir);
static Buffer _bt_walk_left(Relation rel, Buffer buf);
static bool _bt_endpoint(IndexScanDesc scan, ScanDirection dir);
@@ -417,7 +417,7 @@ _bt_compare(Relation rel,
* _bt_first() -- Find the first item in a scan.
*
* We need to be clever about the direction of scan, the search
- * conditions, and the tree ordering. We find the first item (or,
+ * conditions, and the tree ordering. We find the first item (or,
* if backwards scan, the last item) in the tree that satisfies the
* qualifications in the scan key. On success exit, the page containing
* the current index tuple is pinned but not locked, and data about
@@ -604,7 +604,7 @@ _bt_first(IndexScanDesc scan, ScanDirection dir)
{
ScanKey cur = startKeys[i];
- Assert(cur->sk_attno == i+1);
+ Assert(cur->sk_attno == i + 1);
if (cur->sk_flags & SK_ROW_HEADER)
{
@@ -612,16 +612,17 @@ _bt_first(IndexScanDesc scan, ScanDirection dir)
* Row comparison header: look to the first row member instead.
*
* The member scankeys are already in insertion format (ie, they
- * have sk_func = 3-way-comparison function), but we have to
- * watch out for nulls, which _bt_preprocess_keys didn't check.
- * A null in the first row member makes the condition unmatchable,
- * just like qual_ok = false.
+ * have sk_func = 3-way-comparison function), but we have to watch
+ * out for nulls, which _bt_preprocess_keys didn't check. A null
+ * in the first row member makes the condition unmatchable, just
+ * like qual_ok = false.
*/
cur = (ScanKey) DatumGetPointer(cur->sk_argument);
Assert(cur->sk_flags & SK_ROW_MEMBER);
if (cur->sk_flags & SK_ISNULL)
return false;
memcpy(scankeys + i, cur, sizeof(ScanKeyData));
+
/*
* If the row comparison is the last positioning key we accepted,
* try to add additional keys from the lower-order row members.
@@ -833,10 +834,10 @@ _bt_first(IndexScanDesc scan, ScanDirection dir)
*
* The actually desired starting point is either this item or the prior
* one, or in the end-of-page case it's the first item on the next page or
- * the last item on this page. Adjust the starting offset if needed.
- * (If this results in an offset before the first item or after the last
- * one, _bt_readpage will report no items found, and then we'll step to
- * the next page as needed.)
+ * the last item on this page. Adjust the starting offset if needed. (If
+ * this results in an offset before the first item or after the last one,
+ * _bt_readpage will report no items found, and then we'll step to the
+ * next page as needed.)
*/
if (goback)
offnum = OffsetNumberPrev(offnum);
@@ -882,8 +883,8 @@ _bt_next(IndexScanDesc scan, ScanDirection dir)
BTScanOpaque so = (BTScanOpaque) scan->opaque;
/*
- * Advance to next tuple on current page; or if there's no more,
- * try to step to the next page with data.
+ * Advance to next tuple on current page; or if there's no more, try to
+ * step to the next page with data.
*/
if (ScanDirectionIsForward(dir))
{
@@ -954,8 +955,8 @@ _bt_readpage(IndexScanDesc scan, ScanDirection dir, OffsetNumber offnum)
/*
* we must save the page's right-link while scanning it; this tells us
- * where to step right to after we're done with these items. There is
- * no corresponding need for the left-link, since splits always go right.
+ * where to step right to after we're done with these items. There is no
+ * corresponding need for the left-link, since splits always go right.
*/
so->currPos.nextPage = opaque->btpo_next;
@@ -1055,8 +1056,8 @@ _bt_steppage(IndexScanDesc scan, ScanDirection dir)
_bt_killitems(scan, true);
/*
- * Before we modify currPos, make a copy of the page data if there
- * was a mark position that needs it.
+ * Before we modify currPos, make a copy of the page data if there was a
+ * mark position that needs it.
*/
if (so->markItemIndex >= 0)
{
@@ -1112,11 +1113,11 @@ _bt_steppage(IndexScanDesc scan, ScanDirection dir)
so->currPos.moreRight = true;
/*
- * Walk left to the next page with data. This is much more
- * complex than the walk-right case because of the possibility
- * that the page to our left splits while we are in flight to it,
- * plus the possibility that the page we were on gets deleted
- * after we leave it. See nbtree/README for details.
+ * Walk left to the next page with data. This is much more complex
+ * than the walk-right case because of the possibility that the page
+ * to our left splits while we are in flight to it, plus the
+ * possibility that the page we were on gets deleted after we leave
+ * it. See nbtree/README for details.
*/
for (;;)
{
@@ -1136,9 +1137,9 @@ _bt_steppage(IndexScanDesc scan, ScanDirection dir)
return false;
/*
- * Okay, we managed to move left to a non-deleted page.
- * Done if it's not half-dead and contains matching tuples.
- * Else loop back and do it all again.
+ * Okay, we managed to move left to a non-deleted page. Done if
+ * it's not half-dead and contains matching tuples. Else loop back
+ * and do it all again.
*/
page = BufferGetPage(so->currPos.buf);
opaque = (BTPageOpaque) PageGetSpecialPointer(page);
diff --git a/src/backend/access/nbtree/nbtsort.c b/src/backend/access/nbtree/nbtsort.c
index da2b191d5c..4951dca218 100644
--- a/src/backend/access/nbtree/nbtsort.c
+++ b/src/backend/access/nbtree/nbtsort.c
@@ -57,7 +57,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/nbtree/nbtsort.c,v 1.106 2006/07/14 14:52:17 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/nbtree/nbtsort.c,v 1.107 2006/10/04 00:29:49 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -125,7 +125,7 @@ static void _bt_slideleft(Page page);
static void _bt_sortaddtup(Page page, Size itemsize,
IndexTuple itup, OffsetNumber itup_off);
static void _bt_buildadd(BTWriteState *wstate, BTPageState *state,
- IndexTuple itup);
+ IndexTuple itup);
static void _bt_uppershutdown(BTWriteState *wstate, BTPageState *state);
static void _bt_load(BTWriteState *wstate,
BTSpool *btspool, BTSpool *btspool2);
@@ -351,7 +351,7 @@ _bt_pagestate(BTWriteState *wstate, uint32 level)
state->btps_full = (BLCKSZ * (100 - BTREE_NONLEAF_FILLFACTOR) / 100);
else
state->btps_full = RelationGetTargetPageFreeSpace(wstate->index,
- BTREE_DEFAULT_FILLFACTOR);
+ BTREE_DEFAULT_FILLFACTOR);
/* no parent level, yet */
state->btps_next = NULL;
@@ -464,8 +464,8 @@ _bt_buildadd(BTWriteState *wstate, BTPageState *state, IndexTuple itup)
Size itupsz;
/*
- * This is a handy place to check for cancel interrupts during the
- * btree load phase of index creation.
+ * This is a handy place to check for cancel interrupts during the btree
+ * load phase of index creation.
*/
CHECK_FOR_INTERRUPTS();
@@ -499,10 +499,10 @@ _bt_buildadd(BTWriteState *wstate, BTPageState *state, IndexTuple itup)
"or use full text indexing.")));
/*
- * Check to see if page is "full". It's definitely full if the item
- * won't fit. Otherwise, compare to the target freespace derived from
- * the fillfactor. However, we must put at least two items on each
- * page, so disregard fillfactor if we don't have that many.
+ * Check to see if page is "full". It's definitely full if the item won't
+ * fit. Otherwise, compare to the target freespace derived from the
+ * fillfactor. However, we must put at least two items on each page, so
+ * disregard fillfactor if we don't have that many.
*/
if (pgspc < itupsz || (pgspc < state->btps_full && last_off > P_FIRSTKEY))
{
diff --git a/src/backend/access/nbtree/nbtutils.c b/src/backend/access/nbtree/nbtutils.c
index 8b68054112..a562ee6cbd 100644
--- a/src/backend/access/nbtree/nbtutils.c
+++ b/src/backend/access/nbtree/nbtutils.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/nbtree/nbtutils.c,v 1.78 2006/07/25 19:13:00 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/nbtree/nbtutils.c,v 1.79 2006/10/04 00:29:49 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -28,8 +28,8 @@
static void _bt_mark_scankey_required(ScanKey skey);
static bool _bt_check_rowcompare(ScanKey skey,
- IndexTuple tuple, TupleDesc tupdesc,
- ScanDirection dir, bool *continuescan);
+ IndexTuple tuple, TupleDesc tupdesc,
+ ScanDirection dir, bool *continuescan);
/*
@@ -83,7 +83,7 @@ _bt_mkscankey(Relation rel, IndexTuple itup)
* comparison data ultimately used must match the key datatypes.
*
* The result cannot be used with _bt_compare(), unless comparison
- * data is first stored into the key entries. Currently this
+ * data is first stored into the key entries. Currently this
* routine is only called by nbtsort.c and tuplesort.c, which have
* their own comparison routines.
*/
@@ -388,7 +388,7 @@ _bt_preprocess_keys(IndexScanDesc scan)
/*
* Emit the cleaned-up keys into the outkeys[] array, and then
- * mark them if they are required. They are required (possibly
+ * mark them if they are required. They are required (possibly
* only in one direction) if all attrs before this one had "=".
*/
for (j = BTMaxStrategyNumber; --j >= 0;)
@@ -461,7 +461,7 @@ _bt_preprocess_keys(IndexScanDesc scan)
* Mark a scankey as "required to continue the scan".
*
* Depending on the operator type, the key may be required for both scan
- * directions or just one. Also, if the key is a row comparison header,
+ * directions or just one. Also, if the key is a row comparison header,
* we have to mark the appropriate subsidiary ScanKeys as required. In
* such cases, the first subsidiary key is required, but subsequent ones
* are required only as long as they correspond to successive index columns.
@@ -472,12 +472,12 @@ _bt_preprocess_keys(IndexScanDesc scan)
* scribbling on a data structure belonging to the index AM's caller, not on
* our private copy. This should be OK because the marking will not change
* from scan to scan within a query, and so we'd just re-mark the same way
- * anyway on a rescan. Something to keep an eye on though.
+ * anyway on a rescan. Something to keep an eye on though.
*/
static void
_bt_mark_scankey_required(ScanKey skey)
{
- int addflags;
+ int addflags;
switch (skey->sk_strategy)
{
@@ -503,8 +503,8 @@ _bt_mark_scankey_required(ScanKey skey)
if (skey->sk_flags & SK_ROW_HEADER)
{
- ScanKey subkey = (ScanKey) DatumGetPointer(skey->sk_argument);
- AttrNumber attno = skey->sk_attno;
+ ScanKey subkey = (ScanKey) DatumGetPointer(skey->sk_argument);
+ AttrNumber attno = skey->sk_attno;
/* First subkey should be same as the header says */
Assert(subkey->sk_attno == attno);
@@ -558,12 +558,12 @@ _bt_checkkeys(IndexScanDesc scan,
*continuescan = true; /* default assumption */
/*
- * If the scan specifies not to return killed tuples, then we treat
- * a killed tuple as not passing the qual. Most of the time, it's a
- * win to not bother examining the tuple's index keys, but just return
+ * If the scan specifies not to return killed tuples, then we treat a
+ * killed tuple as not passing the qual. Most of the time, it's a win to
+ * not bother examining the tuple's index keys, but just return
* immediately with continuescan = true to proceed to the next tuple.
- * However, if this is the last tuple on the page, we should check
- * the index keys to prevent uselessly advancing to the next page.
+ * However, if this is the last tuple on the page, we should check the
+ * index keys to prevent uselessly advancing to the next page.
*/
if (scan->ignore_killed_tuples && ItemIdDeleted(iid))
{
@@ -580,9 +580,10 @@ _bt_checkkeys(IndexScanDesc scan,
if (offnum > P_FIRSTDATAKEY(opaque))
return false;
}
+
/*
- * OK, we want to check the keys, but we'll return FALSE even
- * if the tuple passes the key tests.
+ * OK, we want to check the keys, but we'll return FALSE even if the
+ * tuple passes the key tests.
*/
tuple_valid = false;
}
@@ -734,10 +735,9 @@ _bt_check_rowcompare(ScanKey skey, IndexTuple tuple, TupleDesc tupdesc,
{
/*
* Unlike the simple-scankey case, this isn't a disallowed case.
- * But it can never match. If all the earlier row comparison
- * columns are required for the scan direction, we can stop
- * the scan, because there can't be another tuple that will
- * succeed.
+ * But it can never match. If all the earlier row comparison
+ * columns are required for the scan direction, we can stop the
+ * scan, because there can't be another tuple that will succeed.
*/
if (subkey != (ScanKey) DatumGetPointer(skey->sk_argument))
subkey--;
@@ -771,7 +771,7 @@ _bt_check_rowcompare(ScanKey skey, IndexTuple tuple, TupleDesc tupdesc,
*/
switch (subkey->sk_strategy)
{
- /* EQ and NE cases aren't allowed here */
+ /* EQ and NE cases aren't allowed here */
case BTLessStrategyNumber:
result = (cmpresult < 0);
break;
@@ -795,8 +795,8 @@ _bt_check_rowcompare(ScanKey skey, IndexTuple tuple, TupleDesc tupdesc,
{
/*
* Tuple fails this qual. If it's a required qual for the current
- * scan direction, then we can conclude no further tuples will
- * pass, either. Note we have to look at the deciding column, not
+ * scan direction, then we can conclude no further tuples will pass,
+ * either. Note we have to look at the deciding column, not
* necessarily the first or last column of the row condition.
*/
if ((subkey->sk_flags & SK_BT_REQFWD) &&
@@ -822,7 +822,7 @@ _bt_check_rowcompare(ScanKey skey, IndexTuple tuple, TupleDesc tupdesc,
* is sufficient for setting LP_DELETE hint bits.
*
* We match items by heap TID before assuming they are the right ones to
- * delete. We cope with cases where items have moved right due to insertions.
+ * delete. We cope with cases where items have moved right due to insertions.
* If an item has moved off the current page due to a split, we'll fail to
* find it and do nothing (this is not an error case --- we assume the item
* will eventually get marked in a future indexscan). Note that because we
@@ -856,9 +856,9 @@ _bt_killitems(IndexScanDesc scan, bool haveLock)
for (i = 0; i < so->numKilled; i++)
{
- int itemIndex = so->killedItems[i];
- BTScanPosItem *kitem = &so->currPos.items[itemIndex];
- OffsetNumber offnum = kitem->indexOffset;
+ int itemIndex = so->killedItems[i];
+ BTScanPosItem *kitem = &so->currPos.items[itemIndex];
+ OffsetNumber offnum = kitem->indexOffset;
Assert(itemIndex >= so->currPos.firstItem &&
itemIndex <= so->currPos.lastItem);
@@ -881,9 +881,9 @@ _bt_killitems(IndexScanDesc scan, bool haveLock)
}
/*
- * Since this can be redone later if needed, it's treated the same
- * as a commit-hint-bit status update for heap tuples: we mark the
- * buffer dirty but don't make a WAL log entry.
+ * Since this can be redone later if needed, it's treated the same as a
+ * commit-hint-bit status update for heap tuples: we mark the buffer dirty
+ * but don't make a WAL log entry.
*
* Whenever we mark anything LP_DELETEd, we also set the page's
* BTP_HAS_GARBAGE flag, which is likewise just a hint.
@@ -898,8 +898,8 @@ _bt_killitems(IndexScanDesc scan, bool haveLock)
LockBuffer(so->currPos.buf, BUFFER_LOCK_UNLOCK);
/*
- * Always reset the scan state, so we don't look for same items
- * on other pages.
+ * Always reset the scan state, so we don't look for same items on other
+ * pages.
*/
so->numKilled = 0;
}
@@ -908,8 +908,8 @@ _bt_killitems(IndexScanDesc scan, bool haveLock)
/*
* The following routines manage a shared-memory area in which we track
* assignment of "vacuum cycle IDs" to currently-active btree vacuuming
- * operations. There is a single counter which increments each time we
- * start a vacuum to assign it a cycle ID. Since multiple vacuums could
+ * operations. There is a single counter which increments each time we
+ * start a vacuum to assign it a cycle ID. Since multiple vacuums could
* be active concurrently, we have to track the cycle ID for each active
* vacuum; this requires at most MaxBackends entries (usually far fewer).
* We assume at most one vacuum can be active for a given index.
@@ -987,7 +987,8 @@ _bt_start_vacuum(Relation rel)
LWLockAcquire(BtreeVacuumLock, LW_EXCLUSIVE);
/* Assign the next cycle ID, being careful to avoid zero */
- do {
+ do
+ {
result = ++(btvacinfo->cycle_ctr);
} while (result == 0);
diff --git a/src/backend/access/nbtree/nbtxlog.c b/src/backend/access/nbtree/nbtxlog.c
index 88962ccfce..e22ce04bbc 100644
--- a/src/backend/access/nbtree/nbtxlog.c
+++ b/src/backend/access/nbtree/nbtxlog.c
@@ -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.37 2006/08/07 16:57:56 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/nbtree/nbtxlog.c,v 1.38 2006/10/04 00:29:49 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -82,7 +82,7 @@ forget_matching_split(RelFileNode node, BlockNumber downlink, bool is_root)
* in correct itemno sequence, but physically the opposite order from the
* original, because we insert them in the opposite of itemno order. This
* does not matter in any current btree code, but it's something to keep an
- * eye on. Is it worth changing just on general principles?
+ * eye on. Is it worth changing just on general principles?
*/
static void
_bt_restore_page(Page page, char *from, int len)
@@ -155,7 +155,7 @@ btree_xlog_insert(bool isleaf, bool ismeta,
char *datapos;
int datalen;
xl_btree_metadata md;
- BlockNumber downlink = 0;
+ BlockNumber downlink = 0;
datapos = (char *) xlrec + SizeOfBtreeInsert;
datalen = record->xl_len - SizeOfBtreeInsert;
@@ -180,7 +180,7 @@ btree_xlog_insert(bool isleaf, bool ismeta,
if (!(record->xl_info & XLR_BKP_BLOCK_1))
{
buffer = XLogReadBuffer(reln,
- ItemPointerGetBlockNumber(&(xlrec->target.tid)),
+ ItemPointerGetBlockNumber(&(xlrec->target.tid)),
false);
if (BufferIsValid(buffer))
{
@@ -193,7 +193,7 @@ btree_xlog_insert(bool isleaf, bool ismeta,
else
{
if (PageAddItem(page, (Item) datapos, datalen,
- ItemPointerGetOffsetNumber(&(xlrec->target.tid)),
+ ItemPointerGetOffsetNumber(&(xlrec->target.tid)),
LP_USED) == InvalidOffsetNumber)
elog(PANIC, "btree_insert_redo: failed to add item");
@@ -225,7 +225,7 @@ btree_xlog_split(bool onleft, bool isroot,
OffsetNumber targetoff;
BlockNumber leftsib;
BlockNumber rightsib;
- BlockNumber downlink = 0;
+ BlockNumber downlink = 0;
Buffer buffer;
Page page;
BTPageOpaque pageop;
@@ -376,8 +376,8 @@ btree_xlog_delete(XLogRecPtr lsn, XLogRecord *record)
}
/*
- * Mark the page as not containing any LP_DELETE items --- see comments
- * in _bt_delitems().
+ * Mark the page as not containing any LP_DELETE items --- see comments in
+ * _bt_delitems().
*/
opaque = (BTPageOpaque) PageGetSpecialPointer(page);
opaque->btpo_flags &= ~BTP_HAS_GARBAGE;
@@ -543,7 +543,7 @@ btree_xlog_newroot(XLogRecPtr lsn, XLogRecord *record)
Buffer buffer;
Page page;
BTPageOpaque pageop;
- BlockNumber downlink = 0;
+ BlockNumber downlink = 0;
reln = XLogOpenRelation(xlrec->node);
buffer = XLogReadBuffer(reln, xlrec->rootblk, true);
@@ -637,9 +637,9 @@ static void
out_target(StringInfo buf, xl_btreetid *target)
{
appendStringInfo(buf, "rel %u/%u/%u; tid %u/%u",
- target->node.spcNode, target->node.dbNode, target->node.relNode,
- ItemPointerGetBlockNumber(&(target->tid)),
- ItemPointerGetOffsetNumber(&(target->tid)));
+ target->node.spcNode, target->node.dbNode, target->node.relNode,
+ ItemPointerGetBlockNumber(&(target->tid)),
+ ItemPointerGetOffsetNumber(&(target->tid)));
}
void
@@ -680,7 +680,7 @@ btree_desc(StringInfo buf, uint8 xl_info, char *rec)
appendStringInfo(buf, "split_l: ");
out_target(buf, &(xlrec->target));
appendStringInfo(buf, "; oth %u; rgh %u",
- xlrec->otherblk, xlrec->rightblk);
+ xlrec->otherblk, xlrec->rightblk);
break;
}
case XLOG_BTREE_SPLIT_R:
@@ -690,7 +690,7 @@ btree_desc(StringInfo buf, uint8 xl_info, char *rec)
appendStringInfo(buf, "split_r: ");
out_target(buf, &(xlrec->target));
appendStringInfo(buf, "; oth %u; rgh %u",
- xlrec->otherblk, xlrec->rightblk);
+ xlrec->otherblk, xlrec->rightblk);
break;
}
case XLOG_BTREE_SPLIT_L_ROOT:
@@ -700,7 +700,7 @@ btree_desc(StringInfo buf, uint8 xl_info, char *rec)
appendStringInfo(buf, "split_l_root: ");
out_target(buf, &(xlrec->target));
appendStringInfo(buf, "; oth %u; rgh %u",
- xlrec->otherblk, xlrec->rightblk);
+ xlrec->otherblk, xlrec->rightblk);
break;
}
case XLOG_BTREE_SPLIT_R_ROOT:
@@ -710,7 +710,7 @@ btree_desc(StringInfo buf, uint8 xl_info, char *rec)
appendStringInfo(buf, "split_r_root: ");
out_target(buf, &(xlrec->target));
appendStringInfo(buf, "; oth %u; rgh %u",
- xlrec->otherblk, xlrec->rightblk);
+ xlrec->otherblk, xlrec->rightblk);
break;
}
case XLOG_BTREE_DELETE:
@@ -718,8 +718,8 @@ btree_desc(StringInfo buf, uint8 xl_info, char *rec)
xl_btree_delete *xlrec = (xl_btree_delete *) rec;
appendStringInfo(buf, "delete: rel %u/%u/%u; blk %u",
- xlrec->node.spcNode, xlrec->node.dbNode,
- xlrec->node.relNode, xlrec->block);
+ xlrec->node.spcNode, xlrec->node.dbNode,
+ xlrec->node.relNode, xlrec->block);
break;
}
case XLOG_BTREE_DELETE_PAGE:
@@ -730,7 +730,7 @@ btree_desc(StringInfo buf, uint8 xl_info, char *rec)
appendStringInfo(buf, "delete_page: ");
out_target(buf, &(xlrec->target));
appendStringInfo(buf, "; dead %u; left %u; right %u",
- xlrec->deadblk, xlrec->leftblk, xlrec->rightblk);
+ xlrec->deadblk, xlrec->leftblk, xlrec->rightblk);
break;
}
case XLOG_BTREE_NEWROOT:
@@ -738,9 +738,9 @@ btree_desc(StringInfo buf, uint8 xl_info, char *rec)
xl_btree_newroot *xlrec = (xl_btree_newroot *) rec;
appendStringInfo(buf, "newroot: rel %u/%u/%u; root %u lev %u",
- xlrec->node.spcNode, xlrec->node.dbNode,
- xlrec->node.relNode,
- xlrec->rootblk, xlrec->level);
+ xlrec->node.spcNode, xlrec->node.dbNode,
+ xlrec->node.relNode,
+ xlrec->rootblk, xlrec->level);
break;
}
default:
diff --git a/src/backend/access/transam/clog.c b/src/backend/access/transam/clog.c
index 0621d3bc60..f57bdefa3a 100644
--- a/src/backend/access/transam/clog.c
+++ b/src/backend/access/transam/clog.c
@@ -24,7 +24,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/backend/access/transam/clog.c,v 1.39 2006/07/13 16:49:12 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/clog.c,v 1.40 2006/10/04 00:29:49 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -414,7 +414,7 @@ clog_redo(XLogRecPtr lsn, XLogRecord *record)
void
clog_desc(StringInfo buf, uint8 xl_info, char *rec)
{
- uint8 info = xl_info & ~XLR_INFO_MASK;
+ uint8 info = xl_info & ~XLR_INFO_MASK;
if (info == CLOG_ZEROPAGE)
{
diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c
index ae5272286a..167d65fd2d 100644
--- a/src/backend/access/transam/multixact.c
+++ b/src/backend/access/transam/multixact.c
@@ -42,7 +42,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/backend/access/transam/multixact.c,v 1.20 2006/07/20 00:46:42 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/multixact.c,v 1.21 2006/10/04 00:29:49 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1493,10 +1493,10 @@ CheckPointMultiXact(void)
/*
* Truncate the SLRU files. This could be done at any time, but
- * checkpoint seems a reasonable place for it. There is one exception:
- * if we are called during xlog recovery, then shared->latest_page_number
- * isn't valid (because StartupMultiXact hasn't been called yet) and
- * so SimpleLruTruncate would get confused. It seems best not to risk
+ * checkpoint seems a reasonable place for it. There is one exception: if
+ * we are called during xlog recovery, then shared->latest_page_number
+ * isn't valid (because StartupMultiXact hasn't been called yet) and so
+ * SimpleLruTruncate would get confused. It seems best not to risk
* removing any data during recovery anyway, so don't truncate.
*/
if (!InRecovery)
@@ -1917,7 +1917,7 @@ multixact_desc(StringInfo buf, uint8 xl_info, char *rec)
int i;
appendStringInfo(buf, "create multixact %u offset %u:",
- xlrec->mid, xlrec->moff);
+ xlrec->mid, xlrec->moff);
for (i = 0; i < xlrec->nxids; i++)
appendStringInfo(buf, " %u", xlrec->xids[i]);
}
diff --git a/src/backend/access/transam/slru.c b/src/backend/access/transam/slru.c
index 7c3884628b..08bb3598ac 100644
--- a/src/backend/access/transam/slru.c
+++ b/src/backend/access/transam/slru.c
@@ -41,7 +41,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/backend/access/transam/slru.c,v 1.38 2006/07/14 14:52:17 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/slru.c,v 1.39 2006/10/04 00:29:49 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -92,8 +92,8 @@
typedef struct SlruFlushData
{
- int num_files; /* # files actually open */
- int fd[MAX_FLUSH_BUFFERS]; /* their FD's */
+ int num_files; /* # files actually open */
+ int fd[MAX_FLUSH_BUFFERS]; /* their FD's */
int segno[MAX_FLUSH_BUFFERS]; /* their log seg#s */
} SlruFlushData;
@@ -113,7 +113,7 @@ typedef struct SlruFlushData
* page_lru_count entries to be "reset" to lower values than they should have,
* in case a process is delayed while it executes this macro. With care in
* SlruSelectLRUPage(), this does little harm, and in any case the absolute
- * worst possible consequence is a nonoptimal choice of page to evict. The
+ * worst possible consequence is a nonoptimal choice of page to evict. The
* gain from allowing concurrent reads of SLRU pages seems worth it.
*/
#define SlruRecentlyUsed(shared, slotno) \
@@ -158,13 +158,13 @@ SimpleLruShmemSize(int nslots)
/* we assume nslots isn't so large as to risk overflow */
sz = MAXALIGN(sizeof(SlruSharedData));
- sz += MAXALIGN(nslots * sizeof(char *)); /* page_buffer[] */
+ sz += MAXALIGN(nslots * sizeof(char *)); /* page_buffer[] */
sz += MAXALIGN(nslots * sizeof(SlruPageStatus)); /* page_status[] */
- sz += MAXALIGN(nslots * sizeof(bool)); /* page_dirty[] */
- sz += MAXALIGN(nslots * sizeof(int)); /* page_number[] */
- sz += MAXALIGN(nslots * sizeof(int)); /* page_lru_count[] */
- sz += MAXALIGN(nslots * sizeof(LWLockId)); /* buffer_locks[] */
-
+ sz += MAXALIGN(nslots * sizeof(bool)); /* page_dirty[] */
+ sz += MAXALIGN(nslots * sizeof(int)); /* page_number[] */
+ sz += MAXALIGN(nslots * sizeof(int)); /* page_lru_count[] */
+ sz += MAXALIGN(nslots * sizeof(LWLockId)); /* buffer_locks[] */
+
return BUFFERALIGN(sz) + BLCKSZ * nslots;
}
@@ -653,9 +653,9 @@ SlruPhysicalWritePage(SlruCtl ctl, int pageno, int slotno, SlruFlush fdata)
* Easiest way to deal with that is to accept references to
* nonexistent files here and in SlruPhysicalReadPage.)
*
- * Note: it is possible for more than one backend to be executing
- * this code simultaneously for different pages of the same file.
- * Hence, don't use O_EXCL or O_TRUNC or anything like that.
+ * Note: it is possible for more than one backend to be executing this
+ * code simultaneously for different pages of the same file. Hence,
+ * don't use O_EXCL or O_TRUNC or anything like that.
*/
SlruFileName(ctl, path, segno);
fd = BasicOpenFile(path, O_RDWR | O_CREAT | PG_BINARY,
@@ -759,22 +759,22 @@ SlruReportIOError(SlruCtl ctl, int pageno, TransactionId xid)
ereport(ERROR,
(errcode_for_file_access(),
errmsg("could not access status of transaction %u", xid),
- errdetail("Could not seek in file \"%s\" to offset %u: %m.",
- path, offset)));
+ errdetail("Could not seek in file \"%s\" to offset %u: %m.",
+ path, offset)));
break;
case SLRU_READ_FAILED:
ereport(ERROR,
(errcode_for_file_access(),
errmsg("could not access status of transaction %u", xid),
- errdetail("Could not read from file \"%s\" at offset %u: %m.",
- path, offset)));
+ errdetail("Could not read from file \"%s\" at offset %u: %m.",
+ path, offset)));
break;
case SLRU_WRITE_FAILED:
ereport(ERROR,
(errcode_for_file_access(),
errmsg("could not access status of transaction %u", xid),
- errdetail("Could not write to file \"%s\" at offset %u: %m.",
- path, offset)));
+ errdetail("Could not write to file \"%s\" at offset %u: %m.",
+ path, offset)));
break;
case SLRU_FSYNC_FAILED:
ereport(ERROR,
diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c
index 6c37d097fc..bd0b9b131e 100644
--- a/src/backend/access/transam/twophase.c
+++ b/src/backend/access/transam/twophase.c
@@ -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.23 2006/10/03 21:21:35 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/twophase.c,v 1.24 2006/10/04 00:29:49 momjian Exp $
*
* NOTES
* Each global transaction is associated with a global transaction
@@ -1250,8 +1250,8 @@ RemoveTwoPhaseFile(TransactionId xid, bool giveWarning)
if (errno != ENOENT || giveWarning)
ereport(WARNING,
(errcode_for_file_access(),
- errmsg("could not remove twophase state file \"%s\": %m",
- path)));
+ errmsg("could not remove twophase state file \"%s\": %m",
+ path)));
}
/*
diff --git a/src/backend/access/transam/varsup.c b/src/backend/access/transam/varsup.c
index 101f065489..04e9840cb5 100644
--- a/src/backend/access/transam/varsup.c
+++ b/src/backend/access/transam/varsup.c
@@ -6,7 +6,7 @@
* Copyright (c) 2000-2006, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/transam/varsup.c,v 1.74 2006/09/26 17:21:39 alvherre Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/varsup.c,v 1.75 2006/10/04 00:29:49 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -133,10 +133,10 @@ GetNewTransactionId(bool isSubXact)
{
/*
* Use volatile pointer to prevent code rearrangement; other backends
- * could be examining my subxids info concurrently, and we don't
- * want them to see an invalid intermediate state, such as
- * incrementing nxids before filling the array entry. Note we are
- * assuming that TransactionId and int fetch/store are atomic.
+ * could be examining my subxids info concurrently, and we don't want
+ * them to see an invalid intermediate state, such as incrementing
+ * nxids before filling the array entry. Note we are assuming that
+ * TransactionId and int fetch/store are atomic.
*/
volatile PGPROC *myproc = MyProc;
@@ -144,7 +144,7 @@ GetNewTransactionId(bool isSubXact)
myproc->xid = xid;
else
{
- int nxids = myproc->subxids.nxids;
+ int nxids = myproc->subxids.nxids;
if (nxids < PGPROC_MAX_CACHED_SUBXIDS)
{
@@ -196,7 +196,7 @@ SetTransactionIdLimit(TransactionId oldest_datminxid,
* The place where we actually get into deep trouble is halfway around
* from the oldest existing XID. (This calculation is probably off by one
* or two counts, because the special XIDs reduce the size of the loop a
- * little bit. But we throw in plenty of slop below, so it doesn't
+ * little bit. But we throw in plenty of slop below, so it doesn't
* matter.)
*/
xidWrapLimit = oldest_datminxid + (MaxTransactionId >> 1);
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c
index 6fda0ce1f9..8e1724989c 100644
--- a/src/backend/access/transam/xact.c
+++ b/src/backend/access/transam/xact.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/transam/xact.c,v 1.226 2006/08/27 19:11:46 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/xact.c,v 1.227 2006/10/04 00:29:49 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1376,12 +1376,12 @@ StartTransaction(void)
XactLockTableInsert(s->transactionId);
- PG_TRACE1 (transaction__start, s->transactionId);
+ PG_TRACE1(transaction__start, s->transactionId);
/*
- * 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).
+ * 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).
*/
xactStartTimestamp = stmtStartTimestamp;
@@ -1521,7 +1521,7 @@ CommitTransaction(void)
LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE);
MyProc->xid = InvalidTransactionId;
MyProc->xmin = InvalidTransactionId;
- MyProc->inVacuum = false; /* must be cleared with xid/xmin */
+ MyProc->inVacuum = false; /* must be cleared with xid/xmin */
/* Clear the subtransaction-XID cache too while holding the lock */
MyProc->subxids.nxids = 0;
@@ -1530,7 +1530,7 @@ CommitTransaction(void)
LWLockRelease(ProcArrayLock);
}
- PG_TRACE1 (transaction__commit, s->transactionId);
+ PG_TRACE1(transaction__commit, s->transactionId);
/*
* This is all post-commit cleanup. Note that if an error is raised here,
@@ -1921,7 +1921,7 @@ AbortTransaction(void)
LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE);
MyProc->xid = InvalidTransactionId;
MyProc->xmin = InvalidTransactionId;
- MyProc->inVacuum = false; /* must be cleared with xid/xmin */
+ MyProc->inVacuum = false; /* must be cleared with xid/xmin */
/* Clear the subtransaction-XID cache too while holding the lock */
MyProc->subxids.nxids = 0;
@@ -1930,7 +1930,7 @@ AbortTransaction(void)
LWLockRelease(ProcArrayLock);
}
- PG_TRACE1 (transaction__abort, s->transactionId);
+ PG_TRACE1(transaction__abort, s->transactionId);
/*
* Post-abort cleanup. See notes in CommitTransaction() concerning
@@ -4206,8 +4206,8 @@ xact_desc_commit(StringInfo buf, xl_xact_commit *xlrec)
int i;
appendStringInfo(buf, "%04u-%02u-%02u %02u:%02u:%02u",
- tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
- tm->tm_hour, tm->tm_min, tm->tm_sec);
+ tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
+ tm->tm_hour, tm->tm_min, tm->tm_sec);
if (xlrec->nrels > 0)
{
appendStringInfo(buf, "; rels:");
@@ -4216,7 +4216,7 @@ xact_desc_commit(StringInfo buf, xl_xact_commit *xlrec)
RelFileNode rnode = xlrec->xnodes[i];
appendStringInfo(buf, " %u/%u/%u",
- rnode.spcNode, rnode.dbNode, rnode.relNode);
+ rnode.spcNode, rnode.dbNode, rnode.relNode);
}
}
if (xlrec->nsubxacts > 0)
@@ -4237,8 +4237,8 @@ xact_desc_abort(StringInfo buf, xl_xact_abort *xlrec)
int i;
appendStringInfo(buf, "%04u-%02u-%02u %02u:%02u:%02u",
- tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
- tm->tm_hour, tm->tm_min, tm->tm_sec);
+ tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
+ tm->tm_hour, tm->tm_min, tm->tm_sec);
if (xlrec->nrels > 0)
{
appendStringInfo(buf, "; rels:");
@@ -4247,7 +4247,7 @@ xact_desc_abort(StringInfo buf, xl_xact_abort *xlrec)
RelFileNode rnode = xlrec->xnodes[i];
appendStringInfo(buf, " %u/%u/%u",
- rnode.spcNode, rnode.dbNode, rnode.relNode);
+ rnode.spcNode, rnode.dbNode, rnode.relNode);
}
}
if (xlrec->nsubxacts > 0)
@@ -4264,7 +4264,7 @@ xact_desc_abort(StringInfo buf, xl_xact_abort *xlrec)
void
xact_desc(StringInfo buf, uint8 xl_info, char *rec)
{
- uint8 info = xl_info & ~XLR_INFO_MASK;
+ uint8 info = xl_info & ~XLR_INFO_MASK;
if (info == XLOG_XACT_COMMIT)
{
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 16fb6b5e5e..7b5780b66d 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.249 2006/08/21 16:16:31 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.250 2006/10/04 00:29:49 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -349,9 +349,9 @@ typedef struct XLogCtlInsert
*/
typedef struct XLogCtlWrite
{
- XLogwrtResult LogwrtResult; /* current value of LogwrtResult */
- int curridx; /* cache index of next block to write */
- time_t lastSegSwitchTime; /* time of last xlog segment switch */
+ XLogwrtResult LogwrtResult; /* current value of LogwrtResult */
+ int curridx; /* cache index of next block to write */
+ time_t lastSegSwitchTime; /* time of last xlog segment switch */
} XLogCtlWrite;
/*
@@ -481,7 +481,7 @@ static bool InstallXLogFileSegment(uint32 *log, uint32 *seg, char *tmppath,
bool use_lock);
static int XLogFileOpen(uint32 log, uint32 seg);
static int XLogFileRead(uint32 log, uint32 seg, int emode);
-static void XLogFileClose(void);
+static void XLogFileClose(void);
static bool RestoreArchivedFile(char *path, const char *xlogfname,
const char *recovername, off_t expectedSize);
static int PreallocXlogFiles(XLogRecPtr endptr);
@@ -506,7 +506,7 @@ static void issue_xlog_fsync(void);
static void xlog_outrec(StringInfo buf, XLogRecord *record);
#endif
static bool read_backup_label(XLogRecPtr *checkPointLoc,
- XLogRecPtr *minRecoveryLoc);
+ XLogRecPtr *minRecoveryLoc);
static void rm_redo_error_callback(void *arg);
@@ -697,9 +697,9 @@ begin:;
/*
* NOTE: We disallow len == 0 because it provides a useful bit of extra
* error checking in ReadRecord. This means that all callers of
- * XLogInsert must supply at least some not-in-a-buffer data. However,
- * we make an exception for XLOG SWITCH records because we don't want
- * them to ever cross a segment boundary.
+ * XLogInsert must supply at least some not-in-a-buffer data. However, we
+ * make an exception for XLOG SWITCH records because we don't want them to
+ * ever cross a segment boundary.
*/
if (len == 0 && !isLogSwitch)
elog(PANIC, "invalid xlog record length %u", len);
@@ -752,8 +752,8 @@ begin:;
* checkpoint, so it's better to be slow in this case and fast otherwise.
*
* If we aren't doing full-page writes then RedoRecPtr doesn't actually
- * affect the contents of the XLOG record, so we'll update our local
- * copy but not force a recomputation.
+ * affect the contents of the XLOG record, so we'll update our local copy
+ * but not force a recomputation.
*/
if (!XLByteEQ(RedoRecPtr, Insert->RedoRecPtr))
{
@@ -782,10 +782,10 @@ begin:;
}
/*
- * Also check to see if forcePageWrites was just turned on; if we
- * weren't already doing full-page writes then go back and recompute.
- * (If it was just turned off, we could recompute the record without
- * full pages, but we choose not to bother.)
+ * Also check to see if forcePageWrites was just turned on; if we weren't
+ * already doing full-page writes then go back and recompute. (If it was
+ * just turned off, we could recompute the record without full pages, but
+ * we choose not to bother.)
*/
if (Insert->forcePageWrites && !doPageWrites)
{
@@ -870,11 +870,11 @@ begin:;
INSERT_RECPTR(RecPtr, Insert, curridx);
/*
- * If the record is an XLOG_SWITCH, and we are exactly at the start
- * of a segment, we need not insert it (and don't want to because
- * we'd like consecutive switch requests to be no-ops). Instead,
- * make sure everything is written and flushed through the end of
- * the prior segment, and return the prior segment's end address.
+ * If the record is an XLOG_SWITCH, and we are exactly at the start of a
+ * segment, we need not insert it (and don't want to because we'd like
+ * consecutive switch requests to be no-ops). Instead, make sure
+ * everything is written and flushed through the end of the prior segment,
+ * and return the prior segment's end address.
*/
if (isLogSwitch &&
(RecPtr.xrecoff % XLogSegSize) == SizeOfXLogLongPHD)
@@ -926,7 +926,7 @@ begin:;
#ifdef WAL_DEBUG
if (XLOG_DEBUG)
{
- StringInfoData buf;
+ StringInfoData buf;
initStringInfo(&buf);
appendStringInfo(&buf, "INSERT @ %X/%X: ",
@@ -1019,8 +1019,8 @@ begin:;
LWLockAcquire(WALWriteLock, LW_EXCLUSIVE);
/*
- * Flush through the end of the page containing XLOG_SWITCH,
- * and perform end-of-segment actions (eg, notifying archiver).
+ * Flush through the end of the page containing XLOG_SWITCH, and
+ * perform end-of-segment actions (eg, notifying archiver).
*/
WriteRqst = XLogCtl->xlblocks[curridx];
FlushRqst.Write = WriteRqst;
@@ -1667,8 +1667,8 @@ XLogWrite(XLogwrtRqst WriteRqst, bool flexible, bool xlog_switch)
* switch.
*
* This is also the right place to notify the Archiver that the
- * segment is ready to copy to archival storage, and to update
- * the timer for archive_timeout.
+ * segment is ready to copy to archival storage, and to update the
+ * timer for archive_timeout.
*/
if (finishing_seg || (xlog_switch && last_iteration))
{
@@ -2300,36 +2300,35 @@ XLogFileClose(void)
Assert(openLogFile >= 0);
/*
- * posix_fadvise is problematic on many platforms: on older x86 Linux
- * it just dumps core, and there are reports of problems on PPC platforms
- * as well. The following is therefore disabled for the time being.
- * We could consider some kind of configure test to see if it's safe to
- * use, but since we lack hard evidence that there's any useful performance
- * gain to be had, spending time on that seems unprofitable for now.
+ * posix_fadvise is problematic on many platforms: on older x86 Linux it
+ * just dumps core, and there are reports of problems on PPC platforms as
+ * well. The following is therefore disabled for the time being. We could
+ * consider some kind of configure test to see if it's safe to use, but
+ * since we lack hard evidence that there's any useful performance gain to
+ * be had, spending time on that seems unprofitable for now.
*/
#ifdef NOT_USED
/*
* WAL segment files will not be re-read in normal operation, so we advise
- * OS to release any cached pages. But do not do so if WAL archiving is
+ * OS to release any cached pages. But do not do so if WAL archiving is
* active, because archiver process could use the cache to read the WAL
* segment.
*
- * While O_DIRECT works for O_SYNC, posix_fadvise() works for fsync()
- * and O_SYNC, and some platforms only have posix_fadvise().
+ * While O_DIRECT works for O_SYNC, posix_fadvise() works for fsync() and
+ * O_SYNC, and some platforms only have posix_fadvise().
*/
#if defined(HAVE_DECL_POSIX_FADVISE) && defined(POSIX_FADV_DONTNEED)
if (!XLogArchivingActive())
posix_fadvise(openLogFile, 0, 0, POSIX_FADV_DONTNEED);
#endif
-
-#endif /* NOT_USED */
+#endif /* NOT_USED */
if (close(openLogFile))
ereport(PANIC,
- (errcode_for_file_access(),
- errmsg("could not close log file %u, segment %u: %m",
- openLogId, openLogSeg)));
+ (errcode_for_file_access(),
+ errmsg("could not close log file %u, segment %u: %m",
+ openLogId, openLogSeg)));
openLogFile = -1;
}
@@ -2978,8 +2977,8 @@ ReadRecord(XLogRecPtr *RecPtr, int emode)
got_record:;
/*
- * xl_len == 0 is bad data for everything except XLOG SWITCH, where
- * it is required.
+ * xl_len == 0 is bad data for everything except XLOG SWITCH, where it is
+ * required.
*/
if (record->xl_rmid == RM_XLOG_ID && record->xl_info == XLOG_SWITCH)
{
@@ -3168,6 +3167,7 @@ got_record:;
EndRecPtr.xrecoff = RecPtr->xrecoff + MAXALIGN(total_len);
ReadRecPtr = *RecPtr;
memcpy(buffer, record, total_len);
+
/*
* Special processing if it's an XLOG SWITCH record
*/
@@ -3177,10 +3177,11 @@ got_record:;
EndRecPtr.xrecoff += XLogSegSize - 1;
EndRecPtr.xrecoff -= EndRecPtr.xrecoff % XLogSegSize;
nextRecord = NULL; /* definitely not on same page */
+
/*
- * Pretend that readBuf contains the last page of the segment.
- * This is just to avoid Assert failure in StartupXLOG if XLOG
- * ends with this segment.
+ * Pretend that readBuf contains the last page of the segment. This is
+ * just to avoid Assert failure in StartupXLOG if XLOG ends with this
+ * segment.
*/
readOff = XLogSegSize - XLOG_BLCKSZ;
}
@@ -3661,7 +3662,7 @@ static void
WriteControlFile(void)
{
int fd;
- char buffer[PG_CONTROL_SIZE]; /* need not be aligned */
+ char buffer[PG_CONTROL_SIZE]; /* need not be aligned */
char *localeptr;
/*
@@ -3846,9 +3847,9 @@ ReadControlFile(void)
if (ControlFile->xlog_blcksz != XLOG_BLCKSZ)
ereport(FATAL,
(errmsg("database files are incompatible with server"),
- errdetail("The database cluster was initialized with XLOG_BLCKSZ %d,"
- " but the server was compiled with XLOG_BLCKSZ %d.",
- ControlFile->xlog_blcksz, XLOG_BLCKSZ),
+ errdetail("The database cluster was initialized with XLOG_BLCKSZ %d,"
+ " but the server was compiled with XLOG_BLCKSZ %d.",
+ ControlFile->xlog_blcksz, XLOG_BLCKSZ),
errhint("It looks like you need to recompile or initdb.")));
if (ControlFile->xlog_seg_size != XLOG_SEG_SIZE)
ereport(FATAL,
@@ -4027,7 +4028,7 @@ XLOGShmemInit(void)
* Do basic initialization of XLogCtl shared data. (StartupXLOG will fill
* in additional info.)
*/
- XLogCtl->XLogCacheByte = (Size) XLOG_BLCKSZ * XLOGbuffers;
+ XLogCtl->XLogCacheByte = (Size) XLOG_BLCKSZ *XLOGbuffers;
XLogCtl->XLogCacheBlck = XLOGbuffers - 1;
XLogCtl->Insert.currpage = (XLogPageHeader) (XLogCtl->pages);
@@ -4649,10 +4650,10 @@ StartupXLOG(void)
" you will have to use the last backup for recovery.")));
else if (ControlFile->state == DB_IN_ARCHIVE_RECOVERY)
ereport(LOG,
- (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 may be corrupted"
- " and you may need to choose an earlier recovery target.")));
+ (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 may be corrupted"
+ " and you may need to choose an earlier recovery target.")));
else if (ControlFile->state == DB_IN_PRODUCTION)
ereport(LOG,
(errmsg("database system was interrupted at %s",
@@ -4812,10 +4813,10 @@ StartupXLOG(void)
int rmid;
/*
- * Update pg_control to show that we are recovering and to show
- * the selected checkpoint as the place we are starting from.
- * We also mark pg_control with any minimum recovery stop point
- * obtained from a backup history file.
+ * Update pg_control to show that we are recovering and to show the
+ * selected checkpoint as the place we are starting from. We also mark
+ * pg_control with any minimum recovery stop point obtained from a
+ * backup history file.
*/
if (InArchiveRecovery)
{
@@ -4839,12 +4840,12 @@ StartupXLOG(void)
UpdateControlFile();
/*
- * If there was a backup label file, it's done its job and the
- * info has now been propagated into pg_control. We must get rid of
- * the label file so that if we crash during recovery, we'll pick up
- * at the latest recovery restartpoint instead of going all the way
- * back to the backup start point. It seems prudent though to just
- * rename the file out of the way rather than delete it completely.
+ * If there was a backup label file, it's done its job and the info
+ * has now been propagated into pg_control. We must get rid of the
+ * label file so that if we crash during recovery, we'll pick up at
+ * the latest recovery restartpoint instead of going all the way back
+ * to the backup start point. It seems prudent though to just rename
+ * the file out of the way rather than delete it completely.
*/
if (haveBackupLabel)
{
@@ -4884,7 +4885,7 @@ StartupXLOG(void)
{
bool recoveryContinue = true;
bool recoveryApply = true;
- ErrorContextCallback errcontext;
+ ErrorContextCallback errcontext;
InRedo = true;
ereport(LOG,
@@ -4899,17 +4900,17 @@ StartupXLOG(void)
#ifdef WAL_DEBUG
if (XLOG_DEBUG)
{
- StringInfoData buf;
+ StringInfoData buf;
initStringInfo(&buf);
appendStringInfo(&buf, "REDO @ %X/%X; LSN %X/%X: ",
- ReadRecPtr.xlogid, ReadRecPtr.xrecoff,
- EndRecPtr.xlogid, EndRecPtr.xrecoff);
+ ReadRecPtr.xlogid, ReadRecPtr.xrecoff,
+ EndRecPtr.xlogid, EndRecPtr.xrecoff);
xlog_outrec(&buf, record);
appendStringInfo(&buf, " - ");
RmgrTable[record->xl_rmid].rm_desc(&buf,
record->xl_info,
- XLogRecGetData(record));
+ XLogRecGetData(record));
elog(LOG, "%s", buf.data);
pfree(buf.data);
}
@@ -5383,9 +5384,9 @@ GetRecentNextXid(void)
void
GetNextXidAndEpoch(TransactionId *xid, uint32 *epoch)
{
- uint32 ckptXidEpoch;
- TransactionId ckptXid;
- TransactionId nextXid;
+ uint32 ckptXidEpoch;
+ TransactionId ckptXid;
+ TransactionId nextXid;
/* Must read checkpoint info first, else have race condition */
{
@@ -5718,7 +5719,7 @@ CheckPointGuts(XLogRecPtr checkPointRedo)
CheckPointCLOG();
CheckPointSUBTRANS();
CheckPointMultiXact();
- FlushBufferPool(); /* performs all required fsyncs */
+ FlushBufferPool(); /* performs all required fsyncs */
/* We deliberately delay 2PC checkpointing as long as possible */
CheckPointTwoPhase(checkPointRedo);
}
@@ -5735,12 +5736,12 @@ CheckPointGuts(XLogRecPtr checkPointRedo)
static void
RecoveryRestartPoint(const CheckPoint *checkPoint)
{
- int elapsed_secs;
- int rmid;
+ int elapsed_secs;
+ int rmid;
/*
- * Do nothing if the elapsed time since the last restartpoint is less
- * than half of checkpoint_timeout. (We use a value less than
+ * Do nothing if the elapsed time since the last restartpoint is less than
+ * half of checkpoint_timeout. (We use a value less than
* checkpoint_timeout so that variations in the timing of checkpoints on
* the master, or speed of transmission of WAL segments to a slave, won't
* make the slave skip a restartpoint once it's synced with the master.)
@@ -5770,9 +5771,9 @@ RecoveryRestartPoint(const CheckPoint *checkPoint)
CheckPointGuts(checkPoint->redo);
/*
- * Update pg_control so that any subsequent crash will restart from
- * this checkpoint. Note: ReadRecPtr gives the XLOG address of the
- * checkpoint record itself.
+ * Update pg_control so that any subsequent crash will restart from this
+ * checkpoint. Note: ReadRecPtr gives the XLOG address of the checkpoint
+ * record itself.
*/
ControlFile->prevCheckPoint = ControlFile->checkPoint;
ControlFile->checkPoint = ReadRecPtr;
@@ -5926,7 +5927,7 @@ xlog_redo(XLogRecPtr lsn, XLogRecord *record)
void
xlog_desc(StringInfo buf, uint8 xl_info, char *rec)
{
- uint8 info = xl_info & ~XLR_INFO_MASK;
+ uint8 info = xl_info & ~XLR_INFO_MASK;
if (info == XLOG_CHECKPOINT_SHUTDOWN ||
info == XLOG_CHECKPOINT_ONLINE)
@@ -5934,15 +5935,15 @@ xlog_desc(StringInfo buf, uint8 xl_info, char *rec)
CheckPoint *checkpoint = (CheckPoint *) rec;
appendStringInfo(buf, "checkpoint: redo %X/%X; undo %X/%X; "
- "tli %u; xid %u/%u; oid %u; multi %u; offset %u; %s",
- checkpoint->redo.xlogid, checkpoint->redo.xrecoff,
- checkpoint->undo.xlogid, checkpoint->undo.xrecoff,
- checkpoint->ThisTimeLineID,
- checkpoint->nextXidEpoch, checkpoint->nextXid,
- checkpoint->nextOid,
- checkpoint->nextMulti,
- checkpoint->nextMultiOffset,
- (info == XLOG_CHECKPOINT_SHUTDOWN) ? "shutdown" : "online");
+ "tli %u; xid %u/%u; oid %u; multi %u; offset %u; %s",
+ checkpoint->redo.xlogid, checkpoint->redo.xrecoff,
+ checkpoint->undo.xlogid, checkpoint->undo.xrecoff,
+ checkpoint->ThisTimeLineID,
+ checkpoint->nextXidEpoch, checkpoint->nextXid,
+ checkpoint->nextOid,
+ checkpoint->nextMulti,
+ checkpoint->nextMultiOffset,
+ (info == XLOG_CHECKPOINT_SHUTDOWN) ? "shutdown" : "online");
}
else if (info == XLOG_NEXTOID)
{
@@ -5973,7 +5974,7 @@ xlog_outrec(StringInfo buf, XLogRecord *record)
for (i = 0; i < XLR_MAX_BKP_BLOCKS; i++)
{
if (record->xl_info & XLR_SET_BKP_BLOCK(i))
- appendStringInfo(buf, "; bkpb%d", i+1);
+ appendStringInfo(buf, "; bkpb%d", i + 1);
}
appendStringInfo(buf, ": %s", RmgrTable[record->xl_rmid].rm_name);
@@ -6142,18 +6143,18 @@ pg_start_backup(PG_FUNCTION_ARGS)
* Mark backup active in shared memory. We must do full-page WAL writes
* during an on-line backup even if not doing so at other times, because
* it's quite possible for the backup dump to obtain a "torn" (partially
- * written) copy of a database page if it reads the page concurrently
- * with our write to the same page. This can be fixed as long as the
- * first write to the page in the WAL sequence is a full-page write.
- * Hence, we turn on forcePageWrites and then force a CHECKPOINT, to
- * ensure there are no dirty pages in shared memory that might get
- * dumped while the backup is in progress without having a corresponding
- * WAL record. (Once the backup is complete, we need not force full-page
- * writes anymore, since we expect that any pages not modified during
- * the backup interval must have been correctly captured by the backup.)
+ * written) copy of a database page if it reads the page concurrently with
+ * our write to the same page. This can be fixed as long as the first
+ * write to the page in the WAL sequence is a full-page write. Hence, we
+ * turn on forcePageWrites and then force a CHECKPOINT, to ensure there
+ * are no dirty pages in shared memory that might get dumped while the
+ * backup is in progress without having a corresponding WAL record. (Once
+ * the backup is complete, we need not force full-page writes anymore,
+ * since we expect that any pages not modified during the backup interval
+ * must have been correctly captured by the backup.)
*
- * We must hold WALInsertLock to change the value of forcePageWrites,
- * to ensure adequate interlocking against XLogInsert().
+ * We must hold WALInsertLock to change the value of forcePageWrites, to
+ * ensure adequate interlocking against XLogInsert().
*/
LWLockAcquire(WALInsertLock, LW_EXCLUSIVE);
if (XLogCtl->Insert.forcePageWrites)
@@ -6171,7 +6172,7 @@ pg_start_backup(PG_FUNCTION_ARGS)
PG_TRY();
{
/*
- * Force a CHECKPOINT. Aside from being necessary to prevent torn
+ * Force a CHECKPOINT. Aside from being necessary to prevent torn
* page problems, this guarantees that two successive backup runs will
* have different checkpoint positions and hence different history
* file names, even if nothing happened in between.
@@ -6303,10 +6304,9 @@ pg_stop_backup(PG_FUNCTION_ARGS)
LWLockRelease(WALInsertLock);
/*
- * Force a switch to a new xlog segment file, so that the backup
- * is valid as soon as archiver moves out the current segment file.
- * We'll report the end address of the XLOG SWITCH record as the backup
- * stopping point.
+ * Force a switch to a new xlog segment file, so that the backup is valid
+ * as soon as archiver moves out the current segment file. We'll report
+ * the end address of the XLOG SWITCH record as the backup stopping point.
*/
stoppoint = RequestXLogSwitch();
@@ -6392,9 +6392,9 @@ pg_stop_backup(PG_FUNCTION_ARGS)
BACKUP_LABEL_FILE)));
/*
- * Clean out any no-longer-needed history files. As a side effect,
- * this will post a .ready file for the newly created history file,
- * notifying the archiver that history file may be archived immediately.
+ * Clean out any no-longer-needed history files. As a side effect, this
+ * will post a .ready file for the newly created history file, notifying
+ * the archiver that history file may be archived immediately.
*/
CleanupBackupHistory();
@@ -6415,7 +6415,7 @@ Datum
pg_switch_xlog(PG_FUNCTION_ARGS)
{
text *result;
- XLogRecPtr switchpoint;
+ XLogRecPtr switchpoint;
char location[MAXFNAMELEN];
if (!superuser())
@@ -6514,17 +6514,17 @@ pg_xlogfile_name_offset(PG_FUNCTION_ARGS)
uint32 xrecoff;
XLogRecPtr locationpoint;
char xlogfilename[MAXFNAMELEN];
- Datum values[2];
- bool isnull[2];
- TupleDesc resultTupleDesc;
- HeapTuple resultHeapTuple;
- Datum result;
+ Datum values[2];
+ bool isnull[2];
+ TupleDesc resultTupleDesc;
+ HeapTuple resultHeapTuple;
+ Datum result;
/*
* Read input and parse
*/
locationstr = DatumGetCString(DirectFunctionCall1(textout,
- PointerGetDatum(location)));
+ PointerGetDatum(location)));
if (sscanf(locationstr, "%X/%X", &uxlogid, &uxrecoff) != 2)
ereport(ERROR,
@@ -6536,8 +6536,8 @@ pg_xlogfile_name_offset(PG_FUNCTION_ARGS)
locationpoint.xrecoff = uxrecoff;
/*
- * Construct a tuple descriptor for the result row. This must match
- * this function's pg_proc entry!
+ * Construct a tuple descriptor for the result row. This must match this
+ * function's pg_proc entry!
*/
resultTupleDesc = CreateTemplateTupleDesc(2, false);
TupleDescInitEntry(resultTupleDesc, (AttrNumber) 1, "file_name",
@@ -6593,7 +6593,7 @@ pg_xlogfile_name(PG_FUNCTION_ARGS)
char xlogfilename[MAXFNAMELEN];
locationstr = DatumGetCString(DirectFunctionCall1(textout,
- PointerGetDatum(location)));
+ PointerGetDatum(location)));
if (sscanf(locationstr, "%X/%X", &uxlogid, &uxrecoff) != 2)
ereport(ERROR,
@@ -6608,7 +6608,7 @@ pg_xlogfile_name(PG_FUNCTION_ARGS)
XLogFileName(xlogfilename, ThisTimeLineID, xlogid, xlogseg);
result = DatumGetTextP(DirectFunctionCall1(textin,
- CStringGetDatum(xlogfilename)));
+ CStringGetDatum(xlogfilename)));
PG_RETURN_TEXT_P(result);
}
@@ -6734,8 +6734,8 @@ read_backup_label(XLogRecPtr *checkPointLoc, XLogRecPtr *minRecoveryLoc)
static void
rm_redo_error_callback(void *arg)
{
- XLogRecord *record = (XLogRecord *) arg;
- StringInfoData buf;
+ XLogRecord *record = (XLogRecord *) arg;
+ StringInfoData buf;
initStringInfo(&buf);
RmgrTable[record->xl_rmid].rm_desc(&buf,
diff --git a/src/backend/access/transam/xlogutils.c b/src/backend/access/transam/xlogutils.c
index d7fb9359de..e1d3b70001 100644
--- a/src/backend/access/transam/xlogutils.c
+++ b/src/backend/access/transam/xlogutils.c
@@ -11,7 +11,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/backend/access/transam/xlogutils.c,v 1.47 2006/07/14 14:52:17 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/xlogutils.c,v 1.48 2006/10/04 00:29:49 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -172,8 +172,8 @@ XLogCheckInvalidPages(void)
hash_seq_init(&status, invalid_page_tab);
/*
- * Our strategy is to emit WARNING messages for all remaining entries
- * and only PANIC after we've dumped all the available info.
+ * Our strategy is to emit WARNING messages for all remaining entries and
+ * only PANIC after we've dumped all the available info.
*/
while ((hentry = (xl_invalid_page *) hash_seq_search(&status)) != NULL)
{
@@ -255,7 +255,7 @@ XLogReadBuffer(Relation reln, BlockNumber blkno, bool init)
if (!init)
{
/* check that page has been initialized */
- Page page = (Page) BufferGetPage(buffer);
+ Page page = (Page) BufferGetPage(buffer);
if (PageIsNew((PageHeader) page))
{
diff --git a/src/backend/bootstrap/bootstrap.c b/src/backend/bootstrap/bootstrap.c
index 06d8a5ca4f..70b9172cd7 100644
--- a/src/backend/bootstrap/bootstrap.c
+++ b/src/backend/bootstrap/bootstrap.c
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/bootstrap/bootstrap.c,v 1.224 2006/08/15 22:36:17 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/bootstrap/bootstrap.c,v 1.225 2006/10/04 00:29:49 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -381,8 +381,8 @@ BootstrapMain(int argc, char *argv[])
/*
* When we are a dummy process, we aren't going to do the full
- * InitPostgres pushups, but there are a couple of things that need
- * to get lit up even in a dummy process.
+ * InitPostgres pushups, but there are a couple of things that need to get
+ * lit up even in a dummy process.
*/
if (IsUnderPostmaster)
{
@@ -421,6 +421,7 @@ BootstrapMain(int argc, char *argv[])
case BS_XLOG_STARTUP:
bootstrap_signals();
StartupXLOG();
+
/*
* These next two functions don't consider themselves critical,
* but we'd best PANIC anyway if they fail.
@@ -1229,7 +1230,7 @@ AddStr(char *str, int strlength, int mderef)
* We postpone actually building the indexes until just before we're
* finished with initialization, however. This is because the indexes
* themselves have catalog entries, and those have to be included in the
- * indexes on those catalogs. Doing it in two phases is the simplest
+ * indexes on those catalogs. Doing it in two phases is the simplest
* way of making sure the indexes have the right contents at the end.
*/
void
diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c
index e74c9b4410..27ca6e011a 100644
--- a/src/backend/catalog/aclchk.c
+++ b/src/backend/catalog/aclchk.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.131 2006/09/05 21:08:35 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.132 2006/10/04 00:29:50 momjian Exp $
*
* NOTES
* See acl.h.
@@ -53,9 +53,9 @@ static List *objectNamesToOids(GrantObjectType objtype, List *objnames);
static AclMode string_to_privilege(const char *privname);
static const char *privilege_to_string(AclMode privilege);
static AclMode restrict_and_check_grant(bool is_grant, AclMode avail_goptions,
- bool all_privs, AclMode privileges,
- Oid objectId, Oid grantorId,
- AclObjectKind objkind, char *objname);
+ bool all_privs, AclMode privileges,
+ Oid objectId, Oid grantorId,
+ AclObjectKind objkind, char *objname);
static AclMode pg_aclmask(AclObjectKind objkind, Oid table_oid, Oid roleid,
AclMode mask, AclMaskHow how);
@@ -156,8 +156,8 @@ restrict_and_check_grant(bool is_grant, AclMode avail_goptions, bool all_privs,
AclMode privileges, Oid objectId, Oid grantorId,
AclObjectKind objkind, char *objname)
{
- AclMode this_privileges;
- AclMode whole_mask;
+ AclMode this_privileges;
+ AclMode whole_mask;
switch (objkind)
{
@@ -189,9 +189,9 @@ restrict_and_check_grant(bool is_grant, AclMode avail_goptions, bool all_privs,
}
/*
- * If we found no grant options, consider whether to issue a hard
- * error. Per spec, having any privilege at all on the object will
- * get you by here.
+ * If we found no grant options, consider whether to issue a hard error.
+ * Per spec, having any privilege at all on the object will get you by
+ * here.
*/
if (avail_goptions == ACL_NO_RIGHTS)
{
@@ -203,11 +203,10 @@ restrict_and_check_grant(bool is_grant, AclMode avail_goptions, bool all_privs,
/*
* Restrict the operation to what we can actually grant or revoke, and
- * issue a warning if appropriate. (For REVOKE this isn't quite what
- * the spec says to do: the spec seems to want a warning only if no
- * privilege bits actually change in the ACL. In practice that
- * behavior seems much too noisy, as well as inconsistent with the
- * GRANT case.)
+ * issue a warning if appropriate. (For REVOKE this isn't quite what the
+ * spec says to do: the spec seems to want a warning only if no privilege
+ * bits actually change in the ACL. In practice that behavior seems much
+ * too noisy, as well as inconsistent with the GRANT case.)
*/
this_privileges = privileges & ACL_OPTION_TO_PRIVS(avail_goptions);
if (is_grant)
@@ -215,18 +214,18 @@ restrict_and_check_grant(bool is_grant, AclMode avail_goptions, bool all_privs,
if (this_privileges == 0)
ereport(WARNING,
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED),
- errmsg("no privileges were granted for \"%s\"", objname)));
+ errmsg("no privileges were granted for \"%s\"", objname)));
else if (!all_privs && this_privileges != privileges)
ereport(WARNING,
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED),
- errmsg("not all privileges were granted for \"%s\"", objname)));
+ errmsg("not all privileges were granted for \"%s\"", objname)));
}
else
{
if (this_privileges == 0)
ereport(WARNING,
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_REVOKED),
- errmsg("no privileges could be revoked for \"%s\"", objname)));
+ errmsg("no privileges could be revoked for \"%s\"", objname)));
else if (!all_privs && this_privileges != privileges)
ereport(WARNING,
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_REVOKED),
@@ -285,11 +284,11 @@ ExecuteGrantStmt(GrantStmt *stmt)
*/
switch (stmt->objtype)
{
- /*
- * Because this might be a sequence, we test both relation
- * and sequence bits, and later do a more limited test
- * when we know the object type.
- */
+ /*
+ * Because this might be a sequence, we test both relation and
+ * sequence bits, and later do a more limited test when we know
+ * the object type.
+ */
case ACL_OBJECT_RELATION:
all_privileges = ACL_ALL_RIGHTS_RELATION | ACL_ALL_RIGHTS_SEQUENCE;
errormsg = _("invalid privilege type %s for relation");
@@ -329,6 +328,7 @@ ExecuteGrantStmt(GrantStmt *stmt)
if (stmt->privileges == NIL)
{
istmt.all_privs = true;
+
/*
* will be turned into ACL_ALL_RIGHTS_* by the internal routines
* depending on the object type
@@ -595,28 +595,28 @@ ExecGrant_Relation(InternalGrant *istmt)
}
else
this_privileges = istmt->privileges;
-
+
/*
- * The GRANT TABLE syntax can be used for sequences and
- * non-sequences, so we have to look at the relkind to
- * determine the supported permissions. The OR of
- * table and sequence permissions were already checked.
+ * The GRANT TABLE syntax can be used for sequences and non-sequences,
+ * so we have to look at the relkind to determine the supported
+ * permissions. The OR of table and sequence permissions were already
+ * checked.
*/
if (istmt->objtype == ACL_OBJECT_RELATION)
{
if (pg_class_tuple->relkind == RELKIND_SEQUENCE)
{
/*
- * For backward compatibility, throw just a warning
- * for invalid sequence permissions when using the
- * non-sequence GRANT syntax is used.
+ * For backward compatibility, throw just a warning for
+ * invalid sequence permissions when using the non-sequence
+ * GRANT syntax is used.
*/
if (this_privileges & ~((AclMode) ACL_ALL_RIGHTS_SEQUENCE))
{
/*
- * Mention the object name because the user needs to
- * know which operations succeeded. This is required
- * because WARNING allows the command to continue.
+ * Mention the object name because the user needs to know
+ * which operations succeeded. This is required because
+ * WARNING allows the command to continue.
*/
ereport(WARNING,
(errcode(ERRCODE_INVALID_GRANT_OPERATION),
@@ -628,15 +628,16 @@ ExecGrant_Relation(InternalGrant *istmt)
else
{
if (this_privileges & ~((AclMode) ACL_ALL_RIGHTS_RELATION))
+
/*
- * USAGE is the only permission supported by sequences
- * but not by non-sequences. Don't mention the object
- * name because we didn't in the combined TABLE |
- * SEQUENCE check.
+ * USAGE is the only permission supported by sequences but
+ * not by non-sequences. Don't mention the object name
+ * because we didn't in the combined TABLE | SEQUENCE
+ * check.
*/
ereport(ERROR,
(errcode(ERRCODE_INVALID_GRANT_OPERATION),
- errmsg("invalid privilege type USAGE for table")));
+ errmsg("invalid privilege type USAGE for table")));
}
}
@@ -660,15 +661,15 @@ ExecGrant_Relation(InternalGrant *istmt)
&grantorId, &avail_goptions);
/*
- * Restrict the privileges to what we can actually grant, and emit
- * the standards-mandated warning and error messages.
+ * Restrict the privileges to what we can actually grant, and emit the
+ * standards-mandated warning and error messages.
*/
this_privileges =
restrict_and_check_grant(istmt->is_grant, avail_goptions,
istmt->all_privs, this_privileges,
relOid, grantorId,
- pg_class_tuple->relkind == RELKIND_SEQUENCE
- ? ACL_KIND_SEQUENCE : ACL_KIND_CLASS,
+ pg_class_tuple->relkind == RELKIND_SEQUENCE
+ ? ACL_KIND_SEQUENCE : ACL_KIND_CLASS,
NameStr(pg_class_tuple->relname));
/*
@@ -777,8 +778,8 @@ ExecGrant_Database(InternalGrant *istmt)
&grantorId, &avail_goptions);
/*
- * Restrict the privileges to what we can actually grant, and emit
- * the standards-mandated warning and error messages.
+ * Restrict the privileges to what we can actually grant, and emit the
+ * standards-mandated warning and error messages.
*/
this_privileges =
restrict_and_check_grant(istmt->is_grant, avail_goptions,
@@ -893,8 +894,8 @@ ExecGrant_Function(InternalGrant *istmt)
&grantorId, &avail_goptions);
/*
- * Restrict the privileges to what we can actually grant, and emit
- * the standards-mandated warning and error messages.
+ * Restrict the privileges to what we can actually grant, and emit the
+ * standards-mandated warning and error messages.
*/
this_privileges =
restrict_and_check_grant(istmt->is_grant, avail_goptions,
@@ -1019,8 +1020,8 @@ ExecGrant_Language(InternalGrant *istmt)
&grantorId, &avail_goptions);
/*
- * Restrict the privileges to what we can actually grant, and emit
- * the standards-mandated warning and error messages.
+ * Restrict the privileges to what we can actually grant, and emit the
+ * standards-mandated warning and error messages.
*/
this_privileges =
restrict_and_check_grant(istmt->is_grant, avail_goptions,
@@ -1136,8 +1137,8 @@ ExecGrant_Namespace(InternalGrant *istmt)
&grantorId, &avail_goptions);
/*
- * Restrict the privileges to what we can actually grant, and emit
- * the standards-mandated warning and error messages.
+ * Restrict the privileges to what we can actually grant, and emit the
+ * standards-mandated warning and error messages.
*/
this_privileges =
restrict_and_check_grant(istmt->is_grant, avail_goptions,
@@ -1259,8 +1260,8 @@ ExecGrant_Tablespace(InternalGrant *istmt)
&grantorId, &avail_goptions);
/*
- * Restrict the privileges to what we can actually grant, and emit
- * the standards-mandated warning and error messages.
+ * Restrict the privileges to what we can actually grant, and emit the
+ * standards-mandated warning and error messages.
*/
this_privileges =
restrict_and_check_grant(istmt->is_grant, avail_goptions,
@@ -1565,7 +1566,7 @@ pg_class_aclmask(Oid table_oid, Oid roleid,
*
* As of 7.4 we have some updatable system views; those shouldn't be
* protected in this way. Assume the view rules can take care of
- * themselves. ACL_USAGE is if we ever have system sequences.
+ * themselves. ACL_USAGE is if we ever have system sequences.
*/
if ((mask & (ACL_INSERT | ACL_UPDATE | ACL_DELETE | ACL_USAGE)) &&
IsSystemClass(classForm) &&
@@ -1602,7 +1603,7 @@ pg_class_aclmask(Oid table_oid, Oid roleid,
{
/* No ACL, so build default ACL */
acl = acldefault(classForm->relkind == RELKIND_SEQUENCE ?
- ACL_OBJECT_SEQUENCE : ACL_OBJECT_RELATION,
+ ACL_OBJECT_SEQUENCE : ACL_OBJECT_RELATION,
ownerId);
aclDatum = (Datum) 0;
}
diff --git a/src/backend/catalog/catalog.c b/src/backend/catalog/catalog.c
index 5d99acafc9..d302f023a9 100644
--- a/src/backend/catalog/catalog.c
+++ b/src/backend/catalog/catalog.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/catalog.c,v 1.67 2006/07/31 20:09:00 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/catalog.c,v 1.68 2006/10/04 00:29:50 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -233,7 +233,7 @@ IsReservedName(const char *name)
*
* Hard-wiring this list is pretty grotty, but we really need it so that
* we can compute the locktag for a relation (and then lock it) without
- * having already read its pg_class entry. If we try to retrieve relisshared
+ * having already read its pg_class entry. If we try to retrieve relisshared
* from pg_class with no pre-existing lock, there is a race condition against
* anyone who is concurrently committing a change to the pg_class entry:
* since we read system catalog entries under SnapshotNow, it's possible
diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c
index 7007e83873..cab4f1006b 100644
--- a/src/backend/catalog/dependency.c
+++ b/src/backend/catalog/dependency.c
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/dependency.c,v 1.59 2006/08/20 21:56:16 alvherre Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/dependency.c,v 1.60 2006/10/04 00:29:50 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -63,6 +63,7 @@ struct ObjectAddresses
int numrefs; /* current number of references */
int maxrefs; /* current size of palloc'd array */
};
+
/* typedef ObjectAddresses appears in dependency.h */
/* for find_expr_references_walker */
@@ -244,8 +245,8 @@ performMultipleDeletions(const ObjectAddresses *objects,
{
ObjectAddresses *implicit;
ObjectAddresses *alreadyDeleted;
- Relation depRel;
- int i;
+ Relation depRel;
+ int i;
implicit = new_object_addresses();
alreadyDeleted = new_object_addresses();
@@ -271,8 +272,8 @@ performMultipleDeletions(const ObjectAddresses *objects,
continue;
/*
- * Add the objects dependent on this one to the global list of implicit
- * objects.
+ * Add the objects dependent on this one to the global list of
+ * implicit objects.
*/
findAutoDeletableObjects(&obj, implicit, depRel, false);
}
@@ -707,8 +708,8 @@ recursiveDeletion(const ObjectAddress *object,
*/
/*
- * Step 3: delete the object itself, and save it to the list of
- * deleted objects if appropiate.
+ * Step 3: delete the object itself, and save it to the list of deleted
+ * objects if appropiate.
*/
doDeletion(object);
if (alreadyDeleted != NULL)
@@ -1284,7 +1285,7 @@ find_expr_references_walker(Node *node,
}
if (IsA(node, RelabelType))
{
- RelabelType *relab = (RelabelType *) node;
+ RelabelType *relab = (RelabelType *) node;
/* since there is no function dependency, need to depend on type */
add_object_address(OCLASS_TYPE, relab->resulttype, 0,
@@ -1300,7 +1301,7 @@ find_expr_references_walker(Node *node,
}
if (IsA(node, RowExpr))
{
- RowExpr *rowexpr = (RowExpr *) node;
+ RowExpr *rowexpr = (RowExpr *) node;
add_object_address(OCLASS_TYPE, rowexpr->row_typeid, 0,
context->addrs);
@@ -1471,7 +1472,7 @@ object_address_comparator(const void *a, const void *b)
ObjectAddresses *
new_object_addresses(void)
{
- ObjectAddresses *addrs;
+ ObjectAddresses *addrs;
addrs = palloc(sizeof(ObjectAddresses));
diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c
index e1f3e194b6..d30556d48c 100644
--- a/src/backend/catalog/heap.c
+++ b/src/backend/catalog/heap.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/heap.c,v 1.312 2006/08/02 01:59:44 joe Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/heap.c,v 1.313 2006/10/04 00:29:50 momjian Exp $
*
*
* INTERFACE ROUTINES
@@ -607,8 +607,8 @@ InsertPgClassTuple(Relation pg_class_desc,
tup = heap_formtuple(RelationGetDescr(pg_class_desc), values, nulls);
/*
- * The new tuple must have the oid already chosen for the rel. Sure
- * would be embarrassing to do this sort of thing in polite company.
+ * The new tuple must have the oid already chosen for the rel. Sure would
+ * be embarrassing to do this sort of thing in polite company.
*/
HeapTupleSetOid(tup, new_rel_oid);
@@ -666,8 +666,8 @@ AddNewRelationTuple(Relation pg_class_desc,
else
{
/*
- * Other relations will not have Xids in them, so set the initial value
- * to InvalidTransactionId.
+ * Other relations will not have Xids in them, so set the initial
+ * value to InvalidTransactionId.
*/
new_rel_reltup->relminxid = InvalidTransactionId;
new_rel_reltup->relvacuumxid = InvalidTransactionId;
@@ -1975,7 +1975,7 @@ RemoveStatistics(Oid relid, AttrNumber attnum)
* with the heap relation to zero tuples.
*
* The routine will truncate and then reconstruct the indexes on
- * the specified relation. Caller must hold exclusive lock on rel.
+ * the specified relation. Caller must hold exclusive lock on rel.
*/
static void
RelationTruncateIndexes(Relation heapRelation)
@@ -2103,7 +2103,7 @@ heap_truncate_check_FKs(List *relations, bool tempTables)
return;
/*
- * Otherwise, must scan pg_constraint. We make one pass with all the
+ * Otherwise, must scan pg_constraint. We make one pass with all the
* relations considered; if this finds nothing, then all is well.
*/
dependents = heap_truncate_find_FKs(oids);
@@ -2119,19 +2119,19 @@ heap_truncate_check_FKs(List *relations, bool tempTables)
*/
foreach(cell, oids)
{
- Oid relid = lfirst_oid(cell);
- ListCell *cell2;
+ Oid relid = lfirst_oid(cell);
+ ListCell *cell2;
dependents = heap_truncate_find_FKs(list_make1_oid(relid));
foreach(cell2, dependents)
{
- Oid relid2 = lfirst_oid(cell2);
+ Oid relid2 = lfirst_oid(cell2);
if (!list_member_oid(oids, relid2))
{
- char *relname = get_rel_name(relid);
- char *relname2 = get_rel_name(relid2);
+ char *relname = get_rel_name(relid);
+ char *relname2 = get_rel_name(relid2);
if (tempTables)
ereport(ERROR,
@@ -2145,9 +2145,9 @@ heap_truncate_check_FKs(List *relations, bool tempTables)
errmsg("cannot truncate a table referenced in a foreign key constraint"),
errdetail("Table \"%s\" references \"%s\".",
relname2, relname),
- errhint("Truncate table \"%s\" at the same time, "
- "or use TRUNCATE ... CASCADE.",
- relname2)));
+ errhint("Truncate table \"%s\" at the same time, "
+ "or use TRUNCATE ... CASCADE.",
+ relname2)));
}
}
}
@@ -2164,7 +2164,7 @@ heap_truncate_check_FKs(List *relations, bool tempTables)
* behavior to change depending on chance locations of rows in pg_constraint.)
*
* Note: caller should already have appropriate lock on all rels mentioned
- * in relationIds. Since adding or dropping an FK requires exclusive lock
+ * in relationIds. Since adding or dropping an FK requires exclusive lock
* on both rels, this ensures that the answer will be stable.
*/
List *
@@ -2176,8 +2176,8 @@ heap_truncate_find_FKs(List *relationIds)
HeapTuple tuple;
/*
- * Must scan pg_constraint. Right now, it is a seqscan because
- * there is no available index on confrelid.
+ * Must scan pg_constraint. Right now, it is a seqscan because there is
+ * no available index on confrelid.
*/
fkeyRel = heap_open(ConstraintRelationId, AccessShareLock);
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index 60a30ce372..290cd27688 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/index.c,v 1.273 2006/08/25 04:06:46 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/index.c,v 1.274 2006/10/04 00:29:50 momjian Exp $
*
*
* INTERFACE ROUTINES
@@ -58,7 +58,9 @@ typedef struct
{
Tuplesortstate *tuplesort; /* for sorting the index TIDs */
/* statistics (for debug purposes only): */
- double htups, itups, tups_inserted;
+ double htups,
+ itups,
+ tups_inserted;
} v_i_state;
/* non-export function prototypes */
@@ -449,7 +451,7 @@ UpdateIndexRelation(Oid indexoid,
* allow_system_table_mods: allow table to be a system catalog
* skip_build: true to skip the index_build() step for the moment; caller
* must do it later (typically via reindex_index())
- * concurrent: if true, do not lock the table against writers. The index
+ * concurrent: if true, do not lock the table against writers. The index
* will be marked "invalid" and the caller must take additional steps
* to fix it up.
*
@@ -486,7 +488,7 @@ index_create(Oid heapRelationId,
* (but not VACUUM).
*/
heapRelation = heap_open(heapRelationId,
- (concurrent ? ShareUpdateExclusiveLock : ShareLock));
+ (concurrent ? ShareUpdateExclusiveLock : ShareLock));
/*
* The index will be in the same namespace as its parent table, and is
@@ -509,8 +511,8 @@ index_create(Oid heapRelationId,
errmsg("user-defined indexes on system catalog tables are not supported")));
/*
- * concurrent index build on a system catalog is unsafe because we tend
- * to release locks before committing in catalogs
+ * concurrent index build on a system catalog is unsafe because we tend to
+ * release locks before committing in catalogs
*/
if (concurrent &&
IsSystemRelation(heapRelation))
@@ -766,8 +768,8 @@ index_create(Oid heapRelationId,
{
/*
* Caller is responsible for filling the index later on. However,
- * we'd better make sure that the heap relation is correctly marked
- * as having an index.
+ * we'd better make sure that the heap relation is correctly marked as
+ * having an index.
*/
index_update_stats(heapRelation,
true,
@@ -932,7 +934,7 @@ BuildIndexInfo(Relation index)
/* other info */
ii->ii_Unique = indexStruct->indisunique;
- ii->ii_Concurrent = false; /* assume normal case */
+ ii->ii_Concurrent = false; /* assume normal case */
return ii;
}
@@ -1018,7 +1020,7 @@ FormIndexDatum(IndexInfo *indexInfo,
* index_update_stats --- update pg_class entry after CREATE INDEX or REINDEX
*
* This routine updates the pg_class row of either an index or its parent
- * relation after CREATE INDEX or REINDEX. Its rather bizarre API is designed
+ * relation after CREATE INDEX or REINDEX. Its rather bizarre API is designed
* to ensure we can do all the necessary work in just one update.
*
* hasindex: set relhasindex to this value
@@ -1031,7 +1033,7 @@ FormIndexDatum(IndexInfo *indexInfo,
*
* NOTE: an important side-effect of this operation is that an SI invalidation
* message is sent out to all backends --- including me --- causing relcache
- * entries to be flushed or updated with the new data. This must happen even
+ * entries to be flushed or updated with the new data. This must happen even
* if we find that no change is needed in the pg_class row. When updating
* a heap entry, this ensures that other backends find out about the new
* index. When updating an index, it's important because some index AMs
@@ -1041,7 +1043,7 @@ static void
index_update_stats(Relation rel, bool hasindex, bool isprimary,
Oid reltoastidxid, double reltuples)
{
- BlockNumber relpages = RelationGetNumberOfBlocks(rel);
+ BlockNumber relpages = RelationGetNumberOfBlocks(rel);
Oid relid = RelationGetRelid(rel);
Relation pg_class;
HeapTuple tuple;
@@ -1054,9 +1056,9 @@ index_update_stats(Relation rel, bool hasindex, bool isprimary,
*
* 1. In bootstrap mode, we have no choice --- UPDATE wouldn't work.
*
- * 2. We could be reindexing pg_class itself, in which case we can't
- * move its pg_class row because CatalogUpdateIndexes might not know
- * about all the indexes yet (see reindex_relation).
+ * 2. We could be reindexing pg_class itself, in which case we can't move
+ * its pg_class row because CatalogUpdateIndexes might not know about all
+ * the indexes yet (see reindex_relation).
*
* 3. Because we execute CREATE INDEX with just share lock on the parent
* rel (to allow concurrent index creations), an ordinary update could
@@ -1069,24 +1071,24 @@ index_update_stats(Relation rel, bool hasindex, bool isprimary,
* 4. Even with just a single CREATE INDEX, there's a risk factor because
* someone else might be trying to open the rel while we commit, and this
* creates a race condition as to whether he will see both or neither of
- * the pg_class row versions as valid. Again, a non-transactional update
+ * the pg_class row versions as valid. Again, a non-transactional update
* avoids the risk. It is indeterminate which state of the row the other
* process will see, but it doesn't matter (if he's only taking
* AccessShareLock, then it's not critical that he see relhasindex true).
*
* It is safe to use a non-transactional update even though our
- * transaction could still fail before committing. Setting relhasindex
+ * transaction could still fail before committing. Setting relhasindex
* true is safe even if there are no indexes (VACUUM will eventually fix
- * it), and of course the relpages and reltuples counts are correct (or
- * at least more so than the old values) regardless.
+ * it), and of course the relpages and reltuples counts are correct (or at
+ * least more so than the old values) regardless.
*/
pg_class = heap_open(RelationRelationId, RowExclusiveLock);
/*
- * Make a copy of the tuple to update. Normally we use the syscache,
- * but we can't rely on that during bootstrap or while reindexing
- * pg_class itself.
+ * Make a copy of the tuple to update. Normally we use the syscache, but
+ * we can't rely on that during bootstrap or while reindexing pg_class
+ * itself.
*/
if (IsBootstrapProcessingMode() ||
ReindexIsProcessingHeap(RelationRelationId))
@@ -1245,7 +1247,7 @@ setNewRelfilenode(Relation relation)
* index_build - invoke access-method-specific index build procedure
*
* On entry, the index's catalog entries are valid, and its physical disk
- * file has been created but is empty. We call the AM-specific build
+ * file has been created but is empty. We call the AM-specific build
* procedure to fill in the index contents. We then update the pg_class
* entries of the index and heap relation as needed, using statistics
* returned by ambuild as well as data passed by the caller.
@@ -1365,22 +1367,21 @@ IndexBuildHeapScan(Relation heapRelation,
estate);
/*
- * Prepare for scan of the base relation. In a normal index build,
- * we use SnapshotAny because we must retrieve all tuples and do our own
- * time qual checks (because we have to index RECENTLY_DEAD tuples).
- * In a concurrent build, we take a regular MVCC snapshot and index
- * whatever's live according to that. During bootstrap we just use
- * SnapshotNow.
+ * Prepare for scan of the base relation. In a normal index build, we use
+ * SnapshotAny because we must retrieve all tuples and do our own time
+ * qual checks (because we have to index RECENTLY_DEAD tuples). In a
+ * concurrent build, we take a regular MVCC snapshot and index whatever's
+ * live according to that. During bootstrap we just use SnapshotNow.
*/
if (IsBootstrapProcessingMode())
{
snapshot = SnapshotNow;
- OldestXmin = InvalidTransactionId; /* not used */
+ OldestXmin = InvalidTransactionId; /* not used */
}
else if (indexInfo->ii_Concurrent)
{
snapshot = CopySnapshot(GetTransactionSnapshot());
- OldestXmin = InvalidTransactionId; /* not used */
+ OldestXmin = InvalidTransactionId; /* not used */
}
else
{
@@ -1391,8 +1392,8 @@ IndexBuildHeapScan(Relation heapRelation,
scan = heap_beginscan(heapRelation, /* relation */
snapshot, /* seeself */
- 0, /* number of keys */
- NULL); /* scan key */
+ 0, /* number of keys */
+ NULL); /* scan key */
reltuples = 0;
@@ -1435,9 +1436,9 @@ IndexBuildHeapScan(Relation heapRelation,
/*
* If tuple is recently deleted then we must index it
* anyway to preserve MVCC semantics. (Pre-existing
- * transactions could try to use the index after we
- * finish building it, and may need to see such tuples.)
- * Exclude it from unique-checking, however.
+ * transactions could try to use the index after we finish
+ * building it, and may need to see such tuples.) Exclude
+ * it from unique-checking, however.
*/
indexIt = true;
tupleIsAlive = false;
@@ -1573,7 +1574,7 @@ IndexBuildHeapScan(Relation heapRelation,
* which is passed to validate_index(). Any tuples that are valid according
* to this snap, but are not in the index, must be added to the index.
* (Any tuples committed live after the snap will be inserted into the
- * index by their originating transaction. Any tuples committed dead before
+ * index by their originating transaction. Any tuples committed dead before
* the snap need not be indexed, because we will wait out all transactions
* that might care about them before we mark the index valid.)
*
@@ -1582,7 +1583,7 @@ IndexBuildHeapScan(Relation heapRelation,
* ever say "delete it". (This should be faster than a plain indexscan;
* also, not all index AMs support full-index indexscan.) Then we sort the
* TIDs, and finally scan the table doing a "merge join" against the TID list
- * to see which tuples are missing from the index. Thus we will ensure that
+ * to see which tuples are missing from the index. Thus we will ensure that
* all tuples valid according to the reference snapshot are in the index.
*
* Building a unique index this way is tricky: we might try to insert a
@@ -1598,7 +1599,7 @@ IndexBuildHeapScan(Relation heapRelation,
* were alive at the time of the reference snapshot are gone; this is
* necessary to be sure there are none left with a serializable snapshot
* older than the reference (and hence possibly able to see tuples we did
- * not index). Then we mark the index valid and commit.
+ * not index). Then we mark the index valid and commit.
*
* Doing two full table scans is a brute-force strategy. We could try to be
* cleverer, eg storing new tuples in a special area of the table (perhaps
@@ -1608,10 +1609,11 @@ IndexBuildHeapScan(Relation heapRelation,
void
validate_index(Oid heapId, Oid indexId, Snapshot snapshot)
{
- Relation heapRelation, indexRelation;
- IndexInfo *indexInfo;
+ Relation heapRelation,
+ indexRelation;
+ IndexInfo *indexInfo;
IndexVacuumInfo ivinfo;
- v_i_state state;
+ v_i_state state;
/* Open and lock the parent heap relation */
heapRelation = heap_open(heapId, ShareUpdateExclusiveLock);
@@ -1619,9 +1621,9 @@ validate_index(Oid heapId, Oid indexId, Snapshot snapshot)
indexRelation = index_open(indexId, RowExclusiveLock);
/*
- * Fetch info needed for index_insert. (You might think this should
- * be passed in from DefineIndex, but its copy is long gone due to
- * having been built in a previous transaction.)
+ * Fetch info needed for index_insert. (You might think this should be
+ * passed in from DefineIndex, but its copy is long gone due to having
+ * been built in a previous transaction.)
*/
indexInfo = BuildIndexInfo(indexRelation);
@@ -1675,7 +1677,7 @@ validate_index(Oid heapId, Oid indexId, Snapshot snapshot)
static bool
validate_index_callback(ItemPointer itemptr, void *opaque)
{
- v_i_state *state = (v_i_state *) opaque;
+ v_i_state *state = (v_i_state *) opaque;
tuplesort_putdatum(state->tuplesort, PointerGetDatum(itemptr), false);
state->itups += 1;
@@ -1703,9 +1705,10 @@ validate_index_heapscan(Relation heapRelation,
TupleTableSlot *slot;
EState *estate;
ExprContext *econtext;
+
/* state variables for the merge */
ItemPointer indexcursor = NULL;
- bool tuplesort_empty = false;
+ bool tuplesort_empty = false;
/*
* sanity checks
@@ -1734,8 +1737,8 @@ validate_index_heapscan(Relation heapRelation,
*/
scan = heap_beginscan(heapRelation, /* relation */
snapshot, /* seeself */
- 0, /* number of keys */
- NULL); /* scan key */
+ 0, /* number of keys */
+ NULL); /* scan key */
/*
* Scan all tuples matching the snapshot.
@@ -1749,15 +1752,15 @@ validate_index_heapscan(Relation heapRelation,
state->htups += 1;
/*
- * "merge" by skipping through the index tuples until we find or
- * pass the current heap tuple.
+ * "merge" by skipping through the index tuples until we find or pass
+ * the current heap tuple.
*/
while (!tuplesort_empty &&
(!indexcursor ||
ItemPointerCompare(indexcursor, heapcursor) < 0))
{
- Datum ts_val;
- bool ts_isnull;
+ Datum ts_val;
+ bool ts_isnull;
if (indexcursor)
pfree(indexcursor);
@@ -1774,7 +1777,7 @@ validate_index_heapscan(Relation heapRelation,
* We've overshot which means this heap tuple is missing from the
* index, so insert it.
*/
- bool check_unique;
+ bool check_unique;
MemoryContextReset(econtext->ecxt_per_tuple_memory);
@@ -1793,7 +1796,7 @@ validate_index_heapscan(Relation heapRelation,
/*
* For the current heap tuple, extract all the attributes we use
- * in this index, and note which are null. This also performs
+ * in this index, and note which are null. This also performs
* evaluation of any expressions needed.
*/
FormIndexDatum(indexInfo,
@@ -1803,11 +1806,11 @@ validate_index_heapscan(Relation heapRelation,
isnull);
/*
- * If the tuple is already committed dead, we still have to
- * put it in the index (because some xacts might be able to
- * see it), but we might as well suppress uniqueness checking.
- * This is just an optimization because the index AM is not
- * supposed to raise a uniqueness failure anyway.
+ * If the tuple is already committed dead, we still have to put it
+ * in the index (because some xacts might be able to see it), but
+ * we might as well suppress uniqueness checking. This is just an
+ * optimization because the index AM is not supposed to raise a
+ * uniqueness failure anyway.
*/
if (indexInfo->ii_Unique)
{
diff --git a/src/backend/catalog/namespace.c b/src/backend/catalog/namespace.c
index abd3547e5e..1d6162ca12 100644
--- a/src/backend/catalog/namespace.c
+++ b/src/backend/catalog/namespace.c
@@ -13,7 +13,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/namespace.c,v 1.87 2006/09/14 22:05:06 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/namespace.c,v 1.88 2006/10/04 00:29:50 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -718,7 +718,7 @@ OpernameGetOprid(List *names, Oid oprleft, Oid oprright)
ObjectIdGetDatum(namespaceId));
if (HeapTupleIsValid(opertup))
{
- Oid result = HeapTupleGetOid(opertup);
+ Oid result = HeapTupleGetOid(opertup);
ReleaseSysCache(opertup);
return result;
@@ -741,9 +741,9 @@ OpernameGetOprid(List *names, Oid oprleft, Oid oprright)
}
/*
- * We have to find the list member that is first in the search path,
- * if there's more than one. This doubly-nested loop looks ugly,
- * but in practice there should usually be few catlist members.
+ * We have to find the list member that is first in the search path, if
+ * there's more than one. This doubly-nested loop looks ugly, but in
+ * practice there should usually be few catlist members.
*/
recomputeNamespacePath();
@@ -759,7 +759,7 @@ OpernameGetOprid(List *names, Oid oprleft, Oid oprright)
if (operform->oprnamespace == namespaceId)
{
- Oid result = HeapTupleGetOid(opertup);
+ Oid result = HeapTupleGetOid(opertup);
ReleaseSysCacheList(catlist);
return result;
diff --git a/src/backend/catalog/pg_aggregate.c b/src/backend/catalog/pg_aggregate.c
index 747543e077..6420defe4f 100644
--- a/src/backend/catalog/pg_aggregate.c
+++ b/src/backend/catalog/pg_aggregate.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/pg_aggregate.c,v 1.82 2006/07/27 19:52:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/pg_aggregate.c,v 1.83 2006/10/04 00:29:50 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -89,15 +89,15 @@ AggregateCreate(const char *aggName,
}
/*
- * If transtype is polymorphic, must have polymorphic argument also;
- * else we will have no way to deduce the actual transtype.
+ * If transtype is polymorphic, must have polymorphic argument also; else
+ * we will have no way to deduce the actual transtype.
*/
if (!hasPolyArg &&
(aggTransType == ANYARRAYOID || aggTransType == ANYELEMENTOID))
ereport(ERROR,
(errcode(ERRCODE_INVALID_FUNCTION_DEFINITION),
errmsg("cannot determine transition data type"),
- errdetail("An aggregate using \"anyarray\" or \"anyelement\" as transition type must have at least one argument of either type.")));
+ errdetail("An aggregate using \"anyarray\" or \"anyelement\" as transition type must have at least one argument of either type.")));
/* find the transfn */
nargs_transfn = numArgs + 1;
@@ -133,8 +133,8 @@ AggregateCreate(const char *aggName,
/*
* If the transfn is strict and the initval is NULL, make sure first input
- * type and transtype are the same (or at least binary-compatible), so that
- * it's OK to use the first input value as the initial transValue.
+ * type and transtype are the same (or at least binary-compatible), so
+ * that it's OK to use the first input value as the initial transValue.
*/
if (proc->proisstrict && agginitval == NULL)
{
@@ -211,7 +211,7 @@ AggregateCreate(const char *aggName,
PROVOLATILE_IMMUTABLE, /* volatility (not
* needed for agg) */
buildoidvector(aggArgTypes,
- numArgs), /* paramTypes */
+ numArgs), /* paramTypes */
PointerGetDatum(NULL), /* allParamTypes */
PointerGetDatum(NULL), /* parameterModes */
PointerGetDatum(NULL)); /* parameterNames */
@@ -355,7 +355,7 @@ lookup_agg_function(List *fnName,
ereport(ERROR,
(errcode(ERRCODE_DATATYPE_MISMATCH),
errmsg("function %s requires run-time type coercion",
- func_signature_string(fnName, nargs, true_oid_array))));
+ func_signature_string(fnName, nargs, true_oid_array))));
}
/* Check aggregate creator has permission to call the function */
diff --git a/src/backend/catalog/pg_depend.c b/src/backend/catalog/pg_depend.c
index 99cdf5e7e6..b0c5986251 100644
--- a/src/backend/catalog/pg_depend.c
+++ b/src/backend/catalog/pg_depend.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/pg_depend.c,v 1.22 2006/08/21 00:57:24 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/pg_depend.c,v 1.23 2006/10/04 00:29:50 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -264,7 +264,7 @@ changeDependencyFor(Oid classId, Oid objectId,
* Detect whether a sequence is marked as "owned" by a column
*
* An ownership marker is an AUTO dependency from the sequence to the
- * column. If we find one, store the identity of the owning column
+ * column. If we find one, store the identity of the owning column
* into *tableId and *colId and return TRUE; else return FALSE.
*
* Note: if there's more than one such pg_depend entry then you get
diff --git a/src/backend/catalog/pg_shdepend.c b/src/backend/catalog/pg_shdepend.c
index 85e3d968d4..5195cb06be 100644
--- a/src/backend/catalog/pg_shdepend.c
+++ b/src/backend/catalog/pg_shdepend.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/pg_shdepend.c,v 1.14 2006/08/21 00:57:24 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/pg_shdepend.c,v 1.15 2006/10/04 00:29:50 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1101,9 +1101,9 @@ shdepDropOwned(List *roleids, DropBehavior behavior)
while ((tuple = systable_getnext(scan)) != NULL)
{
- ObjectAddress obj;
- GrantObjectType objtype;
- InternalGrant istmt;
+ ObjectAddress obj;
+ GrantObjectType objtype;
+ InternalGrant istmt;
Form_pg_shdepend sdepForm = (Form_pg_shdepend) GETSTRUCT(tuple);
/* We only operate on objects in the current database */
@@ -1112,7 +1112,7 @@ shdepDropOwned(List *roleids, DropBehavior behavior)
switch (sdepForm->deptype)
{
- /* Shouldn't happen */
+ /* Shouldn't happen */
case SHARED_DEPENDENCY_PIN:
case SHARED_DEPENDENCY_INVALID:
elog(ERROR, "unexpected dependency type");
@@ -1267,10 +1267,11 @@ shdepReassignOwned(List *roleids, Oid newrole)
break;
case RelationRelationId:
+
/*
- * Pass recursing = true so that we don't fail on
- * indexes, owned sequences, etc when we happen
- * to visit them before their parent table.
+ * Pass recursing = true so that we don't fail on indexes,
+ * owned sequences, etc when we happen to visit them
+ * before their parent table.
*/
ATExecChangeOwner(sdepForm->objid, newrole, true);
break;
diff --git a/src/backend/catalog/pg_type.c b/src/backend/catalog/pg_type.c
index 1b9eea29dc..32de0b90dc 100644
--- a/src/backend/catalog/pg_type.c
+++ b/src/backend/catalog/pg_type.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/pg_type.c,v 1.107 2006/07/14 14:52:18 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/pg_type.c,v 1.108 2006/10/04 00:29:50 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -73,34 +73,34 @@ TypeShellMake(const char *typeName, Oid typeNamespace)
/*
* initialize *values with the type name and dummy values
*
- * The representational details are the same as int4 ... it doesn't
- * really matter what they are so long as they are consistent. Also
- * note that we give it typtype = 'p' (pseudotype) as extra insurance
- * that it won't be mistaken for a usable type.
+ * The representational details are the same as int4 ... it doesn't really
+ * matter what they are so long as they are consistent. Also note that we
+ * give it typtype = 'p' (pseudotype) as extra insurance that it won't be
+ * mistaken for a usable type.
*/
i = 0;
namestrcpy(&name, typeName);
values[i++] = NameGetDatum(&name); /* typname */
values[i++] = ObjectIdGetDatum(typeNamespace); /* typnamespace */
values[i++] = ObjectIdGetDatum(GetUserId()); /* typowner */
- values[i++] = Int16GetDatum(sizeof(int4)); /* typlen */
- values[i++] = BoolGetDatum(true); /* typbyval */
- values[i++] = CharGetDatum('p'); /* typtype */
- values[i++] = BoolGetDatum(false); /* typisdefined */
+ values[i++] = Int16GetDatum(sizeof(int4)); /* typlen */
+ values[i++] = BoolGetDatum(true); /* typbyval */
+ values[i++] = CharGetDatum('p'); /* typtype */
+ values[i++] = BoolGetDatum(false); /* typisdefined */
values[i++] = CharGetDatum(DEFAULT_TYPDELIM); /* typdelim */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* typrelid */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* typelem */
- values[i++] = ObjectIdGetDatum(F_SHELL_IN); /* typinput */
+ values[i++] = ObjectIdGetDatum(InvalidOid); /* typrelid */
+ values[i++] = ObjectIdGetDatum(InvalidOid); /* typelem */
+ values[i++] = ObjectIdGetDatum(F_SHELL_IN); /* typinput */
values[i++] = ObjectIdGetDatum(F_SHELL_OUT); /* typoutput */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* typreceive */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* typsend */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* typanalyze */
- values[i++] = CharGetDatum('i'); /* typalign */
- values[i++] = CharGetDatum('p'); /* typstorage */
- values[i++] = BoolGetDatum(false); /* typnotnull */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* typbasetype */
- values[i++] = Int32GetDatum(-1); /* typtypmod */
- values[i++] = Int32GetDatum(0); /* typndims */
+ values[i++] = ObjectIdGetDatum(InvalidOid); /* typreceive */
+ values[i++] = ObjectIdGetDatum(InvalidOid); /* typsend */
+ values[i++] = ObjectIdGetDatum(InvalidOid); /* typanalyze */
+ values[i++] = CharGetDatum('i'); /* typalign */
+ values[i++] = CharGetDatum('p'); /* typstorage */
+ values[i++] = BoolGetDatum(false); /* typnotnull */
+ values[i++] = ObjectIdGetDatum(InvalidOid); /* typbasetype */
+ values[i++] = Int32GetDatum(-1); /* typtypmod */
+ values[i++] = Int32GetDatum(0); /* typndims */
nulls[i++] = 'n'; /* typdefaultbin */
nulls[i++] = 'n'; /* typdefault */
diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c
index aa3e7b8fef..c4416d5e01 100644
--- a/src/backend/catalog/toasting.c
+++ b/src/backend/catalog/toasting.c
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/toasting.c,v 1.2 2006/08/25 04:06:47 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/toasting.c,v 1.3 2006/10/04 00:29:50 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -70,7 +70,7 @@ AlterTableCreateToastTable(Oid relOid)
void
BootstrapToastTable(char *relName, Oid toastOid, Oid toastIndexOid)
{
- Relation rel;
+ Relation rel;
rel = heap_openrv(makeRangeVar(NULL, relName), AccessExclusiveLock);
diff --git a/src/backend/commands/aggregatecmds.c b/src/backend/commands/aggregatecmds.c
index 7923199f63..e072a23f27 100644
--- a/src/backend/commands/aggregatecmds.c
+++ b/src/backend/commands/aggregatecmds.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/aggregatecmds.c,v 1.40 2006/10/03 21:21:36 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/aggregatecmds.c,v 1.41 2006/10/04 00:29:50 momjian Exp $
*
* DESCRIPTION
* The "DefineFoo" routines take the parse tree and pick out the
@@ -58,7 +58,7 @@ DefineAggregate(List *name, List *args, bool oldstyle, List *parameters)
TypeName *transType = NULL;
char *initval = NULL;
Oid *aggArgTypes;
- int numArgs;
+ int numArgs;
Oid transTypeId;
ListCell *pl;
@@ -122,8 +122,8 @@ DefineAggregate(List *name, List *args, bool oldstyle, List *parameters)
if (oldstyle)
{
/*
- * Old style: use basetype parameter. This supports aggregates
- * of zero or one input, with input type ANY meaning zero inputs.
+ * Old style: use basetype parameter. This supports aggregates of
+ * zero or one input, with input type ANY meaning zero inputs.
*
* Historically we allowed the command to look like basetype = 'ANY'
* so we must do a case-insensitive comparison for the name ANY. Ugh.
@@ -150,8 +150,8 @@ DefineAggregate(List *name, List *args, bool oldstyle, List *parameters)
/*
* New style: args is a list of TypeNames (possibly zero of 'em).
*/
- ListCell *lc;
- int i = 0;
+ ListCell *lc;
+ int i = 0;
if (baseType != NULL)
ereport(ERROR,
@@ -162,7 +162,7 @@ DefineAggregate(List *name, List *args, bool oldstyle, List *parameters)
aggArgTypes = (Oid *) palloc(sizeof(Oid) * numArgs);
foreach(lc, args)
{
- TypeName *curTypeName = (TypeName *) lfirst(lc);
+ TypeName *curTypeName = (TypeName *) lfirst(lc);
aggArgTypes[i++] = typenameTypeId(NULL, curTypeName);
}
@@ -171,9 +171,9 @@ DefineAggregate(List *name, List *args, bool oldstyle, List *parameters)
/*
* look up the aggregate's transtype.
*
- * transtype can't be a pseudo-type, since we need to be
- * able to store values of the transtype. However, we can allow
- * polymorphic transtype in some cases (AggregateCreate will check).
+ * transtype can't be a pseudo-type, since we need to be able to store
+ * values of the transtype. However, we can allow polymorphic transtype
+ * in some cases (AggregateCreate will check).
*/
transTypeId = typenameTypeId(NULL, transType);
if (get_typtype(transTypeId) == 'p' &&
@@ -189,7 +189,7 @@ DefineAggregate(List *name, List *args, bool oldstyle, List *parameters)
*/
AggregateCreate(aggName, /* aggregate name */
aggNamespace, /* namespace */
- aggArgTypes, /* input data type(s) */
+ aggArgTypes, /* input data type(s) */
numArgs,
transfuncName, /* step function name */
finalfuncName, /* final function name */
@@ -289,7 +289,7 @@ RenameAggregate(List *name, List *args, const char *newname)
errmsg("function %s already exists in schema \"%s\"",
funcname_signature_string(newname,
procForm->pronargs,
- procForm->proargtypes.values),
+ procForm->proargtypes.values),
get_namespace_name(namespaceOid))));
/* must be owner */
diff --git a/src/backend/commands/analyze.c b/src/backend/commands/analyze.c
index f9e41e3531..1ce768f046 100644
--- a/src/backend/commands/analyze.c
+++ b/src/backend/commands/analyze.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/analyze.c,v 1.98 2006/09/17 22:50:31 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/analyze.c,v 1.99 2006/10/04 00:29:50 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -129,12 +129,11 @@ analyze_rel(Oid relid, VacuumStmt *vacstmt)
CHECK_FOR_INTERRUPTS();
/*
- * Open the relation, getting ShareUpdateExclusiveLock to ensure that
- * two ANALYZEs don't run on it concurrently. (This also locks out
- * a concurrent VACUUM, which doesn't matter much at the moment but
- * might matter if we ever try to accumulate stats on dead tuples.)
- * If the rel has been dropped since we last saw it, we don't need
- * to process it.
+ * Open the relation, getting ShareUpdateExclusiveLock to ensure that two
+ * ANALYZEs don't run on it concurrently. (This also locks out a
+ * concurrent VACUUM, which doesn't matter much at the moment but might
+ * matter if we ever try to accumulate stats on dead tuples.) If the rel
+ * has been dropped since we last saw it, we don't need to process it.
*/
onerel = try_relation_open(relid, ShareUpdateExclusiveLock);
if (!onerel)
@@ -216,8 +215,8 @@ analyze_rel(Oid relid, VacuumStmt *vacstmt)
if (i == InvalidAttrNumber)
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_COLUMN),
- errmsg("column \"%s\" of relation \"%s\" does not exist",
- col, RelationGetRelationName(onerel))));
+ errmsg("column \"%s\" of relation \"%s\" does not exist",
+ col, RelationGetRelationName(onerel))));
vacattrstats[tcnt] = examine_attribute(onerel, i);
if (vacattrstats[tcnt] != NULL)
tcnt++;
diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c
index bd2301dd62..665c66cad5 100644
--- a/src/backend/commands/cluster.c
+++ b/src/backend/commands/cluster.c
@@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/cluster.c,v 1.153 2006/08/18 16:09:08 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/cluster.c,v 1.154 2006/10/04 00:29:50 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -288,7 +288,7 @@ cluster_rel(RelToCluster *rvtc, bool recheck)
tuple = SearchSysCache(INDEXRELID,
ObjectIdGetDatum(rvtc->indexOid),
0, 0, 0);
- if (!HeapTupleIsValid(tuple)) /* probably can't happen */
+ if (!HeapTupleIsValid(tuple)) /* probably can't happen */
{
relation_close(OldHeap, AccessExclusiveLock);
return;
@@ -350,7 +350,7 @@ check_index_is_clusterable(Relation OldHeap, Oid indexOid, bool recheck)
errmsg("cannot cluster on partial index \"%s\"",
RelationGetRelationName(OldIndex))));
- if (!OldIndex->rd_am->amclusterable)
+ if (!OldIndex->rd_am->amclusterable)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("cannot cluster on index \"%s\" because access method does not support clustering",
diff --git a/src/backend/commands/comment.c b/src/backend/commands/comment.c
index f54243a495..df4416d37c 100644
--- a/src/backend/commands/comment.c
+++ b/src/backend/commands/comment.c
@@ -7,7 +7,7 @@
* Copyright (c) 1996-2006, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/comment.c,v 1.91 2006/09/05 21:08:35 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/comment.c,v 1.92 2006/10/04 00:29:50 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -261,11 +261,12 @@ CreateComments(Oid oid, Oid classoid, int32 subid, char *comment)
* If the comment given is null or an empty string, instead delete any
* existing comment for the specified key.
*/
-void CreateSharedComments(Oid oid, Oid classoid, char *comment)
+void
+CreateSharedComments(Oid oid, Oid classoid, char *comment)
{
Relation shdescription;
- ScanKeyData skey[2];
- SysScanDesc sd;
+ ScanKeyData skey[2];
+ SysScanDesc sd;
HeapTuple oldtuple;
HeapTuple newtuple = NULL;
Datum values[Natts_pg_shdescription];
@@ -294,18 +295,18 @@ void CreateSharedComments(Oid oid, Oid classoid, char *comment)
/* Use the index to search for a matching old tuple */
ScanKeyInit(&skey[0],
- Anum_pg_shdescription_objoid,
- BTEqualStrategyNumber, F_OIDEQ,
- ObjectIdGetDatum(oid));
+ Anum_pg_shdescription_objoid,
+ BTEqualStrategyNumber, F_OIDEQ,
+ ObjectIdGetDatum(oid));
ScanKeyInit(&skey[1],
- Anum_pg_shdescription_classoid,
- BTEqualStrategyNumber, F_OIDEQ,
- ObjectIdGetDatum(classoid));
+ Anum_pg_shdescription_classoid,
+ BTEqualStrategyNumber, F_OIDEQ,
+ ObjectIdGetDatum(classoid));
shdescription = heap_open(SharedDescriptionRelationId, RowExclusiveLock);
sd = systable_beginscan(shdescription, SharedDescriptionObjIndexId, true,
- SnapshotNow, 2, skey);
+ SnapshotNow, 2, skey);
while ((oldtuple = systable_getnext(sd)) != NULL)
{
@@ -316,11 +317,11 @@ void CreateSharedComments(Oid oid, Oid classoid, char *comment)
else
{
newtuple = heap_modifytuple(oldtuple, RelationGetDescr(shdescription),
- values, nulls, replaces);
+ values, nulls, replaces);
simple_heap_update(shdescription, &oldtuple->t_self, newtuple);
}
- break; /* Assume there can be only one match */
+ break; /* Assume there can be only one match */
}
systable_endscan(sd);
@@ -330,7 +331,7 @@ void CreateSharedComments(Oid oid, Oid classoid, char *comment)
if (newtuple == NULL && comment != NULL)
{
newtuple = heap_formtuple(RelationGetDescr(shdescription),
- values, nulls);
+ values, nulls);
simple_heap_insert(shdescription, newtuple);
}
@@ -405,25 +406,25 @@ void
DeleteSharedComments(Oid oid, Oid classoid)
{
Relation shdescription;
- ScanKeyData skey[2];
- SysScanDesc sd;
+ ScanKeyData skey[2];
+ SysScanDesc sd;
HeapTuple oldtuple;
/* Use the index to search for all matching old tuples */
ScanKeyInit(&skey[0],
- Anum_pg_shdescription_objoid,
- BTEqualStrategyNumber, F_OIDEQ,
- ObjectIdGetDatum(oid));
+ Anum_pg_shdescription_objoid,
+ BTEqualStrategyNumber, F_OIDEQ,
+ ObjectIdGetDatum(oid));
ScanKeyInit(&skey[1],
- Anum_pg_shdescription_classoid,
- BTEqualStrategyNumber, F_OIDEQ,
- ObjectIdGetDatum(classoid));
+ Anum_pg_shdescription_classoid,
+ BTEqualStrategyNumber, F_OIDEQ,
+ ObjectIdGetDatum(classoid));
shdescription = heap_open(SharedDescriptionRelationId, RowExclusiveLock);
sd = systable_beginscan(shdescription, SharedDescriptionObjIndexId, true,
- SnapshotNow, 2, skey);
+ SnapshotNow, 2, skey);
while ((oldtuple = systable_getnext(sd)) != NULL)
simple_heap_delete(shdescription, &oldtuple->t_self);
@@ -620,8 +621,8 @@ CommentDatabase(List *qualname, char *comment)
static void
CommentTablespace(List *qualname, char *comment)
{
- char *tablespace;
- Oid oid;
+ char *tablespace;
+ Oid oid;
if (list_length(qualname) != 1)
ereport(ERROR,
@@ -657,8 +658,8 @@ CommentTablespace(List *qualname, char *comment)
static void
CommentRole(List *qualname, char *comment)
{
- char *role;
- Oid oid;
+ char *role;
+ Oid oid;
if (list_length(qualname) != 1)
ereport(ERROR,
@@ -672,7 +673,7 @@ CommentRole(List *qualname, char *comment)
if (!has_privs_of_role(GetUserId(), oid))
ereport(ERROR,
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
- errmsg("must be member of role \"%s\" to comment upon it", role)));
+ errmsg("must be member of role \"%s\" to comment upon it", role)));
/* Call CreateSharedComments() to create/drop the comments */
CreateSharedComments(oid, AuthIdRelationId, comment);
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c
index 23d9742234..0cbfc237ff 100644
--- a/src/backend/commands/copy.c
+++ b/src/backend/commands/copy.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.271 2006/08/31 03:17:50 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.272 2006/10/04 00:29:50 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -88,8 +88,8 @@ typedef struct CopyStateData
/* low-level state data */
CopyDest copy_dest; /* type of copy source/destination */
FILE *copy_file; /* used if copy_dest == COPY_FILE */
- StringInfo fe_msgbuf; /* used for all dests during COPY TO, only
- * for dest == COPY_NEW_FE in COPY FROM */
+ StringInfo fe_msgbuf; /* used for all dests during COPY TO, only for
+ * dest == COPY_NEW_FE in COPY FROM */
bool fe_copy; /* true for all FE copy dests */
bool fe_eof; /* true if detected end of copy data */
EolType eol_type; /* EOL type of input */
@@ -109,7 +109,7 @@ typedef struct CopyStateData
bool header_line; /* CSV header line? */
char *null_print; /* NULL marker string (server encoding!) */
int null_print_len; /* length of same */
- char *null_print_client; /* same converted to client encoding */
+ char *null_print_client; /* same converted to client encoding */
char *delim; /* column delimiter (must be 1 byte) */
char *quote; /* CSV quote char (must be 1 byte) */
char *escape; /* CSV escape char (must be 1 byte) */
@@ -125,8 +125,8 @@ typedef struct CopyStateData
/*
* Working state for COPY TO
*/
- FmgrInfo *out_functions; /* lookup info for output functions */
- MemoryContext rowcontext; /* per-row evaluation context */
+ FmgrInfo *out_functions; /* lookup info for output functions */
+ MemoryContext rowcontext; /* per-row evaluation context */
/*
* These variables are used to reduce overhead in textual COPY FROM.
@@ -177,7 +177,7 @@ typedef struct
* function call overhead in tight COPY loops.
*
* We must use "if (1)" because "do {} while(0)" overrides the continue/break
- * processing. See http://www.cit.gu.edu.au/~anthony/info/C/C.macros.
+ * processing. See http://www.cit.gu.edu.au/~anthony/info/C/C.macros.
*/
/*
@@ -243,7 +243,7 @@ static const char BinarySignature[11] = "PGCOPY\n\377\r\n\0";
static void DoCopyTo(CopyState cstate);
static void CopyTo(CopyState cstate);
static void CopyOneRowTo(CopyState cstate, Oid tupleOid,
- Datum *values, bool *nulls);
+ Datum *values, bool *nulls);
static void CopyFrom(CopyState cstate);
static bool CopyReadLine(CopyState cstate);
static bool CopyReadLineText(CopyState cstate);
@@ -259,7 +259,7 @@ static void CopyAttributeOutText(CopyState cstate, char *string);
static void CopyAttributeOutCSV(CopyState cstate, char *string,
bool use_quote, bool single_attr);
static List *CopyGetAttnums(TupleDesc tupDesc, Relation rel,
- List *attnamelist);
+ List *attnamelist);
static char *limit_printout_length(const char *str);
/* Low-level communications functions */
@@ -863,10 +863,10 @@ DoCopy(const CopyStmt *stmt)
/* Disallow end-of-line characters */
if (strchr(cstate->delim, '\r') != NULL ||
- strchr(cstate->delim, '\n') != NULL)
+ strchr(cstate->delim, '\n') != NULL)
ereport(ERROR,
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
- errmsg("COPY delimiter cannot be newline or carriage return")));
+ errmsg("COPY delimiter cannot be newline or carriage return")));
if (strchr(cstate->null_print, '\r') != NULL ||
strchr(cstate->null_print, '\n') != NULL)
@@ -956,7 +956,7 @@ DoCopy(const CopyStmt *stmt)
/* Open and lock the relation, using the appropriate lock type. */
cstate->rel = heap_openrv(stmt->relation,
- (is_from ? RowExclusiveLock : AccessShareLock));
+ (is_from ? RowExclusiveLock : AccessShareLock));
/* Check relation permissions. */
aclresult = pg_class_aclcheck(RelationGetRelid(cstate->rel),
@@ -1009,7 +1009,7 @@ DoCopy(const CopyStmt *stmt)
* rewriting or planning. Do that now.
*
* Because the planner is not cool about not scribbling on its input,
- * we make a preliminary copy of the source querytree. This prevents
+ * we make a preliminary copy of the source querytree. This prevents
* problems in the case that the COPY is in a portal or plpgsql
* function and is executed repeatedly. (See also the same hack in
* EXPLAIN, DECLARE CURSOR and PREPARE.) XXX the planner really
@@ -1124,8 +1124,8 @@ DoCopy(const CopyStmt *stmt)
/*
* Set up encoding conversion info. Even if the client and server
- * encodings are the same, we must apply pg_client_to_server() to
- * validate data in multibyte encodings.
+ * encodings are the same, we must apply pg_client_to_server() to validate
+ * data in multibyte encodings.
*/
cstate->client_encoding = pg_get_client_encoding();
cstate->need_transcoding =
@@ -1139,7 +1139,8 @@ DoCopy(const CopyStmt *stmt)
if (is_from) /* copy from file to database */
CopyFrom(cstate);
- else /* copy from database to file */
+ else
+ /* copy from database to file */
DoCopyTo(cstate);
/*
@@ -1210,12 +1211,12 @@ DoCopyTo(CopyState cstate)
}
else
{
- mode_t oumask; /* Pre-existing umask value */
+ mode_t oumask; /* Pre-existing umask value */
struct stat st;
/*
- * Prevent write to relative path ... too easy to shoot oneself in
- * the foot by overwriting a database file ...
+ * Prevent write to relative path ... too easy to shoot oneself in the
+ * foot by overwriting a database file ...
*/
if (!is_absolute_path(cstate->filename))
ereport(ERROR,
@@ -1351,7 +1352,7 @@ CopyTo(CopyState cstate)
*/
if (cstate->need_transcoding)
cstate->null_print_client = pg_server_to_client(cstate->null_print,
- cstate->null_print_len);
+ cstate->null_print_len);
/* if a header has been requested send the line */
if (cstate->header_line)
@@ -1508,7 +1509,7 @@ CopyOneRowTo(CopyState cstate, Oid tupleOid, Datum *values, bool *nulls)
CopySendEndOfRow(cstate);
MemoryContextSwitchTo(oldcontext);
-
+
cstate->processed++;
}
@@ -2237,6 +2238,7 @@ CopyReadLineText(CopyState cstate)
bool hit_eof = false;
bool result = false;
char mblen_str[2];
+
/* CSV variables */
bool first_char_in_line = true;
bool in_quote = false,
@@ -2268,10 +2270,10 @@ CopyReadLineText(CopyState cstate)
* assumed the same in frontend and backend encodings.
*
* For speed, we try to move data from raw_buf to line_buf in chunks
- * rather than one character at a time. raw_buf_ptr points to the next
+ * rather than one character at a time. raw_buf_ptr points to the next
* character to examine; any characters from raw_buf_index to raw_buf_ptr
- * have been determined to be part of the line, but not yet transferred
- * to line_buf.
+ * have been determined to be part of the line, but not yet transferred to
+ * line_buf.
*
* For a little extra speed within the loop, we copy raw_buf and
* raw_buf_len into local variables.
@@ -2286,14 +2288,14 @@ CopyReadLineText(CopyState cstate)
char c;
/*
- * Load more data if needed. Ideally we would just force four bytes
- * of read-ahead and avoid the many calls to
- * IF_NEED_REFILL_AND_NOT_EOF_CONTINUE(), but the COPY_OLD_FE
- * protocol does not allow us to read too far ahead or we might
- * read into the next data, so we read-ahead only as far we know
- * we can. One optimization would be to read-ahead four byte here
- * if cstate->copy_dest != COPY_OLD_FE, but it hardly seems worth it,
- * considering the size of the buffer.
+ * Load more data if needed. Ideally we would just force four bytes
+ * of read-ahead and avoid the many calls to
+ * IF_NEED_REFILL_AND_NOT_EOF_CONTINUE(), but the COPY_OLD_FE protocol
+ * does not allow us to read too far ahead or we might read into the
+ * next data, so we read-ahead only as far we know we can. One
+ * optimization would be to read-ahead four byte here if
+ * cstate->copy_dest != COPY_OLD_FE, but it hardly seems worth it,
+ * considering the size of the buffer.
*/
if (raw_buf_ptr >= copy_buf_len || need_data)
{
@@ -2328,12 +2330,12 @@ CopyReadLineText(CopyState cstate)
{
/*
* If character is '\\' or '\r', we may need to look ahead below.
- * Force fetch of the next character if we don't already have it. We
- * need to do this before changing CSV state, in case one of these
- * characters is also the quote or escape character.
+ * Force fetch of the next character if we don't already have it.
+ * We need to do this before changing CSV state, in case one of
+ * these characters is also the quote or escape character.
*
- * Note: old-protocol does not like forced prefetch, but it's OK here
- * since we cannot validly be at EOF.
+ * Note: old-protocol does not like forced prefetch, but it's OK
+ * here since we cannot validly be at EOF.
*/
if (c == '\\' || c == '\r')
{
@@ -2341,12 +2343,12 @@ CopyReadLineText(CopyState cstate)
}
/*
- * Dealing with quotes and escapes here is mildly tricky. If the quote
- * char is also the escape char, there's no problem - we just use the
- * char as a toggle. If they are different, we need to ensure that we
- * only take account of an escape inside a quoted field and
- * immediately preceding a quote char, and not the second in a
- * escape-escape sequence.
+ * Dealing with quotes and escapes here is mildly tricky. If the
+ * quote char is also the escape char, there's no problem - we
+ * just use the char as a toggle. If they are different, we need
+ * to ensure that we only take account of an escape inside a
+ * quoted field and immediately preceding a quote char, and not
+ * the second in a escape-escape sequence.
*/
if (in_quote && c == escapec)
last_was_esc = !last_was_esc;
@@ -2357,9 +2359,9 @@ CopyReadLineText(CopyState cstate)
/*
* Updating the line count for embedded CR and/or LF chars is
- * necessarily a little fragile - this test is probably about the best
- * we can do. (XXX it's arguable whether we should do this at all ---
- * is cur_lineno a physical or logical count?)
+ * necessarily a little fragile - this test is probably about the
+ * best we can do. (XXX it's arguable whether we should do this
+ * at all --- is cur_lineno a physical or logical count?)
*/
if (in_quote && c == (cstate->eol_type == EOL_NL ? '\n' : '\r'))
cstate->cur_lineno++;
@@ -2394,12 +2396,13 @@ CopyReadLineText(CopyState cstate)
if (cstate->eol_type == EOL_CRNL)
ereport(ERROR,
(errcode(ERRCODE_BAD_COPY_FILE_FORMAT),
- errmsg(!cstate->csv_mode ?
+ errmsg(!cstate->csv_mode ?
"literal carriage return found in data" :
- "unquoted carriage return found in data"),
+ "unquoted carriage return found in data"),
errhint(!cstate->csv_mode ?
- "Use \"\\r\" to represent carriage return." :
- "Use quoted CSV field to represent carriage return.")));
+ "Use \"\\r\" to represent carriage return." :
+ "Use quoted CSV field to represent carriage return.")));
+
/*
* if we got here, it is the first line and we didn't find
* \n, so don't consume the peeked character
@@ -2410,12 +2413,12 @@ CopyReadLineText(CopyState cstate)
else if (cstate->eol_type == EOL_NL)
ereport(ERROR,
(errcode(ERRCODE_BAD_COPY_FILE_FORMAT),
- errmsg(!cstate->csv_mode ?
+ errmsg(!cstate->csv_mode ?
"literal carriage return found in data" :
"unquoted carriage return found in data"),
errhint(!cstate->csv_mode ?
- "Use \"\\r\" to represent carriage return." :
- "Use quoted CSV field to represent carriage return.")));
+ "Use \"\\r\" to represent carriage return." :
+ "Use quoted CSV field to represent carriage return.")));
/* If reach here, we have found the line terminator */
break;
}
@@ -2431,15 +2434,15 @@ CopyReadLineText(CopyState cstate)
"unquoted newline found in data"),
errhint(!cstate->csv_mode ?
"Use \"\\n\" to represent newline." :
- "Use quoted CSV field to represent newline.")));
+ "Use quoted CSV field to represent newline.")));
cstate->eol_type = EOL_NL; /* in case not set yet */
/* If reach here, we have found the line terminator */
break;
}
/*
- * In CSV mode, we only recognize \. alone on a line. This is
- * because \. is a valid CSV data value.
+ * In CSV mode, we only recognize \. alone on a line. This is because
+ * \. is a valid CSV data value.
*/
if (c == '\\' && (!cstate->csv_mode || first_char_in_line))
{
@@ -2529,23 +2532,24 @@ CopyReadLineText(CopyState cstate)
break;
}
else if (!cstate->csv_mode)
+
/*
- * If we are here, it means we found a backslash followed by
- * something other than a period. In non-CSV mode, anything
- * after a backslash is special, so we skip over that second
- * character too. If we didn't do that \\. would be
- * considered an eof-of copy, while in non-CVS mode it is a
- * literal backslash followed by a period. In CSV mode,
- * backslashes are not special, so we want to process the
- * character after the backslash just like a normal character,
- * so we don't increment in those cases.
+ * If we are here, it means we found a backslash followed by
+ * something other than a period. In non-CSV mode, anything
+ * after a backslash is special, so we skip over that second
+ * character too. If we didn't do that \\. would be
+ * considered an eof-of copy, while in non-CVS mode it is a
+ * literal backslash followed by a period. In CSV mode,
+ * backslashes are not special, so we want to process the
+ * character after the backslash just like a normal character,
+ * so we don't increment in those cases.
*/
raw_buf_ptr++;
}
/*
- * This label is for CSV cases where \. appears at the start of a line,
- * but there is more text after it, meaning it was a data value.
+ * This label is for CSV cases where \. appears at the start of a
+ * line, but there is more text after it, meaning it was a data value.
* We are more strict for \. in CSV mode because \. could be a data
* value, while in non-CSV mode, \. cannot be a data value.
*/
@@ -2554,9 +2558,9 @@ not_end_of_copy:
/*
* Process all bytes of a multi-byte character as a group.
*
- * We only support multi-byte sequences where the first byte
- * has the high-bit set, so as an optimization we can avoid
- * this block entirely if it is not set.
+ * We only support multi-byte sequences where the first byte has the
+ * high-bit set, so as an optimization we can avoid this block
+ * entirely if it is not set.
*/
if (cstate->encoding_embeds_ascii && IS_HIGHBIT_SET(c))
{
@@ -3040,10 +3044,10 @@ 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 replaceable 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.
+ * are infrequent. To avoid overhead from calling CopySendData once per
+ * character, we dump out all characters between replaceable 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.
*/
start = ptr;
while ((c = *ptr) != '\0')
@@ -3090,7 +3094,7 @@ CopyAttributeOutText(CopyState cstate, char *string)
{
DUMPSOFAR();
CopySendChar(cstate, '\\');
- start = ptr; /* we include char in next run */
+ start = ptr; /* we include char in next run */
}
/*
@@ -3139,14 +3143,13 @@ CopyAttributeOutCSV(CopyState cstate, char *string,
if (!use_quote)
{
/*
- * Because '\.' can be a data value, quote it if it appears
- * alone on a line so it is not interpreted as the end-of-data
- * marker.
+ * Because '\.' can be a data value, quote it if it appears alone on a
+ * line so it is not interpreted as the end-of-data marker.
*/
if (single_attr && strcmp(ptr, "\\.") == 0)
- use_quote = true;
- else
- {
+ use_quote = true;
+ else
+ {
char *tptr = ptr;
while ((c = *tptr) != '\0')
@@ -3251,14 +3254,14 @@ CopyGetAttnums(TupleDesc tupDesc, Relation rel, List *attnamelist)
{
if (rel != NULL)
ereport(ERROR,
- (errcode(ERRCODE_UNDEFINED_COLUMN),
- errmsg("column \"%s\" of relation \"%s\" does not exist",
- name, RelationGetRelationName(rel))));
+ (errcode(ERRCODE_UNDEFINED_COLUMN),
+ errmsg("column \"%s\" of relation \"%s\" does not exist",
+ name, RelationGetRelationName(rel))));
else
ereport(ERROR,
- (errcode(ERRCODE_UNDEFINED_COLUMN),
- errmsg("column \"%s\" does not exist",
- name)));
+ (errcode(ERRCODE_UNDEFINED_COLUMN),
+ errmsg("column \"%s\" does not exist",
+ name)));
}
/* Check for duplicates */
if (list_member_int(attnums, attnum))
@@ -3289,7 +3292,7 @@ copy_dest_startup(DestReceiver *self, int operation, TupleDesc typeinfo)
static void
copy_dest_receive(TupleTableSlot *slot, DestReceiver *self)
{
- DR_copy *myState = (DR_copy *) self;
+ DR_copy *myState = (DR_copy *) self;
CopyState cstate = myState->cstate;
/* Make sure the tuple is fully deconstructed */
@@ -3323,7 +3326,7 @@ copy_dest_destroy(DestReceiver *self)
DestReceiver *
CreateCopyDestReceiver(void)
{
- DR_copy *self = (DR_copy *) palloc(sizeof(DR_copy));
+ DR_copy *self = (DR_copy *) palloc(sizeof(DR_copy));
self->pub.receiveSlot = copy_dest_receive;
self->pub.rStartup = copy_dest_startup;
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c
index 853c7e6626..d7d4cdbfbc 100644
--- a/src/backend/commands/dbcommands.c
+++ b/src/backend/commands/dbcommands.c
@@ -13,7 +13,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.184 2006/07/14 14:52:18 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.185 2006/10/04 00:29:51 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -326,9 +326,9 @@ createdb(const CreatedbStmt *stmt)
}
/*
- * Check for db name conflict. This is just to give a more friendly
- * error message than "unique index violation". There's a race condition
- * but we're willing to accept the less friendly message in that case.
+ * Check for db name conflict. This is just to give a more friendly error
+ * message than "unique index violation". There's a race condition but
+ * we're willing to accept the less friendly message in that case.
*/
if (OidIsValid(get_database_oid(dbname)))
ereport(ERROR,
@@ -336,10 +336,10 @@ createdb(const CreatedbStmt *stmt)
errmsg("database \"%s\" already exists", dbname)));
/*
- * Insert a new tuple into pg_database. This establishes our ownership
- * of the new database name (anyone else trying to insert the same name
- * will block on the unique index, and fail after we commit). It also
- * assigns the OID that the new database will have.
+ * Insert a new tuple into pg_database. This establishes our ownership of
+ * the new database name (anyone else trying to insert the same name will
+ * block on the unique index, and fail after we commit). It also assigns
+ * the OID that the new database will have.
*/
pg_database_rel = heap_open(DatabaseRelationId, RowExclusiveLock);
@@ -361,9 +361,9 @@ createdb(const CreatedbStmt *stmt)
/*
* We deliberately set datconfig and datacl to defaults (NULL), rather
- * than copying them from the template database. Copying datacl would
- * be a bad idea when the owner is not the same as the template's
- * owner. It's more debatable whether datconfig should be copied.
+ * than copying them from the template database. Copying datacl would be
+ * a bad idea when the owner is not the same as the template's owner. It's
+ * more debatable whether datconfig should be copied.
*/
new_record_nulls[Anum_pg_database_datconfig - 1] = 'n';
new_record_nulls[Anum_pg_database_datacl - 1] = 'n';
@@ -497,8 +497,8 @@ createdb(const CreatedbStmt *stmt)
RequestCheckpoint(true, false);
/*
- * Close pg_database, but keep lock till commit (this is important
- * to prevent any risk of deadlock failure while updating flat file)
+ * Close pg_database, but keep lock till commit (this is important to
+ * prevent any risk of deadlock failure while updating flat file)
*/
heap_close(pg_database_rel, NoLock);
@@ -543,8 +543,8 @@ dropdb(const char *dbname, bool missing_ok)
errmsg("cannot drop the currently open database")));
/*
- * Look up the target database's OID, and get exclusive lock on it.
- * We need this to ensure that no new backend starts up in the target
+ * Look up the target database's OID, and get exclusive lock on it. We
+ * need this to ensure that no new backend starts up in the target
* database while we are deleting it (see postinit.c), and that no one is
* using it as a CREATE DATABASE template or trying to delete it for
* themselves.
@@ -589,8 +589,8 @@ dropdb(const char *dbname, bool missing_ok)
errmsg("cannot drop a template database")));
/*
- * Check for active backends in the target database. (Because we hold
- * the database lock, no new ones can start after this.)
+ * Check for active backends in the target database. (Because we hold the
+ * database lock, no new ones can start after this.)
*/
if (DatabaseHasActiveBackends(db_id, false))
ereport(ERROR,
@@ -647,8 +647,8 @@ dropdb(const char *dbname, bool missing_ok)
remove_dbtablespaces(db_id);
/*
- * Close pg_database, but keep lock till commit (this is important
- * to prevent any risk of deadlock failure while updating flat file)
+ * Close pg_database, but keep lock till commit (this is important to
+ * prevent any risk of deadlock failure while updating flat file)
*/
heap_close(pgdbrel, NoLock);
@@ -670,8 +670,8 @@ RenameDatabase(const char *oldname, const char *newname)
Relation rel;
/*
- * Look up the target database's OID, and get exclusive lock on it.
- * We need this for the same reasons as DROP DATABASE.
+ * Look up the target database's OID, and get exclusive lock on it. We
+ * need this for the same reasons as DROP DATABASE.
*/
rel = heap_open(DatabaseRelationId, RowExclusiveLock);
@@ -693,8 +693,8 @@ RenameDatabase(const char *oldname, const char *newname)
errmsg("current database may not be renamed")));
/*
- * Make sure the database does not have active sessions. This is the
- * same concern as above, but applied to other sessions.
+ * Make sure the database does not have active sessions. This is the same
+ * concern as above, but applied to other sessions.
*/
if (DatabaseHasActiveBackends(db_id, false))
ereport(ERROR,
@@ -730,8 +730,8 @@ RenameDatabase(const char *oldname, const char *newname)
CatalogUpdateIndexes(rel, newtup);
/*
- * Close pg_database, but keep lock till commit (this is important
- * to prevent any risk of deadlock failure while updating flat file)
+ * Close pg_database, but keep lock till commit (this is important to
+ * prevent any risk of deadlock failure while updating flat file)
*/
heap_close(rel, NoLock);
@@ -1067,9 +1067,9 @@ get_db_info(const char *name, LOCKMODE lockmode,
relation = heap_open(DatabaseRelationId, AccessShareLock);
/*
- * Loop covers the rare case where the database is renamed before we
- * can lock it. We try again just in case we can find a new one of
- * the same name.
+ * Loop covers the rare case where the database is renamed before we can
+ * lock it. We try again just in case we can find a new one of the same
+ * name.
*/
for (;;)
{
@@ -1079,8 +1079,8 @@ get_db_info(const char *name, LOCKMODE lockmode,
Oid dbOid;
/*
- * there's no syscache for database-indexed-by-name,
- * so must do it the hard way
+ * there's no syscache for database-indexed-by-name, so must do it the
+ * hard way
*/
ScanKeyInit(&scanKey,
Anum_pg_database_datname,
@@ -1110,9 +1110,9 @@ get_db_info(const char *name, LOCKMODE lockmode,
LockSharedObject(DatabaseRelationId, dbOid, 0, lockmode);
/*
- * And now, re-fetch the tuple by OID. If it's still there and
- * still the same name, we win; else, drop the lock and loop
- * back to try again.
+ * And now, re-fetch the tuple by OID. If it's still there and still
+ * the same name, we win; else, drop the lock and loop back to try
+ * again.
*/
tuple = SearchSysCache(DATABASEOID,
ObjectIdGetDatum(dbOid),
@@ -1267,8 +1267,8 @@ get_database_oid(const char *dbname)
Oid oid;
/*
- * There's no syscache for pg_database indexed by name,
- * so we must look the hard way.
+ * There's no syscache for pg_database indexed by name, so we must look
+ * the hard way.
*/
pg_database = heap_open(DatabaseRelationId, AccessShareLock);
ScanKeyInit(&entry[0],
@@ -1399,15 +1399,15 @@ dbase_desc(StringInfo buf, uint8 xl_info, char *rec)
xl_dbase_create_rec *xlrec = (xl_dbase_create_rec *) rec;
appendStringInfo(buf, "create db: copy dir %u/%u to %u/%u",
- xlrec->src_db_id, xlrec->src_tablespace_id,
- xlrec->db_id, xlrec->tablespace_id);
+ xlrec->src_db_id, xlrec->src_tablespace_id,
+ xlrec->db_id, xlrec->tablespace_id);
}
else if (info == XLOG_DBASE_DROP)
{
xl_dbase_drop_rec *xlrec = (xl_dbase_drop_rec *) rec;
appendStringInfo(buf, "drop db: dir %u/%u",
- xlrec->db_id, xlrec->tablespace_id);
+ xlrec->db_id, xlrec->tablespace_id);
}
else
appendStringInfo(buf, "UNKNOWN");
diff --git a/src/backend/commands/define.c b/src/backend/commands/define.c
index 149e1b6dae..697678c4aa 100644
--- a/src/backend/commands/define.c
+++ b/src/backend/commands/define.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/define.c,v 1.97 2006/07/03 22:45:38 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/define.c,v 1.98 2006/10/04 00:29:51 momjian Exp $
*
* DESCRIPTION
* The "DefineFoo" routines take the parse tree and pick out the
@@ -131,6 +131,7 @@ defGetBoolean(DefElem *def)
*/
if (def->arg == NULL)
return true;
+
/*
* Allow 0, 1, "true", "false"
*/
@@ -150,7 +151,7 @@ defGetBoolean(DefElem *def)
break;
default:
{
- char *sval = defGetString(def);
+ char *sval = defGetString(def);
if (pg_strcasecmp(sval, "true") == 0)
return true;
@@ -310,9 +311,9 @@ defGetTypeLength(DefElem *def)
DefElem *
defWithOids(bool value)
{
- DefElem *f = makeNode(DefElem);
+ DefElem *f = makeNode(DefElem);
f->defname = "oids";
- f->arg = (Node *)makeInteger(value);
+ f->arg = (Node *) makeInteger(value);
return f;
}
diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c
index 48db000ea9..00ada3fc72 100644
--- a/src/backend/commands/explain.c
+++ b/src/backend/commands/explain.c
@@ -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.151 2006/09/06 20:40:47 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/explain.c,v 1.152 2006/10/04 00:29:51 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -41,7 +41,7 @@ typedef struct ExplainState
} ExplainState;
static void ExplainOneQuery(Query *query, ExplainStmt *stmt,
- ParamListInfo params, TupOutputState *tstate);
+ ParamListInfo params, TupOutputState *tstate);
static double elapsed_time(instr_time *starttime);
static void explain_outNode(StringInfo str,
Plan *plan, PlanState *planstate,
@@ -760,7 +760,7 @@ explain_outNode(StringInfo str,
* The tidquals list has OR semantics, so be sure to show it
* as an OR condition.
*/
- List *tidquals = ((TidScan *) plan)->tidquals;
+ List *tidquals = ((TidScan *) plan)->tidquals;
if (list_length(tidquals) > 1)
tidquals = list_make1(make_orclause(tidquals));
@@ -928,8 +928,8 @@ explain_outNode(StringInfo str,
/*
* Ordinarily we don't pass down our own outer_plan value to our
* child nodes, but in an Append we must, since we might be
- * looking at an appendrel indexscan with outer references
- * from the member scans.
+ * looking at an appendrel indexscan with outer references from
+ * the member scans.
*/
explain_outNode(str, subnode,
appendstate->appendplans[j],
diff --git a/src/backend/commands/functioncmds.c b/src/backend/commands/functioncmds.c
index 615d4c93b2..29954a27a8 100644
--- a/src/backend/commands/functioncmds.c
+++ b/src/backend/commands/functioncmds.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/functioncmds.c,v 1.78 2006/10/03 21:21:36 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/functioncmds.c,v 1.79 2006/10/04 00:29:51 momjian Exp $
*
* DESCRIPTION
* These routines take the parse tree and pick out the
@@ -686,7 +686,7 @@ RemoveFunction(RemoveFuncStmt *stmt)
* Find the function, do permissions and validity checks
*/
funcOid = LookupFuncNameTypeNames(functionName, argTypes, stmt->missing_ok);
- if (!OidIsValid(funcOid))
+ if (!OidIsValid(funcOid))
{
/* can only get here if stmt->missing_ok */
ereport(NOTICE,
@@ -1394,7 +1394,7 @@ DropCast(DropCastStmt *stmt)
0, 0);
if (!HeapTupleIsValid(tuple))
{
- if (! stmt->missing_ok)
+ if (!stmt->missing_ok)
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_OBJECT),
errmsg("cast from type %s to type %s does not exist",
@@ -1402,7 +1402,7 @@ DropCast(DropCastStmt *stmt)
TypeNameToString(stmt->targettype))));
else
ereport(NOTICE,
- (errmsg("cast from type %s to type %s does not exist ... skipping",
+ (errmsg("cast from type %s to type %s does not exist ... skipping",
TypeNameToString(stmt->sourcetype),
TypeNameToString(stmt->targettype))));
diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c
index 81246768bc..5f54f66f59 100644
--- a/src/backend/commands/indexcmds.c
+++ b/src/backend/commands/indexcmds.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/indexcmds.c,v 1.148 2006/08/27 19:14:34 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/indexcmds.c,v 1.149 2006/10/04 00:29:51 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -125,8 +125,8 @@ DefineIndex(RangeVar *heapRelation,
LockRelId heaprelid;
LOCKTAG heaplocktag;
Snapshot snapshot;
- Relation pg_index;
- HeapTuple indexTuple;
+ Relation pg_index;
+ HeapTuple indexTuple;
Form_pg_index indexForm;
/*
@@ -450,18 +450,18 @@ DefineIndex(RangeVar *heapRelation,
* for an overview of how this works)
*
* We must commit our current transaction so that the index becomes
- * visible; then start another. Note that all the data structures
- * we just built are lost in the commit. The only data we keep past
- * here are the relation IDs.
+ * visible; then start another. Note that all the data structures we just
+ * built are lost in the commit. The only data we keep past here are the
+ * relation IDs.
*
* Before committing, get a session-level lock on the table, to ensure
- * that neither it nor the index can be dropped before we finish.
- * This cannot block, even if someone else is waiting for access, because
- * we already have the same lock within our transaction.
+ * that neither it nor the index can be dropped before we finish. This
+ * cannot block, even if someone else is waiting for access, because we
+ * already have the same lock within our transaction.
*
* Note: we don't currently bother with a session lock on the index,
- * because there are no operations that could change its state while
- * we hold lock on the parent table. This might need to change later.
+ * because there are no operations that could change its state while we
+ * hold lock on the parent table. This might need to change later.
*/
heaprelid = rel->rd_lockInfo.lockRelId;
LockRelationIdForSession(&heaprelid, ShareUpdateExclusiveLock);
@@ -471,15 +471,15 @@ DefineIndex(RangeVar *heapRelation,
/*
* Now we must wait until no running transaction could have the table open
- * with the old list of indexes. To do this, inquire which xacts currently
- * would conflict with ShareLock on the table -- ie, which ones have
- * a lock that permits writing the table. Then wait for each of these
- * xacts to commit or abort. Note we do not need to worry about xacts
- * that open the table for writing after this point; they will see the
- * new index when they open it.
+ * with the old list of indexes. To do this, inquire which xacts
+ * currently would conflict with ShareLock on the table -- ie, which ones
+ * have a lock that permits writing the table. Then wait for each of
+ * these xacts to commit or abort. Note we do not need to worry about
+ * xacts that open the table for writing after this point; they will see
+ * the new index when they open it.
*
- * Note: GetLockConflicts() never reports our own xid,
- * hence we need not check for that.
+ * Note: GetLockConflicts() never reports our own xid, hence we need not
+ * check for that.
*/
SET_LOCKTAG_RELATION(heaplocktag, heaprelid.dbId, heaprelid.relId);
old_xact_list = GetLockConflicts(&heaplocktag, ShareLock);
@@ -493,12 +493,12 @@ DefineIndex(RangeVar *heapRelation,
/*
* Now take the "reference snapshot" that will be used by validate_index()
- * to filter candidate tuples. All other transactions running at this
+ * to filter candidate tuples. All other transactions running at this
* time will have to be out-waited before we can commit, because we can't
* guarantee that tuples deleted just before this will be in the index.
*
- * We also set ActiveSnapshot to this snap, since functions in indexes
- * may need a snapshot.
+ * We also set ActiveSnapshot to this snap, since functions in indexes may
+ * need a snapshot.
*/
snapshot = CopySnapshot(GetTransactionSnapshot());
ActiveSnapshot = snapshot;
@@ -510,13 +510,13 @@ 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 older than the reference snap. We can do this by
- * waiting for each xact explicitly listed in the snap.
+ * interesting tuples. But since it might not contain tuples deleted just
+ * before the reference snap was taken, we have to wait out any
+ * transactions older than the reference snap. We can do this by waiting
+ * for each xact explicitly listed in the snap.
*
- * Note: GetSnapshotData() never stores our own xid into a snap,
- * hence we need not check for that.
+ * Note: GetSnapshotData() never stores our own xid into a snap, hence we
+ * need not check for that.
*/
for (ixcnt = 0; ixcnt < snapshot->xcnt; ixcnt++)
XactLockTableWait(snapshot->xip[ixcnt]);
diff --git a/src/backend/commands/opclasscmds.c b/src/backend/commands/opclasscmds.c
index 5d77e056e1..4407e2785c 100644
--- a/src/backend/commands/opclasscmds.c
+++ b/src/backend/commands/opclasscmds.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/opclasscmds.c,v 1.48 2006/07/18 17:42:00 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/opclasscmds.c,v 1.49 2006/10/04 00:29:51 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -128,7 +128,7 @@ DefineOpClass(CreateOpClassStmt *stmt)
* A minimum expectation therefore is that the caller have execute
* privilege with grant option. Since we don't have a way to make the
* opclass go away if the grant option is revoked, we choose instead to
- * require ownership of the functions. It's also not entirely clear what
+ * require ownership of the functions. It's also not entirely clear what
* permissions should be required on the datatype, but ownership seems
* like a safe choice.
*
@@ -699,7 +699,7 @@ RemoveOpClass(RemoveOpClassStmt *stmt)
opcID = OpclassnameGetOpcid(amID, opcname);
if (!OidIsValid(opcID))
{
- if (! stmt -> missing_ok )
+ if (!stmt->missing_ok)
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_OBJECT),
errmsg("operator class \"%s\" does not exist for access method \"%s\"",
@@ -708,10 +708,10 @@ RemoveOpClass(RemoveOpClassStmt *stmt)
ereport(NOTICE,
(errmsg("operator class \"%s\" does not exist for access method \"%s\"",
opcname, stmt->amname)));
-
+
return;
}
-
+
tuple = SearchSysCache(CLAOID,
ObjectIdGetDatum(opcID),
0, 0, 0);
@@ -719,19 +719,19 @@ RemoveOpClass(RemoveOpClassStmt *stmt)
if (!HeapTupleIsValid(tuple))
{
-
- if (! stmt->missing_ok )
+
+ if (!stmt->missing_ok)
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_OBJECT),
errmsg("operator class \"%s\" does not exist for access method \"%s\"",
- NameListToString(stmt->opclassname), stmt->amname)));
+ NameListToString(stmt->opclassname), stmt->amname)));
else
ereport(NOTICE,
(errmsg("operator class \"%s\" does not exist for access method \"%s\"",
- NameListToString(stmt->opclassname), stmt->amname)));
+ NameListToString(stmt->opclassname), stmt->amname)));
return;
}
-
+
opcID = HeapTupleGetOid(tuple);
/* Permission check: must own opclass or its namespace */
diff --git a/src/backend/commands/operatorcmds.c b/src/backend/commands/operatorcmds.c
index 2aed55ed45..76884e8cd8 100644
--- a/src/backend/commands/operatorcmds.c
+++ b/src/backend/commands/operatorcmds.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/operatorcmds.c,v 1.32 2006/10/03 21:21:36 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/operatorcmds.c,v 1.33 2006/10/04 00:29:51 momjian Exp $
*
* DESCRIPTION
* The "DefineFoo" routines take the parse tree and pick out the
@@ -214,14 +214,14 @@ RemoveOperator(RemoveFuncStmt *stmt)
operOid = LookupOperNameTypeNames(NULL, operatorName,
typeName1, typeName2,
stmt->missing_ok, -1);
-
- if (stmt->missing_ok &&!OidIsValid(operOid) )
- {
- ereport(NOTICE,
- (errmsg("operator %s does not exist, skipping",
- NameListToString(operatorName))));
- return;
- }
+
+ if (stmt->missing_ok && !OidIsValid(operOid))
+ {
+ ereport(NOTICE,
+ (errmsg("operator %s does not exist, skipping",
+ NameListToString(operatorName))));
+ return;
+ }
tup = SearchSysCache(OPEROID,
ObjectIdGetDatum(operOid),
diff --git a/src/backend/commands/portalcmds.c b/src/backend/commands/portalcmds.c
index 48833e7dc0..8907aac8a9 100644
--- a/src/backend/commands/portalcmds.c
+++ b/src/backend/commands/portalcmds.c
@@ -14,7 +14,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/portalcmds.c,v 1.55 2006/09/07 22:52:00 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/portalcmds.c,v 1.56 2006/10/04 00:29:51 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -108,8 +108,8 @@ PerformCursorOpen(DeclareCursorStmt *stmt, ParamListInfo params)
plan = copyObject(plan);
/*
- * XXX: debug_query_string is wrong here: the user might have
- * submitted multiple semicolon delimited queries.
+ * XXX: debug_query_string is wrong here: the user might have submitted
+ * multiple semicolon delimited queries.
*/
PortalDefineQuery(portal,
NULL,
diff --git a/src/backend/commands/prepare.c b/src/backend/commands/prepare.c
index 46824a48e5..6b7c11a189 100644
--- a/src/backend/commands/prepare.c
+++ b/src/backend/commands/prepare.c
@@ -10,7 +10,7 @@
* Copyright (c) 2002-2006, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/prepare.c,v 1.65 2006/09/27 18:40:09 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/prepare.c,v 1.66 2006/10/04 00:29:51 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -162,7 +162,7 @@ ExecuteQuery(ExecuteStmt *stmt, ParamListInfo params,
portal = CreateNewPortal();
/* Don't display the portal in pg_cursors, it is for internal use only */
portal->visible = false;
-
+
/*
* For CREATE TABLE / AS EXECUTE, make a copy of the stored query so that
* we can modify its destination (yech, but this has always been ugly).
@@ -251,7 +251,7 @@ EvaluateParams(EState *estate, List *params, List *argtypes)
/* sizeof(ParamListInfoData) includes the first array element */
paramLI = (ParamListInfo) palloc(sizeof(ParamListInfoData) +
- (nargs - 1) * sizeof(ParamExternData));
+ (nargs - 1) *sizeof(ParamExternData));
paramLI->numParams = nargs;
forboth(le, exprstates, la, argtypes)
@@ -674,22 +674,21 @@ ExplainExecuteQuery(ExplainStmt *stmt, ParamListInfo params,
Datum
pg_prepared_statement(PG_FUNCTION_ARGS)
{
- FuncCallContext *funcctx;
- HASH_SEQ_STATUS *hash_seq;
- PreparedStatement *prep_stmt;
+ FuncCallContext *funcctx;
+ HASH_SEQ_STATUS *hash_seq;
+ PreparedStatement *prep_stmt;
/* stuff done only on the first call of the function */
if (SRF_IS_FIRSTCALL())
{
- TupleDesc tupdesc;
- MemoryContext oldcontext;
+ TupleDesc tupdesc;
+ MemoryContext oldcontext;
/* create a function context for cross-call persistence */
funcctx = SRF_FIRSTCALL_INIT();
/*
- * switch to memory context appropriate for multiple function
- * calls
+ * switch to memory context appropriate for multiple function calls
*/
oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
@@ -704,9 +703,8 @@ pg_prepared_statement(PG_FUNCTION_ARGS)
funcctx->user_fctx = NULL;
/*
- * 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",
@@ -735,21 +733,21 @@ pg_prepared_statement(PG_FUNCTION_ARGS)
prep_stmt = hash_seq_search(hash_seq);
if (prep_stmt)
{
- Datum result;
- HeapTuple tuple;
- Datum values[5];
- bool nulls[5];
+ Datum result;
+ HeapTuple tuple;
+ Datum values[5];
+ bool nulls[5];
MemSet(nulls, 0, sizeof(nulls));
values[0] = DirectFunctionCall1(textin,
- CStringGetDatum(prep_stmt->stmt_name));
+ CStringGetDatum(prep_stmt->stmt_name));
if (prep_stmt->query_string == NULL)
nulls[1] = true;
else
values[1] = DirectFunctionCall1(textin,
- CStringGetDatum(prep_stmt->query_string));
+ CStringGetDatum(prep_stmt->query_string));
values[2] = TimestampTzGetDatum(prep_stmt->prepare_time);
values[3] = build_regtype_array(prep_stmt->argtype_list);
@@ -783,8 +781,8 @@ build_regtype_array(List *oid_list)
i = 0;
foreach(lc, oid_list)
{
- Oid oid;
- Datum oid_str;
+ Oid oid;
+ Datum oid_str;
oid = lfirst_oid(lc);
oid_str = DirectFunctionCall1(oidout, ObjectIdGetDatum(oid));
diff --git a/src/backend/commands/proclang.c b/src/backend/commands/proclang.c
index f91242470a..7906f587b7 100644
--- a/src/backend/commands/proclang.c
+++ b/src/backend/commands/proclang.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/proclang.c,v 1.68 2006/10/03 21:21:36 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/proclang.c,v 1.69 2006/10/04 00:29:51 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -395,15 +395,15 @@ DropProceduralLanguage(DropPLangStmt *stmt)
0, 0, 0);
if (!HeapTupleIsValid(langTup))
{
- if (! stmt->missing_ok)
+ if (!stmt->missing_ok)
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_OBJECT),
errmsg("language \"%s\" does not exist", languageName)));
- else
+ else
ereport(NOTICE,
- (errmsg("language \"%s\" does not exist, skipping",
+ (errmsg("language \"%s\" does not exist, skipping",
languageName)));
-
+
return;
}
diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c
index 865c2f60fe..9d769cb052 100644
--- a/src/backend/commands/sequence.c
+++ b/src/backend/commands/sequence.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/sequence.c,v 1.139 2006/08/21 00:57:24 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/sequence.c,v 1.140 2006/10/04 00:29:51 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -85,7 +85,7 @@ static Relation open_share_lock(SeqTable seq);
static void init_sequence(Oid relid, SeqTable *p_elm, Relation *p_rel);
static Form_pg_sequence read_info(SeqTable elm, Relation rel, Buffer *buf);
static void init_params(List *options, bool isInit,
- Form_pg_sequence new, List **owned_by);
+ Form_pg_sequence new, List **owned_by);
static void do_setval(Oid relid, int64 next, bool iscalled);
static void process_owned_by(Relation seqrel, List *owned_by);
@@ -862,7 +862,7 @@ open_share_lock(SeqTable seq)
static void
init_sequence(Oid relid, SeqTable *p_elm, Relation *p_rel)
{
- SeqTable elm;
+ SeqTable elm;
Relation seqrel;
/* Look to see if we already have a seqtable entry for relation */
@@ -1180,7 +1180,7 @@ process_owned_by(Relation seqrel, List *owned_by)
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("invalid OWNED BY option"),
- errhint("Specify OWNED BY table.column or OWNED BY NONE.")));
+ errhint("Specify OWNED BY table.column or OWNED BY NONE.")));
tablerel = NULL;
attnum = 0;
}
@@ -1209,7 +1209,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 owned by")));
+ errmsg("sequence must have same owner as table it is owned by")));
if (RelationGetNamespace(seqrel) != RelationGetNamespace(tablerel))
ereport(ERROR,
(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
@@ -1225,8 +1225,8 @@ process_owned_by(Relation seqrel, List *owned_by)
}
/*
- * OK, we are ready to update pg_depend. First remove any existing
- * AUTO dependencies for the sequence, then optionally add a new one.
+ * OK, we are ready to update pg_depend. First remove any existing AUTO
+ * dependencies for the sequence, then optionally add a new one.
*/
markSequenceUnowned(RelationGetRelid(seqrel));
@@ -1304,5 +1304,5 @@ seq_desc(StringInfo buf, uint8 xl_info, char *rec)
}
appendStringInfo(buf, "rel %u/%u/%u",
- xlrec->node.spcNode, xlrec->node.dbNode, xlrec->node.relNode);
+ xlrec->node.spcNode, xlrec->node.dbNode, xlrec->node.relNode);
}
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index 45167b816a..04c2a03aa8 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.202 2006/09/04 21:15:55 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.203 2006/10/04 00:29:51 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -166,7 +166,7 @@ static void MergeAttributesIntoExisting(Relation child_rel, Relation parent_rel)
static bool change_varattnos_walker(Node *node, const AttrNumber *newattno);
static void StoreCatalogInheritance(Oid relationId, List *supers);
static void StoreCatalogInheritance1(Oid relationId, Oid parentOid,
- int16 seqNumber, Relation catalogRelation);
+ int16 seqNumber, Relation catalogRelation);
static int findAttrByName(const char *attributeName, List *schema);
static void setRelhassubclassInRelation(Oid relationId, bool relhassubclass);
static void AlterIndexNamespaces(Relation classRel, Relation rel,
@@ -566,18 +566,18 @@ ExecuteTruncate(TruncateStmt *stmt)
}
/*
- * In CASCADE mode, suck in all referencing relations as well. This
- * requires multiple iterations to find indirectly-dependent relations.
- * At each phase, we need to exclusive-lock new rels before looking
- * for their dependencies, else we might miss something. Also, we
- * check each rel as soon as we open it, to avoid a faux pas such as
- * holding lock for a long time on a rel we have no permissions for.
+ * In CASCADE mode, suck in all referencing relations as well. This
+ * requires multiple iterations to find indirectly-dependent relations. At
+ * each phase, we need to exclusive-lock new rels before looking for their
+ * dependencies, else we might miss something. Also, we check each rel as
+ * soon as we open it, to avoid a faux pas such as holding lock for a long
+ * time on a rel we have no permissions for.
*/
if (stmt->behavior == DROP_CASCADE)
{
for (;;)
{
- List *newrelids;
+ List *newrelids;
newrelids = heap_truncate_find_FKs(relids);
if (newrelids == NIL)
@@ -585,7 +585,7 @@ ExecuteTruncate(TruncateStmt *stmt)
foreach(cell, newrelids)
{
- Oid relid = lfirst_oid(cell);
+ Oid relid = lfirst_oid(cell);
Relation rel;
rel = heap_open(relid, AccessExclusiveLock);
@@ -601,8 +601,8 @@ ExecuteTruncate(TruncateStmt *stmt)
/*
* Check foreign key references. In CASCADE mode, this should be
- * unnecessary since we just pulled in all the references; but as
- * a cross-check, do it anyway if in an Assert-enabled build.
+ * unnecessary since we just pulled in all the references; but as a
+ * cross-check, do it anyway if in an Assert-enabled build.
*/
#ifdef USE_ASSERT_CHECKING
heap_truncate_check_FKs(rels, false);
@@ -612,9 +612,9 @@ ExecuteTruncate(TruncateStmt *stmt)
#endif
/*
- * Also check for pending AFTER trigger events on the target relations.
- * We can't just leave those be, since they will try to fetch tuples
- * that the TRUNCATE removes.
+ * Also check for pending AFTER trigger events on the target relations. We
+ * can't just leave those be, since they will try to fetch tuples that the
+ * TRUNCATE removes.
*/
AfterTriggerCheckTruncate(relids);
@@ -657,7 +657,7 @@ ExecuteTruncate(TruncateStmt *stmt)
}
/*
- * Check that a given rel is safe to truncate. Subroutine for ExecuteTruncate
+ * Check that a given rel is safe to truncate. Subroutine for ExecuteTruncate
*/
static void
truncate_check_rel(Relation rel)
@@ -681,9 +681,8 @@ truncate_check_rel(Relation rel)
RelationGetRelationName(rel))));
/*
- * We can never allow truncation of shared or nailed-in-cache
- * relations, because we can't support changing their relfilenode
- * values.
+ * We can never allow truncation of shared or nailed-in-cache relations,
+ * because we can't support changing their relfilenode values.
*/
if (rel->rd_rel->relisshared || rel->rd_isnailed)
ereport(ERROR,
@@ -692,13 +691,13 @@ truncate_check_rel(Relation rel)
RelationGetRelationName(rel))));
/*
- * Don't allow truncate on temp tables of other backends ... their
- * local buffer manager is not going to cope.
+ * Don't allow truncate on temp tables of other backends ... their local
+ * buffer manager is not going to cope.
*/
if (isOtherTempNamespace(RelationGetNamespace(rel)))
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("cannot truncate temporary tables of other sessions")));
+ errmsg("cannot truncate temporary tables of other sessions")));
}
/*----------
@@ -1141,16 +1140,20 @@ change_varattnos_of_a_node(Node *node, const AttrNumber *newattno)
AttrNumber *
varattnos_map(TupleDesc old, TupleDesc new)
{
- int i,j;
- AttrNumber *attmap = palloc0(sizeof(AttrNumber)*old->natts);
- for (i=1; i <= old->natts; i++) {
- if (old->attrs[i-1]->attisdropped) {
- attmap[i-1] = 0;
+ int i,
+ j;
+ AttrNumber *attmap = palloc0(sizeof(AttrNumber) * old->natts);
+
+ for (i = 1; i <= old->natts; i++)
+ {
+ if (old->attrs[i - 1]->attisdropped)
+ {
+ attmap[i - 1] = 0;
continue;
}
- for (j=1; j<= new->natts; j++)
- if (!strcmp(NameStr(old->attrs[i-1]->attname), NameStr(new->attrs[j-1]->attname)))
- attmap[i-1] = j;
+ for (j = 1; j <= new->natts; j++)
+ if (!strcmp(NameStr(old->attrs[i - 1]->attname), NameStr(new->attrs[j - 1]->attname)))
+ attmap[i - 1] = j;
}
return attmap;
}
@@ -1160,16 +1163,19 @@ varattnos_map(TupleDesc old, TupleDesc new)
* ColumnDefs
*/
AttrNumber *
-varattnos_map_schema(TupleDesc old, List *schema)
+varattnos_map_schema(TupleDesc old, List *schema)
{
- int i;
- AttrNumber *attmap = palloc0(sizeof(AttrNumber)*old->natts);
- for (i=1; i <= old->natts; i++) {
- if (old->attrs[i-1]->attisdropped) {
- attmap[i-1] = 0;
+ int i;
+ AttrNumber *attmap = palloc0(sizeof(AttrNumber) * old->natts);
+
+ for (i = 1; i <= old->natts; i++)
+ {
+ if (old->attrs[i - 1]->attisdropped)
+ {
+ attmap[i - 1] = 0;
continue;
}
- attmap[i-1] = findAttrByName(NameStr(old->attrs[i-1]->attname), schema);
+ attmap[i - 1] = findAttrByName(NameStr(old->attrs[i - 1]->attname), schema);
}
return attmap;
}
@@ -1244,14 +1250,14 @@ StoreCatalogInheritance(Oid relationId, List *supers)
static void
StoreCatalogInheritance1(Oid relationId, Oid parentOid,
- int16 seqNumber, Relation relation)
+ int16 seqNumber, Relation relation)
{
- Datum datum[Natts_pg_inherits];
- char nullarr[Natts_pg_inherits];
- ObjectAddress childobject,
- parentobject;
- HeapTuple tuple;
- TupleDesc desc = RelationGetDescr(relation);
+ Datum datum[Natts_pg_inherits];
+ char nullarr[Natts_pg_inherits];
+ ObjectAddress childobject,
+ parentobject;
+ HeapTuple tuple;
+ TupleDesc desc = RelationGetDescr(relation);
datum[0] = ObjectIdGetDatum(relationId); /* inhrel */
datum[1] = ObjectIdGetDatum(parentOid); /* inhparent */
@@ -2100,8 +2106,8 @@ ATPrepCmd(List **wqueue, Relation rel, AlterTableCmd *cmd,
ATPrepSetTableSpace(tab, rel, cmd->name);
pass = AT_PASS_MISC; /* doesn't actually matter */
break;
- case AT_SetRelOptions: /* SET (...) */
- case AT_ResetRelOptions: /* RESET (...) */
+ case AT_SetRelOptions: /* SET (...) */
+ case AT_ResetRelOptions: /* RESET (...) */
ATSimplePermissionsRelationOrIndex(rel);
/* This command never recurses */
/* No command-specific prep needed */
@@ -2274,10 +2280,10 @@ ATExecCmd(AlteredTableInfo *tab, Relation rel, AlterTableCmd *cmd)
* Nothing to do here; Phase 3 does the work
*/
break;
- case AT_SetRelOptions: /* SET (...) */
+ case AT_SetRelOptions: /* SET (...) */
ATExecSetRelOptions(rel, (List *) cmd->def, false);
break;
- case AT_ResetRelOptions: /* RESET (...) */
+ case AT_ResetRelOptions: /* RESET (...) */
ATExecSetRelOptions(rel, (List *) cmd->def, true);
break;
case AT_EnableTrig: /* ENABLE TRIGGER name */
@@ -2564,8 +2570,8 @@ ATRewriteTable(AlteredTableInfo *tab, Oid OIDNewHeap)
/*
* If we are rebuilding the tuples OR if we added any new NOT NULL
* constraints, check all not-null constraints. This is a bit of
- * overkill but it minimizes risk of bugs, and heap_attisnull is
- * a pretty cheap test anyway.
+ * overkill but it minimizes risk of bugs, and heap_attisnull is a
+ * pretty cheap test anyway.
*/
for (i = 0; i < newTupDesc->natts; i++)
{
@@ -2679,13 +2685,13 @@ ATRewriteTable(AlteredTableInfo *tab, Oid OIDNewHeap)
foreach(l, notnull_attrs)
{
- int attn = lfirst_int(l);
+ int attn = lfirst_int(l);
- if (heap_attisnull(tuple, attn+1))
+ if (heap_attisnull(tuple, attn + 1))
ereport(ERROR,
(errcode(ERRCODE_NOT_NULL_VIOLATION),
errmsg("column \"%s\" contains null values",
- NameStr(newTupDesc->attrs[attn]->attname))));
+ NameStr(newTupDesc->attrs[attn]->attname))));
}
foreach(l, tab->constraints)
@@ -5105,7 +5111,7 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel,
if (!list_member_oid(tab->changedConstraintOids,
foundObject.objectId))
{
- char *defstring = pg_get_constraintdef_string(foundObject.objectId);
+ char *defstring = pg_get_constraintdef_string(foundObject.objectId);
/*
* Put NORMAL dependencies at the front of the list and
@@ -5302,10 +5308,10 @@ ATPostAlterTypeCleanup(List **wqueue, AlteredTableInfo *tab)
/*
* Now we can drop the existing constraints and indexes --- constraints
* first, since some of them might depend on the indexes. In fact, we
- * have to delete FOREIGN KEY constraints before UNIQUE constraints,
- * but we already ordered the constraint list to ensure that would happen.
- * It should be okay to use DROP_RESTRICT here, since nothing else should
- * be depending on these objects.
+ * have to delete FOREIGN KEY constraints before UNIQUE constraints, but
+ * we already ordered the constraint list to ensure that would happen. It
+ * should be okay to use DROP_RESTRICT here, since nothing else should be
+ * depending on these objects.
*/
foreach(l, tab->changedConstraintOids)
{
@@ -5482,17 +5488,17 @@ ATExecChangeOwner(Oid relationOid, Oid newOwnerId, bool recursing)
tuple_class->relowner != newOwnerId)
{
/* if it's an owned sequence, disallow changing it by itself */
- Oid tableId;
- int32 colId;
+ Oid tableId;
+ int32 colId;
if (sequenceIsOwned(relationOid, &tableId, &colId))
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("cannot change owner of sequence \"%s\"",
NameStr(tuple_class->relname)),
- errdetail("Sequence \"%s\" is linked to table \"%s\".",
- NameStr(tuple_class->relname),
- get_rel_name(tableId))));
+ errdetail("Sequence \"%s\" is linked to table \"%s\".",
+ NameStr(tuple_class->relname),
+ get_rel_name(tableId))));
}
break;
case RELKIND_TOASTVALUE:
@@ -6051,12 +6057,12 @@ ATExecEnableDisableTrigger(Relation rel, char *trigname,
}
static char *
-decompile_conbin(HeapTuple contup, TupleDesc tupdesc)
+decompile_conbin(HeapTuple contup, TupleDesc tupdesc)
{
- Form_pg_constraint con;
- bool isnull;
- Datum attr;
- Datum expr;
+ Form_pg_constraint con;
+ bool isnull;
+ Datum attr;
+ Datum expr;
con = (Form_pg_constraint) GETSTRUCT(contup);
attr = heap_getattr(contup, Anum_pg_constraint_conbin, tupdesc, &isnull);
@@ -6107,7 +6113,7 @@ ATExecAddInherits(Relation child_rel, RangeVar *parent)
ereport(ERROR,
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
errmsg("table \"%s\" without OIDs cannot inherit from table \"%s\" with OIDs",
- RelationGetRelationName(child_rel), parent->relname)));
+ RelationGetRelationName(child_rel), parent->relname)));
/*
* Don't allow any duplicates in the list of parents. We scan through the
@@ -6140,8 +6146,8 @@ ATExecAddInherits(Relation child_rel, RangeVar *parent)
heap_close(catalogRelation, RowExclusiveLock);
/*
- * If the new parent is found in our list of inheritors, we have a circular
- * structure
+ * If the new parent is found in our list of inheritors, we have a
+ * circular structure
*/
children = find_all_inheritors(RelationGetRelid(child_rel));
@@ -6183,12 +6189,12 @@ ATExecAddInherits(Relation child_rel, RangeVar *parent)
static void
MergeAttributesIntoExisting(Relation child_rel, Relation parent_rel)
{
- Relation attrdesc;
- AttrNumber parent_attno;
- int parent_natts;
- TupleDesc tupleDesc;
+ Relation attrdesc;
+ AttrNumber parent_attno;
+ int parent_natts;
+ TupleDesc tupleDesc;
TupleConstr *constr;
- HeapTuple tuple;
+ HeapTuple tuple;
tupleDesc = RelationGetDescr(parent_rel);
parent_natts = tupleDesc->natts;
@@ -6221,13 +6227,13 @@ MergeAttributesIntoExisting(Relation child_rel, Relation parent_rel)
ereport(ERROR,
(errcode(ERRCODE_DATATYPE_MISMATCH),
errmsg("child table \"%s\" has different type for column \"%s\"",
- RelationGetRelationName(child_rel), NameStr(attribute->attname))));
+ RelationGetRelationName(child_rel), NameStr(attribute->attname))));
if (attribute->attnotnull && !childatt->attnotnull)
ereport(ERROR,
(errcode(ERRCODE_DATATYPE_MISMATCH),
- errmsg("column \"%s\" in child table must be NOT NULL",
- NameStr(attribute->attname))));
+ errmsg("column \"%s\" in child table must be NOT NULL",
+ NameStr(attribute->attname))));
childatt->attinhcount++;
simple_heap_update(attrdesc, &tuple->t_self, tuple);
@@ -6555,13 +6561,13 @@ AlterTableNamespace(RangeVar *relation, const char *newschema)
/* if it's an owned sequence, disallow moving it by itself */
if (rel->rd_rel->relkind == RELKIND_SEQUENCE)
{
- Oid tableId;
- int32 colId;
+ Oid tableId;
+ int32 colId;
if (sequenceIsOwned(relid, &tableId, &colId))
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("cannot move an owned sequence into another schema"),
+ errmsg("cannot move an owned sequence into another schema"),
errdetail("Sequence \"%s\" is linked to table \"%s\".",
RelationGetRelationName(rel),
get_rel_name(tableId))));
diff --git a/src/backend/commands/tablespace.c b/src/backend/commands/tablespace.c
index e53ae3b61b..50d5e7d84e 100644
--- a/src/backend/commands/tablespace.c
+++ b/src/backend/commands/tablespace.c
@@ -37,7 +37,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/tablespace.c,v 1.38 2006/10/03 21:21:36 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/tablespace.c,v 1.39 2006/10/04 00:29:51 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -402,7 +402,7 @@ DropTableSpace(DropTableSpaceStmt *stmt)
if (!HeapTupleIsValid(tuple))
{
- if ( ! stmt->missing_ok )
+ if (!stmt->missing_ok)
{
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_OBJECT),
@@ -481,8 +481,8 @@ DropTableSpace(DropTableSpaceStmt *stmt)
}
/*
- * Note: because we checked that the tablespace was empty, there should
- * be no need to worry about flushing shared buffers or free space map
+ * Note: because we checked that the tablespace was empty, there should be
+ * no need to worry about flushing shared buffers or free space map
* entries for relations in the tablespace.
*/
@@ -1069,7 +1069,7 @@ tblspc_desc(StringInfo buf, uint8 xl_info, char *rec)
xl_tblspc_create_rec *xlrec = (xl_tblspc_create_rec *) rec;
appendStringInfo(buf, "create ts: %u \"%s\"",
- xlrec->ts_id, xlrec->ts_path);
+ xlrec->ts_id, xlrec->ts_path);
}
else if (info == XLOG_TBLSPC_DROP)
{
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 6d63356e10..1ed15614ce 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/trigger.c,v 1.208 2006/10/03 21:21:36 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/trigger.c,v 1.209 2006/10/04 00:29:51 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -480,7 +480,7 @@ DropTrigger(Oid relid, const char *trigname, DropBehavior behavior,
if (!HeapTupleIsValid(tup))
{
- if (! missing_ok)
+ if (!missing_ok)
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_OBJECT),
errmsg("trigger \"%s\" for table \"%s\" does not exist",
@@ -856,8 +856,8 @@ RelationBuildTriggers(Relation relation)
/*
* Note: since we scan the triggers using TriggerRelidNameIndexId, we will
* be reading the triggers in name order, except possibly during
- * emergency-recovery operations (ie, IgnoreSystemIndexes). This in
- * turn ensures that triggers will be fired in name order.
+ * emergency-recovery operations (ie, IgnoreSystemIndexes). This in turn
+ * ensures that triggers will be fired in name order.
*/
ScanKeyInit(&skey,
Anum_pg_trigger_tgrelid,
@@ -2940,26 +2940,30 @@ AfterTriggerSetState(ConstraintsSetStmt *stmt)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("cross-database references are not implemented: \"%s.%s.%s\"",
- constraint->catalogname, constraint->schemaname,
+ constraint->catalogname, constraint->schemaname,
constraint->relname)));
}
- /*
+ /*
* If we're given the schema name with the constraint, look only
- * in that schema. If given a bare constraint name, use the
+ * in that schema. If given a bare constraint name, use the
* search path to find the first matching constraint.
*/
- if (constraint->schemaname) {
- Oid namespaceId = LookupExplicitNamespace(constraint->schemaname);
+ if (constraint->schemaname)
+ {
+ Oid namespaceId = LookupExplicitNamespace(constraint->schemaname);
+
namespaceSearchList = list_make1_oid(namespaceId);
- } else {
+ }
+ else
+ {
namespaceSearchList = fetch_search_path(true);
}
found = false;
foreach(namespaceSearchCell, namespaceSearchList)
{
- Oid searchNamespaceId = lfirst_oid(namespaceSearchCell);
+ Oid searchNamespaceId = lfirst_oid(namespaceSearchCell);
/*
* Setup to scan pg_trigger by tgconstrname ...
@@ -2978,18 +2982,18 @@ AfterTriggerSetState(ConstraintsSetStmt *stmt)
while (HeapTupleIsValid(htup = systable_getnext(tgscan)))
{
Form_pg_trigger pg_trigger = (Form_pg_trigger) GETSTRUCT(htup);
- Oid constraintNamespaceId;
+ Oid constraintNamespaceId;
/*
* Foreign key constraints have triggers on both the
- * parent and child tables. Since these tables may be
- * in different schemas we must pick the child table
- * because that table "owns" the constraint.
+ * parent and child tables. Since these tables may be in
+ * different schemas we must pick the child table because
+ * that table "owns" the constraint.
*
* Referential triggers on the parent table other than
- * NOACTION_DEL and NOACTION_UPD are ignored below, so
- * it is possible to not check them here, but it seems
- * safer to always check.
+ * NOACTION_DEL and NOACTION_UPD are ignored below, so it
+ * is possible to not check them here, but it seems safer
+ * to always check.
*/
if (pg_trigger->tgfoid == F_RI_FKEY_NOACTION_DEL ||
pg_trigger->tgfoid == F_RI_FKEY_NOACTION_UPD ||
@@ -3006,16 +3010,16 @@ AfterTriggerSetState(ConstraintsSetStmt *stmt)
constraintNamespaceId = get_rel_namespace(pg_trigger->tgrelid);
/*
- * If this constraint is not in the schema we're
- * currently searching for, keep looking.
+ * If this constraint is not in the schema we're currently
+ * searching for, keep looking.
*/
if (constraintNamespaceId != searchNamespaceId)
continue;
/*
- * If we found some, check that they fit the deferrability but
- * skip referential action ones, since they are silently never
- * deferrable.
+ * If we found some, check that they fit the deferrability
+ * but skip referential action ones, since they are
+ * silently never deferrable.
*/
if (pg_trigger->tgfoid != F_RI_FKEY_RESTRICT_UPD &&
pg_trigger->tgfoid != F_RI_FKEY_RESTRICT_DEL &&
@@ -3029,8 +3033,8 @@ AfterTriggerSetState(ConstraintsSetStmt *stmt)
if (stmt->deferred && !pg_trigger->tgdeferrable)
ereport(ERROR,
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
- errmsg("constraint \"%s\" is not deferrable",
- constraint->relname)));
+ errmsg("constraint \"%s\" is not deferrable",
+ constraint->relname)));
oidlist = lappend_oid(oidlist, HeapTupleGetOid(htup));
}
found = true;
@@ -3147,9 +3151,9 @@ AfterTriggerCheckTruncate(List *relids)
event = event->ate_next)
{
/*
- * We can ignore completed events. (Even if a DONE flag is rolled
- * back by subxact abort, it's OK because the effects of the
- * TRUNCATE must get rolled back too.)
+ * We can ignore completed events. (Even if a DONE flag is rolled
+ * back by subxact abort, it's OK because the effects of the TRUNCATE
+ * must get rolled back too.)
*/
if (event->ate_event & AFTER_TRIGGER_DONE)
continue;
@@ -3162,10 +3166,9 @@ AfterTriggerCheckTruncate(List *relids)
}
/*
- * Also scan events queued by incomplete queries. This could only
- * matter if a TRUNCATE is executed by a function or trigger within
- * an updating query on the same relation, which is pretty perverse,
- * but let's check.
+ * Also scan events queued by incomplete queries. This could only matter
+ * if a TRUNCATE is executed by a function or trigger within an updating
+ * query on the same relation, which is pretty perverse, but let's check.
*/
for (depth = 0; depth <= afterTriggers->query_depth; depth++)
{
diff --git a/src/backend/commands/typecmds.c b/src/backend/commands/typecmds.c
index 6dfa6296d5..53cca73a9d 100644
--- a/src/backend/commands/typecmds.c
+++ b/src/backend/commands/typecmds.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/typecmds.c,v 1.96 2006/07/31 20:09:00 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/typecmds.c,v 1.97 2006/10/04 00:29:51 momjian Exp $
*
* DESCRIPTION
* The "DefineFoo" routines take the parse tree and pick out the
@@ -343,12 +343,12 @@ DefineType(List *names, List *parameters)
analyzeOid = findTypeAnalyzeFunction(analyzeName, typoid);
/*
- * Check permissions on functions. We choose to require the creator/owner
- * of a type to also own the underlying functions. Since creating a type
+ * Check permissions on functions. We choose to require the creator/owner
+ * of a type to also own the underlying functions. Since creating a type
* is tantamount to granting public execute access on the functions, the
- * minimum sane check would be for execute-with-grant-option. But we don't
- * have a way to make the type go away if the grant option is revoked, so
- * ownership seems better.
+ * minimum sane check would be for execute-with-grant-option. But we
+ * don't have a way to make the type go away if the grant option is
+ * revoked, so ownership seems better.
*/
if (inputOid && !pg_proc_ownercheck(inputOid, GetUserId()))
aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_PROC,
@@ -587,8 +587,8 @@ DefineDomain(CreateDomainStmt *stmt)
/*
* Base type must be a plain base type or another domain. Domains over
- * pseudotypes would create a security hole. Domains over composite
- * types might be made to work in the future, but not today.
+ * 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 != 'b' && typtype != 'd')
@@ -1840,7 +1840,7 @@ domainAddConstraint(Oid domainOid, Oid domainNamespace, Oid baseTypeOid,
if (pstate->p_hasAggs)
ereport(ERROR,
(errcode(ERRCODE_GROUPING_ERROR),
- errmsg("cannot use aggregate function in check constraint")));
+ errmsg("cannot use aggregate function in check constraint")));
/*
* Convert to string form for storage.
diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c
index 589111713b..2e9b27a598 100644
--- a/src/backend/commands/user.c
+++ b/src/backend/commands/user.c
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/backend/commands/user.c,v 1.173 2006/07/13 16:49:14 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/user.c,v 1.174 2006/10/04 00:29:51 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -377,8 +377,8 @@ CreateRole(CreateRoleStmt *stmt)
GetUserId(), false);
/*
- * Close pg_authid, but keep lock till commit (this is important
- * to prevent any risk of deadlock failure while updating flat file)
+ * Close pg_authid, but keep lock till commit (this is important to
+ * prevent any risk of deadlock failure while updating flat file)
*/
heap_close(pg_authid_rel, NoLock);
@@ -696,8 +696,8 @@ AlterRole(AlterRoleStmt *stmt)
false);
/*
- * Close pg_authid, but keep lock till commit (this is important
- * to prevent any risk of deadlock failure while updating flat file)
+ * Close pg_authid, but keep lock till commit (this is important to
+ * prevent any risk of deadlock failure while updating flat file)
*/
heap_close(pg_authid_rel, NoLock);
@@ -845,7 +845,7 @@ DropRole(DropRoleStmt *stmt)
else
{
ereport(NOTICE,
- (errmsg("role \"%s\" does not exist, skipping",
+ (errmsg("role \"%s\" does not exist, skipping",
role)));
}
@@ -1075,8 +1075,8 @@ RenameRole(const char *oldname, const char *newname)
ReleaseSysCache(oldtuple);
/*
- * Close pg_authid, but keep lock till commit (this is important
- * to prevent any risk of deadlock failure while updating flat file)
+ * Close pg_authid, but keep lock till commit (this is important to
+ * prevent any risk of deadlock failure while updating flat file)
*/
heap_close(rel, NoLock);
@@ -1132,8 +1132,8 @@ GrantRole(GrantRoleStmt *stmt)
}
/*
- * Close pg_authid, but keep lock till commit (this is important
- * to prevent any risk of deadlock failure while updating flat file)
+ * Close pg_authid, but keep lock till commit (this is important to
+ * prevent any risk of deadlock failure while updating flat file)
*/
heap_close(pg_authid_rel, NoLock);
@@ -1149,7 +1149,7 @@ GrantRole(GrantRoleStmt *stmt)
* Drop the objects owned by a given list of roles.
*/
void
-DropOwnedObjects(DropOwnedStmt * stmt)
+DropOwnedObjects(DropOwnedStmt *stmt)
{
List *role_ids = roleNamesToIds(stmt->roles);
ListCell *cell;
@@ -1175,7 +1175,7 @@ DropOwnedObjects(DropOwnedStmt * stmt)
* Give the objects owned by a given list of roles away to another user.
*/
void
-ReassignOwnedObjects(ReassignOwnedStmt * stmt)
+ReassignOwnedObjects(ReassignOwnedStmt *stmt)
{
List *role_ids = roleNamesToIds(stmt->roles);
ListCell *cell;
@@ -1360,8 +1360,8 @@ AddRoleMems(const char *rolename, Oid roleid,
}
/*
- * Close pg_authmem, but keep lock till commit (this is important
- * to prevent any risk of deadlock failure while updating flat file)
+ * Close pg_authmem, but keep lock till commit (this is important to
+ * prevent any risk of deadlock failure while updating flat file)
*/
heap_close(pg_authmem_rel, NoLock);
}
@@ -1473,8 +1473,8 @@ DelRoleMems(const char *rolename, Oid roleid,
}
/*
- * Close pg_authmem, but keep lock till commit (this is important
- * to prevent any risk of deadlock failure while updating flat file)
+ * Close pg_authmem, but keep lock till commit (this is important to
+ * prevent any risk of deadlock failure while updating flat file)
*/
heap_close(pg_authmem_rel, NoLock);
}
diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c
index 5a6d5a04b0..e9f0bf363e 100644
--- a/src/backend/commands/vacuum.c
+++ b/src/backend/commands/vacuum.c
@@ -13,7 +13,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/vacuum.c,v 1.340 2006/09/21 20:31:22 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/vacuum.c,v 1.341 2006/10/04 00:29:51 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -125,7 +125,7 @@ typedef struct VRelStats
Size min_tlen;
Size max_tlen;
bool hasindex;
- TransactionId minxid; /* Minimum Xid present anywhere on table */
+ TransactionId minxid; /* Minimum Xid present anywhere on table */
/* vtlinks array for tuple chain following - sorted by new_tid */
int num_vtlinks;
VTupleLink vtlinks;
@@ -238,7 +238,7 @@ static int vac_cmp_blk(const void *left, const void *right);
static int vac_cmp_offno(const void *left, const void *right);
static int vac_cmp_vtlinks(const void *left, const void *right);
static bool enough_space(VacPage vacpage, Size len);
-static Size PageGetFreeSpaceWithFillFactor(Relation relation, Page page);
+static Size PageGetFreeSpaceWithFillFactor(Relation relation, Page page);
/****************************************************************************
@@ -320,8 +320,8 @@ vacuum(VacuumStmt *vacstmt, List *relids)
errhint("Use VACUUM FULL, then VACUUM FREEZE.")));
/*
- * Send info about dead objects to the statistics collector, unless
- * we are in autovacuum --- autovacuum.c does this for itself.
+ * Send info about dead objects to the statistics collector, unless we are
+ * in autovacuum --- autovacuum.c does this for itself.
*/
if (vacstmt->vacuum && !IsAutoVacuumProcess())
pgstat_vacuum_tabstat();
@@ -481,20 +481,21 @@ vacuum(VacuumStmt *vacstmt, List *relids)
* PostgresMain().
*/
StartTransactionCommand();
+
/*
- * Re-establish the transaction snapshot. This is wasted effort
- * when we are called as a normal utility command, because the
- * new transaction will be dropped immediately by PostgresMain();
- * but it's necessary if we are called from autovacuum because
- * autovacuum might continue on to do an ANALYZE-only call.
+ * Re-establish the transaction snapshot. This is wasted effort when
+ * we are called as a normal utility command, because the new
+ * transaction will be dropped immediately by PostgresMain(); but it's
+ * necessary if we are called from autovacuum because autovacuum might
+ * continue on to do an ANALYZE-only call.
*/
ActiveSnapshot = CopySnapshot(GetTransactionSnapshot());
}
if (vacstmt->vacuum)
{
- TransactionId minxid,
- vacuumxid;
+ TransactionId minxid,
+ vacuumxid;
/*
* If it was a database-wide VACUUM, print FSM usage statistics (we
@@ -593,9 +594,9 @@ vacuum_set_xid_limits(VacuumStmt *vacstmt, bool sharedRel,
TransactionId limit;
/*
- * We can always ignore processes running lazy vacuum. This is because we
+ * 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 to the table, it's
+ * tables. Since lazy vacuum doesn't write its xid to the table, 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
@@ -704,6 +705,7 @@ vac_update_relstats(Oid relid, BlockNumber num_pages, double num_tuples,
pgcform->relhasindex = hasindex;
dirty = true;
}
+
/*
* If we have discovered that there are no indexes, then there's no
* primary key either. This could be done more thoroughly...
@@ -740,11 +742,11 @@ vac_update_relstats(Oid relid, BlockNumber num_pages, double num_tuples,
/*
* vac_update_dbminxid() -- update the minimum Xid present in one database
*
- * Update pg_database's datminxid and datvacuumxid, and the flat-file copy
- * of it. datminxid is updated to the minimum of all relminxid found in
- * pg_class. datvacuumxid is updated to the minimum of all relvacuumxid
- * found in pg_class. The values are also returned in minxid and
- * vacuumxid, respectively.
+ * Update pg_database's datminxid and datvacuumxid, and the flat-file copy
+ * of it. datminxid is updated to the minimum of all relminxid found in
+ * pg_class. datvacuumxid is updated to the minimum of all relvacuumxid
+ * found in pg_class. The values are also returned in minxid and
+ * vacuumxid, respectively.
*
* We violate transaction semantics here by overwriting the database's
* existing pg_database tuple with the new values. This is reasonably
@@ -760,15 +762,15 @@ vac_update_dbminxid(Oid dbid, TransactionId *minxid, TransactionId *vacuumxid)
HeapTuple tuple;
Form_pg_database dbform;
Relation relation;
- SysScanDesc scan;
+ SysScanDesc scan;
HeapTuple classTup;
- TransactionId newMinXid = InvalidTransactionId;
- TransactionId newVacXid = InvalidTransactionId;
+ TransactionId newMinXid = InvalidTransactionId;
+ TransactionId newVacXid = InvalidTransactionId;
bool dirty = false;
- /*
- * We must seqscan pg_class to find the minimum Xid, because there
- * is no index that can help us here.
+ /*
+ * We must seqscan pg_class to find the minimum Xid, because there is no
+ * index that can help us here.
*/
relation = heap_open(RelationRelationId, AccessShareLock);
@@ -845,7 +847,7 @@ vac_update_dbminxid(Oid dbid, TransactionId *minxid, TransactionId *vacuumxid)
*vacuumxid = newVacXid;
/* Mark the flat-file copy of pg_database for update at commit */
- database_file_update_needed();
+ database_file_update_needed();
}
@@ -970,14 +972,14 @@ vac_truncate_clog(TransactionId myminxid, TransactionId myvacxid)
* XXX -- the test we use here is fairly arbitrary. Note that in the
* autovacuum database-wide code, a template database is always processed
* with VACUUM FREEZE, so we can be sure that it will be truly frozen so
- * it won't be need to be processed here again soon.
+ * it won't be need to be processed here again soon.
*
* FIXME -- here we could get into a kind of loop if the database being
* chosen is not actually a template database, because we'll not freeze
* it, so its age may not really decrease if there are any live
* non-freezable tuples. Consider forcing a vacuum freeze if autovacuum
- * is invoked by a backend. On the other hand, forcing a vacuum freeze
- * on a user database may not a be a very polite thing to do.
+ * is invoked by a backend. On the other hand, forcing a vacuum freeze on
+ * a user database may not a be a very polite thing to do.
*/
if (!AutoVacuumingActive() && age > (int32) ((MaxTransactionId >> 3) * 3))
SendPostmasterSignal(PMSIGNAL_START_AUTOVAC);
@@ -1022,18 +1024,18 @@ vacuum_rel(Oid relid, VacuumStmt *vacstmt, char expected_relkind)
else
{
/*
- * During a lazy VACUUM we do not run any user-supplied functions,
- * and so it should be safe to not create a transaction snapshot.
+ * During a lazy VACUUM we do not run any user-supplied functions, and
+ * so it should be safe to not create a transaction snapshot.
*
* We can furthermore set the inVacuum flag, which lets other
* concurrent VACUUMs know that they can ignore this one while
* determining their OldestXmin. (The reason we don't set inVacuum
* 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.)
+ * 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: the inVacuum flag remains set until CommitTransaction or
* AbortTransaction. We don't want to clear it until we reset
@@ -1059,8 +1061,8 @@ vacuum_rel(Oid relid, VacuumStmt *vacstmt, char expected_relkind)
/*
* Open the relation and get the appropriate lock on it.
*
- * There's a race condition here: the rel may have gone away since
- * the last time we saw it. If so, we don't need to vacuum it.
+ * There's a race condition here: the rel may have gone away since the
+ * last time we saw it. If so, we don't need to vacuum it.
*/
onerel = try_relation_open(relid, lmode);
@@ -1116,7 +1118,7 @@ vacuum_rel(Oid relid, VacuumStmt *vacstmt, char expected_relkind)
{
relation_close(onerel, lmode);
CommitTransactionCommand();
- return; /* assume no long-lived data in temp tables */
+ return; /* assume no long-lived data in temp tables */
}
/*
@@ -1207,7 +1209,7 @@ full_vacuum_rel(Relation onerel, VacuumStmt *vacstmt)
i;
VRelStats *vacrelstats;
TransactionId FreezeLimit,
- OldestXmin;
+ OldestXmin;
vacuum_set_xid_limits(vacstmt, onerel->rd_rel->relisshared,
&OldestXmin, &FreezeLimit);
@@ -1221,13 +1223,13 @@ full_vacuum_rel(Relation onerel, VacuumStmt *vacstmt)
vacrelstats->hasindex = false;
/*
- * Set initial minimum Xid, which will be updated if a smaller Xid is found
- * in the relation by scan_heap.
+ * Set initial minimum Xid, which will be updated if a smaller Xid is
+ * found in the relation by scan_heap.
*
* We use RecentXmin here (the minimum Xid that belongs to a transaction
* that is still open according to our snapshot), because it is the
- * earliest transaction that could insert new tuples in the table after our
- * VACUUM is done.
+ * earliest transaction that could insert new tuples in the table after
+ * our VACUUM is done.
*/
vacrelstats->minxid = RecentXmin;
@@ -1557,7 +1559,7 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
}
else
{
- TransactionId min;
+ TransactionId min;
num_tuples += 1;
notup = false;
@@ -1566,7 +1568,7 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
if (tuple.t_len > max_tlen)
max_tlen = tuple.t_len;
- /*
+ /*
* If the tuple is alive, we consider it for the "minxid"
* calculations.
*/
@@ -1710,23 +1712,23 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
TransactionId
vactuple_get_minxid(HeapTuple tuple)
{
- TransactionId min = InvalidTransactionId;
+ TransactionId min = InvalidTransactionId;
- /*
- * Initialize calculations with Xmin. NB -- may be FrozenXid and
- * we don't want that one.
+ /*
+ * Initialize calculations with Xmin. NB -- may be FrozenXid and we don't
+ * want that one.
*/
if (TransactionIdIsNormal(HeapTupleHeaderGetXmin(tuple->t_data)))
min = HeapTupleHeaderGetXmin(tuple->t_data);
/*
* If Xmax is not marked INVALID, we assume it's valid without making
- * further checks on it --- it must be recently obsoleted or still running,
- * else HeapTupleSatisfiesVacuum would have deemed it removable.
+ * further checks on it --- it must be recently obsoleted or still
+ * running, else HeapTupleSatisfiesVacuum would have deemed it removable.
*/
if (!(tuple->t_data->t_infomask | HEAP_XMAX_INVALID))
{
- TransactionId xmax = HeapTupleHeaderGetXmax(tuple->t_data);
+ TransactionId xmax = HeapTupleHeaderGetXmax(tuple->t_data);
/* If xmax is a plain Xid, consider it by itself */
if (!(tuple->t_data->t_infomask | HEAP_XMAX_IS_MULTI))
diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index c839b951d9..c89dc20404 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -36,7 +36,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.79 2006/09/21 20:31:22 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.80 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -90,7 +90,7 @@ typedef struct LVRelStats
int num_free_pages; /* current # of entries */
int max_free_pages; /* # slots allocated in array */
PageFreeSpaceInfo *free_pages; /* array or heap of blkno/avail */
- BlockNumber tot_free_pages; /* total pages with >= threshold space */
+ BlockNumber tot_free_pages; /* total pages with >= threshold space */
} LVRelStats;
@@ -103,15 +103,15 @@ static void lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
TransactionId OldestXmin);
static void lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats);
static void lazy_vacuum_index(Relation indrel,
- IndexBulkDeleteResult **stats,
- LVRelStats *vacrelstats);
+ IndexBulkDeleteResult **stats,
+ LVRelStats *vacrelstats);
static void lazy_cleanup_index(Relation indrel,
- IndexBulkDeleteResult *stats,
- LVRelStats *vacrelstats);
+ IndexBulkDeleteResult *stats,
+ LVRelStats *vacrelstats);
static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
int tupindex, LVRelStats *vacrelstats);
static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats,
- TransactionId OldestXmin);
+ TransactionId OldestXmin);
static BlockNumber count_nondeletable_pages(Relation onerel,
LVRelStats *vacrelstats, TransactionId OldestXmin);
static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
@@ -143,7 +143,7 @@ lazy_vacuum_rel(Relation onerel, VacuumStmt *vacstmt)
int nindexes;
BlockNumber possibly_freeable;
TransactionId OldestXmin,
- FreezeLimit;
+ FreezeLimit;
if (vacstmt->verbose)
elevel = INFO;
@@ -160,8 +160,8 @@ lazy_vacuum_rel(Relation onerel, VacuumStmt *vacstmt)
vacrelstats->threshold = GetAvgFSMRequestSize(&onerel->rd_node);
/*
- * Set initial minimum Xid, which will be updated if a smaller Xid is found
- * in the relation by lazy_scan_heap.
+ * Set initial minimum Xid, which will be updated if a smaller Xid is
+ * found in the relation by lazy_scan_heap.
*
* We use RecentXmin here (the minimum Xid that belongs to a transaction
* that is still open according to our snapshot), because it is the
@@ -440,7 +440,7 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
num_tuples += 1;
hastup = true;
- /*
+ /*
* If the tuple is alive, we consider it for the "minxid"
* calculations.
*/
@@ -472,8 +472,8 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
* If we remembered any tuples for deletion, then the page will be
* visited again by lazy_vacuum_heap, which will compute and record
* its post-compaction free space. If not, then we're done with this
- * page, so remember its free space as-is. (This path will always
- * be taken if there are no indexes.)
+ * page, so remember its free space as-is. (This path will always be
+ * taken if there are no indexes.)
*/
if (vacrelstats->num_dead_tuples == prev_dead_count)
{
@@ -803,11 +803,12 @@ lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats,
}
}
vacrelstats->num_free_pages = j;
+
/*
* If tot_free_pages was more than num_free_pages, we can't tell for sure
* what its correct value is now, because we don't know which of the
- * forgotten pages are getting truncated. Conservatively set it equal
- * to num_free_pages.
+ * forgotten pages are getting truncated. Conservatively set it equal to
+ * num_free_pages.
*/
vacrelstats->tot_free_pages = j;
diff --git a/src/backend/commands/variable.c b/src/backend/commands/variable.c
index 2e270cde56..c910f6376f 100644
--- a/src/backend/commands/variable.c
+++ b/src/backend/commands/variable.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/variable.c,v 1.118 2006/07/14 14:52:18 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/variable.c,v 1.119 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -585,7 +585,7 @@ assign_client_encoding(const char *value, bool doit, GucSource source)
* limit on names, so we can tell whether we're being passed an initial
* role name or a saved/restored value. (NOTE: we rely on guc.c to have
* properly truncated any incoming value, but not to truncate already-stored
- * values. See GUC_IS_NAME processing.)
+ * values. See GUC_IS_NAME processing.)
*/
extern char *session_authorization_string; /* in guc.c */
diff --git a/src/backend/commands/view.c b/src/backend/commands/view.c
index df7f479f31..a79bd3cd4f 100644
--- a/src/backend/commands/view.c
+++ b/src/backend/commands/view.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/view.c,v 1.97 2006/08/21 00:57:24 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/view.c,v 1.98 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -119,7 +119,7 @@ DefineVirtualRelation(const RangeVar *relation, List *tlist, bool replace)
def->colname = pstrdup(tle->resname);
def->typename = makeTypeNameFromOid(exprType((Node *) tle->expr),
- exprTypmod((Node *) tle->expr));
+ exprTypmod((Node *) tle->expr));
def->inhcount = 0;
def->is_local = true;
def->is_not_null = false;
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index 4b8a166ffa..5e5ca085ba 100644
--- a/src/backend/executor/execMain.c
+++ b/src/backend/executor/execMain.c
@@ -26,7 +26,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/execMain.c,v 1.279 2006/08/12 20:05:55 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/execMain.c,v 1.280 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -76,17 +76,17 @@ static TupleTableSlot *ExecutePlan(EState *estate, PlanState *planstate,
ScanDirection direction,
DestReceiver *dest);
static void ExecSelect(TupleTableSlot *slot,
- DestReceiver *dest, EState *estate);
+ DestReceiver *dest, EState *estate);
static void ExecInsert(TupleTableSlot *slot, ItemPointer tupleid,
- TupleTableSlot *planSlot,
- DestReceiver *dest, EState *estate);
+ TupleTableSlot *planSlot,
+ DestReceiver *dest, EState *estate);
static void ExecDelete(ItemPointer tupleid,
- TupleTableSlot *planSlot,
- DestReceiver *dest, EState *estate);
+ TupleTableSlot *planSlot,
+ DestReceiver *dest, EState *estate);
static void ExecUpdate(TupleTableSlot *slot, ItemPointer tupleid,
- TupleTableSlot *planSlot,
- DestReceiver *dest, EState *estate);
-static void ExecProcessReturning(ProjectionInfo *projectReturning,
+ TupleTableSlot *planSlot,
+ DestReceiver *dest, EState *estate);
+static void ExecProcessReturning(ProjectionInfo *projectReturning,
TupleTableSlot *tupleSlot,
TupleTableSlot *planSlot,
DestReceiver *dest);
@@ -758,32 +758,33 @@ InitPlan(QueryDesc *queryDesc, int eflags)
econtext = CreateExprContext(estate);
/*
- * Build a projection for each result rel. Note that any SubPlans
- * in the RETURNING lists get attached to the topmost plan node.
+ * Build a projection for each result rel. Note that any SubPlans in
+ * the RETURNING lists get attached to the topmost plan node.
*/
Assert(list_length(parseTree->returningLists) == estate->es_num_result_relations);
resultRelInfo = estate->es_result_relations;
foreach(l, parseTree->returningLists)
{
- List *rlist = (List *) lfirst(l);
- List *rliststate;
+ List *rlist = (List *) lfirst(l);
+ List *rliststate;
rliststate = (List *) ExecInitExpr((Expr *) rlist, planstate);
resultRelInfo->ri_projectReturning =
ExecBuildProjectionInfo(rliststate, econtext, slot);
resultRelInfo++;
}
+
/*
- * Because we already ran ExecInitNode() for the top plan node,
- * any subplans we just attached to it won't have been initialized;
- * so we have to do it here. (Ugly, but the alternatives seem worse.)
+ * Because we already ran ExecInitNode() for the top plan node, any
+ * subplans we just attached to it won't have been initialized; so we
+ * have to do it here. (Ugly, but the alternatives seem worse.)
*/
foreach(l, planstate->subPlan)
{
SubPlanState *sstate = (SubPlanState *) lfirst(l);
Assert(IsA(sstate, SubPlanState));
- if (sstate->planstate == NULL) /* already inited? */
+ if (sstate->planstate == NULL) /* already inited? */
ExecInitSubPlan(sstate, estate, eflags);
}
}
@@ -1191,7 +1192,7 @@ lnext: ;
erm->rti,
&update_ctid,
update_xmax,
- estate->es_snapshot->curcid);
+ estate->es_snapshot->curcid);
if (!TupIsNull(newSlot))
{
slot = planSlot = newSlot;
@@ -1215,9 +1216,9 @@ lnext: ;
}
/*
- * Create a new "clean" tuple with all junk attributes removed.
- * We don't need to do this for DELETE, however (there will
- * in fact be no non-junk attributes in a DELETE!)
+ * Create a new "clean" tuple with all junk attributes removed. We
+ * don't need to do this for DELETE, however (there will in fact
+ * be no non-junk attributes in a DELETE!)
*/
if (operation != CMD_DELETE)
slot = ExecFilterJunk(junkfilter, slot);
@@ -1515,8 +1516,8 @@ ldelete:;
if (resultRelInfo->ri_projectReturning)
{
/*
- * We have to put the target tuple into a slot, which means
- * first we gotta fetch it. We can use the trigger tuple slot.
+ * We have to put the target tuple into a slot, which means first we
+ * gotta fetch it. We can use the trigger tuple slot.
*/
TupleTableSlot *slot = estate->es_trig_tuple_slot;
HeapTupleData deltuple;
@@ -1815,13 +1816,13 @@ ExecConstraints(ResultRelInfo *resultRelInfo,
* dest: where to send the output
*/
static void
-ExecProcessReturning(ProjectionInfo *projectReturning,
+ExecProcessReturning(ProjectionInfo *projectReturning,
TupleTableSlot *tupleSlot,
TupleTableSlot *planSlot,
DestReceiver *dest)
{
- ExprContext *econtext = projectReturning->pi_exprContext;
- TupleTableSlot *retSlot;
+ ExprContext *econtext = projectReturning->pi_exprContext;
+ TupleTableSlot *retSlot;
/*
* Reset per-tuple memory context to free any expression evaluation
@@ -1942,12 +1943,12 @@ EvalPlanQual(EState *estate, Index rti,
* If tuple was inserted by our own transaction, we have to check
* cmin against curCid: cmin >= curCid means our command cannot
* see the tuple, so we should ignore it. Without this we are
- * open to the "Halloween problem" of indefinitely re-updating
- * the same tuple. (We need not check cmax because
- * HeapTupleSatisfiesDirty will consider a tuple deleted by
- * our transaction dead, regardless of cmax.) We just checked
- * that priorXmax == xmin, so we can test that variable instead
- * of doing HeapTupleHeaderGetXmin again.
+ * open to the "Halloween problem" of indefinitely re-updating the
+ * same tuple. (We need not check cmax because
+ * HeapTupleSatisfiesDirty will consider a tuple deleted by our
+ * transaction dead, regardless of cmax.) We just checked that
+ * priorXmax == xmin, so we can test that variable instead of
+ * doing HeapTupleHeaderGetXmin again.
*/
if (TransactionIdIsCurrentTransactionId(priorXmax) &&
HeapTupleHeaderGetCmin(tuple.t_data) >= curCid)
@@ -2379,7 +2380,8 @@ OpenIntoRel(QueryDesc *queryDesc)
(errcode(ERRCODE_UNDEFINED_OBJECT),
errmsg("tablespace \"%s\" does not exist",
parseTree->intoTableSpaceName)));
- } else
+ }
+ else
{
tablespaceId = GetDefaultTablespace();
/* note InvalidOid is OK in this case */
@@ -2426,15 +2428,15 @@ OpenIntoRel(QueryDesc *queryDesc)
FreeTupleDesc(tupdesc);
/*
- * Advance command counter so that the newly-created relation's
- * catalog tuples will be visible to heap_open.
+ * Advance command counter so that the newly-created relation's catalog
+ * tuples will be visible to heap_open.
*/
CommandCounterIncrement();
/*
* If necessary, create a TOAST table for the INTO relation. Note that
- * AlterTableCreateToastTable ends with CommandCounterIncrement(), so
- * that the TOAST table will be visible for insertion.
+ * AlterTableCreateToastTable ends with CommandCounterIncrement(), so that
+ * the TOAST table will be visible for insertion.
*/
AlterTableCreateToastTable(intoRelationId);
@@ -2449,11 +2451,11 @@ OpenIntoRel(QueryDesc *queryDesc)
/*
* We can skip WAL-logging the insertions, unless PITR is in use.
*
- * Note that for a non-temp INTO table, this is safe only because we
- * know that the catalog changes above will have been WAL-logged, and
- * so RecordTransactionCommit will think it needs to WAL-log the
- * eventual transaction commit. Else the commit might be lost, even
- * though all the data is safely fsync'd ...
+ * Note that for a non-temp INTO table, this is safe only because we know
+ * that the catalog changes above will have been WAL-logged, and so
+ * RecordTransactionCommit will think it needs to WAL-log the eventual
+ * transaction commit. Else the commit might be lost, even though all the
+ * data is safely fsync'd ...
*/
estate->es_into_relation_use_wal = XLogArchivingActive();
estate->es_into_relation_descriptor = intoRelationDesc;
diff --git a/src/backend/executor/execProcnode.c b/src/backend/executor/execProcnode.c
index 9f1fd54a8e..cd13bc6597 100644
--- a/src/backend/executor/execProcnode.c
+++ b/src/backend/executor/execProcnode.c
@@ -12,7 +12,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/execProcnode.c,v 1.58 2006/08/02 01:59:45 joe Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/execProcnode.c,v 1.59 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -197,7 +197,7 @@ ExecInitNode(Plan *node, EState *estate, int eflags)
case T_ValuesScan:
result = (PlanState *) ExecInitValuesScan((ValuesScan *) node,
- estate, eflags);
+ estate, eflags);
break;
/*
diff --git a/src/backend/executor/execQual.c b/src/backend/executor/execQual.c
index 7e9e51f139..3f9c090725 100644
--- a/src/backend/executor/execQual.c
+++ b/src/backend/executor/execQual.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/execQual.c,v 1.194 2006/09/28 20:51:41 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/execQual.c,v 1.195 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -108,8 +108,8 @@ static Datum ExecEvalRow(RowExprState *rstate,
ExprContext *econtext,
bool *isNull, ExprDoneCond *isDone);
static Datum ExecEvalRowCompare(RowCompareExprState *rstate,
- ExprContext *econtext,
- bool *isNull, ExprDoneCond *isDone);
+ ExprContext *econtext,
+ bool *isNull, ExprDoneCond *isDone);
static Datum ExecEvalCoalesce(CoalesceExprState *coalesceExpr,
ExprContext *econtext,
bool *isNull, ExprDoneCond *isDone);
@@ -882,7 +882,7 @@ get_cached_rowtype(Oid type_id, int32 typmod,
static void
ShutdownTupleDescRef(Datum arg)
{
- TupleDesc *cache_field = (TupleDesc *) DatumGetPointer(arg);
+ TupleDesc *cache_field = (TupleDesc *) DatumGetPointer(arg);
if (*cache_field)
ReleaseTupleDesc(*cache_field);
@@ -2015,8 +2015,8 @@ ExecEvalConvertRowtype(ConvertRowtypeExprState *cstate,
/* if first time through, initialize */
if (cstate->attrMap == NULL)
{
- MemoryContext old_cxt;
- int n;
+ MemoryContext old_cxt;
+ int n;
/* allocate state in long-lived memory context */
old_cxt = MemoryContextSwitchTo(econtext->ecxt_per_query_memory);
@@ -2502,7 +2502,7 @@ ExecEvalRowCompare(RowCompareExprState *rstate,
switch (rctype)
{
- /* EQ and NE cases aren't allowed here */
+ /* EQ and NE cases aren't allowed here */
case ROWCOMPARE_LT:
result = (cmpresult < 0);
break;
@@ -2722,7 +2722,7 @@ ExecEvalNullTest(NullTestState *nstate,
for (att = 1; att <= tupDesc->natts; att++)
{
/* ignore dropped columns */
- if (tupDesc->attrs[att-1]->attisdropped)
+ if (tupDesc->attrs[att - 1]->attisdropped)
continue;
if (heap_attisnull(&tmptup, att))
{
@@ -2764,7 +2764,7 @@ ExecEvalNullTest(NullTestState *nstate,
default:
elog(ERROR, "unrecognized nulltesttype: %d",
(int) ntest->nulltesttype);
- return (Datum) 0; /* keep compiler quiet */
+ return (Datum) 0; /* keep compiler quiet */
}
}
}
@@ -3564,16 +3564,17 @@ ExecInitExpr(Expr *node, PlanState *parent)
i = 0;
forboth(l, rcexpr->opnos, l2, rcexpr->opclasses)
{
- Oid opno = lfirst_oid(l);
- Oid opclass = lfirst_oid(l2);
- int strategy;
- Oid subtype;
- bool recheck;
- Oid proc;
+ Oid opno = lfirst_oid(l);
+ Oid opclass = lfirst_oid(l2);
+ int strategy;
+ Oid subtype;
+ bool recheck;
+ Oid proc;
get_op_opclass_properties(opno, opclass,
&strategy, &subtype, &recheck);
proc = get_opclass_proc(opclass, subtype, BTORDER_PROC);
+
/*
* If we enforced permissions checks on index support
* functions, we'd need to make a check here. But the
@@ -3632,11 +3633,12 @@ ExecInitExpr(Expr *node, PlanState *parent)
(errcode(ERRCODE_UNDEFINED_FUNCTION),
errmsg("could not identify a comparison function for type %s",
format_type_be(minmaxexpr->minmaxtype))));
+
/*
* If we enforced permissions checks on index support
- * functions, we'd need to make a check here. But the
- * index support machinery doesn't do that, and neither
- * does this code.
+ * functions, we'd need to make a check here. But the index
+ * support machinery doesn't do that, and neither does this
+ * code.
*/
fmgr_info(typentry->cmp_proc, &(mstate->cfunc));
state = (ExprState *) mstate;
diff --git a/src/backend/executor/execTuples.c b/src/backend/executor/execTuples.c
index 6e5f30bde4..fb1fdf9e72 100644
--- a/src/backend/executor/execTuples.c
+++ b/src/backend/executor/execTuples.c
@@ -15,7 +15,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/execTuples.c,v 1.97 2006/07/14 14:52:19 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/execTuples.c,v 1.98 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -722,7 +722,7 @@ ExecFetchSlotTuple(TupleTableSlot *slot)
* Fetch the slot's minimal physical tuple.
*
* If the slot contains a virtual tuple, we convert it to minimal
- * physical form. The slot retains ownership of the physical tuple.
+ * physical form. The slot retains ownership of the physical tuple.
* Likewise, if it contains a regular tuple we convert to minimal form.
*
* As above, the result must be treated as read-only.
@@ -792,8 +792,8 @@ ExecMaterializeSlot(TupleTableSlot *slot)
Assert(!slot->tts_isempty);
/*
- * If we have a regular physical tuple, and it's locally palloc'd,
- * we have nothing to do.
+ * If we have a regular physical tuple, and it's locally palloc'd, we have
+ * nothing to do.
*/
if (slot->tts_tuple && slot->tts_shouldFree && slot->tts_mintuple == NULL)
return slot->tts_tuple;
diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c
index aa5aeb57f3..d8290b3b5b 100644
--- a/src/backend/executor/execUtils.c
+++ b/src/backend/executor/execUtils.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/execUtils.c,v 1.139 2006/08/04 21:33:36 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/execUtils.c,v 1.140 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -898,8 +898,8 @@ ExecOpenIndices(ResultRelInfo *resultRelInfo)
resultRelInfo->ri_IndexRelationInfo = indexInfoArray;
/*
- * For each index, open the index relation and save pg_index info.
- * We acquire RowExclusiveLock, signifying we will update the index.
+ * For each index, open the index relation and save pg_index info. We
+ * acquire RowExclusiveLock, signifying we will update the index.
*/
i = 0;
foreach(l, indexoidlist)
diff --git a/src/backend/executor/functions.c b/src/backend/executor/functions.c
index e2e5654383..f9b8067109 100644
--- a/src/backend/executor/functions.c
+++ b/src/backend/executor/functions.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/functions.c,v 1.106 2006/09/06 20:40:47 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/functions.c,v 1.107 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -433,7 +433,7 @@ postquel_sub_params(SQLFunctionCachePtr fcache,
/* sizeof(ParamListInfoData) includes the first array element */
paramLI = (ParamListInfo) palloc(sizeof(ParamListInfoData) +
- (nargs - 1) * sizeof(ParamExternData));
+ (nargs - 1) *sizeof(ParamExternData));
paramLI->numParams = nargs;
for (i = 0; i < nargs; i++)
@@ -897,8 +897,8 @@ check_sql_fn_retval(Oid func_id, Oid rettype, List *queryTreeList,
parse = (Query *) lfirst(list_tail(queryTreeList));
/*
- * Note: eventually replace this with QueryReturnsTuples? We'd need
- * a more general method of determining the output type, though.
+ * Note: eventually replace this with QueryReturnsTuples? We'd need a
+ * more general method of determining the output type, though.
*/
isSelect = (parse->commandType == CMD_SELECT && parse->into == NULL);
diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c
index 19410997b2..44609bb40b 100644
--- a/src/backend/executor/nodeAgg.c
+++ b/src/backend/executor/nodeAgg.c
@@ -61,7 +61,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/nodeAgg.c,v 1.145 2006/07/27 19:52:05 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/nodeAgg.c,v 1.146 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -331,16 +331,16 @@ advance_transition_function(AggState *aggstate,
AggStatePerGroup pergroupstate,
FunctionCallInfoData *fcinfo)
{
- int numArguments = peraggstate->numArguments;
+ int numArguments = peraggstate->numArguments;
MemoryContext oldContext;
- Datum newVal;
- int i;
+ Datum newVal;
+ int i;
if (peraggstate->transfn.fn_strict)
{
/*
- * For a strict transfn, nothing happens when there's a NULL input;
- * we just keep the prior transValue.
+ * For a strict transfn, nothing happens when there's a NULL input; we
+ * just keep the prior transValue.
*/
for (i = 1; i <= numArguments; i++)
{
@@ -434,14 +434,14 @@ advance_aggregates(AggState *aggstate, AggStatePerGroup pergroup)
for (aggno = 0; aggno < aggstate->numaggs; aggno++)
{
- AggStatePerAgg peraggstate = &aggstate->peragg[aggno];
- AggStatePerGroup pergroupstate = &pergroup[aggno];
- AggrefExprState *aggrefstate = peraggstate->aggrefstate;
- Aggref *aggref = peraggstate->aggref;
+ AggStatePerAgg peraggstate = &aggstate->peragg[aggno];
+ AggStatePerGroup pergroupstate = &pergroup[aggno];
+ AggrefExprState *aggrefstate = peraggstate->aggrefstate;
+ Aggref *aggref = peraggstate->aggref;
FunctionCallInfoData fcinfo;
- int i;
- ListCell *arg;
- MemoryContext oldContext;
+ int i;
+ ListCell *arg;
+ MemoryContext oldContext;
/* Switch memory context just once for all args */
oldContext = MemoryContextSwitchTo(econtext->ecxt_per_tuple_memory);
@@ -495,8 +495,8 @@ process_sorted_aggregate(AggState *aggstate,
bool haveOldVal = false;
MemoryContext workcontext = aggstate->tmpcontext->ecxt_per_tuple_memory;
MemoryContext oldContext;
- Datum *newVal;
- bool *isNull;
+ Datum *newVal;
+ bool *isNull;
FunctionCallInfoData fcinfo;
tuplesort_performsort(peraggstate->sortstate);
@@ -624,7 +624,7 @@ static Bitmapset *
find_unaggregated_cols(AggState *aggstate)
{
Agg *node = (Agg *) aggstate->ss.ps.plan;
- Bitmapset *colnos;
+ Bitmapset *colnos;
colnos = NULL;
(void) find_unaggregated_cols_walker((Node *) node->plan.targetlist,
@@ -686,20 +686,20 @@ build_hash_table(AggState *aggstate)
tmpmem);
/*
- * Create a list of the tuple columns that actually need to be stored
- * in hashtable entries. The incoming tuples from the child plan node
- * will contain grouping columns, other columns referenced in our
- * targetlist and qual, columns used to compute the aggregate functions,
- * and perhaps just junk columns we don't use at all. Only columns of the
- * first two types need to be stored in the hashtable, and getting rid of
- * the others can make the table entries significantly smaller. To avoid
- * messing up Var numbering, we keep the same tuple descriptor for
- * hashtable entries as the incoming tuples have, but set unwanted columns
- * to NULL in the tuples that go into the table.
+ * Create a list of the tuple columns that actually need to be stored in
+ * hashtable entries. The incoming tuples from the child plan node will
+ * contain grouping columns, other columns referenced in our targetlist
+ * and qual, columns used to compute the aggregate functions, and perhaps
+ * just junk columns we don't use at all. Only columns of the first two
+ * types need to be stored in the hashtable, and getting rid of the others
+ * can make the table entries significantly smaller. To avoid messing up
+ * Var numbering, we keep the same tuple descriptor for hashtable entries
+ * as the incoming tuples have, but set unwanted columns to NULL in the
+ * tuples that go into the table.
*
* To eliminate duplicates, we build a bitmapset of the needed columns,
- * then convert it to an integer list (cheaper to scan at runtime).
- * The list is in decreasing order so that the first entry is the largest;
+ * then convert it to an integer list (cheaper to scan at runtime). The
+ * list is in decreasing order so that the first entry is the largest;
* lookup_hash_entry depends on this to use slot_getsomeattrs correctly.
*
* Note: at present, searching the tlist/qual is not really necessary
@@ -767,7 +767,7 @@ lookup_hash_entry(AggState *aggstate, TupleTableSlot *inputslot)
slot_getsomeattrs(inputslot, linitial_int(aggstate->hash_needed));
foreach(l, aggstate->hash_needed)
{
- int varNumber = lfirst_int(l) - 1;
+ int varNumber = lfirst_int(l) - 1;
hashslot->tts_values[varNumber] = inputslot->tts_values[varNumber];
hashslot->tts_isnull[varNumber] = inputslot->tts_isnull[varNumber];
@@ -968,10 +968,10 @@ agg_retrieve_direct(AggState *aggstate)
/*
* Use the representative input tuple for any references to
- * non-aggregated input columns in the qual and tlist. (If we are
- * not grouping, and there are no input rows at all, we will come
- * here with an empty firstSlot ... but if not grouping, there can't
- * be any references to non-aggregated input columns, so no problem.)
+ * non-aggregated input columns in the qual and tlist. (If we are not
+ * grouping, and there are no input rows at all, we will come here
+ * with an empty firstSlot ... but if not grouping, there can't be any
+ * references to non-aggregated input columns, so no problem.)
*/
econtext->ecxt_scantuple = firstSlot;
@@ -1226,8 +1226,8 @@ ExecInitAgg(Agg *node, EState *estate, int eflags)
/*
* initialize child nodes
*
- * If we are doing a hashed aggregation then the child plan does not
- * need to handle REWIND efficiently; see ExecReScanAgg.
+ * If we are doing a hashed aggregation then the child plan does not need
+ * to handle REWIND efficiently; see ExecReScanAgg.
*/
if (node->aggstrategy == AGG_HASHED)
eflags &= ~EXEC_FLAG_REWIND;
@@ -1321,7 +1321,7 @@ ExecInitAgg(Agg *node, EState *estate, int eflags)
Aggref *aggref = (Aggref *) aggrefstate->xprstate.expr;
AggStatePerAgg peraggstate;
Oid inputTypes[FUNC_MAX_ARGS];
- int numArguments;
+ int numArguments;
HeapTuple aggTuple;
Form_pg_aggregate aggform;
Oid aggtranstype;
@@ -1332,7 +1332,7 @@ ExecInitAgg(Agg *node, EState *estate, int eflags)
*finalfnexpr;
Datum textInitVal;
int i;
- ListCell *lc;
+ ListCell *lc;
/* Planner should have assigned aggregate to correct level */
Assert(aggref->agglevelsup == 0);
@@ -1364,9 +1364,9 @@ ExecInitAgg(Agg *node, EState *estate, int eflags)
peraggstate->numArguments = numArguments;
/*
- * Get actual datatypes of the inputs. These could be different
- * from the agg's declared input types, when the agg accepts ANY,
- * ANYARRAY or ANYELEMENT.
+ * Get actual datatypes of the inputs. These could be different from
+ * the agg's declared input types, when the agg accepts ANY, ANYARRAY
+ * or ANYELEMENT.
*/
i = 0;
foreach(lc, aggref->args)
@@ -1481,8 +1481,8 @@ ExecInitAgg(Agg *node, EState *estate, int eflags)
/*
* If the transfn is strict and the initval is NULL, make sure input
- * type and transtype are the same (or at least binary-compatible),
- * so that it's OK to use the first input value as the initial
+ * type and transtype are the same (or at least binary-compatible), so
+ * that it's OK to use the first input value as the initial
* transValue. This should have been checked at agg definition time,
* but just in case...
*/
@@ -1504,9 +1504,9 @@ ExecInitAgg(Agg *node, EState *estate, int eflags)
Assert(node->aggstrategy != AGG_HASHED);
/*
- * We don't currently implement DISTINCT aggs for aggs having
- * more than one argument. This isn't required for anything
- * in the SQL spec, but really it ought to be implemented for
+ * We don't currently implement DISTINCT aggs for aggs having more
+ * than one argument. This isn't required for anything in the SQL
+ * spec, but really it ought to be implemented for
* feature-completeness. FIXME someday.
*/
if (numArguments != 1)
diff --git a/src/backend/executor/nodeAppend.c b/src/backend/executor/nodeAppend.c
index 719381f10b..1034f96b6e 100644
--- a/src/backend/executor/nodeAppend.c
+++ b/src/backend/executor/nodeAppend.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/nodeAppend.c,v 1.70 2006/07/14 14:52:19 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/nodeAppend.c,v 1.71 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -345,9 +345,9 @@ ExecReScanAppend(AppendState *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 all the subnodes now, so that we can pass
- * the exprCtxt down to the subnodes (needed for appendrel indexscan).
+ * first ExecProcNode. However, if caller is passing us an exprCtxt
+ * then forcibly rescan all the subnodes now, so that we can pass the
+ * exprCtxt down to the subnodes (needed for appendrel indexscan).
*/
if (subnode->chgParam == NULL || exprCtxt != NULL)
{
diff --git a/src/backend/executor/nodeBitmapHeapscan.c b/src/backend/executor/nodeBitmapHeapscan.c
index 62f166cdeb..e1e0062269 100644
--- a/src/backend/executor/nodeBitmapHeapscan.c
+++ b/src/backend/executor/nodeBitmapHeapscan.c
@@ -21,7 +21,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/nodeBitmapHeapscan.c,v 1.13 2006/07/14 14:52:19 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/nodeBitmapHeapscan.c,v 1.14 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -192,8 +192,8 @@ BitmapHeapNext(BitmapHeapScanState *node)
pgstat_count_heap_fetch(&scan->rs_pgstat_info);
/*
- * Set up the result slot to point to this tuple. Note that the
- * slot acquires a pin on the buffer.
+ * Set up the result slot to point to this tuple. Note that the slot
+ * acquires a pin on the buffer.
*/
ExecStoreTuple(&scan->rs_ctup,
slot,
@@ -201,8 +201,8 @@ BitmapHeapNext(BitmapHeapScanState *node)
false);
/*
- * If we are using lossy info, we have to recheck the qual
- * conditions at every tuple.
+ * If we are using lossy info, we have to recheck the qual conditions
+ * at every tuple.
*/
if (tbmres->ntuples < 0)
{
@@ -237,7 +237,7 @@ BitmapHeapNext(BitmapHeapScanState *node)
static void
bitgetpage(HeapScanDesc scan, TBMIterateResult *tbmres)
{
- BlockNumber page = tbmres->blockno;
+ BlockNumber page = tbmres->blockno;
Buffer buffer;
Snapshot snapshot;
Page dp;
@@ -259,9 +259,9 @@ bitgetpage(HeapScanDesc scan, TBMIterateResult *tbmres)
snapshot = scan->rs_snapshot;
/*
- * We must hold share lock on the buffer content while examining
- * tuple visibility. Afterwards, however, the tuples we have found
- * to be visible are guaranteed good as long as we hold the buffer pin.
+ * We must hold share lock on the buffer content while examining tuple
+ * visibility. Afterwards, however, the tuples we have found to be
+ * visible are guaranteed good as long as we hold the buffer pin.
*/
LockBuffer(buffer, BUFFER_LOCK_SHARE);
@@ -269,10 +269,9 @@ bitgetpage(HeapScanDesc scan, TBMIterateResult *tbmres)
maxoff = PageGetMaxOffsetNumber(dp);
/*
- * Determine how many entries we need to look at on this page. If
- * the bitmap is lossy then we need to look at each physical item
- * pointer; otherwise we just look through the offsets listed in
- * tbmres.
+ * Determine how many entries we need to look at on this page. If the
+ * bitmap is lossy then we need to look at each physical item pointer;
+ * otherwise we just look through the offsets listed in tbmres.
*/
if (tbmres->ntuples >= 0)
{
@@ -467,8 +466,8 @@ ExecInitBitmapHeapScan(BitmapHeapScan *node, EState *estate, int eflags)
Assert(!(eflags & (EXEC_FLAG_BACKWARD | EXEC_FLAG_MARK)));
/*
- * Assert caller didn't ask for an unsafe snapshot --- see comments
- * at head of file.
+ * Assert caller didn't ask for an unsafe snapshot --- see comments at
+ * head of file.
*/
Assert(IsMVCCSnapshot(estate->es_snapshot));
@@ -549,8 +548,8 @@ ExecInitBitmapHeapScan(BitmapHeapScan *node, EState *estate, int eflags)
* initialize child nodes
*
* We do this last because the child nodes will open indexscans on our
- * relation's indexes, and we want to be sure we have acquired a lock
- * on the relation first.
+ * relation's indexes, and we want to be sure we have acquired a lock on
+ * the relation first.
*/
outerPlanState(scanstate) = ExecInitNode(outerPlan(node), estate, eflags);
diff --git a/src/backend/executor/nodeBitmapIndexscan.c b/src/backend/executor/nodeBitmapIndexscan.c
index 6a0303cddd..1b2e5a7652 100644
--- a/src/backend/executor/nodeBitmapIndexscan.c
+++ b/src/backend/executor/nodeBitmapIndexscan.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/nodeBitmapIndexscan.c,v 1.20 2006/07/31 20:09:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/nodeBitmapIndexscan.c,v 1.21 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -57,8 +57,8 @@ MultiExecBitmapIndexScan(BitmapIndexScanState *node)
/*
* If we have runtime keys and they've not already been set up, do it now.
* Array keys are also treated as runtime keys; note that if ExecReScan
- * returns with biss_RuntimeKeysReady still false, then there is an
- * empty array key so we should do nothing.
+ * returns with biss_RuntimeKeysReady still false, then there is an empty
+ * array key so we should do nothing.
*/
if (!node->biss_RuntimeKeysReady &&
(node->biss_NumRuntimeKeys != 0 || node->biss_NumArrayKeys != 0))
@@ -152,9 +152,9 @@ ExecBitmapIndexReScan(BitmapIndexScanState *node, ExprContext *exprCtxt)
* If we are doing runtime key calculations (ie, the index keys depend on
* data from an outer scan), compute the new key values.
*
- * Array keys are also treated as runtime keys; note that if we
- * return with biss_RuntimeKeysReady still false, then there is an
- * empty array key so no index scan is needed.
+ * Array keys are also treated as runtime keys; note that if we return
+ * with biss_RuntimeKeysReady still false, then there is an empty array
+ * key so no index scan is needed.
*/
if (node->biss_NumRuntimeKeys != 0)
ExecIndexEvalRuntimeKeys(econtext,
@@ -249,8 +249,8 @@ ExecInitBitmapIndexScan(BitmapIndexScan *node, EState *estate, int eflags)
/*
* We do not open or lock the base relation here. We assume that an
- * ancestor BitmapHeapScan node is holding AccessShareLock (or better)
- * on the heap relation throughout the execution of the plan tree.
+ * ancestor BitmapHeapScan node is holding AccessShareLock (or better) on
+ * the heap relation throughout the execution of the plan tree.
*/
indexstate->ss.ss_currentRelation = NULL;
@@ -265,7 +265,7 @@ ExecInitBitmapIndexScan(BitmapIndexScan *node, EState *estate, int eflags)
*/
relistarget = ExecRelationIsTargetRelation(estate, node->scan.scanrelid);
indexstate->biss_RelationDesc = index_open(node->indexid,
- relistarget ? NoLock : AccessShareLock);
+ relistarget ? NoLock : AccessShareLock);
/*
* Initialize index-specific scan state
diff --git a/src/backend/executor/nodeHashjoin.c b/src/backend/executor/nodeHashjoin.c
index 43084ed05b..14fd016e5a 100644
--- a/src/backend/executor/nodeHashjoin.c
+++ b/src/backend/executor/nodeHashjoin.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/nodeHashjoin.c,v 1.84 2006/07/14 14:52:19 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/nodeHashjoin.c,v 1.85 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -119,11 +119,11 @@ ExecHashJoin(HashJoinState *node)
* since we aren't going to be able to skip the join on the strength
* of an empty inner relation anyway.)
*
- * If we are rescanning the join, we make use of information gained
- * on the previous scan: don't bother to try the prefetch if the
- * previous scan found the outer relation nonempty. This is not
- * 100% reliable since with new parameters the outer relation might
- * yield different results, but it's a good heuristic.
+ * If we are rescanning the join, we make use of information gained on
+ * the previous scan: don't bother to try the prefetch if the previous
+ * scan found the outer relation nonempty. This is not 100% reliable
+ * since with new parameters the outer relation might yield different
+ * results, but it's a good heuristic.
*
* The only way to make the check is to try to fetch a tuple from the
* outer plan node. If we succeed, we have to stash it away for later
@@ -173,8 +173,8 @@ ExecHashJoin(HashJoinState *node)
/*
* Reset OuterNotEmpty for scan. (It's OK if we fetched a tuple
- * above, because ExecHashJoinOuterGetTuple will immediately
- * set it again.)
+ * above, because ExecHashJoinOuterGetTuple will immediately set it
+ * again.)
*/
node->hj_OuterNotEmpty = false;
}
@@ -788,12 +788,12 @@ ExecHashJoinGetSavedTuple(HashJoinState *hjstate,
MinimalTuple tuple;
/*
- * Since both the hash value and the MinimalTuple length word are
- * uint32, we can read them both in one BufFileRead() call without
- * any type cheating.
+ * Since both the hash value and the MinimalTuple length word are uint32,
+ * we can read them both in one BufFileRead() call without any type
+ * cheating.
*/
nread = BufFileRead(file, (void *) header, sizeof(header));
- if (nread == 0) /* end of file */
+ if (nread == 0) /* end of file */
{
ExecClearTuple(tupleSlot);
return NULL;
@@ -834,8 +834,8 @@ ExecReScanHashJoin(HashJoinState *node, ExprContext *exprCtxt)
/*
* okay to reuse the hash table; needn't rescan inner, either.
*
- * What we do need to do is reset our state about the emptiness
- * of the outer relation, so that the new scan of the outer will
+ * What we do need to do is reset our state about the emptiness of
+ * the outer relation, so that the new scan of the outer will
* update it correctly if it turns out to be empty this time.
* (There's no harm in clearing it now because ExecHashJoin won't
* need the info. In the other cases, where the hash table
diff --git a/src/backend/executor/nodeIndexscan.c b/src/backend/executor/nodeIndexscan.c
index 84ee56beb0..9773f2341e 100644
--- a/src/backend/executor/nodeIndexscan.c
+++ b/src/backend/executor/nodeIndexscan.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/nodeIndexscan.c,v 1.116 2006/07/31 20:09:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/nodeIndexscan.c,v 1.117 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -233,9 +233,9 @@ ExecIndexEvalRuntimeKeys(ExprContext *econtext,
bool isNull;
/*
- * For each run-time key, extract the run-time expression and
- * evaluate it with respect to the current outer tuple. We then stick
- * the result into the proper scan key.
+ * For each run-time key, extract the run-time expression and evaluate
+ * it with respect to the current outer tuple. We then stick the
+ * result into the proper scan key.
*
* Note: the result of the eval could be a pass-by-ref value that's
* stored in the outer scan's tuple, not in
@@ -290,8 +290,8 @@ ExecIndexEvalArrayKeys(ExprContext *econtext,
bool *elem_nulls;
/*
- * Compute and deconstruct the array expression.
- * (Notes in ExecIndexEvalRuntimeKeys() apply here too.)
+ * Compute and deconstruct the array expression. (Notes in
+ * ExecIndexEvalRuntimeKeys() apply here too.)
*/
arraydatum = ExecEvalExpr(array_expr,
econtext,
@@ -317,8 +317,9 @@ ExecIndexEvalArrayKeys(ExprContext *econtext,
}
/*
- * Note: we expect the previous array data, if any, to be automatically
- * freed by resetting the per-tuple context; hence no pfree's here.
+ * Note: we expect the previous array data, if any, to be
+ * automatically freed by resetting the per-tuple context; hence no
+ * pfree's here.
*/
arrayKeys[j].elem_values = elem_values;
arrayKeys[j].elem_nulls = elem_nulls;
@@ -524,7 +525,7 @@ ExecInitIndexScan(IndexScan *node, EState *estate, int eflags)
*/
relistarget = ExecRelationIsTargetRelation(estate, node->scan.scanrelid);
indexstate->iss_RelationDesc = index_open(node->indexid,
- relistarget ? NoLock : AccessShareLock);
+ relistarget ? NoLock : AccessShareLock);
/*
* Initialize index-specific scan state
@@ -543,7 +544,7 @@ ExecInitIndexScan(IndexScan *node, EState *estate, int eflags)
&indexstate->iss_NumScanKeys,
&indexstate->iss_RuntimeKeys,
&indexstate->iss_NumRuntimeKeys,
- NULL, /* no ArrayKeys */
+ NULL, /* no ArrayKeys */
NULL);
/*
@@ -661,7 +662,7 @@ ExecIndexBuildScanKeys(PlanState *planstate, Relation index,
/*
* If there are any RowCompareExpr quals, we need extra ScanKey entries
* for them, and possibly extra runtime-key entries. Count up what's
- * needed. (The subsidiary ScanKey arrays for the RowCompareExprs could
+ * needed. (The subsidiary ScanKey arrays for the RowCompareExprs could
* be allocated as separate chunks, but we have to count anyway to make
* runtime_keys large enough, so might as well just do one palloc.)
*/
@@ -784,9 +785,9 @@ ExecIndexBuildScanKeys(PlanState *planstate, Relation index,
{
/* (indexkey, indexkey, ...) op (expression, expression, ...) */
RowCompareExpr *rc = (RowCompareExpr *) clause;
- ListCell *largs_cell = list_head(rc->largs);
- ListCell *rargs_cell = list_head(rc->rargs);
- ListCell *opnos_cell = list_head(rc->opnos);
+ ListCell *largs_cell = list_head(rc->largs);
+ ListCell *rargs_cell = list_head(rc->rargs);
+ ListCell *opnos_cell = list_head(rc->opnos);
ScanKey first_sub_key = &scan_keys[extra_scan_keys];
/* Scan RowCompare columns and generate subsidiary ScanKey items */
@@ -859,7 +860,7 @@ ExecIndexBuildScanKeys(PlanState *planstate, Relation index,
opclass = index->rd_indclass->values[varattno - 1];
get_op_opclass_properties(opno, opclass,
- &op_strategy, &op_subtype, &op_recheck);
+ &op_strategy, &op_subtype, &op_recheck);
if (op_strategy != rc->rctype)
elog(ERROR, "RowCompare index qualification contains wrong operator");
@@ -871,11 +872,11 @@ ExecIndexBuildScanKeys(PlanState *planstate, Relation index,
*/
ScanKeyEntryInitialize(this_sub_key,
flags,
- varattno, /* attribute number */
- op_strategy, /* op's strategy */
- op_subtype, /* strategy subtype */
- opfuncid, /* reg proc to use */
- scanvalue); /* constant */
+ varattno, /* attribute number */
+ op_strategy, /* op's strategy */
+ op_subtype, /* strategy subtype */
+ opfuncid, /* reg proc to use */
+ scanvalue); /* constant */
extra_scan_keys++;
}
@@ -883,8 +884,8 @@ ExecIndexBuildScanKeys(PlanState *planstate, Relation index,
scan_keys[extra_scan_keys - 1].sk_flags |= SK_ROW_END;
/*
- * We don't use ScanKeyEntryInitialize for the header because
- * it isn't going to contain a valid sk_func pointer.
+ * We don't use ScanKeyEntryInitialize for the header because it
+ * isn't going to contain a valid sk_func pointer.
*/
MemSet(this_scan_key, 0, sizeof(ScanKeyData));
this_scan_key->sk_flags = SK_ROW_HEADER;
@@ -937,7 +938,7 @@ ExecIndexBuildScanKeys(PlanState *planstate, Relation index,
* initialize the scan key's fields appropriately
*/
ScanKeyEntryInitialize(this_scan_key,
- 0, /* flags */
+ 0, /* flags */
varattno, /* attribute number to scan */
strategy, /* op's strategy */
subtype, /* strategy subtype */
diff --git a/src/backend/executor/nodeMaterial.c b/src/backend/executor/nodeMaterial.c
index 84a494cf0d..3774edc612 100644
--- a/src/backend/executor/nodeMaterial.c
+++ b/src/backend/executor/nodeMaterial.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/nodeMaterial.c,v 1.56 2006/07/14 14:52:19 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/nodeMaterial.c,v 1.57 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -124,16 +124,16 @@ ExecMaterial(MaterialState *node)
}
/*
- * Append returned tuple to tuplestore. NOTE: because the
- * tuplestore is certainly in EOF state, its read position will move
- * forward over the added tuple. This is what we want.
+ * Append returned tuple to tuplestore. NOTE: because the tuplestore
+ * is certainly in EOF state, its read position will move forward over
+ * the added tuple. This is what we want.
*/
if (tuplestorestate)
tuplestore_puttupleslot(tuplestorestate, outerslot);
/*
- * And return a copy of the tuple. (XXX couldn't we just return
- * the outerslot?)
+ * And return a copy of the tuple. (XXX couldn't we just return the
+ * outerslot?)
*/
return ExecCopySlot(slot, outerslot);
}
@@ -162,10 +162,10 @@ ExecInitMaterial(Material *node, EState *estate, int eflags)
matstate->ss.ps.state = estate;
/*
- * We must have random access to the subplan output to do backward scan
- * or mark/restore. We also prefer to materialize the subplan output
- * if we might be called on to rewind and replay it many times.
- * However, if none of these cases apply, we can skip storing the data.
+ * We must have random access to the subplan output to do backward scan or
+ * mark/restore. We also prefer to materialize the subplan output if we
+ * might be called on to rewind and replay it many times. However, if none
+ * of these cases apply, we can skip storing the data.
*/
matstate->randomAccess = (eflags & (EXEC_FLAG_REWIND |
EXEC_FLAG_BACKWARD |
@@ -194,8 +194,8 @@ ExecInitMaterial(Material *node, EState *estate, int eflags)
/*
* initialize child nodes
*
- * We shield the child node from the need to support REWIND, BACKWARD,
- * or MARK/RESTORE.
+ * We shield the child node from the need to support REWIND, BACKWARD, or
+ * MARK/RESTORE.
*/
eflags &= ~(EXEC_FLAG_REWIND | EXEC_FLAG_BACKWARD | EXEC_FLAG_MARK);
diff --git a/src/backend/executor/nodeMergejoin.c b/src/backend/executor/nodeMergejoin.c
index 75403dfa71..8a9f6fe230 100644
--- a/src/backend/executor/nodeMergejoin.c
+++ b/src/backend/executor/nodeMergejoin.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/nodeMergejoin.c,v 1.81 2006/07/14 14:52:19 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/nodeMergejoin.c,v 1.82 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -957,10 +957,10 @@ ExecMergeJoin(MergeJoinState *node)
}
/*
- * Load up the new inner tuple's comparison values. If we
- * see that it contains a NULL and hence can't match any
- * outer tuple, we can skip the comparison and assume the
- * new tuple is greater than current outer.
+ * Load up the new inner tuple's comparison values. If we see
+ * that it contains a NULL and hence can't match any outer
+ * tuple, we can skip the comparison and assume the new tuple
+ * is greater than current outer.
*/
if (!MJEvalInnerValues(node, innerTupleSlot))
{
@@ -1377,8 +1377,8 @@ ExecMergeJoin(MergeJoinState *node)
else
{
/*
- * current inner can't possibly match any outer;
- * better to advance the inner scan than the outer.
+ * current inner can't possibly match any outer; better to
+ * advance the inner scan than the outer.
*/
node->mj_JoinState = EXEC_MJ_SKIPINNER_ADVANCE;
}
diff --git a/src/backend/executor/nodeNestloop.c b/src/backend/executor/nodeNestloop.c
index f12f2f624f..1c0a696f53 100644
--- a/src/backend/executor/nodeNestloop.c
+++ b/src/backend/executor/nodeNestloop.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/nodeNestloop.c,v 1.42 2006/03/05 15:58:26 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/nodeNestloop.c,v 1.43 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -314,10 +314,10 @@ ExecInitNestLoop(NestLoop *node, EState *estate, int eflags)
* initialize child nodes
*
* Tell the inner child that cheap rescans would be good. (This is
- * unnecessary if we are doing nestloop with inner indexscan, because
- * the rescan will always be with a fresh parameter --- but since
- * nodeIndexscan doesn't actually care about REWIND, there's no point
- * in dealing with that refinement.)
+ * unnecessary if we are doing nestloop with inner indexscan, because the
+ * rescan will always be with a fresh parameter --- but since
+ * nodeIndexscan doesn't actually care about REWIND, there's no point in
+ * dealing with that refinement.)
*/
outerPlanState(nlstate) = ExecInitNode(outerPlan(node), estate, eflags);
innerPlanState(nlstate) = ExecInitNode(innerPlan(node), estate,
diff --git a/src/backend/executor/nodeSeqscan.c b/src/backend/executor/nodeSeqscan.c
index c2ed276e56..a6287793d4 100644
--- a/src/backend/executor/nodeSeqscan.c
+++ b/src/backend/executor/nodeSeqscan.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/nodeSeqscan.c,v 1.60 2006/07/14 14:52:19 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/nodeSeqscan.c,v 1.61 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -148,7 +148,7 @@ InitScanRelation(SeqScanState *node, EState *estate)
* open that relation and acquire appropriate lock on it.
*/
currentRelation = ExecOpenScanRelation(estate,
- ((SeqScan *) node->ps.plan)->scanrelid);
+ ((SeqScan *) node->ps.plan)->scanrelid);
currentScanDesc = heap_beginscan(currentRelation,
estate->es_snapshot,
diff --git a/src/backend/executor/nodeSort.c b/src/backend/executor/nodeSort.c
index b586a37a64..dd47348997 100644
--- a/src/backend/executor/nodeSort.c
+++ b/src/backend/executor/nodeSort.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/nodeSort.c,v 1.57 2006/06/27 16:53:02 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/nodeSort.c,v 1.58 2006/10/04 00:29:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -158,9 +158,9 @@ ExecInitSort(Sort *node, EState *estate, int eflags)
sortstate->ss.ps.state = estate;
/*
- * We must have random access to the sort output to do backward scan
- * or mark/restore. We also prefer to materialize the sort output
- * if we might be called on to rewind and replay it many times.
+ * We must have random access to the sort output to do backward scan or
+ * mark/restore. We also prefer to materialize the sort output if we
+ * might be called on to rewind and replay it many times.
*/
sortstate->randomAccess = (eflags & (EXEC_FLAG_REWIND |
EXEC_FLAG_BACKWARD |
@@ -189,8 +189,8 @@ ExecInitSort(Sort *node, EState *estate, int eflags)
/*
* initialize child nodes
*
- * We shield the child node from the need to support REWIND, BACKWARD,
- * or MARK/RESTORE.
+ * We shield the child node from the need to support REWIND, BACKWARD, or
+ * MARK/RESTORE.
*/
eflags &= ~(EXEC_FLAG_REWIND | EXEC_FLAG_BACKWARD | EXEC_FLAG_MARK);
@@ -316,6 +316,7 @@ ExecReScanSort(SortState *node, ExprContext *exprCtxt)
node->sort_Done = false;
tuplesort_end((Tuplesortstate *) node->tuplesortstate);
node->tuplesortstate = NULL;
+
/*
* if chgParam of subnode is not null then plan will be re-scanned by
* first ExecProcNode.
diff --git a/src/backend/executor/nodeSubplan.c b/src/backend/executor/nodeSubplan.c
index 600a39d4ee..2a5fd6d955 100644
--- a/src/backend/executor/nodeSubplan.c
+++ b/src/backend/executor/nodeSubplan.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/nodeSubplan.c,v 1.79 2006/07/14 14:52:19 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/nodeSubplan.c,v 1.80 2006/10/04 00:29:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -332,8 +332,8 @@ ExecScanSubPlan(SubPlanState *node,
/*
* For ALL, ANY, and ROWCOMPARE sublinks, load up the Params
- * representing the columns of the sub-select, and then evaluate
- * the combining expression.
+ * representing the columns of the sub-select, and then evaluate the
+ * combining expression.
*/
col = 1;
foreach(plst, subplan->paramIds)
@@ -434,8 +434,8 @@ buildSubPlanHash(SubPlanState *node)
* NULL) results of the IN operation, then we have to store subplan output
* rows that are partly or wholly NULL. We store such rows in a separate
* hash table that we expect will be much smaller than the main table. (We
- * can use hashing to eliminate partly-null rows that are not distinct.
- * We keep them separate to minimize the cost of the inevitable full-table
+ * can use hashing to eliminate partly-null rows that are not distinct. We
+ * keep them separate to minimize the cost of the inevitable full-table
* searches; see findPartialMatch.)
*
* If it's not necessary to distinguish FALSE and UNKNOWN, then we don't
@@ -682,9 +682,9 @@ ExecInitSubPlan(SubPlanState *node, EState *estate, int eflags)
/*
* Start up the subplan (this is a very cut-down form of InitPlan())
*
- * The subplan will never need to do BACKWARD scan or 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.
+ * The subplan will never need to do BACKWARD scan or 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.
*/
eflags &= EXEC_FLAG_EXPLAIN_ONLY;
if (subplan->parParam == NIL && subplan->setParam == NIL)
diff --git a/src/backend/executor/nodeSubqueryscan.c b/src/backend/executor/nodeSubqueryscan.c
index 0436ea82be..22e148ec6c 100644
--- a/src/backend/executor/nodeSubqueryscan.c
+++ b/src/backend/executor/nodeSubqueryscan.c
@@ -12,7 +12,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/nodeSubqueryscan.c,v 1.31 2006/07/14 14:52:19 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/nodeSubqueryscan.c,v 1.32 2006/10/04 00:29:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -204,7 +204,7 @@ ExecInitSubqueryScan(SubqueryScan *node, EState *estate, int eflags)
* too soon during shutdown.
*/
ExecAssignScanType(&subquerystate->ss,
- CreateTupleDescCopy(ExecGetResultType(subquerystate->subplan)));
+ CreateTupleDescCopy(ExecGetResultType(subquerystate->subplan)));
/*
* Initialize result tuple type and projection info.
diff --git a/src/backend/executor/nodeTidscan.c b/src/backend/executor/nodeTidscan.c
index b59ff9ca8e..52d9290457 100644
--- a/src/backend/executor/nodeTidscan.c
+++ b/src/backend/executor/nodeTidscan.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/nodeTidscan.c,v 1.50 2006/07/14 14:52:19 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/nodeTidscan.c,v 1.51 2006/10/04 00:29:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -60,9 +60,9 @@ TidListCreate(TidScanState *tidstate)
ListCell *l;
/*
- * We initialize the array with enough slots for the case that all
- * quals are simple OpExprs. If there's any ScalarArrayOpExprs,
- * we may have to enlarge the array.
+ * We initialize the array with enough slots for the case that all quals
+ * are simple OpExprs. If there's any ScalarArrayOpExprs, we may have to
+ * enlarge the array.
*/
numAllocTids = list_length(evalList);
tidList = (ItemPointerData *)
@@ -78,9 +78,9 @@ TidListCreate(TidScanState *tidstate)
if (is_opclause(expr))
{
- FuncExprState *fexstate = (FuncExprState *) exstate;
- Node *arg1;
- Node *arg2;
+ FuncExprState *fexstate = (FuncExprState *) exstate;
+ Node *arg1;
+ Node *arg2;
arg1 = get_leftop(expr);
arg2 = get_rightop(expr);
@@ -154,15 +154,14 @@ TidListCreate(TidScanState *tidstate)
/*
* Sort the array of TIDs into order, and eliminate duplicates.
- * Eliminating duplicates is necessary since we want OR semantics
- * across the list. Sorting makes it easier to detect duplicates,
- * and as a bonus ensures that we will visit the heap in the most
- * efficient way.
+ * Eliminating duplicates is necessary since we want OR semantics across
+ * the list. Sorting makes it easier to detect duplicates, and as a bonus
+ * ensures that we will visit the heap in the most efficient way.
*/
if (numTids > 1)
{
- int lastTid;
- int i;
+ int lastTid;
+ int i;
qsort((void *) tidList, numTids, sizeof(ItemPointerData),
itemptr_comparator);
@@ -188,8 +187,8 @@ itemptr_comparator(const void *a, const void *b)
{
const ItemPointerData *ipa = (const ItemPointerData *) a;
const ItemPointerData *ipb = (const ItemPointerData *) b;
- BlockNumber ba = ItemPointerGetBlockNumber(ipa);
- BlockNumber bb = ItemPointerGetBlockNumber(ipb);
+ BlockNumber ba = ItemPointerGetBlockNumber(ipa);
+ BlockNumber bb = ItemPointerGetBlockNumber(ipb);
OffsetNumber oa = ItemPointerGetOffsetNumber(ipa);
OffsetNumber ob = ItemPointerGetOffsetNumber(ipb);
diff --git a/src/backend/executor/nodeValuesscan.c b/src/backend/executor/nodeValuesscan.c
index 1d4bb08d4d..c6a1a94038 100644
--- a/src/backend/executor/nodeValuesscan.c
+++ b/src/backend/executor/nodeValuesscan.c
@@ -2,14 +2,14 @@
*
* nodeValuesscan.c
* Support routines for scanning Values lists
- * ("VALUES (...), (...), ..." in rangetable).
+ * ("VALUES (...), (...), ..." in rangetable).
*
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/nodeValuesscan.c,v 1.2 2006/08/02 18:58:21 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/nodeValuesscan.c,v 1.3 2006/10/04 00:29:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -47,10 +47,10 @@ static TupleTableSlot *
ValuesNext(ValuesScanState *node)
{
TupleTableSlot *slot;
- EState *estate;
- ExprContext *econtext;
- ScanDirection direction;
- List *exprlist;
+ EState *estate;
+ ExprContext *econtext;
+ ScanDirection direction;
+ List *exprlist;
/*
* get information from the estate and scan state
@@ -83,9 +83,9 @@ ValuesNext(ValuesScanState *node)
}
/*
- * Always clear the result slot; this is appropriate if we are at the
- * end of the data, and if we're not, we still need it as the first step
- * of the store-virtual-tuple protocol. It seems wise to clear the slot
+ * Always clear the result slot; this is appropriate if we are at the end
+ * of the data, and if we're not, we still need it as the first step of
+ * the store-virtual-tuple protocol. It seems wise to clear the slot
* before we reset the context it might have pointers into.
*/
ExecClearTuple(slot);
@@ -107,18 +107,18 @@ ValuesNext(ValuesScanState *node)
ReScanExprContext(econtext);
/*
- * Build the expression eval state in the econtext's per-tuple
- * memory. This is a tad unusual, but we want to delete the eval
- * state again when we move to the next row, to avoid growth of
- * memory requirements over a long values list.
+ * Build the expression eval state in the econtext's per-tuple memory.
+ * This is a tad unusual, but we want to delete the eval state again
+ * when we move to the next row, to avoid growth of memory
+ * requirements over a long values list.
*/
oldContext = MemoryContextSwitchTo(econtext->ecxt_per_tuple_memory);
/*
- * Pass NULL, not my plan node, because we don't want anything
- * in this transient state linking into permanent state. The
- * only possibility is a SubPlan, and there shouldn't be any
- * (any subselects in the VALUES list should be InitPlans).
+ * Pass NULL, not my plan node, because we don't want anything in this
+ * transient state linking into permanent state. The only possibility
+ * is a SubPlan, and there shouldn't be any (any subselects in the
+ * VALUES list should be InitPlans).
*/
exprstatelist = (List *) ExecInitExpr((Expr *) exprlist, NULL);
@@ -126,8 +126,8 @@ ValuesNext(ValuesScanState *node)
Assert(list_length(exprstatelist) == slot->tts_tupleDescriptor->natts);
/*
- * Compute the expressions and build a virtual result tuple.
- * We already did ExecClearTuple(slot).
+ * Compute the expressions and build a virtual result tuple. We
+ * already did ExecClearTuple(slot).
*/
values = slot->tts_values;
isnull = slot->tts_isnull;
@@ -135,7 +135,7 @@ ValuesNext(ValuesScanState *node)
resind = 0;
foreach(lc, exprstatelist)
{
- ExprState *estate = (ExprState *) lfirst(lc);
+ ExprState *estate = (ExprState *) lfirst(lc);
values[resind] = ExecEvalExpr(estate,
econtext,
@@ -181,12 +181,12 @@ ExecValuesScan(ValuesScanState *node)
ValuesScanState *
ExecInitValuesScan(ValuesScan *node, EState *estate, int eflags)
{
- ValuesScanState *scanstate;
- RangeTblEntry *rte;
- TupleDesc tupdesc;
- ListCell *vtl;
- int i;
- PlanState *planstate;
+ ValuesScanState *scanstate;
+ RangeTblEntry *rte;
+ TupleDesc tupdesc;
+ ListCell *vtl;
+ int i;
+ PlanState *planstate;
/*
* ValuesScan should not have any children.
@@ -208,8 +208,8 @@ ExecInitValuesScan(ValuesScan *node, EState *estate, int eflags)
/*
* Create expression contexts. We need two, one for per-sublist
- * processing and one for execScan.c to use for quals and projections.
- * We cheat a little by using ExecAssignExprContext() to build both.
+ * processing and one for execScan.c to use for quals and projections. We
+ * cheat a little by using ExecAssignExprContext() to build both.
*/
ExecAssignExprContext(estate, planstate);
scanstate->rowcontext = planstate->ps_ExprContext;
diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c
index eb8d11fed9..5410c364e0 100644
--- a/src/backend/executor/spi.c
+++ b/src/backend/executor/spi.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/spi.c,v 1.163 2006/09/07 22:52:00 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/spi.c,v 1.164 2006/10/04 00:29:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -827,8 +827,8 @@ SPI_cursor_open(const char *name, void *plan,
int k;
/*
- * Check that the plan is something the Portal code will special-case
- * as returning one tupleset.
+ * Check that the plan is something the Portal code will special-case as
+ * returning one tupleset.
*/
if (!SPI_is_cursor_plan(spiplan))
{
@@ -846,7 +846,7 @@ SPI_cursor_open(const char *name, void *plan,
errmsg("cannot open empty query as cursor")));
ereport(ERROR,
(errcode(ERRCODE_INVALID_CURSOR_DEFINITION),
- /* translator: %s is name of a SQL command, eg INSERT */
+ /* translator: %s is name of a SQL command, eg INSERT */
errmsg("cannot open %s query as cursor",
CreateQueryTag(queryTree))));
}
@@ -885,7 +885,7 @@ SPI_cursor_open(const char *name, void *plan,
{
/* sizeof(ParamListInfoData) includes the first array element */
paramLI = (ParamListInfo) palloc(sizeof(ParamListInfoData) +
- (spiplan->nargs - 1) * sizeof(ParamExternData));
+ (spiplan->nargs - 1) *sizeof(ParamExternData));
paramLI->numParams = spiplan->nargs;
for (k = 0; k < spiplan->nargs; k++)
@@ -1348,7 +1348,7 @@ _SPI_execute_plan(_SPI_plan *plan, Datum *Values, const char *Nulls,
/* sizeof(ParamListInfoData) includes the first array element */
paramLI = (ParamListInfo) palloc(sizeof(ParamListInfoData) +
- (nargs - 1) * sizeof(ParamExternData));
+ (nargs - 1) *sizeof(ParamExternData));
paramLI->numParams = nargs;
for (k = 0; k < nargs; k++)
@@ -1482,9 +1482,9 @@ _SPI_execute_plan(_SPI_plan *plan, Datum *Values, const char *Nulls,
ActiveSnapshot = NULL;
/*
- * The last canSetTag query sets the status values returned
- * to the caller. Be careful to free any tuptables not
- * returned, to avoid intratransaction memory leak.
+ * The last canSetTag query sets the status values returned to
+ * the caller. Be careful to free any tuptables not returned,
+ * to avoid intratransaction memory leak.
*/
if (queryTree->canSetTag)
{
diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c
index defe45334c..6e3ef149f3 100644
--- a/src/backend/libpq/auth.c
+++ b/src/backend/libpq/auth.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/libpq/auth.c,v 1.143 2006/10/03 21:21:36 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/libpq/auth.c,v 1.144 2006/10/04 00:29:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -75,16 +75,17 @@ static Port *pam_port_cludge; /* Workaround for passing "Port *port" into
#include <winldap.h>
/* Correct header from the Platform SDK */
-typedef ULONG (*__ldap_start_tls_sA)(
- IN PLDAP ExternalHandle,
- OUT PULONG ServerReturnValue,
- OUT LDAPMessage **result,
- IN PLDAPControlA *ServerControls,
- IN PLDAPControlA *ClientControls
+typedef
+ULONG(*__ldap_start_tls_sA) (
+ IN PLDAP ExternalHandle,
+ OUT PULONG ServerReturnValue,
+ OUT LDAPMessage ** result,
+ IN PLDAPControlA * ServerControls,
+ IN PLDAPControlA * ClientControls
);
#endif
-static int CheckLDAPAuth(Port *port);
+static int CheckLDAPAuth(Port *port);
#endif
@@ -347,9 +348,9 @@ auth_failed(Port *port, int status)
break;
#endif /* USE_PAM */
#ifdef USE_LDAP
- case uaLDAP:
- errstr = gettext_noop("LDAP authentication failed for user \"%s\"");
- break;
+ case uaLDAP:
+ errstr = gettext_noop("LDAP authentication failed for user \"%s\"");
+ break;
#endif /* USE_LDAP */
default:
errstr = gettext_noop("authentication failed for user \"%s\": invalid authentication method");
@@ -480,9 +481,9 @@ ClientAuthentication(Port *port)
#endif /* USE_PAM */
#ifdef USE_LDAP
- case uaLDAP:
- status = CheckLDAPAuth(port);
- break;
+ case uaLDAP:
+ status = CheckLDAPAuth(port);
+ break;
#endif
case uaTrust:
@@ -709,100 +710,102 @@ CheckPAMAuth(Port *port, char *user, char *password)
static int
CheckLDAPAuth(Port *port)
{
- char *passwd;
- char server[128];
- char basedn[128];
- char prefix[128];
- char suffix[128];
- LDAP *ldap;
- int ssl = 0;
- int r;
- int ldapversion = LDAP_VERSION3;
- int ldapport = LDAP_PORT;
- char fulluser[128];
-
- if (!port->auth_arg || port->auth_arg[0] == '\0')
- {
- ereport(LOG,
- (errmsg("LDAP configuration URL not specified")));
- return STATUS_ERROR;
- }
-
- /*
- * Crack the LDAP url. We do a very trivial parse..
- * ldap[s]://<server>[:<port>]/<basedn>[;prefix[;suffix]]
- */
-
- server[0] = '\0';
- basedn[0] = '\0';
- prefix[0] = '\0';
- suffix[0] = '\0';
-
- /* ldap, including port number */
- r = sscanf(port->auth_arg,
- "ldap://%127[^:]:%i/%127[^;];%127[^;];%127s",
- server, &ldapport, basedn, prefix, suffix);
- if (r < 3)
- {
- /* ldaps, including port number */
- r = sscanf(port->auth_arg,
- "ldaps://%127[^:]:%i/%127[^;];%127[^;];%127s",
- server, &ldapport, basedn, prefix, suffix);
- if (r >=3) ssl = 1;
- }
- if (r < 3)
- {
- /* ldap, no port number */
- r = sscanf(port->auth_arg,
- "ldap://%127[^/]/%127[^;];%127[^;];%127s",
- server, basedn, prefix, suffix);
- }
- if (r < 2)
- {
- /* ldaps, no port number */
- r = sscanf(port->auth_arg,
- "ldaps://%127[^/]/%127[^;];%127[^;];%127s",
- server, basedn, prefix, suffix);
- if (r >= 2) ssl = 1;
- }
- if (r < 2)
- {
- ereport(LOG,
- (errmsg("invalid LDAP URL: \"%s\"",
+ char *passwd;
+ char server[128];
+ char basedn[128];
+ char prefix[128];
+ char suffix[128];
+ LDAP *ldap;
+ int ssl = 0;
+ int r;
+ int ldapversion = LDAP_VERSION3;
+ int ldapport = LDAP_PORT;
+ char fulluser[128];
+
+ if (!port->auth_arg || port->auth_arg[0] == '\0')
+ {
+ ereport(LOG,
+ (errmsg("LDAP configuration URL not specified")));
+ return STATUS_ERROR;
+ }
+
+ /*
+ * Crack the LDAP url. We do a very trivial parse..
+ * ldap[s]://<server>[:<port>]/<basedn>[;prefix[;suffix]]
+ */
+
+ server[0] = '\0';
+ basedn[0] = '\0';
+ prefix[0] = '\0';
+ suffix[0] = '\0';
+
+ /* ldap, including port number */
+ r = sscanf(port->auth_arg,
+ "ldap://%127[^:]:%i/%127[^;];%127[^;];%127s",
+ server, &ldapport, basedn, prefix, suffix);
+ if (r < 3)
+ {
+ /* ldaps, including port number */
+ r = sscanf(port->auth_arg,
+ "ldaps://%127[^:]:%i/%127[^;];%127[^;];%127s",
+ server, &ldapport, basedn, prefix, suffix);
+ if (r >= 3)
+ ssl = 1;
+ }
+ if (r < 3)
+ {
+ /* ldap, no port number */
+ r = sscanf(port->auth_arg,
+ "ldap://%127[^/]/%127[^;];%127[^;];%127s",
+ server, basedn, prefix, suffix);
+ }
+ if (r < 2)
+ {
+ /* ldaps, no port number */
+ r = sscanf(port->auth_arg,
+ "ldaps://%127[^/]/%127[^;];%127[^;];%127s",
+ server, basedn, prefix, suffix);
+ if (r >= 2)
+ ssl = 1;
+ }
+ if (r < 2)
+ {
+ ereport(LOG,
+ (errmsg("invalid LDAP URL: \"%s\"",
port->auth_arg)));
- return STATUS_ERROR;
- }
-
- sendAuthRequest(port, AUTH_REQ_PASSWORD);
-
- passwd = recv_password_packet(port);
- if (passwd == NULL)
- return STATUS_EOF; /* client wouldn't send password */
-
- ldap = ldap_init(server, ldapport);
- if (!ldap)
- {
+ return STATUS_ERROR;
+ }
+
+ sendAuthRequest(port, AUTH_REQ_PASSWORD);
+
+ passwd = recv_password_packet(port);
+ if (passwd == NULL)
+ return STATUS_EOF; /* client wouldn't send password */
+
+ ldap = ldap_init(server, ldapport);
+ if (!ldap)
+ {
#ifndef WIN32
- ereport(LOG,
- (errmsg("could not initialize LDAP: error code %d",
- errno)));
+ ereport(LOG,
+ (errmsg("could not initialize LDAP: error code %d",
+ errno)));
#else
- ereport(LOG,
- (errmsg("could not initialize LDAP: error code %d",
- (int) LdapGetLastError())));
+ ereport(LOG,
+ (errmsg("could not initialize LDAP: error code %d",
+ (int) LdapGetLastError())));
#endif
- return STATUS_ERROR;
- }
-
- if ((r = ldap_set_option(ldap, LDAP_OPT_PROTOCOL_VERSION, &ldapversion)) != LDAP_SUCCESS)
- {
- ereport(LOG,
- (errmsg("could not set LDAP protocol version: error code %d", r)));
- return STATUS_ERROR;
- }
-
- if (ssl)
- {
+ return STATUS_ERROR;
+ }
+
+ if ((r = ldap_set_option(ldap, LDAP_OPT_PROTOCOL_VERSION, &ldapversion)) != LDAP_SUCCESS)
+ {
+ ereport(LOG,
+ (errmsg("could not set LDAP protocol version: error code %d", r)));
+ return STATUS_ERROR;
+ }
+
+ if (ssl)
+ {
#ifndef WIN32
if ((r = ldap_start_tls_s(ldap, NULL, NULL)) != LDAP_SUCCESS)
#else
@@ -815,17 +818,20 @@ CheckLDAPAuth(Port *port)
* exist on Windows 2000, and causes a load error for the whole
* exe if referenced.
*/
- HANDLE ldaphandle;
-
+ HANDLE ldaphandle;
+
ldaphandle = LoadLibrary("WLDAP32.DLL");
if (ldaphandle == NULL)
{
- /* should never happen since we import other files from wldap32, but check anyway */
+ /*
+ * should never happen since we import other files from
+ * wldap32, but check anyway
+ */
ereport(LOG,
(errmsg("could not load wldap32.dll")));
return STATUS_ERROR;
}
- _ldap_start_tls_sA = (__ldap_start_tls_sA)GetProcAddress(ldaphandle, "ldap_start_tls_sA");
+ _ldap_start_tls_sA = (__ldap_start_tls_sA) GetProcAddress(ldaphandle, "ldap_start_tls_sA");
if (_ldap_start_tls_sA == NULL)
{
ereport(LOG,
@@ -839,33 +845,32 @@ CheckLDAPAuth(Port *port)
* process and is automatically cleaned up on process exit.
*/
}
- if ((r = _ldap_start_tls_sA(ldap, NULL, NULL, NULL, NULL)) != LDAP_SUCCESS)
+ if ((r = _ldap_start_tls_sA(ldap, NULL, NULL, NULL, NULL)) != LDAP_SUCCESS)
#endif
- {
- ereport(LOG,
- (errmsg("could not start LDAP TLS session: error code %d", r)));
- return STATUS_ERROR;
- }
- }
-
- snprintf(fulluser, sizeof(fulluser)-1, "%s%s%s",
+ {
+ ereport(LOG,
+ (errmsg("could not start LDAP TLS session: error code %d", r)));
+ return STATUS_ERROR;
+ }
+ }
+
+ snprintf(fulluser, sizeof(fulluser) - 1, "%s%s%s",
prefix, port->user_name, suffix);
- fulluser[sizeof(fulluser)-1] = '\0';
+ fulluser[sizeof(fulluser) - 1] = '\0';
- r = ldap_simple_bind_s(ldap, fulluser, passwd);
- ldap_unbind(ldap);
+ r = ldap_simple_bind_s(ldap, fulluser, passwd);
+ ldap_unbind(ldap);
- if (r != LDAP_SUCCESS)
- {
- ereport(LOG,
- (errmsg("LDAP login failed for user \"%s\" on server \"%s\": error code %d",
+ if (r != LDAP_SUCCESS)
+ {
+ ereport(LOG,
+ (errmsg("LDAP login failed for user \"%s\" on server \"%s\": error code %d",
fulluser, server, r)));
- return STATUS_ERROR;
- }
-
- return STATUS_OK;
-}
+ return STATUS_ERROR;
+ }
+ return STATUS_OK;
+}
#endif /* USE_LDAP */
/*
diff --git a/src/backend/libpq/be-secure.c b/src/backend/libpq/be-secure.c
index 20c2cc7a3b..06a5b9a6c0 100644
--- a/src/backend/libpq/be-secure.c
+++ b/src/backend/libpq/be-secure.c
@@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/libpq/be-secure.c,v 1.72 2006/09/04 14:57:27 petere Exp $
+ * $PostgreSQL: pgsql/src/backend/libpq/be-secure.c,v 1.73 2006/10/04 00:29:53 momjian Exp $
*
* Since the server static private key ($DataDir/server.key)
* will normally be stored unencrypted so that the database
@@ -110,7 +110,7 @@ static DH *load_dh_buffer(const char *, size_t);
static DH *tmp_dh_cb(SSL *s, int is_export, int keylength);
static int verify_cb(int, X509_STORE_CTX *);
static void info_cb(const SSL *ssl, int type, int args);
-static void initialize_SSL(void);
+static void initialize_SSL(void);
static void destroy_SSL(void);
static int open_server_SSL(Port *);
static void close_SSL(Port *);
@@ -795,8 +795,9 @@ initialize_SSL(void)
else
{
/*
- * Check the Certificate Revocation List (CRL) if file exists.
- * http://searchsecurity.techtarget.com/sDefinition/0,,sid14_gci803160,00.html
+ * Check the Certificate Revocation List (CRL) if file exists.
+ * http://searchsecurity.techtarget.com/sDefinition/0,,sid14_gci803160,
+ * 00.html
*/
X509_STORE *cvstore = SSL_CTX_get_cert_store(SSL_context);
@@ -807,19 +808,19 @@ initialize_SSL(void)
/* OpenSSL 0.96 does not support X509_V_FLAG_CRL_CHECK */
#ifdef X509_V_FLAG_CRL_CHECK
X509_STORE_set_flags(cvstore,
- X509_V_FLAG_CRL_CHECK|X509_V_FLAG_CRL_CHECK_ALL);
+ X509_V_FLAG_CRL_CHECK | X509_V_FLAG_CRL_CHECK_ALL);
#else
ereport(LOG,
- (errmsg("SSL Certificate Revocation List (CRL) file \"%s\" ignored",
- ROOT_CRL_FILE),
- errdetail("Installed SSL library does not support CRL.")));
+ (errmsg("SSL Certificate Revocation List (CRL) file \"%s\" ignored",
+ ROOT_CRL_FILE),
+ errdetail("Installed SSL library does not support CRL.")));
#endif
else
{
/* Not fatal - we do not require CRL */
ereport(LOG,
- (errmsg("SSL Certificate Revocation List (CRL) file \"%s\" not found, skipping: %s",
- ROOT_CRL_FILE, SSLerrmessage()),
+ (errmsg("SSL Certificate Revocation List (CRL) file \"%s\" not found, skipping: %s",
+ ROOT_CRL_FILE, SSLerrmessage()),
errdetail("Will not check certificates against CRL.")));
}
}
diff --git a/src/backend/libpq/hba.c b/src/backend/libpq/hba.c
index e2f1f6c869..776d167ff2 100644
--- a/src/backend/libpq/hba.c
+++ b/src/backend/libpq/hba.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/libpq/hba.c,v 1.155 2006/07/14 14:52:19 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/libpq/hba.c,v 1.156 2006/10/04 00:29:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -613,8 +613,8 @@ parse_hba_auth(ListCell **line_item, UserAuth *userauth_p,
*userauth_p = uaPAM;
#endif
#ifdef USE_LDAP
- else if (strcmp(token,"ldap") == 0)
- *userauth_p = uaLDAP;
+ else if (strcmp(token, "ldap") == 0)
+ *userauth_p = uaLDAP;
#endif
else
{
diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c
index 3a4c74b0a8..9bf244410e 100644
--- a/src/backend/libpq/pqcomm.c
+++ b/src/backend/libpq/pqcomm.c
@@ -30,7 +30,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/backend/libpq/pqcomm.c,v 1.187 2006/08/11 20:44:20 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/libpq/pqcomm.c,v 1.188 2006/10/04 00:29:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -594,13 +594,14 @@ StreamConnection(int server_fd, Port *port)
}
#ifdef WIN32
+
/*
- * This is a Win32 socket optimization. The ideal size is 32k.
- * http://support.microsoft.com/kb/823764/EN-US/
+ * This is a Win32 socket optimization. The ideal size is 32k.
+ * http://support.microsoft.com/kb/823764/EN-US/
*/
on = PQ_BUFFER_SIZE * 4;
if (setsockopt(port->sock, SOL_SOCKET, SO_SNDBUF, (char *) &on,
- sizeof(on)) < 0)
+ sizeof(on)) < 0)
{
elog(LOG, "setsockopt(SO_SNDBUF) failed: %m");
return STATUS_ERROR;
diff --git a/src/backend/main/main.c b/src/backend/main/main.c
index 150d28b44f..a750cfe9fd 100644
--- a/src/backend/main/main.c
+++ b/src/backend/main/main.c
@@ -13,7 +13,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/main/main.c,v 1.104 2006/07/14 14:52:19 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/main/main.c,v 1.105 2006/10/04 00:29:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -90,6 +90,7 @@ main(int argc, char *argv[])
set_pglocale_pgservice(argv[0], "postgres");
#ifdef WIN32
+
/*
* Windows uses codepages rather than the environment, so we work around
* that by querying the environment explicitly first for LC_COLLATE and
@@ -156,8 +157,7 @@ main(int argc, char *argv[])
check_root(progname);
/*
- * Dispatch to one of various subprograms depending on first
- * argument.
+ * Dispatch to one of various subprograms depending on first argument.
*/
#ifdef EXEC_BACKEND
@@ -166,6 +166,7 @@ main(int argc, char *argv[])
#endif
#ifdef WIN32
+
/*
* Start our win32 signal implementation
*
@@ -190,7 +191,7 @@ main(int argc, char *argv[])
/*
- * Place platform-specific startup hacks here. This is the right
+ * Place platform-specific startup hacks here. This is the right
* place to put code that must be executed early in launch of either a
* postmaster, a standalone backend, or a standalone bootstrap run.
* Note that this code will NOT be executed when a backend or
@@ -211,12 +212,11 @@ startup_hacks(const char *progname)
/*
- * On some platforms, unaligned memory accesses result in a kernel
- * trap; the default kernel behavior is to emulate the memory
- * access, but this results in a significant performance penalty.
- * We ought to fix PG not to make such unaligned memory accesses,
- * so this code disables the kernel emulation: unaligned accesses
- * will result in SIGBUS instead.
+ * On some platforms, unaligned memory accesses result in a kernel trap;
+ * the default kernel behavior is to emulate the memory access, but this
+ * results in a significant performance penalty. We ought to fix PG not to
+ * make such unaligned memory accesses, so this code disables the kernel
+ * emulation: unaligned accesses will result in SIGBUS instead.
*/
#ifdef NOFIXADE
@@ -230,8 +230,7 @@ startup_hacks(const char *progname)
write_stderr("%s: setsysinfo failed: %s\n",
progname, strerror(errno));
#endif
-
-#endif /* NOFIXADE */
+#endif /* NOFIXADE */
#ifdef WIN32
@@ -253,9 +252,9 @@ startup_hacks(const char *progname)
}
/* In case of general protection fault, don't show GUI popup box */
- SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX);
+ SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX);
}
-#endif /* WIN32 */
+#endif /* WIN32 */
}
@@ -315,7 +314,7 @@ help(const char *progname)
printf(_(" -x NUM internal use\n"));
printf(_("\nPlease read the documentation for the complete list of run-time\n"
- "configuration settings and how to set them on the command line or in\n"
+ "configuration settings and how to set them on the command line or in\n"
"the configuration file.\n\n"
"Report bugs to <pgsql-bugs@postgresql.org>.\n"));
}
@@ -330,19 +329,18 @@ check_root(const char *progname)
{
write_stderr("\"root\" execution of the PostgreSQL server is not permitted.\n"
"The server must be started under an unprivileged user ID to prevent\n"
- "possible system security compromise. See the documentation for\n"
- "more information on how to properly start the server.\n");
+ "possible system security compromise. See the documentation for\n"
+ "more information on how to properly start the server.\n");
exit(1);
}
/*
- * Also make sure that real and effective uids are the same.
- * Executing as a setuid program from a root shell is a security
- * hole, since on many platforms a nefarious subroutine could
- * setuid back to root if real uid is root. (Since nobody
- * actually uses postgres as a setuid program, trying to
- * actively fix this situation seems more trouble than it's worth;
- * we'll just expend the effort to check for it.)
+ * Also make sure that real and effective uids are the same. Executing as
+ * a setuid program from a root shell is a security hole, since on many
+ * platforms a nefarious subroutine could setuid back to root if real uid
+ * is root. (Since nobody actually uses postgres as a setuid program,
+ * trying to actively fix this situation seems more trouble than it's
+ * worth; we'll just expend the effort to check for it.)
*/
if (getuid() != geteuid())
{
@@ -350,17 +348,17 @@ check_root(const char *progname)
progname);
exit(1);
}
-#else /* WIN32 */
+#else /* WIN32 */
if (pgwin32_is_admin())
{
write_stderr("Execution of PostgreSQL by a user with administrative permissions is not\n"
"permitted.\n"
"The server must be started under an unprivileged user ID to prevent\n"
- "possible system security compromises. See the documentation for\n"
- "more information on how to properly start the server.\n");
+ "possible system security compromises. See the documentation for\n"
+ "more information on how to properly start the server.\n");
exit(1);
}
-#endif /* WIN32 */
+#endif /* WIN32 */
}
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c
index fb1037f170..f58a2ad3ec 100644
--- a/src/backend/nodes/copyfuncs.c
+++ b/src/backend/nodes/copyfuncs.c
@@ -15,7 +15,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.350 2006/08/30 23:34:21 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.351 2006/10/04 00:29:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1050,7 +1050,7 @@ _copyRowExpr(RowExpr *from)
static RowCompareExpr *
_copyRowCompareExpr(RowCompareExpr *from)
{
- RowCompareExpr *newnode = makeNode(RowCompareExpr);
+ RowCompareExpr *newnode = makeNode(RowCompareExpr);
COPY_SCALAR_FIELD(rctype);
COPY_NODE_FIELD(opnos);
@@ -2682,7 +2682,7 @@ _copyDeallocateStmt(DeallocateStmt *from)
}
static DropOwnedStmt *
-_copyDropOwnedStmt(DropOwnedStmt * from)
+_copyDropOwnedStmt(DropOwnedStmt *from)
{
DropOwnedStmt *newnode = makeNode(DropOwnedStmt);
@@ -2693,7 +2693,7 @@ _copyDropOwnedStmt(DropOwnedStmt * from)
}
static ReassignOwnedStmt *
-_copyReassignOwnedStmt(ReassignOwnedStmt * from)
+_copyReassignOwnedStmt(ReassignOwnedStmt *from)
{
ReassignOwnedStmt *newnode = makeNode(ReassignOwnedStmt);
diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c
index 1912cdd319..45dc76af9b 100644
--- a/src/backend/nodes/equalfuncs.c
+++ b/src/backend/nodes/equalfuncs.c
@@ -18,7 +18,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/nodes/equalfuncs.c,v 1.284 2006/08/30 23:34:21 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/nodes/equalfuncs.c,v 1.285 2006/10/04 00:29:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1496,7 +1496,7 @@ _equalDeallocateStmt(DeallocateStmt *a, DeallocateStmt *b)
}
static bool
-_equalDropOwnedStmt(DropOwnedStmt * a, DropOwnedStmt * b)
+_equalDropOwnedStmt(DropOwnedStmt *a, DropOwnedStmt *b)
{
COMPARE_NODE_FIELD(roles);
COMPARE_SCALAR_FIELD(behavior);
@@ -1505,7 +1505,7 @@ _equalDropOwnedStmt(DropOwnedStmt * a, DropOwnedStmt * b)
}
static bool
-_equalReassignOwnedStmt(ReassignOwnedStmt * a, ReassignOwnedStmt * b)
+_equalReassignOwnedStmt(ReassignOwnedStmt *a, ReassignOwnedStmt *b)
{
COMPARE_NODE_FIELD(roles);
COMPARE_NODE_FIELD(newrole);
diff --git a/src/backend/nodes/makefuncs.c b/src/backend/nodes/makefuncs.c
index 7555cbd0dd..9f6aa22707 100644
--- a/src/backend/nodes/makefuncs.c
+++ b/src/backend/nodes/makefuncs.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/nodes/makefuncs.c,v 1.51 2006/08/21 00:57:24 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/nodes/makefuncs.c,v 1.52 2006/10/04 00:29:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -330,7 +330,7 @@ makeFuncExpr(Oid funcid, Oid rettype, List *args, CoercionForm fformat)
DefElem *
makeDefElem(char *name, Node *arg)
{
- DefElem *res = makeNode(DefElem);
+ DefElem *res = makeNode(DefElem);
res->defname = name;
res->arg = arg;
diff --git a/src/backend/nodes/params.c b/src/backend/nodes/params.c
index 1d4e1d48e8..7274f59788 100644
--- a/src/backend/nodes/params.c
+++ b/src/backend/nodes/params.c
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/nodes/params.c,v 1.6 2006/04/22 01:25:59 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/nodes/params.c,v 1.7 2006/10/04 00:29:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -37,14 +37,14 @@ copyParamList(ParamListInfo from)
/* sizeof(ParamListInfoData) includes the first array element */
size = sizeof(ParamListInfoData) +
- (from->numParams - 1) * sizeof(ParamExternData);
+ (from->numParams - 1) *sizeof(ParamExternData);
retval = (ParamListInfo) palloc(size);
memcpy(retval, from, size);
/*
- * Flat-copy is not good enough for pass-by-ref data values, so make
- * a pass over the array to copy those.
+ * Flat-copy is not good enough for pass-by-ref data values, so make a
+ * pass over the array to copy those.
*/
for (i = 0; i < retval->numParams; i++)
{
diff --git a/src/backend/optimizer/path/allpaths.c b/src/backend/optimizer/path/allpaths.c
index 0c2b6920cd..12da0781a0 100644
--- a/src/backend/optimizer/path/allpaths.c
+++ b/src/backend/optimizer/path/allpaths.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/path/allpaths.c,v 1.153 2006/09/19 22:49:52 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/path/allpaths.c,v 1.154 2006/10/04 00:29:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -43,13 +43,13 @@ static void set_rel_pathlist(PlannerInfo *root, RelOptInfo *rel, Index rti);
static void set_plain_rel_pathlist(PlannerInfo *root, RelOptInfo *rel,
RangeTblEntry *rte);
static void set_append_rel_pathlist(PlannerInfo *root, RelOptInfo *rel,
- Index rti, RangeTblEntry *rte);
+ Index rti, RangeTblEntry *rte);
static void set_subquery_pathlist(PlannerInfo *root, RelOptInfo *rel,
Index rti, RangeTblEntry *rte);
static void set_function_pathlist(PlannerInfo *root, RelOptInfo *rel,
RangeTblEntry *rte);
static void set_values_pathlist(PlannerInfo *root, RelOptInfo *rel,
- RangeTblEntry *rte);
+ RangeTblEntry *rte);
static RelOptInfo *make_rel_from_joinlist(PlannerInfo *root, List *joinlist);
static RelOptInfo *make_one_rel_by_joins(PlannerInfo *root, int levels_needed,
List *initial_rels);
@@ -253,7 +253,7 @@ set_plain_rel_pathlist(PlannerInfo *root, RelOptInfo *rel, RangeTblEntry *rte)
* set_append_rel_pathlist
* Build access paths for an "append relation"
*
- * The passed-in rel and RTE represent the entire append relation. The
+ * The passed-in rel and RTE represent the entire append relation. The
* relation's contents are computed by appending together the output of
* the individual member relations. Note that in the inheritance case,
* the first member relation is actually the same table as is mentioned in
@@ -271,8 +271,8 @@ set_append_rel_pathlist(PlannerInfo *root, RelOptInfo *rel,
/*
* XXX for now, can't handle inherited expansion of FOR UPDATE/SHARE; can
* we do better? (This will take some redesign because the executor
- * currently supposes that every rowMark relation is involved in every
- * row returned by the query.)
+ * currently supposes that every rowMark relation is involved in every row
+ * returned by the query.)
*/
if (get_rowmark(root->parse, parentRTindex))
ereport(ERROR,
@@ -336,16 +336,16 @@ set_append_rel_pathlist(PlannerInfo *root, RelOptInfo *rel,
childrel->max_attr);
/*
- * Compute the child's access paths, and add the cheapest one
- * to the Append path we are constructing for the parent.
+ * Compute the child's access paths, and add the cheapest one to the
+ * Append path we are constructing for the parent.
*
- * It's possible that the child is itself an appendrel, in which
- * case we can "cut out the middleman" and just add its child
- * paths to our own list. (We don't try to do this earlier because
- * we need to apply both levels of transformation to the quals.)
- * This test also handles the case where the child rel need not
- * be scanned because of constraint exclusion: it'll have an
- * Append path with no subpaths, and will vanish from our list.
+ * It's possible that the child is itself an appendrel, in which case
+ * we can "cut out the middleman" and just add its child paths to our
+ * own list. (We don't try to do this earlier because we need to
+ * apply both levels of transformation to the quals.) This test also
+ * handles the case where the child rel need not be scanned because of
+ * constraint exclusion: it'll have an Append path with no subpaths,
+ * and will vanish from our list.
*/
set_rel_pathlist(root, childrel, childRTindex);
diff --git a/src/backend/optimizer/path/clausesel.c b/src/backend/optimizer/path/clausesel.c
index 269a6ed7e7..f51bac9b0e 100644
--- a/src/backend/optimizer/path/clausesel.c
+++ b/src/backend/optimizer/path/clausesel.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/path/clausesel.c,v 1.81 2006/07/14 14:52:20 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/path/clausesel.c,v 1.82 2006/10/04 00:29:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -429,16 +429,16 @@ clause_selectivity(PlannerInfo *root,
rinfo = (RestrictInfo *) clause;
/*
- * If the clause is marked pseudoconstant, then it will be used as
- * a gating qual and should not affect selectivity estimates; hence
- * return 1.0. The only exception is that a constant FALSE may
- * be taken as having selectivity 0.0, since it will surely mean
- * no rows out of the plan. This case is simple enough that we
- * need not bother caching the result.
+ * If the clause is marked pseudoconstant, then it will be used as a
+ * gating qual and should not affect selectivity estimates; hence
+ * return 1.0. The only exception is that a constant FALSE may be
+ * taken as having selectivity 0.0, since it will surely mean no rows
+ * out of the plan. This case is simple enough that we need not
+ * bother caching the result.
*/
if (rinfo->pseudoconstant)
{
- if (! IsA(rinfo->clause, Const))
+ if (!IsA(rinfo->clause, Const))
return s1;
}
@@ -529,7 +529,7 @@ clause_selectivity(PlannerInfo *root,
else if (IsA(clause, Const))
{
/* bool constant is pretty easy... */
- Const *con = (Const *) clause;
+ Const *con = (Const *) clause;
s1 = con->constisnull ? 0.0 :
DatumGetBool(con->constvalue) ? 1.0 : 0.0;
@@ -542,7 +542,7 @@ clause_selectivity(PlannerInfo *root,
if (IsA(subst, Const))
{
/* bool constant is pretty easy... */
- Const *con = (Const *) subst;
+ Const *con = (Const *) subst;
s1 = con->constisnull ? 0.0 :
DatumGetBool(con->constvalue) ? 1.0 : 0.0;
diff --git a/src/backend/optimizer/path/costsize.c b/src/backend/optimizer/path/costsize.c
index cd289423ec..f2a6d294ee 100644
--- a/src/backend/optimizer/path/costsize.c
+++ b/src/backend/optimizer/path/costsize.c
@@ -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.166 2006/09/19 22:49:52 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/path/costsize.c,v 1.167 2006/10/04 00:29:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -92,7 +92,7 @@ double cpu_tuple_cost = DEFAULT_CPU_TUPLE_COST;
double cpu_index_tuple_cost = DEFAULT_CPU_INDEX_TUPLE_COST;
double cpu_operator_cost = DEFAULT_CPU_OPERATOR_COST;
-int effective_cache_size = DEFAULT_EFFECTIVE_CACHE_SIZE;
+int effective_cache_size = DEFAULT_EFFECTIVE_CACHE_SIZE;
Cost disable_cost = 100000000.0;
@@ -276,13 +276,13 @@ cost_index(IndexPath *path, PlannerInfo *root,
if (outer_rel != NULL && outer_rel->rows > 1)
{
/*
- * For repeated indexscans, scale up the number of tuples fetched
- * in the Mackert and Lohman formula by the number of scans, so
- * that we estimate the number of pages fetched by all the scans.
- * Then pro-rate the costs for one scan. In this case we assume
- * all the fetches are random accesses. XXX it'd be good to
- * include correlation in this model, but it's not clear how to do
- * that without double-counting cache effects.
+ * For repeated indexscans, scale up the number of tuples fetched in
+ * the Mackert and Lohman formula by the number of scans, so that we
+ * estimate the number of pages fetched by all the scans. Then
+ * pro-rate the costs for one scan. In this case we assume all the
+ * fetches are random accesses. XXX it'd be good to include
+ * correlation in this model, but it's not clear how to do that
+ * without double-counting cache effects.
*/
double num_scans = outer_rel->rows;
@@ -385,7 +385,7 @@ cost_index(IndexPath *path, PlannerInfo *root,
* computed for us by query_planner.
*
* Caller is expected to have ensured that tuples_fetched is greater than zero
- * and rounded to integer (see clamp_row_est). The result will likewise be
+ * and rounded to integer (see clamp_row_est). The result will likewise be
* greater than zero and integral.
*/
double
@@ -406,7 +406,8 @@ index_pages_fetched(double tuples_fetched, BlockNumber pages,
Assert(T <= total_pages);
/* b is pro-rated share of effective_cache_size */
- b = (double) effective_cache_size * T / total_pages;
+ b = (double) effective_cache_size *T / total_pages;
+
/* force it positive and integral */
if (b <= 1.0)
b = 1.0;
@@ -543,10 +544,10 @@ cost_bitmap_heap_scan(Path *path, PlannerInfo *root, RelOptInfo *baserel,
if (outer_rel != NULL && outer_rel->rows > 1)
{
/*
- * For repeated bitmap scans, scale up the number of tuples fetched
- * in the Mackert and Lohman formula by the number of scans, so
- * that we estimate the number of pages fetched by all the scans.
- * Then pro-rate for one scan.
+ * For repeated bitmap scans, scale up the number of tuples fetched in
+ * the Mackert and Lohman formula by the number of scans, so that we
+ * estimate the number of pages fetched by all the scans. Then
+ * pro-rate for one scan.
*/
double num_scans = outer_rel->rows;
@@ -573,7 +574,7 @@ cost_bitmap_heap_scan(Path *path, PlannerInfo *root, RelOptInfo *baserel,
/*
* For small numbers of pages we should charge random_page_cost apiece,
* while if nearly all the table's pages are being read, it's more
- * appropriate to charge seq_page_cost apiece. The effect is nonlinear,
+ * appropriate to charge seq_page_cost apiece. The effect is nonlinear,
* too. For lack of a better idea, interpolate like this to determine the
* cost per page.
*/
@@ -748,7 +749,7 @@ cost_tidscan(Path *path, PlannerInfo *root,
{
/* Each element of the array yields 1 tuple */
ScalarArrayOpExpr *saop = (ScalarArrayOpExpr *) lfirst(l);
- Node *arraynode = (Node *) lsecond(saop->args);
+ Node *arraynode = (Node *) lsecond(saop->args);
ntuples += estimate_array_length(arraynode);
}
@@ -849,8 +850,8 @@ cost_valuesscan(Path *path, PlannerInfo *root, RelOptInfo *baserel)
Assert(baserel->rtekind == RTE_VALUES);
/*
- * For now, estimate list evaluation cost at one operator eval per
- * list (probably pretty bogus, but is it worth being smarter?)
+ * For now, estimate list evaluation cost at one operator eval per list
+ * (probably pretty bogus, but is it worth being smarter?)
*/
cpu_per_tuple = cpu_operator_cost;
@@ -875,7 +876,7 @@ cost_valuesscan(Path *path, PlannerInfo *root, RelOptInfo *baserel)
* If the total volume exceeds work_mem, we switch to a tape-style merge
* algorithm. There will still be about t*log2(t) tuple comparisons in
* total, but we will also need to write and read each tuple once per
- * merge pass. We expect about ceil(logM(r)) merge passes where r is the
+ * merge pass. We expect about ceil(logM(r)) merge passes where r is the
* number of initial runs formed and M is the merge order used by tuplesort.c.
* Since the average initial run should be about twice work_mem, we have
* disk traffic = 2 * relsize * ceil(logM(p / (2*work_mem)))
@@ -1745,7 +1746,7 @@ cost_qual_eval_walker(Node *node, QualCost *total)
* array elements before the answer is determined.
*/
ScalarArrayOpExpr *saop = (ScalarArrayOpExpr *) node;
- Node *arraynode = (Node *) lsecond(saop->args);
+ Node *arraynode = (Node *) lsecond(saop->args);
total->per_tuple +=
cpu_operator_cost * estimate_array_length(arraynode) * 0.5;
@@ -1967,7 +1968,7 @@ set_joinrel_size_estimates(PlannerInfo *root, RelOptInfo *rel,
*
* If we are doing an outer join, take that into account: the output must
* be at least as large as the non-nullable input. (Is there any chance
- * of being even smarter?) (XXX this is not really right, because it
+ * of being even smarter?) (XXX this is not really right, because it
* assumes all the restriction clauses are join clauses; we should figure
* pushed-down clauses separately.)
*
@@ -2132,10 +2133,10 @@ set_values_size_estimates(PlannerInfo *root, RelOptInfo *rel)
Assert(rte->rtekind == RTE_VALUES);
/*
- * Estimate number of rows the values list will return.
- * We know this precisely based on the list length (well,
- * barring set-returning functions in list items, but that's
- * a refinement not catered for anywhere else either).
+ * Estimate number of rows the values list will return. We know this
+ * precisely based on the list length (well, barring set-returning
+ * functions in list items, but that's a refinement not catered for
+ * anywhere else either).
*/
rel->tuples = list_length(rte->values_lists);
diff --git a/src/backend/optimizer/path/indxpath.c b/src/backend/optimizer/path/indxpath.c
index 7810012b2b..b15affa54d 100644
--- a/src/backend/optimizer/path/indxpath.c
+++ b/src/backend/optimizer/path/indxpath.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/path/indxpath.c,v 1.211 2006/07/22 15:41:55 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/path/indxpath.c,v 1.212 2006/10/04 00:29:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -54,10 +54,10 @@ static List *find_saop_paths(PlannerInfo *root, RelOptInfo *rel,
List *clauses, List *outer_clauses,
bool istoplevel, RelOptInfo *outer_rel);
static Path *choose_bitmap_and(PlannerInfo *root, RelOptInfo *rel,
- List *paths, RelOptInfo *outer_rel);
+ List *paths, RelOptInfo *outer_rel);
static int bitmap_path_comparator(const void *a, const void *b);
static Cost bitmap_and_cost_est(PlannerInfo *root, RelOptInfo *rel,
- List *paths, RelOptInfo *outer_rel);
+ List *paths, RelOptInfo *outer_rel);
static List *pull_indexpath_quals(Path *bitmapqual);
static bool lists_intersect_ptr(List *list1, List *list2);
static bool match_clause_to_indexcol(IndexOptInfo *index,
@@ -66,7 +66,7 @@ static bool match_clause_to_indexcol(IndexOptInfo *index,
Relids outer_relids,
SaOpControl saop_control);
static bool is_indexable_operator(Oid expr_op, Oid opclass,
- bool indexkey_on_left);
+ bool indexkey_on_left);
static bool match_rowcompare_to_indexcol(IndexOptInfo *index,
int indexcol,
Oid opclass,
@@ -324,8 +324,8 @@ find_usable_indexes(PlannerInfo *root, RelOptInfo *rel,
/*
* 1. Match the index against the available restriction clauses.
* found_clause is set true only if at least one of the current
- * clauses was used (and, if saop_control is SAOP_REQUIRE, it
- * has to have been a ScalarArrayOpExpr clause).
+ * clauses was used (and, if saop_control is SAOP_REQUIRE, it has to
+ * have been a ScalarArrayOpExpr clause).
*/
restrictclauses = group_clauses_by_indexkey(index,
clauses,
@@ -422,8 +422,8 @@ find_saop_paths(PlannerInfo *root, RelOptInfo *rel,
ListCell *l;
/*
- * Since find_usable_indexes is relatively expensive, don't bother to
- * run it unless there are some top-level ScalarArrayOpExpr clauses.
+ * Since find_usable_indexes is relatively expensive, don't bother to run
+ * it unless there are some top-level ScalarArrayOpExpr clauses.
*/
foreach(l, clauses)
{
@@ -588,15 +588,15 @@ 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. As a compromise, we sort the paths by selectivity. We
+ * OR clauses. As a compromise, we sort the paths by selectivity. We
* always take the first, and sequentially add on paths that result in a
* lower estimated cost.
*
* We also make some effort to detect directly redundant input paths, as
- * can happen if there are multiple possibly usable indexes. (Another
- * way it can happen is that best_inner_indexscan will find the same OR
- * join clauses that create_or_index_quals has pulled OR restriction
- * clauses out of, and then both versions show up as duplicate paths.) We
+ * can happen if there are multiple possibly usable indexes. (Another way
+ * it can happen is that best_inner_indexscan will find the same OR join
+ * clauses that create_or_index_quals has pulled OR restriction clauses
+ * out of, and then both versions show up as duplicate paths.) We
* consider an index redundant if any of its index conditions were already
* used by earlier indexes. (We could use predicate_implied_by to have a
* more intelligent, but much more expensive, check --- but in most cases
@@ -796,7 +796,7 @@ lists_intersect_ptr(List *list1, List *list2)
foreach(cell1, list1)
{
- void *datum1 = lfirst(cell1);
+ void *datum1 = lfirst(cell1);
ListCell *cell2;
foreach(cell2, list2)
@@ -963,7 +963,7 @@ group_clauses_by_indexkey(IndexOptInfo *index,
* It is also possible to match RowCompareExpr clauses to indexes (but
* currently, only btree indexes handle this). In this routine we will
* report a match if the first column of the row comparison matches the
- * target index column. This is sufficient to guarantee that some index
+ * target index column. This is sufficient to guarantee that some index
* condition can be constructed from the RowCompareExpr --- whether the
* remaining columns match the index too is considered in
* expand_indexqual_rowcompare().
@@ -1004,10 +1004,10 @@ match_clause_to_indexcol(IndexOptInfo *index,
bool plain_op;
/*
- * Never match pseudoconstants to indexes. (Normally this could not
- * happen anyway, since a pseudoconstant clause couldn't contain a
- * Var, but what if someone builds an expression index on a constant?
- * It's not totally unreasonable to do so with a partial index, either.)
+ * Never match pseudoconstants to indexes. (Normally this could not
+ * happen anyway, since a pseudoconstant clause couldn't contain a Var,
+ * but what if someone builds an expression index on a constant? It's not
+ * totally unreasonable to do so with a partial index, either.)
*/
if (rinfo->pseudoconstant)
return false;
@@ -1421,9 +1421,9 @@ best_inner_indexscan(PlannerInfo *root, RelOptInfo *rel,
* NOTE: because we cache on outer_relids rather than outer_rel->relids,
* we will report the same path and hence path cost for joins with
* different sets of irrelevant rels on the outside. Now that cost_index
- * is sensitive to outer_rel->rows, this is not really right. However
- * the error is probably not large. Is it worth establishing a separate
- * cache entry for each distinct outer_rel->relids set to get this right?
+ * is sensitive to outer_rel->rows, this is not really right. However the
+ * error is probably not large. Is it worth establishing a separate cache
+ * entry for each distinct outer_rel->relids set to get this right?
*/
foreach(l, rel->index_inner_paths)
{
@@ -1442,11 +1442,11 @@ best_inner_indexscan(PlannerInfo *root, RelOptInfo *rel,
*
* Note: because we include restriction clauses, we will find indexscans
* that could be plain indexscans, ie, they don't require the join context
- * at all. This may seem redundant, but we need to include those scans in
+ * at all. This may seem redundant, but we need to include those scans in
* the input given to choose_bitmap_and() to be sure we find optimal AND
- * combinations of join and non-join scans. Also, even if the "best
- * inner indexscan" is just a plain indexscan, it will have a different
- * cost estimate because of cache effects.
+ * combinations of join and non-join scans. Also, even if the "best inner
+ * indexscan" is just a plain indexscan, it will have a different cost
+ * estimate because of cache effects.
*/
clause_list = find_clauses_for_join(root, rel, outer_relids, isouterjoin);
@@ -2210,7 +2210,7 @@ expand_indexqual_conditions(IndexOptInfo *index, List *clausegroups)
foreach(l, (List *) lfirst(clausegroup_item))
{
RestrictInfo *rinfo = (RestrictInfo *) lfirst(l);
- Expr *clause = rinfo->clause;
+ Expr *clause = rinfo->clause;
/* First check for boolean cases */
if (IsBooleanOpclass(curClass))
@@ -2240,7 +2240,7 @@ expand_indexqual_conditions(IndexOptInfo *index, List *clausegroups)
{
resultquals = list_concat(resultquals,
expand_indexqual_opclause(rinfo,
- curClass));
+ curClass));
}
else if (IsA(clause, ScalarArrayOpExpr))
{
@@ -2340,6 +2340,7 @@ static List *
expand_indexqual_opclause(RestrictInfo *rinfo, Oid opclass)
{
Expr *clause = rinfo->clause;
+
/* we know these will succeed */
Node *leftop = get_leftop(clause);
Node *rightop = get_rightop(clause);
@@ -2421,7 +2422,7 @@ expand_indexqual_opclause(RestrictInfo *rinfo, Oid opclass)
* column matches) or a simple OpExpr (if the first-column match is all
* there is). In these cases the modified clause is always "<=" or ">="
* even when the original was "<" or ">" --- this is necessary to match all
- * the rows that could match the original. (We are essentially building a
+ * the rows that could match the original. (We are essentially building a
* lossy version of the row comparison when we do this.)
*/
static RestrictInfo *
@@ -2430,18 +2431,18 @@ expand_indexqual_rowcompare(RestrictInfo *rinfo,
int indexcol)
{
RowCompareExpr *clause = (RowCompareExpr *) rinfo->clause;
- bool var_on_left;
- int op_strategy;
- Oid op_subtype;
- bool op_recheck;
- int matching_cols;
- Oid expr_op;
- List *opclasses;
- List *subtypes;
- List *new_ops;
- ListCell *largs_cell;
- ListCell *rargs_cell;
- ListCell *opnos_cell;
+ bool var_on_left;
+ int op_strategy;
+ Oid op_subtype;
+ bool op_recheck;
+ int matching_cols;
+ Oid expr_op;
+ List *opclasses;
+ List *subtypes;
+ List *new_ops;
+ ListCell *largs_cell;
+ ListCell *rargs_cell;
+ ListCell *opnos_cell;
/* We have to figure out (again) how the first col matches */
var_on_left = match_index_to_operand((Node *) linitial(clause->largs),
@@ -2459,12 +2460,12 @@ expand_indexqual_rowcompare(RestrictInfo *rinfo,
subtypes = list_make1_oid(op_subtype);
/*
- * See how many of the remaining columns match some index column
- * in the same way. A note about rel membership tests: we assume
- * that the clause as a whole is already known to use only Vars from
- * the indexed relation and possibly some acceptable outer relations.
- * So the "other" side of any potential index condition is OK as long
- * as it doesn't use Vars from the indexed relation.
+ * See how many of the remaining columns match some index column in the
+ * same way. A note about rel membership tests: we assume that the clause
+ * as a whole is already known to use only Vars from the indexed relation
+ * and possibly some acceptable outer relations. So the "other" side of
+ * any potential index condition is OK as long as it doesn't use Vars from
+ * the indexed relation.
*/
matching_cols = 1;
largs_cell = lnext(list_head(clause->largs));
@@ -2498,10 +2499,10 @@ expand_indexqual_rowcompare(RestrictInfo *rinfo,
break; /* no good, volatile comparison value */
/*
- * The Var side can match any column of the index. If the user
- * does something weird like having multiple identical index
- * columns, we insist the match be on the first such column,
- * to avoid confusing the executor.
+ * The Var side can match any column of the index. If the user does
+ * something weird like having multiple identical index columns, we
+ * insist the match be on the first such column, to avoid confusing
+ * the executor.
*/
for (i = 0; i < index->ncolumns; i++)
{
@@ -2534,9 +2535,9 @@ expand_indexqual_rowcompare(RestrictInfo *rinfo,
return rinfo;
/*
- * We have to generate a subset rowcompare (possibly just one OpExpr).
- * The painful part of this is changing < to <= or > to >=, so deal with
- * that first.
+ * We have to generate a subset rowcompare (possibly just one OpExpr). The
+ * painful part of this is changing < to <= or > to >=, so deal with that
+ * first.
*/
if (op_strategy == BTLessEqualStrategyNumber ||
op_strategy == BTGreaterEqualStrategyNumber)
@@ -2546,8 +2547,8 @@ expand_indexqual_rowcompare(RestrictInfo *rinfo,
}
else
{
- ListCell *opclasses_cell;
- ListCell *subtypes_cell;
+ ListCell *opclasses_cell;
+ ListCell *subtypes_cell;
if (op_strategy == BTLessStrategyNumber)
op_strategy = BTLessEqualStrategyNumber;
@@ -2561,13 +2562,13 @@ expand_indexqual_rowcompare(RestrictInfo *rinfo,
expr_op = get_opclass_member(lfirst_oid(opclasses_cell),
lfirst_oid(subtypes_cell),
op_strategy);
- if (!OidIsValid(expr_op)) /* should not happen */
+ if (!OidIsValid(expr_op)) /* should not happen */
elog(ERROR, "could not find member %d of opclass %u",
op_strategy, lfirst_oid(opclasses_cell));
if (!var_on_left)
{
expr_op = get_commutator(expr_op);
- if (!OidIsValid(expr_op)) /* should not happen */
+ if (!OidIsValid(expr_op)) /* should not happen */
elog(ERROR, "could not find commutator of member %d of opclass %u",
op_strategy, lfirst_oid(opclasses_cell));
}
@@ -2596,7 +2597,7 @@ expand_indexqual_rowcompare(RestrictInfo *rinfo,
}
else
{
- Expr *opexpr;
+ Expr *opexpr;
opexpr = make_opclause(linitial_oid(new_ops), BOOLOID, false,
copyObject(linitial(clause->largs)),
diff --git a/src/backend/optimizer/path/joinpath.c b/src/backend/optimizer/path/joinpath.c
index f5e9b1e987..6882439ca3 100644
--- a/src/backend/optimizer/path/joinpath.c
+++ b/src/backend/optimizer/path/joinpath.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/path/joinpath.c,v 1.106 2006/08/17 17:06:37 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/path/joinpath.c,v 1.107 2006/10/04 00:29:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -33,7 +33,7 @@ static void hash_inner_and_outer(PlannerInfo *root, RelOptInfo *joinrel,
RelOptInfo *outerrel, RelOptInfo *innerrel,
List *restrictlist, JoinType jointype);
static Path *best_appendrel_indexscan(PlannerInfo *root, RelOptInfo *rel,
- RelOptInfo *outer_rel, JoinType jointype);
+ RelOptInfo *outer_rel, JoinType jointype);
static List *select_mergejoin_clauses(RelOptInfo *joinrel,
RelOptInfo *outerrel,
RelOptInfo *innerrel,
@@ -544,9 +544,9 @@ match_unsorted_outer(PlannerInfo *root,
* mergejoin using a subset of the merge clauses. Here, we consider
* both cheap startup cost and cheap total cost. We can ignore
* inner_cheapest_total on the first iteration, since we already made
- * a path with it --- but not on later iterations with shorter
- * sort keys, because then we are considering a different situation,
- * viz using a simpler mergejoin to avoid a sort of the inner rel.
+ * a path with it --- but not on later iterations with shorter sort
+ * keys, because then we are considering a different situation, viz
+ * using a simpler mergejoin to avoid a sort of the inner rel.
*/
num_sortkeys = list_length(innersortkeys);
if (num_sortkeys > 1 && !useallclauses)
@@ -792,7 +792,7 @@ hash_inner_and_outer(PlannerInfo *root,
* best_appendrel_indexscan
* Finds the best available set of inner indexscans for a nestloop join
* with the given append relation on the inside and the given outer_rel
- * outside. Returns an AppendPath comprising the best inner scans, or
+ * outside. Returns an AppendPath comprising the best inner scans, or
* NULL if there are no possible inner indexscans.
*/
static Path *
@@ -820,9 +820,9 @@ best_appendrel_indexscan(PlannerInfo *root, RelOptInfo *rel,
Assert(childrel->reloptkind == RELOPT_OTHER_MEMBER_REL);
/*
- * Check to see if child was rejected by constraint exclusion.
- * If so, it will have a cheapest_total_path that's an Append path
- * with no members (see set_plain_rel_pathlist).
+ * Check to see if child was rejected by constraint exclusion. If so,
+ * it will have a cheapest_total_path that's an Append path with no
+ * members (see set_plain_rel_pathlist).
*/
if (IsA(childrel->cheapest_total_path, AppendPath) &&
((AppendPath *) childrel->cheapest_total_path)->subpaths == NIL)
@@ -835,10 +835,10 @@ best_appendrel_indexscan(PlannerInfo *root, RelOptInfo *rel,
outer_rel, jointype);
/*
- * If no luck on an indexpath for this rel, we'll still consider
- * an Append substituting the cheapest-total inner path. However
- * we must find at least one indexpath, else there's not going to
- * be any improvement over the base path for the appendrel.
+ * If no luck on an indexpath for this rel, we'll still consider an
+ * Append substituting the cheapest-total inner path. However we must
+ * find at least one indexpath, else there's not going to be any
+ * improvement over the base path for the appendrel.
*/
if (bestinnerjoin)
found_indexscan = true;
diff --git a/src/backend/optimizer/path/joinrels.c b/src/backend/optimizer/path/joinrels.c
index ac12bbd5f7..bed9db5043 100644
--- a/src/backend/optimizer/path/joinrels.c
+++ b/src/backend/optimizer/path/joinrels.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/path/joinrels.c,v 1.79 2006/03/05 15:58:28 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/path/joinrels.c,v 1.80 2006/10/04 00:29:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -87,11 +87,11 @@ make_rels_by_joins(PlannerInfo *root, int level, List **joinrels)
/*
* An exception occurs when there is a clauseless join inside a
- * construct that restricts join order, i.e., an outer join RHS
- * or an IN (sub-SELECT) construct. Here, the rel may well have
- * join clauses against stuff outside the OJ RHS or IN sub-SELECT,
- * but the clauseless join *must* be done before we can make use
- * of those join clauses. So do the clauseless join bit.
+ * construct that restricts join order, i.e., an outer join RHS or
+ * an IN (sub-SELECT) construct. Here, the rel may well have join
+ * clauses against stuff outside the OJ RHS or IN sub-SELECT, but
+ * the clauseless join *must* be done before we can make use of
+ * those join clauses. So do the clauseless join bit.
*
* See also the last-ditch case below.
*/
@@ -386,9 +386,9 @@ make_join_rel(PlannerInfo *root, RelOptInfo *rel1, RelOptInfo *rel2)
joinrelids = bms_union(rel1->relids, rel2->relids);
/*
- * If we have any outer joins, the proposed join might be illegal; and
- * in any case we have to determine its join type. Scan the OJ list
- * for conflicts.
+ * If we have any outer joins, the proposed join might be illegal; and in
+ * any case we have to determine its join type. Scan the OJ list for
+ * conflicts.
*/
jointype = JOIN_INNER; /* default if no match to an OJ */
is_valid_inner = true;
@@ -485,16 +485,16 @@ make_join_rel(PlannerInfo *root, RelOptInfo *rel1, RelOptInfo *rel2)
InClauseInfo *ininfo = (InClauseInfo *) lfirst(l);
/*
- * This IN clause is not relevant unless its RHS overlaps the
- * proposed join. (Check this first as a fast path for dismissing
- * most irrelevant INs quickly.)
+ * This IN clause is not relevant unless its RHS overlaps the proposed
+ * join. (Check this first as a fast path for dismissing most
+ * irrelevant INs quickly.)
*/
if (!bms_overlap(ininfo->righthand, joinrelids))
continue;
/*
- * If we are still building the IN clause's RHS, then this IN
- * clause isn't relevant yet.
+ * If we are still building the IN clause's RHS, then this IN clause
+ * isn't relevant yet.
*/
if (bms_is_subset(joinrelids, ininfo->righthand))
continue;
diff --git a/src/backend/optimizer/path/orindxpath.c b/src/backend/optimizer/path/orindxpath.c
index 0e602a4476..56142535c1 100644
--- a/src/backend/optimizer/path/orindxpath.c
+++ b/src/backend/optimizer/path/orindxpath.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/path/orindxpath.c,v 1.80 2006/07/14 14:52:20 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/path/orindxpath.c,v 1.81 2006/10/04 00:29:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -106,8 +106,8 @@ create_or_index_quals(PlannerInfo *root, RelOptInfo *rel)
* Use the generate_bitmap_or_paths() machinery to estimate the
* value of each OR clause. We can use regular restriction
* clauses along with the OR clause contents to generate
- * indexquals. We pass outer_rel = NULL so that sub-clauses
- * that are actually joins will be ignored.
+ * indexquals. We pass outer_rel = NULL so that sub-clauses that
+ * are actually joins will be ignored.
*/
List *orpaths;
ListCell *k;
diff --git a/src/backend/optimizer/path/pathkeys.c b/src/backend/optimizer/path/pathkeys.c
index fb5d38255d..b254598fcf 100644
--- a/src/backend/optimizer/path/pathkeys.c
+++ b/src/backend/optimizer/path/pathkeys.c
@@ -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.78 2006/08/17 17:02:49 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/path/pathkeys.c,v 1.79 2006/10/04 00:29:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -909,7 +909,7 @@ get_cheapest_fractional_path_for_pathkeys(List *paths,
* representing a backwards scan of the index. Return NIL if can't do it.
*
* If 'canonical' is TRUE, we remove duplicate pathkeys (which can occur
- * if two index columns are equijoined, eg WHERE x = 1 AND y = 1). This
+ * if two index columns are equijoined, eg WHERE x = 1 AND y = 1). This
* is required if the result is to be compared directly to a canonical query
* pathkeys list. However, some callers want a list with exactly one entry
* per index column, and they must pass FALSE.
@@ -1106,8 +1106,8 @@ convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel,
outer_expr = (Node *)
makeRelabelType((Expr *) outer_expr,
((RelabelType *) sub_key)->resulttype,
- ((RelabelType *) sub_key)->resulttypmod,
- ((RelabelType *) sub_key)->relabelformat);
+ ((RelabelType *) sub_key)->resulttypmod,
+ ((RelabelType *) sub_key)->relabelformat);
}
else
continue;
diff --git a/src/backend/optimizer/path/tidpath.c b/src/backend/optimizer/path/tidpath.c
index a912994987..a7dd5b262d 100644
--- a/src/backend/optimizer/path/tidpath.c
+++ b/src/backend/optimizer/path/tidpath.c
@@ -24,7 +24,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/path/tidpath.c,v 1.27 2006/03/05 15:58:28 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/path/tidpath.c,v 1.28 2006/10/04 00:29:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -125,7 +125,7 @@ IsTidEqualAnyClause(ScalarArrayOpExpr *node, int varno)
/* CTID must be first argument */
if (arg1 && IsA(arg1, Var))
{
- Var *var = (Var *) arg1;
+ Var *var = (Var *) arg1;
if (var->varattno == SelfItemPointerAttributeNumber &&
var->vartype == TIDOID &&
@@ -187,7 +187,7 @@ TidQualFromExpr(Node *expr, int varno)
{
foreach(l, ((BoolExpr *) expr)->args)
{
- List *frtn = TidQualFromExpr((Node *) lfirst(l), varno);
+ List *frtn = TidQualFromExpr((Node *) lfirst(l), varno);
if (frtn)
rlst = list_concat(rlst, frtn);
diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c
index ae51505954..14f1f1a10f 100644
--- a/src/backend/optimizer/plan/createplan.c
+++ b/src/backend/optimizer/plan/createplan.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/plan/createplan.c,v 1.216 2006/08/02 01:59:45 joe Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/plan/createplan.c,v 1.217 2006/10/04 00:29:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -60,7 +60,7 @@ static SubqueryScan *create_subqueryscan_plan(PlannerInfo *root, Path *best_path
static FunctionScan *create_functionscan_plan(PlannerInfo *root, Path *best_path,
List *tlist, List *scan_clauses);
static ValuesScan *create_valuesscan_plan(PlannerInfo *root, Path *best_path,
- List *tlist, List *scan_clauses);
+ List *tlist, List *scan_clauses);
static NestLoop *create_nestloop_plan(PlannerInfo *root, NestPath *best_path,
Plan *outer_plan, Plan *inner_plan);
static MergeJoin *create_mergejoin_plan(PlannerInfo *root, MergePath *best_path,
@@ -98,7 +98,7 @@ static TidScan *make_tidscan(List *qptlist, List *qpqual, Index scanrelid,
static FunctionScan *make_functionscan(List *qptlist, List *qpqual,
Index scanrelid);
static ValuesScan *make_valuesscan(List *qptlist, List *qpqual,
- Index scanrelid);
+ Index scanrelid);
static BitmapAnd *make_bitmap_and(List *bitmapplans);
static BitmapOr *make_bitmap_or(List *bitmapplans);
static NestLoop *make_nestloop(List *tlist,
@@ -216,9 +216,9 @@ create_scan_plan(PlannerInfo *root, Path *best_path)
tlist = build_relation_tlist(rel);
/*
- * Extract the relevant restriction clauses from the parent relation.
- * The executor must apply all these restrictions during the scan,
- * except for pseudoconstants which we'll take care of below.
+ * Extract the relevant restriction clauses from the parent relation. The
+ * executor must apply all these restrictions during the scan, except for
+ * pseudoconstants which we'll take care of below.
*/
scan_clauses = rel->baserestrictinfo;
@@ -282,9 +282,9 @@ create_scan_plan(PlannerInfo *root, Path *best_path)
}
/*
- * If there are any pseudoconstant clauses attached to this node,
- * insert a gating Result node that evaluates the pseudoconstants
- * as one-time quals.
+ * If there are any pseudoconstant clauses attached to this node, insert a
+ * gating Result node that evaluates the pseudoconstants as one-time
+ * quals.
*/
if (root->hasPseudoConstantQuals)
plan = create_gating_plan(root, plan, scan_clauses);
@@ -327,8 +327,8 @@ use_physical_tlist(RelOptInfo *rel)
int i;
/*
- * We can do this for real relation scans, subquery scans, function
- * scans, and values scans (but not for, eg, joins).
+ * We can do this for real relation scans, subquery scans, function scans,
+ * and values scans (but not for, eg, joins).
*/
if (rel->rtekind != RTE_RELATION &&
rel->rtekind != RTE_SUBQUERY &&
@@ -466,9 +466,9 @@ create_join_plan(PlannerInfo *root, JoinPath *best_path)
}
/*
- * If there are any pseudoconstant clauses attached to this node,
- * insert a gating Result node that evaluates the pseudoconstants
- * as one-time quals.
+ * If there are any pseudoconstant clauses attached to this node, insert a
+ * gating Result node that evaluates the pseudoconstants as one-time
+ * quals.
*/
if (root->hasPseudoConstantQuals)
plan = create_gating_plan(root, plan, best_path->joinrestrictinfo);
@@ -991,9 +991,9 @@ create_bitmap_scan_plan(PlannerInfo *root,
*
* Unlike create_indexscan_plan(), we need take no special thought here
* for partial index predicates; this is because the predicate conditions
- * are already listed in bitmapqualorig and indexquals. Bitmap scans
- * have to do it that way because predicate conditions need to be rechecked
- * if the scan becomes lossy.
+ * are already listed in bitmapqualorig and indexquals. Bitmap scans have
+ * to do it that way because predicate conditions need to be rechecked if
+ * the scan becomes lossy.
*/
qpqual = NIL;
foreach(l, scan_clauses)
@@ -1137,6 +1137,7 @@ create_bitmap_subplan(PlannerInfo *root, Path *bitmapqual,
subindexquals = lappend(subindexquals,
make_ands_explicit(subindexqual));
}
+
/*
* In the presence of ScalarArrayOpExpr quals, we might have built
* BitmapOrPaths with just one subpath; don't add an OR step.
@@ -1152,7 +1153,7 @@ create_bitmap_subplan(PlannerInfo *root, Path *bitmapqual,
plan->total_cost = opath->path.total_cost;
plan->plan_rows =
clamp_row_est(opath->bitmapselectivity * opath->path.parent->tuples);
- plan->plan_width = 0; /* meaningless */
+ plan->plan_width = 0; /* meaningless */
}
/*
@@ -1202,10 +1203,10 @@ create_bitmap_subplan(PlannerInfo *root, Path *bitmapqual,
Expr *pred = (Expr *) lfirst(l);
/*
- * We know that the index predicate must have been implied by
- * the query condition as a whole, but it may or may not be
- * implied by the conditions that got pushed into the
- * bitmapqual. Avoid generating redundant conditions.
+ * We know that the index predicate must have been implied by the
+ * query condition as a whole, but it may or may not be implied by
+ * the conditions that got pushed into the bitmapqual. Avoid
+ * generating redundant conditions.
*/
if (!predicate_implied_by(list_make1(pred), ipath->indexclauses))
{
@@ -1244,8 +1245,8 @@ create_tidscan_plan(PlannerInfo *root, TidPath *best_path,
scan_clauses = extract_actual_clauses(scan_clauses, false);
/*
- * Remove any clauses that are TID quals. This is a bit tricky since
- * the tidquals list has implicit OR semantics.
+ * Remove any clauses that are TID quals. This is a bit tricky since the
+ * tidquals list has implicit OR semantics.
*/
ortidquals = best_path->tidquals;
if (list_length(ortidquals) > 1)
@@ -1333,7 +1334,7 @@ create_functionscan_plan(PlannerInfo *root, Path *best_path,
*/
static ValuesScan *
create_valuesscan_plan(PlannerInfo *root, Path *best_path,
- List *tlist, List *scan_clauses)
+ List *tlist, List *scan_clauses)
{
ValuesScan *scan_plan;
Index scan_relid = best_path->parent->relid;
@@ -1411,9 +1412,9 @@ create_nestloop_plan(PlannerInfo *root,
* join quals; failing to prove that doesn't result in an incorrect
* plan. It is the right way to proceed because adding more quals to
* the stuff we got from the original query would just make it harder
- * to detect duplication. (Also, to change this we'd have to be
- * wary of UPDATE/DELETE/SELECT FOR UPDATE target relations; see
- * notes above about EvalPlanQual.)
+ * to detect duplication. (Also, to change this we'd have to be wary
+ * of UPDATE/DELETE/SELECT FOR UPDATE target relations; see notes
+ * above about EvalPlanQual.)
*/
BitmapHeapPath *innerpath = (BitmapHeapPath *) best_path->innerjoinpath;
@@ -1693,7 +1694,7 @@ fix_indexqual_references(List *indexquals, IndexPath *index_path,
if (IsA(clause, OpExpr))
{
- OpExpr *op = (OpExpr *) clause;
+ OpExpr *op = (OpExpr *) clause;
if (list_length(op->args) != 2)
elog(ERROR, "indexqual clause is not binary opclause");
@@ -1718,7 +1719,7 @@ fix_indexqual_references(List *indexquals, IndexPath *index_path,
else if (IsA(clause, RowCompareExpr))
{
RowCompareExpr *rc = (RowCompareExpr *) clause;
- ListCell *lc;
+ ListCell *lc;
/*
* Check to see if the indexkey is on the right; if so, commute
@@ -1734,13 +1735,13 @@ fix_indexqual_references(List *indexquals, IndexPath *index_path,
* attribute this is and change the indexkey operand as needed.
*
* Save the index opclass for only the first column. We will
- * return the operator and opclass info for just the first
- * column of the row comparison; the executor will have to
- * look up the rest if it needs them.
+ * return the operator and opclass info for just the first column
+ * of the row comparison; the executor will have to look up the
+ * rest if it needs them.
*/
foreach(lc, rc->largs)
{
- Oid tmp_opclass;
+ Oid tmp_opclass;
lfirst(lc) = fix_indexqual_operand(lfirst(lc),
index,
diff --git a/src/backend/optimizer/plan/initsplan.c b/src/backend/optimizer/plan/initsplan.c
index 8299f6756b..2a8e1f528e 100644
--- a/src/backend/optimizer/plan/initsplan.c
+++ b/src/backend/optimizer/plan/initsplan.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/plan/initsplan.c,v 1.122 2006/09/19 22:49:52 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/plan/initsplan.c,v 1.123 2006/10/04 00:29:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -40,10 +40,10 @@ int join_collapse_limit;
static void add_vars_to_targetlist(PlannerInfo *root, List *vars,
Relids where_needed);
static List *deconstruct_recurse(PlannerInfo *root, Node *jtnode,
- bool below_outer_join, Relids *qualscope);
+ bool below_outer_join, Relids *qualscope);
static OuterJoinInfo *make_outerjoininfo(PlannerInfo *root,
- Relids left_rels, Relids right_rels,
- bool is_full_join, Node *clause);
+ Relids left_rels, Relids right_rels,
+ bool is_full_join, Node *clause);
static void distribute_qual_to_rels(PlannerInfo *root, Node *clause,
bool is_pushed_down,
bool is_deduced,
@@ -71,12 +71,12 @@ static void check_hashjoinable(RestrictInfo *restrictinfo);
* appearing in the jointree.
*
* The initial invocation must pass root->parse->jointree as the value of
- * jtnode. Internally, the function recurses through the jointree.
+ * jtnode. Internally, the function recurses through the jointree.
*
* At the end of this process, there should be one baserel RelOptInfo for
* every non-join RTE that is used in the query. Therefore, this routine
* is the only place that should call build_simple_rel with reloptkind
- * RELOPT_BASEREL. (Note: build_simple_rel recurses internally to build
+ * RELOPT_BASEREL. (Note: build_simple_rel recurses internally to build
* "other rel" RelOptInfos for the members of any appendrels we find here.)
*/
void
@@ -181,7 +181,7 @@ add_vars_to_targetlist(PlannerInfo *root, List *vars, Relids where_needed)
* deconstruct_jointree
* Recursively scan the query's join tree for WHERE and JOIN/ON qual
* clauses, and add these to the appropriate restrictinfo and joininfo
- * lists belonging to base RelOptInfos. Also, add OuterJoinInfo nodes
+ * lists belonging to base RelOptInfos. Also, add OuterJoinInfo nodes
* to root->oj_info_list for any outer joins appearing in the query tree.
* Return a "joinlist" data structure showing the join order decisions
* that need to be made by make_one_rel().
@@ -198,9 +198,9 @@ add_vars_to_targetlist(PlannerInfo *root, List *vars, Relids where_needed)
* be evaluated at the lowest level where all the variables it mentions are
* available. However, we cannot push a qual down into the nullable side(s)
* of an outer join since the qual might eliminate matching rows and cause a
- * NULL row to be incorrectly emitted by the join. Therefore, we artificially
+ * NULL row to be incorrectly emitted by the join. Therefore, we artificially
* OR the minimum-relids of such an outer join into the required_relids of
- * clauses appearing above it. This forces those clauses to be delayed until
+ * clauses appearing above it. This forces those clauses to be delayed until
* application of the outer join (or maybe even higher in the join tree).
*/
List *
@@ -258,20 +258,19 @@ deconstruct_recurse(PlannerInfo *root, Node *jtnode, bool below_outer_join,
ListCell *l;
/*
- * First, recurse to handle child joins. We collapse subproblems
- * into a single joinlist whenever the resulting joinlist wouldn't
- * exceed from_collapse_limit members. Also, always collapse
- * one-element subproblems, since that won't lengthen the joinlist
- * anyway.
+ * First, recurse to handle child joins. We collapse subproblems into
+ * a single joinlist whenever the resulting joinlist wouldn't exceed
+ * from_collapse_limit members. Also, always collapse one-element
+ * subproblems, since that won't lengthen the joinlist anyway.
*/
*qualscope = NULL;
joinlist = NIL;
remaining = list_length(f->fromlist);
foreach(l, f->fromlist)
{
- Relids sub_qualscope;
- List *sub_joinlist;
- int sub_members;
+ Relids sub_qualscope;
+ List *sub_joinlist;
+ int sub_members;
sub_joinlist = deconstruct_recurse(root, lfirst(l),
below_outer_join,
@@ -407,7 +406,8 @@ deconstruct_recurse(PlannerInfo *root, Node *jtnode, bool below_outer_join,
(list_length(leftjoinlist) + list_length(rightjoinlist) <=
join_collapse_limit))
joinlist = list_concat(leftjoinlist, rightjoinlist);
- else /* force the join order at this node */
+ else
+ /* force the join order at this node */
joinlist = list_make1(list_make2(leftjoinlist, rightjoinlist));
}
else
@@ -454,9 +454,9 @@ make_outerjoininfo(PlannerInfo *root,
* any nullable rel is FOR UPDATE/SHARE.
*
* You might be wondering why this test isn't made far upstream in the
- * parser. It's because the parser hasn't got enough info --- consider
- * FOR UPDATE applied to a view. Only after rewriting and flattening
- * do we know whether the view contains an outer join.
+ * parser. It's because the parser hasn't got enough info --- consider
+ * FOR UPDATE applied to a view. Only after rewriting and flattening do
+ * we know whether the view contains an outer join.
*/
foreach(l, root->parse->rowMarks)
{
@@ -475,7 +475,7 @@ make_outerjoininfo(PlannerInfo *root,
{
ojinfo->min_lefthand = left_rels;
ojinfo->min_righthand = right_rels;
- ojinfo->lhs_strict = false; /* don't care about this */
+ ojinfo->lhs_strict = false; /* don't care about this */
return ojinfo;
}
@@ -494,19 +494,19 @@ make_outerjoininfo(PlannerInfo *root,
ojinfo->lhs_strict = bms_overlap(strict_relids, left_rels);
/*
- * Required LHS is basically the LHS rels mentioned in the clause...
- * but if there aren't any, punt and make it the full LHS, to avoid
- * having an empty min_lefthand which will confuse later processing.
- * (We don't try to be smart about such cases, just correct.)
- * We may have to add more rels based on lower outer joins; see below.
+ * Required LHS is basically the LHS rels mentioned in the clause... but
+ * if there aren't any, punt and make it the full LHS, to avoid having an
+ * empty min_lefthand which will confuse later processing. (We don't try
+ * to be smart about such cases, just correct.) We may have to add more
+ * rels based on lower outer joins; see below.
*/
ojinfo->min_lefthand = bms_intersect(clause_relids, left_rels);
if (bms_is_empty(ojinfo->min_lefthand))
ojinfo->min_lefthand = bms_copy(left_rels);
/*
- * Required RHS is normally the full set of RHS rels. Sometimes we
- * can exclude some, see below.
+ * Required RHS is normally the full set of RHS rels. Sometimes we can
+ * exclude some, see below.
*/
ojinfo->min_righthand = bms_copy(right_rels);
@@ -532,6 +532,7 @@ make_outerjoininfo(PlannerInfo *root,
ojinfo->min_lefthand = bms_add_members(ojinfo->min_lefthand,
otherinfo->min_righthand);
}
+
/*
* 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
@@ -630,23 +631,23 @@ distribute_qual_to_rels(PlannerInfo *root, Node *clause,
* If the clause is an outer-join clause, we must force it to the OJ's
* semantic level to preserve semantics.
*
- * Otherwise, when the clause contains volatile functions, we force it
- * to be evaluated at its original syntactic level. This preserves the
+ * Otherwise, when the clause contains volatile functions, we force it to
+ * be evaluated at its original syntactic level. This preserves the
* expected semantics.
*
- * When the clause contains no volatile functions either, it is actually
- * a pseudoconstant clause that will not change value during any one
- * execution of the plan, and hence can be used as a one-time qual in
- * a gating Result plan node. We put such a clause into the regular
+ * When the clause contains no volatile functions either, it is actually a
+ * pseudoconstant clause that will not change value during any one
+ * execution of the plan, and hence can be used as a one-time qual in a
+ * gating Result plan node. We put such a clause into the regular
* RestrictInfo lists for the moment, but eventually createplan.c will
* pull it out and make a gating Result node immediately above whatever
- * plan node the pseudoconstant clause is assigned to. It's usually
- * best to put a gating node as high in the plan tree as possible.
- * If we are not below an outer join, we can actually push the
- * pseudoconstant qual all the way to the top of the tree. If we are
- * below an outer join, we leave the qual at its original syntactic level
- * (we could push it up to just below the outer join, but that seems more
- * complex than it's worth).
+ * plan node the pseudoconstant clause is assigned to. It's usually best
+ * to put a gating node as high in the plan tree as possible. If we are
+ * not below an outer join, we can actually push the pseudoconstant qual
+ * all the way to the top of the tree. If we are below an outer join, we
+ * leave the qual at its original syntactic level (we could push it up to
+ * just below the outer join, but that seems more complex than it's
+ * worth).
*/
if (bms_is_empty(relids))
{
@@ -793,8 +794,8 @@ distribute_qual_to_rels(PlannerInfo *root, Node *clause,
* Mark the qual as "pushed down" if it can be applied at a level below
* its original syntactic level. This allows us to distinguish original
* JOIN/ON quals from higher-level quals pushed down to the same joinrel.
- * A qual originating from WHERE is always considered "pushed down".
- * Note that for an outer-join qual, we have to compare to ojscope not
+ * A qual originating from WHERE is always considered "pushed down". Note
+ * that for an outer-join qual, we have to compare to ojscope not
* qualscope.
*/
if (!is_pushed_down)
diff --git a/src/backend/optimizer/plan/planagg.c b/src/backend/optimizer/plan/planagg.c
index 2baf8e391d..e64340ed21 100644
--- a/src/backend/optimizer/plan/planagg.c
+++ b/src/backend/optimizer/plan/planagg.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/plan/planagg.c,v 1.21 2006/08/12 02:52:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/plan/planagg.c,v 1.22 2006/10/04 00:29:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -217,7 +217,7 @@ find_minmax_aggs_walker(Node *node, List **context)
{
Aggref *aggref = (Aggref *) node;
Oid aggsortop;
- Expr *curTarget;
+ Expr *curTarget;
MinMaxAggInfo *info;
ListCell *l;
@@ -464,7 +464,7 @@ make_agg_subplan(PlannerInfo *root, MinMaxAggInfo *info)
subparse->limitOffset = NULL;
subparse->limitCount = (Node *) makeConst(INT8OID, sizeof(int64),
Int64GetDatum(1),
- false, false /* not by val */);
+ false, false /* not by val */ );
/*
* Generate the plan for the subquery. We already have a Path for the
@@ -478,9 +478,9 @@ make_agg_subplan(PlannerInfo *root, MinMaxAggInfo *info)
* in our cost estimates. But that looks painful, and in most cases the
* fraction of NULLs isn't high enough to change the decision.
*
- * The NOT NULL qual has to go on the actual indexscan; create_plan
- * might have stuck a gating Result atop that, if there were any
- * pseudoconstant quals.
+ * The NOT NULL qual has to go on the actual indexscan; create_plan might
+ * have stuck a gating Result atop that, if there were any pseudoconstant
+ * quals.
*/
plan = create_plan(&subroot, (Path *) info->path);
diff --git a/src/backend/optimizer/plan/planmain.c b/src/backend/optimizer/plan/planmain.c
index ae44e2bc35..e01379e8e3 100644
--- a/src/backend/optimizer/plan/planmain.c
+++ b/src/backend/optimizer/plan/planmain.c
@@ -14,7 +14,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/plan/planmain.c,v 1.96 2006/09/19 22:49:52 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/plan/planmain.c,v 1.97 2006/10/04 00:29:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -126,8 +126,8 @@ query_planner(PlannerInfo *root, List *tlist, double tuple_fraction,
/*
* Construct RelOptInfo nodes for all base relations in query, and
* indirectly for all appendrel member relations ("other rels"). This
- * will give us a RelOptInfo for every "simple" (non-join) rel involved
- * in the query.
+ * will give us a RelOptInfo for every "simple" (non-join) rel involved in
+ * the query.
*
* Note: the reason we find the rels by searching the jointree and
* appendrel list, rather than just scanning the rangetable, is that the
@@ -137,11 +137,11 @@ query_planner(PlannerInfo *root, List *tlist, double tuple_fraction,
add_base_rels_to_query(root, (Node *) parse->jointree);
/*
- * We should now have size estimates for every actual table involved
- * in the query, so we can compute total_table_pages. Note that
- * appendrels are not double-counted here, even though we don't bother
- * to distinguish RelOptInfos for appendrel parents, because the parents
- * will still have size zero.
+ * We should now have size estimates for every actual table involved in
+ * the query, so we can compute total_table_pages. Note that appendrels
+ * are not double-counted here, even though we don't bother to distinguish
+ * RelOptInfos for appendrel parents, because the parents will still have
+ * size zero.
*
* XXX if a table is self-joined, we will count it once per appearance,
* which perhaps is the wrong thing ... but that's not completely clear,
@@ -155,7 +155,7 @@ query_planner(PlannerInfo *root, List *tlist, double tuple_fraction,
if (brel == NULL)
continue;
- Assert(brel->relid == rti); /* sanity check on array */
+ Assert(brel->relid == rti); /* sanity check on array */
total_pages += (double) brel->pages;
}
@@ -165,8 +165,8 @@ query_planner(PlannerInfo *root, List *tlist, double tuple_fraction,
* 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 lists of equijoined keys for pathkey construction, and
- * form a target joinlist for make_one_rel() to work from.
+ * also build lists of equijoined keys for pathkey construction, 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
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index f8eb95baf4..da18bc5a6f 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/plan/planner.c,v 1.208 2006/08/12 02:52:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/plan/planner.c,v 1.209 2006/10/04 00:29:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -427,9 +427,9 @@ preprocess_expression(PlannerInfo *root, Node *expr, int kind)
/*
* If the query has any join RTEs, replace join alias variables with
* base-relation variables. We must do this before sublink processing,
- * else sublinks expanded out from join aliases wouldn't get processed.
- * We can skip it in VALUES lists, however, since they can't contain
- * any Vars at all.
+ * else sublinks expanded out from join aliases wouldn't get processed. We
+ * can skip it in VALUES lists, however, since they can't contain any Vars
+ * at all.
*/
if (root->hasJoinRTEs && kind != EXPRKIND_VALUES)
expr = flatten_join_alias_vars(root, expr);
@@ -450,8 +450,8 @@ preprocess_expression(PlannerInfo *root, Node *expr, int kind)
* still must do it for quals (to get AND/OR flatness); and if we are in a
* subquery we should not assume it will be done only once.
*
- * For VALUES lists we never do this at all, again on the grounds that
- * we should optimize for one-time evaluation.
+ * For VALUES lists we never do this at all, again on the grounds that we
+ * should optimize for one-time evaluation.
*/
if (kind != EXPRKIND_VALUES &&
(root->parse->jointree->fromlist != NIL ||
@@ -593,8 +593,8 @@ inheritance_planner(PlannerInfo *root)
subplan = grouping_planner(&subroot, 0.0 /* retrieve all tuples */ );
/*
- * If this child rel was excluded by constraint exclusion, exclude
- * it from the plan.
+ * If this child rel was excluded by constraint exclusion, exclude it
+ * from the plan.
*/
if (is_dummy_plan(subplan))
continue;
@@ -1098,12 +1098,12 @@ grouping_planner(PlannerInfo *root, double tuple_fraction)
/*
* Deal with the RETURNING clause if any. It's convenient to pass the
- * returningList through setrefs.c now rather than at top level (if
- * we waited, handling inherited UPDATE/DELETE would be much harder).
+ * returningList through setrefs.c now rather than at top level (if we
+ * waited, handling inherited UPDATE/DELETE would be much harder).
*/
if (parse->returningList)
{
- List *rlist;
+ List *rlist;
rlist = set_returning_clause_references(parse->returningList,
result_plan,
@@ -1132,11 +1132,11 @@ is_dummy_plan(Plan *plan)
{
if (IsA(plan, Result))
{
- List *rcqual = (List *) ((Result *) plan)->resconstantqual;
+ List *rcqual = (List *) ((Result *) plan)->resconstantqual;
if (list_length(rcqual) == 1)
{
- Const *constqual = (Const *) linitial(rcqual);
+ Const *constqual = (Const *) linitial(rcqual);
if (constqual && IsA(constqual, Const))
{
diff --git a/src/backend/optimizer/plan/setrefs.c b/src/backend/optimizer/plan/setrefs.c
index 3f3a719941..298c8d1cff 100644
--- a/src/backend/optimizer/plan/setrefs.c
+++ b/src/backend/optimizer/plan/setrefs.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/plan/setrefs.c,v 1.125 2006/08/28 14:32:41 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/plan/setrefs.c,v 1.126 2006/10/04 00:29:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -453,13 +453,13 @@ trivial_subqueryscan(SubqueryScan *plan)
return false; /* tlist doesn't match junk status */
/*
- * We accept either a Var referencing the corresponding element of
- * the subplan tlist, or a Const equaling the subplan element.
- * See generate_setop_tlist() for motivation.
+ * We accept either a Var referencing the corresponding element of the
+ * subplan tlist, or a Const equaling the subplan element. See
+ * generate_setop_tlist() for motivation.
*/
if (ptle->expr && IsA(ptle->expr, Var))
{
- Var *var = (Var *) ptle->expr;
+ Var *var = (Var *) ptle->expr;
Assert(var->varno == plan->scan.scanrelid);
Assert(var->varlevelsup == 0);
@@ -793,7 +793,7 @@ set_join_references(Join *join)
*
* To handle bitmap-scan plan trees, we have to be able to recurse down
* to the bottom BitmapIndexScan nodes; likewise, appendrel indexscans
- * require recursing through Append nodes. This is split out as a separate
+ * require recursing through Append nodes. This is split out as a separate
* function so that it can recurse.
*/
static void
@@ -1339,7 +1339,7 @@ replace_vars_with_subplan_refs_mutator(Node *node,
* adjust any Vars that refer to other tables to reference junk tlist
* entries in the top plan's targetlist. Vars referencing the result
* table should be left alone, however (the executor will evaluate them
- * using the actual heap tuple, after firing triggers if any). In the
+ * using the actual heap tuple, after firing triggers if any). In the
* adjusted RETURNING list, result-table Vars will still have their
* original varno, but Vars for other rels will have varno OUTER.
*
@@ -1359,8 +1359,8 @@ set_returning_clause_references(List *rlist,
/*
* We can perform the desired Var fixup by abusing the join_references
- * machinery that normally handles inner indexscan fixup. We search
- * the top plan's targetlist for Vars of non-result relations, and use
+ * machinery that normally handles inner indexscan fixup. We search the
+ * top plan's targetlist for Vars of non-result relations, and use
* join_references to convert RETURNING Vars into references to those
* tlist entries, while leaving result-rel Vars as-is.
*/
diff --git a/src/backend/optimizer/plan/subselect.c b/src/backend/optimizer/plan/subselect.c
index 95e560478d..94c97a55aa 100644
--- a/src/backend/optimizer/plan/subselect.c
+++ b/src/backend/optimizer/plan/subselect.c
@@ -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.111 2006/08/02 01:59:46 joe Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/plan/subselect.c,v 1.112 2006/10/04 00:29:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -85,10 +85,10 @@ typedef struct finalize_primnode_context
static Node *convert_testexpr(Node *testexpr,
- int rtindex,
- List **righthandIds);
+ int rtindex,
+ List **righthandIds);
static Node *convert_testexpr_mutator(Node *node,
- convert_testexpr_context *context);
+ convert_testexpr_context *context);
static bool subplan_is_hashable(SubLink *slink, SubPlan *node);
static bool hash_ok_operator(OpExpr *expr);
static Node *replace_correlation_vars_mutator(Node *node, void *context);
@@ -498,13 +498,13 @@ convert_testexpr_mutator(Node *node,
return NULL;
if (IsA(node, Param))
{
- Param *param = (Param *) node;
+ Param *param = (Param *) node;
if (param->paramkind == PARAM_SUBLINK)
{
/*
- * We expect to encounter the Params in column-number sequence.
- * We could handle non-sequential order if necessary, but for now
+ * We expect to encounter the Params in column-number sequence. We
+ * could handle non-sequential order if necessary, but for now
* there's no need. (This is also a useful cross-check that we
* aren't finding any unexpected Params.)
*/
@@ -514,13 +514,14 @@ convert_testexpr_mutator(Node *node,
if (context->rtindex)
{
/* Make the Var node representing the subplan's result */
- Var *newvar;
+ Var *newvar;
newvar = makeVar(context->rtindex,
param->paramid,
param->paramtype,
-1,
0);
+
/*
* Copy it for caller. NB: we need a copy to avoid having
* doubly-linked substructure in the modified parse tree.
@@ -584,10 +585,10 @@ subplan_is_hashable(SubLink *slink, SubPlan *node)
return false;
/*
- * The estimated size of the subquery result must fit in work_mem.
- * (Note: we use sizeof(HeapTupleHeaderData) here even though the tuples
- * will actually be stored as MinimalTuples; this provides some fudge
- * factor for hashtable overhead.)
+ * The estimated size of the subquery result must fit in work_mem. (Note:
+ * we use sizeof(HeapTupleHeaderData) here even though the tuples will
+ * actually be stored as MinimalTuples; this provides some fudge factor
+ * for hashtable overhead.)
*/
subquery_size = node->plan->plan_rows *
(MAXALIGN(node->plan->plan_width) + MAXALIGN(sizeof(HeapTupleHeaderData)));
@@ -616,7 +617,7 @@ subplan_is_hashable(SubLink *slink, SubPlan *node)
{
foreach(l, ((BoolExpr *) slink->testexpr)->args)
{
- Node *andarg = (Node *) lfirst(l);
+ Node *andarg = (Node *) lfirst(l);
if (!IsA(andarg, OpExpr))
return false; /* probably can't happen */
@@ -686,8 +687,8 @@ convert_IN_to_join(PlannerInfo *root, SubLink *sublink)
return NULL;
if (sublink->testexpr && IsA(sublink->testexpr, OpExpr))
{
- List *opclasses;
- List *opstrats;
+ List *opclasses;
+ List *opstrats;
get_op_btree_interpretation(((OpExpr *) sublink->testexpr)->opno,
&opclasses, &opstrats);
diff --git a/src/backend/optimizer/prep/prepjointree.c b/src/backend/optimizer/prep/prepjointree.c
index bea7c03a73..eedd1a8ff0 100644
--- a/src/backend/optimizer/prep/prepjointree.c
+++ b/src/backend/optimizer/prep/prepjointree.c
@@ -15,7 +15,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/prep/prepjointree.c,v 1.43 2006/08/19 02:48:53 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/prep/prepjointree.c,v 1.44 2006/10/04 00:29:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -40,20 +40,20 @@ typedef struct reduce_outer_joins_state
} reduce_outer_joins_state;
static Node *pull_up_simple_subquery(PlannerInfo *root, Node *jtnode,
- RangeTblEntry *rte,
- bool below_outer_join,
- bool append_rel_member);
+ RangeTblEntry *rte,
+ bool below_outer_join,
+ bool append_rel_member);
static Node *pull_up_simple_union_all(PlannerInfo *root, Node *jtnode,
- RangeTblEntry *rte);
+ RangeTblEntry *rte);
static void pull_up_union_leaf_queries(Node *setOp, PlannerInfo *root,
- int parentRTindex, Query *setOpQuery);
+ int parentRTindex, Query *setOpQuery);
static void make_setop_translation_lists(Query *query,
Index newvarno,
List **col_mappings, List **translated_vars);
static bool is_simple_subquery(Query *subquery);
static bool is_simple_union_all(Query *subquery);
static bool is_simple_union_all_recurse(Node *setOp, Query *setOpQuery,
- List *colTypes);
+ List *colTypes);
static bool has_nullable_targetlist(Query *subquery);
static bool is_safe_append_member(Query *subquery);
static void resolvenew_in_jointree(Node *jtnode, int varno,
@@ -66,7 +66,7 @@ static void reduce_outer_joins_pass2(Node *jtnode,
static void fix_in_clause_relids(List *in_info_list, int varno,
Relids subrelids);
static void fix_append_rel_relids(List *append_rel_list, int varno,
- Relids subrelids);
+ Relids subrelids);
static Node *find_jointree_node_for_rel(Node *jtnode, int relid);
@@ -136,7 +136,7 @@ pull_up_IN_clauses(PlannerInfo *root, Node *node)
* side of an outer join. This restricts what we can do.
*
* append_rel_member is true if we are looking at a member subquery of
- * an append relation. This puts some different restrictions on what
+ * an append relation. This puts some different restrictions on what
* we can do.
*
* A tricky aspect of this code is that if we pull up a subquery we have
@@ -173,8 +173,8 @@ pull_up_subqueries(PlannerInfo *root, Node *jtnode,
* variables evaluated at the right place in the modified plan tree.
* Fix it someday.
*
- * If we are looking at an append-relation member, we can't pull
- * it up unless is_safe_append_member says so.
+ * If we are looking at an append-relation member, we can't pull it up
+ * unless is_safe_append_member says so.
*/
if (rte->rtekind == RTE_SUBQUERY &&
is_simple_subquery(rte->subquery) &&
@@ -186,14 +186,15 @@ pull_up_subqueries(PlannerInfo *root, Node *jtnode,
/*
* Alternatively, is it a simple UNION ALL subquery? If so, flatten
- * into an "append relation". We can do this regardless of nullability
- * considerations since this transformation does not result in
- * propagating non-Var expressions into upper levels of the query.
+ * into an "append relation". We can do this regardless of
+ * nullability considerations since this transformation does not
+ * result in propagating non-Var expressions into upper levels of the
+ * query.
*
* It's also safe to do this regardless of whether this query is
- * itself an appendrel member. (If you're thinking we should try
- * to flatten the two levels of appendrel together, you're right;
- * but we handle that in set_append_rel_pathlist, not here.)
+ * itself an appendrel member. (If you're thinking we should try to
+ * flatten the two levels of appendrel together, you're right; but we
+ * handle that in set_append_rel_pathlist, not here.)
*/
if (rte->rtekind == RTE_SUBQUERY &&
is_simple_union_all(rte->subquery))
@@ -258,7 +259,7 @@ pull_up_subqueries(PlannerInfo *root, Node *jtnode,
* Attempt to pull up a single simple subquery.
*
* jtnode is a RangeTblRef that has been tentatively identified as a simple
- * subquery by pull_up_subqueries. We return the replacement jointree node,
+ * subquery by pull_up_subqueries. We return the replacement jointree node,
* or jtnode itself if we determine that the subquery can't be pulled up after
* all.
*/
@@ -275,11 +276,10 @@ pull_up_simple_subquery(PlannerInfo *root, Node *jtnode, RangeTblEntry *rte,
ListCell *rt;
/*
- * Need a modifiable copy of the subquery to hack on. Even if we
- * didn't sometimes choose not to pull up below, we must do this
- * to avoid problems if the same subquery is referenced from
- * multiple jointree items (which can't happen normally, but might
- * after rule rewriting).
+ * Need a modifiable copy of the subquery to hack on. Even if we didn't
+ * sometimes choose not to pull up below, we must do this to avoid
+ * problems if the same subquery is referenced from multiple jointree
+ * items (which can't happen normally, but might after rule rewriting).
*/
subquery = copyObject(rte->subquery);
@@ -287,8 +287,8 @@ pull_up_simple_subquery(PlannerInfo *root, Node *jtnode, RangeTblEntry *rte,
* Create a PlannerInfo data structure for this subquery.
*
* NOTE: the next few steps should match the first processing in
- * subquery_planner(). Can we refactor to avoid code duplication,
- * or would that just make things uglier?
+ * subquery_planner(). Can we refactor to avoid code duplication, or
+ * would that just make things uglier?
*/
subroot = makeNode(PlannerInfo);
subroot->parse = subquery;
@@ -296,12 +296,12 @@ pull_up_simple_subquery(PlannerInfo *root, Node *jtnode, RangeTblEntry *rte,
subroot->append_rel_list = NIL;
/*
- * Pull up any IN clauses within the subquery's WHERE, so that we
- * don't leave unoptimized INs behind.
+ * Pull up any IN clauses within the subquery's WHERE, so that we don't
+ * leave unoptimized INs behind.
*/
if (subquery->hasSubLinks)
subquery->jointree->quals = pull_up_IN_clauses(subroot,
- subquery->jointree->quals);
+ subquery->jointree->quals);
/*
* Recursively pull up the subquery's subqueries, so that
@@ -310,19 +310,19 @@ pull_up_simple_subquery(PlannerInfo *root, Node *jtnode, RangeTblEntry *rte,
*
* Note: below_outer_join = false is correct here even if we are within an
* outer join in the upper query; the lower query starts with a clean
- * slate for outer-join semantics. Likewise, we say we aren't handling
- * an appendrel member.
+ * slate for outer-join semantics. Likewise, we say we aren't handling an
+ * appendrel member.
*/
subquery->jointree = (FromExpr *)
pull_up_subqueries(subroot, (Node *) subquery->jointree, false, false);
/*
- * Now we must recheck whether the subquery is still simple enough
- * to pull up. If not, abandon processing it.
+ * Now we must recheck whether the subquery is still simple enough to pull
+ * up. If not, abandon processing it.
*
- * We don't really need to recheck all the conditions involved,
- * but it's easier just to keep this "if" looking the same as the
- * one in pull_up_subqueries.
+ * We don't really need to recheck all the conditions involved, but it's
+ * easier just to keep this "if" looking the same as the one in
+ * pull_up_subqueries.
*/
if (is_simple_subquery(subquery) &&
(!below_outer_join || has_nullable_targetlist(subquery)) &&
@@ -335,18 +335,18 @@ pull_up_simple_subquery(PlannerInfo *root, Node *jtnode, RangeTblEntry *rte,
/*
* Give up, return unmodified RangeTblRef.
*
- * Note: The work we just did will be redone when the subquery
- * gets planned on its own. Perhaps we could avoid that by
- * storing the modified subquery back into the rangetable, but
- * I'm not gonna risk it now.
+ * Note: The work we just did will be redone when the subquery gets
+ * planned on its own. Perhaps we could avoid that by storing the
+ * modified subquery back into the rangetable, but I'm not gonna risk
+ * it now.
*/
return jtnode;
}
/*
- * Adjust level-0 varnos in subquery so that we can append its
- * rangetable to upper query's. We have to fix the subquery's
- * in_info_list and append_rel_list, as well.
+ * Adjust level-0 varnos in subquery so that we can append its rangetable
+ * to upper query's. We have to fix the subquery's in_info_list and
+ * append_rel_list, as well.
*/
rtoffset = list_length(parse->rtable);
OffsetVarNodes((Node *) subquery, rtoffset, 0);
@@ -354,18 +354,18 @@ pull_up_simple_subquery(PlannerInfo *root, Node *jtnode, RangeTblEntry *rte,
OffsetVarNodes((Node *) subroot->append_rel_list, rtoffset, 0);
/*
- * Upper-level vars in subquery are now one level closer to their
- * parent than before.
+ * Upper-level vars in subquery are now one level closer to their parent
+ * than before.
*/
IncrementVarSublevelsUp((Node *) subquery, -1, 1);
IncrementVarSublevelsUp((Node *) subroot->in_info_list, -1, 1);
IncrementVarSublevelsUp((Node *) subroot->append_rel_list, -1, 1);
/*
- * Replace all of the top query's references to the subquery's
- * outputs with copies of the adjusted subtlist items, being
- * careful not to replace any of the jointree structure. (This'd
- * be a lot cleaner if we could use query_tree_mutator.)
+ * Replace all of the top query's references to the subquery's outputs
+ * with copies of the adjusted subtlist items, being careful not to
+ * replace any of the jointree structure. (This'd be a lot cleaner if we
+ * could use query_tree_mutator.)
*/
subtlist = subquery->targetList;
parse->targetList = (List *)
@@ -404,27 +404,27 @@ pull_up_simple_subquery(PlannerInfo *root, Node *jtnode, RangeTblEntry *rte,
}
/*
- * Now append the adjusted rtable entries to upper query. (We hold
- * off until after fixing the upper rtable entries; no point in
- * running that code on the subquery ones too.)
+ * Now append the adjusted rtable entries to upper query. (We hold off
+ * until after fixing the upper rtable entries; no point in running that
+ * code on the subquery ones too.)
*/
parse->rtable = list_concat(parse->rtable, subquery->rtable);
/*
- * Pull up any FOR UPDATE/SHARE markers, too. (OffsetVarNodes
- * already adjusted the marker rtindexes, so just concat the lists.)
+ * Pull up any FOR UPDATE/SHARE markers, too. (OffsetVarNodes already
+ * adjusted the marker rtindexes, so just concat the lists.)
*/
parse->rowMarks = list_concat(parse->rowMarks, subquery->rowMarks);
/*
- * We also have to fix the relid sets of any parent InClauseInfo
- * nodes. (This could perhaps be done by ResolveNew, but it would
- * clutter that routine's API unreasonably.)
+ * We also have to fix the relid sets of any parent InClauseInfo nodes.
+ * (This could perhaps be done by ResolveNew, but it would clutter that
+ * routine's API unreasonably.)
*
- * Likewise, relids appearing in AppendRelInfo nodes have to be fixed
- * (but we took care of their translated_vars lists above). We already
- * checked that this won't require introducing multiple subrelids into
- * the single-slot AppendRelInfo structs.
+ * Likewise, relids appearing in AppendRelInfo nodes have to be fixed (but
+ * we took care of their translated_vars lists above). We already checked
+ * that this won't require introducing multiple subrelids into the
+ * single-slot AppendRelInfo structs.
*/
if (root->in_info_list || root->append_rel_list)
{
@@ -444,8 +444,8 @@ pull_up_simple_subquery(PlannerInfo *root, Node *jtnode, RangeTblEntry *rte,
subroot->append_rel_list);
/*
- * We don't have to do the equivalent bookkeeping for outer-join
- * info, because that hasn't been set up yet.
+ * We don't have to do the equivalent bookkeeping for outer-join info,
+ * because that hasn't been set up yet.
*/
Assert(root->oj_info_list == NIL);
Assert(subroot->oj_info_list == NIL);
@@ -457,8 +457,8 @@ pull_up_simple_subquery(PlannerInfo *root, Node *jtnode, RangeTblEntry *rte,
/* subquery won't be pulled up if it hasAggs, so no work there */
/*
- * Return the adjusted subquery jointree to replace the
- * RangeTblRef entry in parent's jointree.
+ * Return the adjusted subquery jointree to replace the RangeTblRef entry
+ * in parent's jointree.
*/
return (Node *) subquery->jointree;
}
@@ -468,7 +468,7 @@ pull_up_simple_subquery(PlannerInfo *root, Node *jtnode, RangeTblEntry *rte,
* Pull up a single simple UNION ALL subquery.
*
* jtnode is a RangeTblRef that has been identified as a simple UNION ALL
- * subquery by pull_up_subqueries. We pull up the leaf subqueries and
+ * subquery by pull_up_subqueries. We pull up the leaf subqueries and
* build an "append relation" for the union set. The result value is just
* jtnode, since we don't actually need to change the query jointree.
*/
@@ -524,9 +524,9 @@ pull_up_union_leaf_queries(Node *setOp, PlannerInfo *root, int parentRTindex,
/*
* Upper-level vars in subquery are now one level closer to their
- * parent than before. We don't have to worry about offsetting
- * varnos, though, because any such vars must refer to stuff above
- * the level of the query we are pulling into.
+ * parent than before. We don't have to worry about offsetting
+ * varnos, though, because any such vars must refer to stuff above the
+ * level of the query we are pulling into.
*/
IncrementVarSublevelsUp((Node *) subquery, -1, 1);
@@ -658,9 +658,9 @@ is_simple_subquery(Query *subquery)
/*
* Don't pull up a subquery that has any volatile functions in its
- * targetlist. Otherwise we might introduce multiple evaluations of
- * these functions, if they get copied to multiple places in the upper
- * query, leading to surprising results.
+ * targetlist. Otherwise we might introduce multiple evaluations of these
+ * functions, if they get copied to multiple places in the upper query,
+ * leading to surprising results.
*/
if (contain_volatile_functions((Node *) subquery->targetList))
return false;
@@ -799,16 +799,15 @@ is_safe_append_member(Query *subquery)
ListCell *l;
/*
- * It's only safe to pull up the child if its jointree contains
- * exactly one RTE, else the AppendRelInfo data structure breaks.
- * The one base RTE could be buried in several levels of FromExpr,
- * however.
+ * It's only safe to pull up the child if its jointree contains exactly
+ * one RTE, else the AppendRelInfo data structure breaks. The one base RTE
+ * could be buried in several levels of FromExpr, however.
*
- * Also, the child can't have any WHERE quals because there's no
- * place to put them in an appendrel. (This is a bit annoying...)
- * If we didn't need to check this, we'd just test whether
- * get_relids_in_jointree() yields a singleton set, to be more
- * consistent with the coding of fix_append_rel_relids().
+ * Also, the child can't have any WHERE quals because there's no place to
+ * put them in an appendrel. (This is a bit annoying...) If we didn't
+ * need to check this, we'd just test whether get_relids_in_jointree()
+ * yields a singleton set, to be more consistent with the coding of
+ * fix_append_rel_relids().
*/
jtnode = subquery->jointree;
while (IsA(jtnode, FromExpr))
@@ -825,10 +824,10 @@ is_safe_append_member(Query *subquery)
/*
* XXX For the moment we also have to insist that the subquery's tlist
* includes only simple Vars. This is pretty annoying, but fixing it
- * seems to require nontrivial changes --- mainly because joinrel
- * tlists are presently assumed to contain only Vars. Perhaps a
- * pseudo-variable mechanism similar to the one speculated about
- * in pull_up_subqueries' comments would help? FIXME someday.
+ * seems to require nontrivial changes --- mainly because joinrel tlists
+ * are presently assumed to contain only Vars. Perhaps a pseudo-variable
+ * mechanism similar to the one speculated about in pull_up_subqueries'
+ * comments would help? FIXME someday.
*/
foreach(l, subquery->targetList)
{
@@ -1190,9 +1189,9 @@ fix_append_rel_relids(List *append_rel_list, int varno, Relids subrelids)
/*
* We only want to extract the member relid once, but we mustn't fail
- * immediately if there are multiple members; it could be that none of
- * the AppendRelInfo nodes refer to it. So compute it on first use.
- * Note that bms_singleton_member will complain if set is not singleton.
+ * immediately if there are multiple members; it could be that none of the
+ * AppendRelInfo nodes refer to it. So compute it on first use. Note that
+ * bms_singleton_member will complain if set is not singleton.
*/
foreach(l, append_rel_list)
{
diff --git a/src/backend/optimizer/prep/prepqual.c b/src/backend/optimizer/prep/prepqual.c
index b0d2e7d18c..22e1dd07f2 100644
--- a/src/backend/optimizer/prep/prepqual.c
+++ b/src/backend/optimizer/prep/prepqual.c
@@ -25,7 +25,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/prep/prepqual.c,v 1.55 2006/07/14 14:52:21 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/prep/prepqual.c,v 1.56 2006/10/04 00:29:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -212,7 +212,7 @@ push_nots(Expr *qual)
if (negator)
{
- OpExpr *newopexpr = makeNode(OpExpr);
+ OpExpr *newopexpr = makeNode(OpExpr);
newopexpr->opno = negator;
newopexpr->opfuncid = InvalidOid;
@@ -228,9 +228,9 @@ push_nots(Expr *qual)
{
/*
* Negate a ScalarArrayOpExpr if there is a negator for its operator;
- * for example x = ANY (list) becomes x <> ALL (list).
- * Otherwise, retain the clause as it is (the NOT can't be pushed down
- * any farther).
+ * for example x = ANY (list) becomes x <> ALL (list). Otherwise,
+ * retain the clause as it is (the NOT can't be pushed down any
+ * farther).
*/
ScalarArrayOpExpr *saopexpr = (ScalarArrayOpExpr *) qual;
Oid negator = get_negator(saopexpr->opno);
diff --git a/src/backend/optimizer/prep/preptlist.c b/src/backend/optimizer/prep/preptlist.c
index c4bbd9d2ee..4d44242169 100644
--- a/src/backend/optimizer/prep/preptlist.c
+++ b/src/backend/optimizer/prep/preptlist.c
@@ -16,7 +16,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/prep/preptlist.c,v 1.83 2006/08/12 02:52:05 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/prep/preptlist.c,v 1.84 2006/10/04 00:29:55 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -157,13 +157,13 @@ preprocess_targetlist(PlannerInfo *root, List *tlist)
/*
* If the query has a RETURNING list, add resjunk entries for any Vars
* used in RETURNING that belong to other relations. We need to do this
- * to make these Vars available for the RETURNING calculation. Vars
- * that belong to the result rel don't need to be added, because they
- * will be made to refer to the actual heap tuple.
+ * to make these Vars available for the RETURNING calculation. Vars that
+ * belong to the result rel don't need to be added, because they will be
+ * made to refer to the actual heap tuple.
*/
if (parse->returningList && list_length(parse->rtable) > 1)
{
- List *vars;
+ List *vars;
ListCell *l;
vars = pull_var_clause((Node *) parse->returningList, false);
diff --git a/src/backend/optimizer/prep/prepunion.c b/src/backend/optimizer/prep/prepunion.c
index 3bf7223199..44aebd9ed3 100644
--- a/src/backend/optimizer/prep/prepunion.c
+++ b/src/backend/optimizer/prep/prepunion.c
@@ -6,14 +6,14 @@
*
* There are two code paths in the planner for set-operation queries.
* If a subquery consists entirely of simple UNION ALL operations, it
- * is converted into an "append relation". Otherwise, it is handled
+ * is converted into an "append relation". Otherwise, it is handled
* by the general code in this module (plan_set_operations and its
* subroutines). There is some support code here for the append-relation
* case, but most of the heavy lifting for that is done elsewhere,
* notably in prepjointree.c and allpaths.c.
*
* There is also some code here to support planning of queries that use
- * inheritance (SELECT FROM foo*). Inheritance trees are converted into
+ * inheritance (SELECT FROM foo*). Inheritance trees are converted into
* append relations, and thenceforth share code with the UNION ALL case.
*
*
@@ -22,7 +22,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/prep/prepunion.c,v 1.133 2006/08/10 02:36:28 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/prep/prepunion.c,v 1.134 2006/10/04 00:29:55 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -69,14 +69,14 @@ static List *generate_append_tlist(List *colTypes, bool flag,
List *input_plans,
List *refnames_tlist);
static void expand_inherited_rtentry(PlannerInfo *root, RangeTblEntry *rte,
- Index rti);
+ Index rti);
static void make_inh_translation_lists(Relation oldrelation,
- Relation newrelation,
- Index newvarno,
- List **col_mappings,
- List **translated_vars);
+ Relation newrelation,
+ Index newvarno,
+ List **col_mappings,
+ List **translated_vars);
static Node *adjust_appendrel_attrs_mutator(Node *node,
- AppendRelInfo *context);
+ AppendRelInfo *context);
static Relids adjust_relid_set(Relids relids, Index oldrelid, Index newrelid);
static List *adjust_inherited_tlist(List *tlist,
AppendRelInfo *context);
@@ -713,21 +713,21 @@ find_all_inheritors(Oid parentrel)
/*
* expand_inherited_tables
* Expand each rangetable entry that represents an inheritance set
- * into an "append relation". At the conclusion of this process,
+ * into an "append relation". At the conclusion of this process,
* the "inh" flag is set in all and only those RTEs that are append
* relation parents.
*/
void
expand_inherited_tables(PlannerInfo *root)
{
- Index nrtes;
- Index rti;
- ListCell *rl;
+ Index nrtes;
+ Index rti;
+ ListCell *rl;
/*
- * expand_inherited_rtentry may add RTEs to parse->rtable; there is
- * no need to scan them since they can't have inh=true. So just
- * scan as far as the original end of the rtable list.
+ * expand_inherited_rtentry may add RTEs to parse->rtable; there is no
+ * need to scan them since they can't have inh=true. So just scan as far
+ * as the original end of the rtable list.
*/
nrtes = list_length(root->parse->rtable);
rl = list_head(root->parse->rtable);
@@ -745,7 +745,7 @@ expand_inherited_tables(PlannerInfo *root)
* Check whether a rangetable entry represents an inheritance set.
* If so, add entries for all the child tables to the query's
* rangetable, and build AppendRelInfo nodes for all the child tables
- * and add them to root->append_rel_list. If not, clear the entry's
+ * and add them to root->append_rel_list. If not, clear the entry's
* "inh" flag to prevent later code from looking for AppendRelInfos.
*
* Note that the original RTE is considered to represent the whole
@@ -801,22 +801,22 @@ expand_inherited_rtentry(PlannerInfo *root, RangeTblEntry *rte, Index rti)
}
/*
- * Must open the parent relation to examine its tupdesc. We need not
- * lock it since the rewriter already obtained at least AccessShareLock
- * on each relation used in the query.
+ * Must open the parent relation to examine its tupdesc. We need not lock
+ * it since the rewriter already obtained at least AccessShareLock on each
+ * relation used in the query.
*/
oldrelation = heap_open(parentOID, NoLock);
/*
- * However, for each child relation we add to the query, we must obtain
- * an appropriate lock, because this will be the first use of those
- * relations in the parse/rewrite/plan pipeline.
+ * However, for each child relation we add to the query, we must obtain an
+ * appropriate lock, because this will be the first use of those relations
+ * in the parse/rewrite/plan pipeline.
*
* If the parent relation is the query's result relation, then we need
* RowExclusiveLock. Otherwise, check to see if the relation is accessed
* FOR UPDATE/SHARE or not. We can't just grab AccessShareLock because
* then the executor would be trying to upgrade the lock, leading to
- * possible deadlocks. (This code should match the parser and rewriter.)
+ * possible deadlocks. (This code should match the parser and rewriter.)
*/
if (rti == parse->resultRelation)
lockmode = RowExclusiveLock;
@@ -900,8 +900,8 @@ expand_inherited_rtentry(PlannerInfo *root, RangeTblEntry *rte, Index rti)
/*
* The executor will check the parent table's access permissions when it
- * examines the parent's added RTE entry. There's no need to check
- * twice, so turn off access check bits in the original RTE.
+ * examines the parent's added RTE entry. There's no need to check twice,
+ * so turn off access check bits in the original RTE.
*/
rte->requiredPerms = 0;
}
@@ -948,8 +948,8 @@ make_inh_translation_lists(Relation oldrelation, Relation newrelation,
atttypmod = att->atttypmod;
/*
- * When we are generating the "translation list" for the parent
- * table of an inheritance set, no need to search for matches.
+ * When we are generating the "translation list" for the parent table
+ * of an inheritance set, no need to search for matches.
*/
if (oldrelation == newrelation)
{
@@ -964,9 +964,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.
+ * There's no guarantee it'll have the same column position, because
+ * of cases like ALTER TABLE ADD COLUMN and multiple inheritance.
*/
for (new_attno = 0; new_attno < newnatts; new_attno++)
{
@@ -979,7 +978,7 @@ make_inh_translation_lists(Relation oldrelation, Relation newrelation,
if (atttypid != att->atttypid || atttypmod != att->atttypmod)
elog(ERROR, "attribute \"%s\" of relation \"%s\" does not match parent's type",
attname, RelationGetRelationName(newrelation));
-
+
numbers = lappend_int(numbers, new_attno + 1);
vars = lappend(vars, makeVar(newvarno,
(AttrNumber) (new_attno + 1),
@@ -1060,7 +1059,7 @@ adjust_appendrel_attrs_mutator(Node *node, AppendRelInfo *context)
var->varnoold = context->child_relid;
if (var->varattno > 0)
{
- Node *newnode;
+ Node *newnode;
if (var->varattno > list_length(context->translated_vars))
elog(ERROR, "attribute %d of relation \"%s\" does not exist",
@@ -1075,10 +1074,10 @@ adjust_appendrel_attrs_mutator(Node *node, AppendRelInfo *context)
else if (var->varattno == 0)
{
/*
- * Whole-row Var: if we are dealing with named rowtypes,
- * we can use a whole-row Var for the child table plus a
- * coercion step to convert the tuple layout to the parent's
- * rowtype. Otherwise we have to generate a RowExpr.
+ * Whole-row Var: if we are dealing with named rowtypes, we
+ * can use a whole-row Var for the child table plus a coercion
+ * step to convert the tuple layout to the parent's rowtype.
+ * Otherwise we have to generate a RowExpr.
*/
if (OidIsValid(context->child_reltype))
{
@@ -1217,9 +1216,9 @@ adjust_appendrel_attrs_mutator(Node *node, AppendRelInfo *context)
* BUT: although we don't need to recurse into subplans, we do need to
* make sure that they are copied, not just referenced as
* expression_tree_mutator will do by default. Otherwise we'll have the
- * same subplan node referenced from each arm of the finished APPEND
- * plan, which will cause trouble in the executor. This is a kluge that
- * should go away when we redesign querytrees.
+ * same subplan node referenced from each arm of the finished APPEND plan,
+ * which will cause trouble in the executor. This is a kluge that should
+ * go away when we redesign querytrees.
*/
if (is_subplan(node))
{
@@ -1267,7 +1266,7 @@ adjust_relid_set(Relids relids, Index oldrelid, Index newrelid)
*
* The relid sets are adjusted by substituting child_relid for parent_relid.
* (NOTE: oldrel is not necessarily the parent_relid relation!) We are also
- * careful to map attribute numbers within the array properly. User
+ * careful to map attribute numbers within the array properly. User
* attributes have to be mapped through col_mappings, but system attributes
* and whole-row references always have the same attno.
*
@@ -1353,7 +1352,7 @@ adjust_inherited_tlist(List *tlist, AppendRelInfo *context)
foreach(tl, tlist)
{
TargetEntry *tle = (TargetEntry *) lfirst(tl);
- int newattno;
+ int newattno;
if (tle->resjunk)
continue; /* ignore junk items */
diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c
index 99d3147aeb..c9d9512b2f 100644
--- a/src/backend/optimizer/util/clauses.c
+++ b/src/backend/optimizer/util/clauses.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/util/clauses.c,v 1.221 2006/09/28 20:51:41 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/util/clauses.c,v 1.222 2006/10/04 00:29:55 momjian Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -403,7 +403,7 @@ count_agg_clauses_walker(Node *node, AggClauseCounts *counts)
Form_pg_aggregate aggform;
Oid aggtranstype;
int i;
- ListCell *l;
+ ListCell *l;
Assert(aggref->agglevelsup == 0);
counts->numAggs++;
@@ -887,7 +887,7 @@ contain_nonstrict_functions_walker(Node *node, void *context)
*
* Returns the set of all Relids that are referenced in the clause in such
* a way that the clause cannot possibly return TRUE if any of these Relids
- * is an all-NULL row. (It is OK to err on the side of conservatism; hence
+ * is an all-NULL row. (It is OK to err on the side of conservatism; hence
* the analysis here is simplistic.)
*
* The semantics here are subtly different from contain_nonstrict_functions:
@@ -1020,7 +1020,7 @@ find_nonnullable_rels_walker(Node *node, bool top_level)
static bool
is_strict_saop(ScalarArrayOpExpr *expr, bool falseOK)
{
- Node *rightop;
+ Node *rightop;
/* The contained operator must be strict. */
if (!op_strict(expr->opno))
@@ -1288,12 +1288,13 @@ CommuteRowCompareExpr(RowCompareExpr *clause)
}
clause->opnos = newops;
+
/*
- * Note: we don't bother to update the opclasses list, but just set
- * it to empty. This is OK since this routine is currently only used
- * for index quals, and the index machinery won't use the opclass
- * information. The original opclass list is NOT valid if we have
- * commuted any cross-type comparisons, so don't leave it in place.
+ * Note: we don't bother to update the opclasses list, but just set it to
+ * empty. This is OK since this routine is currently only used for index
+ * quals, and the index machinery won't use the opclass information. The
+ * original opclass list is NOT valid if we have commuted any cross-type
+ * comparisons, so don't leave it in place.
*/
clause->opclasses = NIL; /* XXX */
@@ -2109,9 +2110,9 @@ eval_const_expressions_mutator(Node *node,
context);
if (arg && IsA(arg, RowExpr))
{
- RowExpr *rarg = (RowExpr *) arg;
- List *newargs = NIL;
- ListCell *l;
+ RowExpr *rarg = (RowExpr *) arg;
+ List *newargs = NIL;
+ ListCell *l;
/*
* We break ROW(...) IS [NOT] NULL into separate tests on its
@@ -2120,15 +2121,15 @@ eval_const_expressions_mutator(Node *node,
*/
foreach(l, rarg->args)
{
- Node *relem = (Node *) lfirst(l);
+ Node *relem = (Node *) lfirst(l);
/*
- * A constant field refutes the whole NullTest if it's of
- * the wrong nullness; else we can discard it.
+ * A constant field refutes the whole NullTest if it's of the
+ * wrong nullness; else we can discard it.
*/
if (relem && IsA(relem, Const))
{
- Const *carg = (Const *) relem;
+ Const *carg = (Const *) relem;
if (carg->constisnull ?
(ntest->nulltesttype == IS_NOT_NULL) :
@@ -2152,8 +2153,8 @@ eval_const_expressions_mutator(Node *node,
}
if (arg && IsA(arg, Const))
{
- Const *carg = (Const *) arg;
- bool result;
+ Const *carg = (Const *) arg;
+ bool result;
switch (ntest->nulltesttype)
{
@@ -2166,7 +2167,7 @@ eval_const_expressions_mutator(Node *node,
default:
elog(ERROR, "unrecognized nulltesttype: %d",
(int) ntest->nulltesttype);
- result = false; /* keep compiler quiet */
+ result = false; /* keep compiler quiet */
break;
}
@@ -2188,8 +2189,8 @@ eval_const_expressions_mutator(Node *node,
context);
if (arg && IsA(arg, Const))
{
- Const *carg = (Const *) arg;
- bool result;
+ Const *carg = (Const *) arg;
+ bool result;
switch (btest->booltesttype)
{
@@ -2218,7 +2219,7 @@ eval_const_expressions_mutator(Node *node,
default:
elog(ERROR, "unrecognized booltesttype: %d",
(int) btest->booltesttype);
- result = false; /* keep compiler quiet */
+ result = false; /* keep compiler quiet */
break;
}
@@ -3174,7 +3175,7 @@ expression_tree_walker(Node *node,
break;
case T_Aggref:
{
- Aggref *expr = (Aggref *) node;
+ Aggref *expr = (Aggref *) node;
if (expression_tree_walker((Node *) expr->args,
walker, context))
@@ -3452,8 +3453,8 @@ query_tree_walker(Query *query,
if (query->utilityStmt)
{
/*
- * Certain utility commands contain general-purpose Querys embedded
- * in them --- if this is one, invoke the walker on the sub-Query.
+ * Certain utility commands contain general-purpose Querys embedded in
+ * them --- if this is one, invoke the walker on the sub-Query.
*/
if (IsA(query->utilityStmt, CopyStmt))
{
@@ -3828,8 +3829,8 @@ expression_tree_mutator(Node *node,
break;
case T_RowCompareExpr:
{
- RowCompareExpr *rcexpr = (RowCompareExpr *) node;
- RowCompareExpr *newnode;
+ RowCompareExpr *rcexpr = (RowCompareExpr *) node;
+ RowCompareExpr *newnode;
FLATCOPY(newnode, rcexpr, RowCompareExpr);
MUTATE(newnode->largs, rcexpr->largs, List *);
diff --git a/src/backend/optimizer/util/pathnode.c b/src/backend/optimizer/util/pathnode.c
index 2cc79ed239..01f3151bee 100644
--- a/src/backend/optimizer/util/pathnode.c
+++ b/src/backend/optimizer/util/pathnode.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/util/pathnode.c,v 1.132 2006/08/02 01:59:46 joe Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/util/pathnode.c,v 1.133 2006/10/04 00:29:55 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -418,7 +418,7 @@ create_seqscan_path(PlannerInfo *root, RelOptInfo *rel)
* for an ordered index, or NoMovementScanDirection for
* an unordered index.
* 'outer_rel' is the outer relation if this is a join inner indexscan path.
- * (pathkeys and indexscandir are ignored if so.) NULL if not.
+ * (pathkeys and indexscandir are ignored if so.) NULL if not.
*
* Returns the new path node.
*/
@@ -680,12 +680,12 @@ create_result_path(List *quals)
/* Ideally should define cost_result(), but I'm too lazy */
pathnode->path.startup_cost = 0;
pathnode->path.total_cost = cpu_tuple_cost;
+
/*
- * In theory we should include the qual eval cost as well, but
- * at present that doesn't accomplish much except duplicate work that
- * will be done again in make_result; since this is only used for
- * degenerate cases, nothing interesting will be done with the path
- * cost values...
+ * In theory we should include the qual eval cost as well, but at present
+ * that doesn't accomplish much except duplicate work that will be done
+ * again in make_result; since this is only used for degenerate cases,
+ * nothing interesting will be done with the path cost values...
*/
return pathnode;
diff --git a/src/backend/optimizer/util/plancat.c b/src/backend/optimizer/util/plancat.c
index aba4b88157..de14ddd2dc 100644
--- a/src/backend/optimizer/util/plancat.c
+++ b/src/backend/optimizer/util/plancat.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/util/plancat.c,v 1.126 2006/09/19 22:49:53 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/util/plancat.c,v 1.127 2006/10/04 00:29:55 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -78,9 +78,9 @@ get_relation_info(PlannerInfo *root, Oid relationObjectId, bool inhparent,
List *indexinfos = NIL;
/*
- * We need not lock the relation since it was already locked, either
- * by the rewriter or when expand_inherited_rtentry() added it to the
- * query's rangetable.
+ * We need not lock the relation since it was already locked, either by
+ * the rewriter or when expand_inherited_rtentry() added it to the query's
+ * rangetable.
*/
relation = heap_open(relationObjectId, NoLock);
@@ -95,8 +95,8 @@ get_relation_info(PlannerInfo *root, Oid relationObjectId, bool inhparent,
/*
* Estimate relation size --- unless it's an inheritance parent, in which
- * case the size will be computed later in set_append_rel_pathlist, and
- * we must leave it zero for now to avoid bollixing the total_table_pages
+ * case the size will be computed later in set_append_rel_pathlist, and we
+ * must leave it zero for now to avoid bollixing the total_table_pages
* calculation.
*/
if (!inhparent)
@@ -152,9 +152,9 @@ get_relation_info(PlannerInfo *root, Oid relationObjectId, bool inhparent,
/*
* Ignore invalid indexes, since they can't safely be used for
- * queries. Note that this is OK because the data structure
- * we are constructing is only used by the planner --- the
- * executor still needs to insert into "invalid" indexes!
+ * queries. Note that this is OK because the data structure we
+ * are constructing is only used by the planner --- the executor
+ * still needs to insert into "invalid" indexes!
*/
if (!index->indisvalid)
{
@@ -508,14 +508,14 @@ relation_excluded_by_constraints(RelOptInfo *rel, RangeTblEntry *rte)
/*
* We do not currently enforce that CHECK constraints contain only
* immutable functions, so it's necessary to check here. We daren't draw
- * conclusions from plan-time evaluation of non-immutable functions.
- * Since they're ANDed, we can just ignore any mutable constraints in
- * the list, and reason about the rest.
+ * conclusions from plan-time evaluation of non-immutable functions. Since
+ * they're ANDed, we can just ignore any mutable constraints in the list,
+ * and reason about the rest.
*/
safe_constraints = NIL;
foreach(lc, constraint_pred)
{
- Node *pred = (Node *) lfirst(lc);
+ Node *pred = (Node *) lfirst(lc);
if (!contain_mutable_functions(pred))
safe_constraints = lappend(safe_constraints, pred);
@@ -526,9 +526,9 @@ relation_excluded_by_constraints(RelOptInfo *rel, RangeTblEntry *rte)
* refute the entire collection at once. This may allow us to make proofs
* that would fail if we took them individually.
*
- * Note: we use rel->baserestrictinfo, not safe_restrictions as might
- * seem an obvious optimization. Some of the clauses might be OR clauses
- * that have volatile and nonvolatile subclauses, and it's OK to make
+ * Note: we use rel->baserestrictinfo, not safe_restrictions as might seem
+ * an obvious optimization. Some of the clauses might be OR clauses that
+ * have volatile and nonvolatile subclauses, and it's OK to make
* deductions with the nonvolatile parts.
*/
if (predicate_refuted_by(safe_constraints, rel->baserestrictinfo))
diff --git a/src/backend/optimizer/util/predtest.c b/src/backend/optimizer/util/predtest.c
index b909e6d4bf..4a2609a4ab 100644
--- a/src/backend/optimizer/util/predtest.c
+++ b/src/backend/optimizer/util/predtest.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/util/predtest.c,v 1.9 2006/09/28 20:51:42 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/util/predtest.c,v 1.10 2006/10/04 00:29:55 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -208,6 +208,7 @@ predicate_implied_by_recurse(Node *clause, Node *predicate)
switch (pclass)
{
case CLASS_AND:
+
/*
* AND-clause => AND-clause if A implies each of B's items
*/
@@ -224,6 +225,7 @@ predicate_implied_by_recurse(Node *clause, Node *predicate)
return result;
case CLASS_OR:
+
/*
* AND-clause => OR-clause if A implies any of B's items
*
@@ -241,6 +243,7 @@ predicate_implied_by_recurse(Node *clause, Node *predicate)
iterate_end(pred_info);
if (result)
return result;
+
/*
* Also check if any of A's items implies B
*
@@ -258,6 +261,7 @@ predicate_implied_by_recurse(Node *clause, Node *predicate)
return result;
case CLASS_ATOM:
+
/*
* AND-clause => atom if any of A's items implies B
*/
@@ -279,6 +283,7 @@ predicate_implied_by_recurse(Node *clause, Node *predicate)
switch (pclass)
{
case CLASS_OR:
+
/*
* OR-clause => OR-clause if each of A's items implies any
* of B's items. Messy but can't do it any more simply.
@@ -286,7 +291,7 @@ predicate_implied_by_recurse(Node *clause, Node *predicate)
result = true;
iterate_begin(citem, clause, clause_info)
{
- bool presult = false;
+ bool presult = false;
iterate_begin(pitem, predicate, pred_info)
{
@@ -308,6 +313,7 @@ predicate_implied_by_recurse(Node *clause, Node *predicate)
case CLASS_AND:
case CLASS_ATOM:
+
/*
* OR-clause => AND-clause if each of A's items implies B
*
@@ -331,6 +337,7 @@ predicate_implied_by_recurse(Node *clause, Node *predicate)
switch (pclass)
{
case CLASS_AND:
+
/*
* atom => AND-clause if A implies each of B's items
*/
@@ -347,6 +354,7 @@ predicate_implied_by_recurse(Node *clause, Node *predicate)
return result;
case CLASS_OR:
+
/*
* atom => OR-clause if A implies any of B's items
*/
@@ -363,6 +371,7 @@ predicate_implied_by_recurse(Node *clause, Node *predicate)
return result;
case CLASS_ATOM:
+
/*
* atom => atom is the base case
*/
@@ -427,6 +436,7 @@ predicate_refuted_by_recurse(Node *clause, Node *predicate)
switch (pclass)
{
case CLASS_AND:
+
/*
* AND-clause R=> AND-clause if A refutes any of B's items
*
@@ -444,6 +454,7 @@ predicate_refuted_by_recurse(Node *clause, Node *predicate)
iterate_end(pred_info);
if (result)
return result;
+
/*
* Also check if any of A's items refutes B
*
@@ -461,6 +472,7 @@ predicate_refuted_by_recurse(Node *clause, Node *predicate)
return result;
case CLASS_OR:
+
/*
* AND-clause R=> OR-clause if A refutes each of B's items
*/
@@ -477,6 +489,7 @@ predicate_refuted_by_recurse(Node *clause, Node *predicate)
return result;
case CLASS_ATOM:
+
/*
* If B is a NOT-clause, A R=> B if A => B's arg
*/
@@ -484,6 +497,7 @@ predicate_refuted_by_recurse(Node *clause, Node *predicate)
if (not_arg &&
predicate_implied_by_recurse(clause, not_arg))
return true;
+
/*
* AND-clause R=> atom if any of A's items refutes B
*/
@@ -505,6 +519,7 @@ predicate_refuted_by_recurse(Node *clause, Node *predicate)
switch (pclass)
{
case CLASS_OR:
+
/*
* OR-clause R=> OR-clause if A refutes each of B's items
*/
@@ -521,6 +536,7 @@ predicate_refuted_by_recurse(Node *clause, Node *predicate)
return result;
case CLASS_AND:
+
/*
* OR-clause R=> AND-clause if each of A's items refutes
* any of B's items.
@@ -528,7 +544,7 @@ predicate_refuted_by_recurse(Node *clause, Node *predicate)
result = true;
iterate_begin(citem, clause, clause_info)
{
- bool presult = false;
+ bool presult = false;
iterate_begin(pitem, predicate, pred_info)
{
@@ -549,6 +565,7 @@ predicate_refuted_by_recurse(Node *clause, Node *predicate)
return result;
case CLASS_ATOM:
+
/*
* If B is a NOT-clause, A R=> B if A => B's arg
*/
@@ -556,6 +573,7 @@ predicate_refuted_by_recurse(Node *clause, Node *predicate)
if (not_arg &&
predicate_implied_by_recurse(clause, not_arg))
return true;
+
/*
* OR-clause R=> atom if each of A's items refutes B
*/
@@ -574,6 +592,7 @@ predicate_refuted_by_recurse(Node *clause, Node *predicate)
break;
case CLASS_ATOM:
+
/*
* If A is a NOT-clause, A R=> B if B => A's arg
*/
@@ -584,6 +603,7 @@ predicate_refuted_by_recurse(Node *clause, Node *predicate)
switch (pclass)
{
case CLASS_AND:
+
/*
* atom R=> AND-clause if A refutes any of B's items
*/
@@ -600,6 +620,7 @@ predicate_refuted_by_recurse(Node *clause, Node *predicate)
return result;
case CLASS_OR:
+
/*
* atom R=> OR-clause if A refutes each of B's items
*/
@@ -616,6 +637,7 @@ predicate_refuted_by_recurse(Node *clause, Node *predicate)
return result;
case CLASS_ATOM:
+
/*
* If B is a NOT-clause, A R=> B if A => B's arg
*/
@@ -623,6 +645,7 @@ predicate_refuted_by_recurse(Node *clause, Node *predicate)
if (not_arg &&
predicate_implied_by_recurse(clause, not_arg))
return true;
+
/*
* atom R=> atom is the base case
*/
@@ -654,8 +677,8 @@ predicate_classify(Node *clause, PredIterInfo info)
Assert(!IsA(clause, RestrictInfo));
/*
- * If we see a List, assume it's an implicit-AND list; this is the
- * correct semantics for lists of RestrictInfo nodes.
+ * If we see a List, assume it's an implicit-AND list; this is the correct
+ * semantics for lists of RestrictInfo nodes.
*/
if (IsA(clause, List))
{
@@ -685,13 +708,13 @@ predicate_classify(Node *clause, PredIterInfo info)
if (IsA(clause, ScalarArrayOpExpr))
{
ScalarArrayOpExpr *saop = (ScalarArrayOpExpr *) clause;
- Node *arraynode = (Node *) lsecond(saop->args);
+ Node *arraynode = (Node *) lsecond(saop->args);
/*
- * We can break this down into an AND or OR structure, but only if
- * we know how to iterate through expressions for the array's
- * elements. We can do that if the array operand is a non-null
- * constant or a simple ArrayExpr.
+ * We can break this down into an AND or OR structure, but only if we
+ * know how to iterate through expressions for the array's elements.
+ * We can do that if the array operand is a non-null constant or a
+ * simple ArrayExpr.
*/
if (arraynode && IsA(arraynode, Const) &&
!((Const *) arraynode)->constisnull)
@@ -716,7 +739,7 @@ predicate_classify(Node *clause, PredIterInfo info)
}
/*
- * PredIterInfo routines for iterating over regular Lists. The iteration
+ * PredIterInfo routines for iterating over regular Lists. The iteration
* state variable is the next ListCell to visit.
*/
static void
@@ -852,7 +875,7 @@ arrayexpr_startup_fn(Node *clause, PredIterInfo info)
{
ScalarArrayOpExpr *saop = (ScalarArrayOpExpr *) clause;
ArrayExprIterState *state;
- ArrayExpr *arrayexpr;
+ ArrayExpr *arrayexpr;
/* Create working state struct */
state = (ArrayExprIterState *) palloc(sizeof(ArrayExprIterState));
diff --git a/src/backend/optimizer/util/relnode.c b/src/backend/optimizer/util/relnode.c
index 331855f8e9..4d5bffdb7b 100644
--- a/src/backend/optimizer/util/relnode.c
+++ b/src/backend/optimizer/util/relnode.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/util/relnode.c,v 1.82 2006/09/19 22:49:53 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/util/relnode.c,v 1.83 2006/10/04 00:29:55 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -97,9 +97,10 @@ build_simple_rel(PlannerInfo *root, int relid, RelOptKind reloptkind)
case RTE_SUBQUERY:
case RTE_FUNCTION:
case RTE_VALUES:
+
/*
- * Subquery, function, or values list --- set up attr range
- * and arrays
+ * Subquery, function, or values list --- set up attr range and
+ * arrays
*
* Note: 0 is included in range to support whole-row Vars
*/
@@ -417,8 +418,8 @@ build_joinrel_tlist(PlannerInfo *root, RelOptInfo *joinrel,
int ndx;
/*
- * We can't run into any child RowExprs here, but we could find
- * a whole-row Var with a ConvertRowtypeExpr atop it.
+ * We can't run into any child RowExprs here, but we could find a
+ * whole-row Var with a ConvertRowtypeExpr atop it.
*/
var = origvar;
while (!IsA(var, Var))
diff --git a/src/backend/optimizer/util/restrictinfo.c b/src/backend/optimizer/util/restrictinfo.c
index ec43ee39f0..9176ae1680 100644
--- a/src/backend/optimizer/util/restrictinfo.c
+++ b/src/backend/optimizer/util/restrictinfo.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/util/restrictinfo.c,v 1.48 2006/07/01 18:38:33 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/util/restrictinfo.c,v 1.49 2006/10/04 00:29:55 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -169,14 +169,15 @@ make_restrictinfo_from_bitmapqual(Path *bitmapqual,
*/
return NIL;
}
+
/*
* If the sublist contains multiple RestrictInfos, we create an
* AND subclause. If there's just one, we have to check if it's
* an OR clause, and if so flatten it to preserve AND/OR flatness
* of our output.
*
- * We construct lists with and without sub-RestrictInfos, so
- * as not to have to regenerate duplicate RestrictInfos below.
+ * We construct lists with and without sub-RestrictInfos, so as
+ * not to have to regenerate duplicate RestrictInfos below.
*/
if (list_length(sublist) > 1)
{
@@ -186,7 +187,7 @@ make_restrictinfo_from_bitmapqual(Path *bitmapqual,
}
else
{
- RestrictInfo *subri = (RestrictInfo *) linitial(sublist);
+ RestrictInfo *subri = (RestrictInfo *) linitial(sublist);
Assert(IsA(subri, RestrictInfo));
if (restriction_is_or_clause(subri))
diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c
index 582747a23f..f4e58a3b8d 100644
--- a/src/backend/parser/analyze.c
+++ b/src/backend/parser/analyze.c
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/backend/parser/analyze.c,v 1.351 2006/09/18 16:04:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/analyze.c,v 1.352 2006/10/04 00:29:55 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -99,7 +99,7 @@ static Query *transformDeleteStmt(ParseState *pstate, DeleteStmt *stmt);
static Query *transformInsertStmt(ParseState *pstate, InsertStmt *stmt,
List **extras_before, List **extras_after);
static List *transformInsertRow(ParseState *pstate, List *exprlist,
- List *stmtcols, List *icolumns, List *attrnos);
+ List *stmtcols, List *icolumns, List *attrnos);
static List *transformReturningList(ParseState *pstate, List *returningList);
static Query *transformIndexStmt(ParseState *pstate, IndexStmt *stmt);
static Query *transformRuleStmt(ParseState *query, RuleStmt *stmt,
@@ -133,7 +133,7 @@ static void transformFKConstraints(ParseState *pstate,
bool isAddConstraint);
static void applyColumnNames(List *dst, List *src);
static void getSetColTypes(ParseState *pstate, Node *node,
- List **colTypes, List **colTypmods);
+ List **colTypes, List **colTypmods);
static void transformLockingClause(Query *qry, LockingClause *lc);
static void transformConstraintAttrs(List *constraintList);
static void transformColumnType(ParseState *pstate, ColumnDef *column);
@@ -343,7 +343,7 @@ transformStmt(ParseState *pstate, Node *parseTree,
case T_CopyStmt:
{
- CopyStmt *n = (CopyStmt *) parseTree;
+ CopyStmt *n = (CopyStmt *) parseTree;
result = makeNode(Query);
result->commandType = CMD_UTILITY;
@@ -552,8 +552,8 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt,
/*
* We have three cases to deal with: DEFAULT VALUES (selectStmt == NULL),
- * VALUES list, or general SELECT input. We special-case VALUES, both
- * for efficiency and so we can handle DEFAULT specifications.
+ * VALUES list, or general SELECT input. We special-case VALUES, both for
+ * efficiency and so we can handle DEFAULT specifications.
*/
isGeneralSelect = (selectStmt && selectStmt->valuesLists == NIL);
@@ -602,8 +602,8 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt,
{
/*
* We have INSERT ... DEFAULT VALUES. We can handle this case by
- * emitting an empty targetlist --- all columns will be defaulted
- * when the planner expands the targetlist.
+ * emitting an empty targetlist --- all columns will be defaulted when
+ * the planner expands the targetlist.
*/
exprList = NIL;
}
@@ -705,25 +705,25 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt,
else if (list_length(selectStmt->valuesLists) > 1)
{
/*
- * Process INSERT ... VALUES with multiple VALUES sublists.
- * We generate a VALUES RTE holding the transformed expression
- * lists, and build up a targetlist containing Vars that reference
- * the VALUES RTE.
+ * Process INSERT ... VALUES with multiple VALUES sublists. We
+ * generate a VALUES RTE holding the transformed expression lists, and
+ * build up a targetlist containing Vars that reference the VALUES
+ * RTE.
*/
List *exprsLists = NIL;
int sublist_length = -1;
foreach(lc, selectStmt->valuesLists)
{
- List *sublist = (List *) lfirst(lc);
+ List *sublist = (List *) lfirst(lc);
/* Do basic expression transformation (same as a ROW() expr) */
sublist = transformExpressionList(pstate, sublist);
/*
- * All the sublists must be the same length, *after* transformation
- * (which might expand '*' into multiple items). The VALUES RTE
- * can't handle anything different.
+ * All the sublists must be the same length, *after*
+ * transformation (which might expand '*' into multiple items).
+ * The VALUES RTE can't handle anything different.
*/
if (sublist_length < 0)
{
@@ -747,8 +747,8 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt,
/*
* There mustn't have been any table references in the expressions,
- * else strange things would happen, like Cartesian products of
- * those tables with the VALUES list ...
+ * else strange things would happen, like Cartesian products of those
+ * tables with the VALUES list ...
*/
if (pstate->p_joinlist != NIL)
ereport(ERROR,
@@ -756,10 +756,10 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt,
errmsg("VALUES must not contain table references")));
/*
- * Another thing we can't currently support is NEW/OLD references
- * in rules --- seems we'd need something like SQL99's LATERAL
- * construct to ensure that the values would be available while
- * evaluating the VALUES RTE. This is a shame. FIXME
+ * Another thing we can't currently support is NEW/OLD references in
+ * rules --- seems we'd need something like SQL99's LATERAL construct
+ * to ensure that the values would be available while evaluating the
+ * VALUES RTE. This is a shame. FIXME
*/
if (list_length(pstate->p_rtable) != 1 &&
contain_vars_of_level((Node *) exprsLists, 0))
@@ -793,7 +793,7 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt,
* INSERT INTO foo VALUES(bar.*)
*
* The sublist is just computed directly as the Query's targetlist,
- * with no VALUES RTE. So it works just like SELECT without FROM.
+ * with no VALUES RTE. So it works just like SELECT without FROM.
*----------
*/
List *valuesLists = selectStmt->valuesLists;
@@ -818,7 +818,7 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt,
attnos = list_head(attrnos);
foreach(lc, exprList)
{
- Expr *expr = (Expr *) lfirst(lc);
+ Expr *expr = (Expr *) lfirst(lc);
ResTarget *col;
TargetEntry *tle;
@@ -836,10 +836,10 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt,
}
/*
- * If we have a RETURNING clause, we need to add the target relation
- * to the query namespace before processing it, so that Var references
- * in RETURNING will work. Also, remove any namespace entries added
- * in a sub-SELECT or VALUES list.
+ * If we have a RETURNING clause, we need to add the target relation to
+ * the query namespace before processing it, so that Var references in
+ * RETURNING will work. Also, remove any namespace entries added in a
+ * sub-SELECT or VALUES list.
*/
if (stmt->returningList)
{
@@ -875,7 +875,7 @@ static List *
transformInsertRow(ParseState *pstate, List *exprlist,
List *stmtcols, List *icolumns, List *attrnos)
{
- List *result;
+ List *result;
ListCell *lc;
ListCell *icols;
ListCell *attnos;
@@ -884,7 +884,7 @@ transformInsertRow(ParseState *pstate, List *exprlist,
* Check length of expr list. It must not have more expressions than
* there are target columns. We allow fewer, but only if no explicit
* columns list was given (the remaining columns are implicitly
- * defaulted). Note we must check this *after* transformation because
+ * defaulted). Note we must check this *after* transformation because
* that could expand '*' into multiple items.
*/
if (list_length(exprlist) > list_length(icolumns))
@@ -905,7 +905,7 @@ transformInsertRow(ParseState *pstate, List *exprlist,
attnos = list_head(attrnos);
foreach(lc, exprlist)
{
- Expr *expr = (Expr *) lfirst(lc);
+ Expr *expr = (Expr *) lfirst(lc);
ResTarget *col;
col = (ResTarget *) lfirst(icols);
@@ -1292,10 +1292,10 @@ transformInhRelation(ParseState *pstate, CreateStmtContext *cxt,
TupleConstr *constr;
AclResult aclresult;
- bool including_defaults = false;
- bool including_constraints = false;
- bool including_indexes = false;
- ListCell *elem;
+ bool including_defaults = false;
+ bool including_constraints = false;
+ bool including_indexes = false;
+ ListCell *elem;
relation = heap_openrv(inhRelation->relation, AccessShareLock);
@@ -1318,32 +1318,33 @@ transformInhRelation(ParseState *pstate, CreateStmtContext *cxt,
constr = tupleDesc->constr;
foreach(elem, inhRelation->options)
+ {
+ int option = lfirst_int(elem);
+
+ switch (option)
{
- int option = lfirst_int(elem);
- switch (option)
- {
- case CREATE_TABLE_LIKE_INCLUDING_DEFAULTS:
- including_defaults = true;
- break;
- case CREATE_TABLE_LIKE_EXCLUDING_DEFAULTS:
- including_defaults = false;
- break;
- case CREATE_TABLE_LIKE_INCLUDING_CONSTRAINTS:
- including_constraints = true;
- break;
- case CREATE_TABLE_LIKE_EXCLUDING_CONSTRAINTS:
- including_constraints = false;
- break;
- case CREATE_TABLE_LIKE_INCLUDING_INDEXES:
- including_indexes = true;
- break;
- case CREATE_TABLE_LIKE_EXCLUDING_INDEXES:
- including_indexes = false;
- break;
- default:
- elog(ERROR, "unrecognized CREATE TABLE LIKE option: %d", option);
- }
+ case CREATE_TABLE_LIKE_INCLUDING_DEFAULTS:
+ including_defaults = true;
+ break;
+ case CREATE_TABLE_LIKE_EXCLUDING_DEFAULTS:
+ including_defaults = false;
+ break;
+ case CREATE_TABLE_LIKE_INCLUDING_CONSTRAINTS:
+ including_constraints = true;
+ break;
+ case CREATE_TABLE_LIKE_EXCLUDING_CONSTRAINTS:
+ including_constraints = false;
+ break;
+ case CREATE_TABLE_LIKE_INCLUDING_INDEXES:
+ including_indexes = true;
+ break;
+ case CREATE_TABLE_LIKE_EXCLUDING_INDEXES:
+ including_indexes = false;
+ break;
+ default:
+ elog(ERROR, "unrecognized CREATE TABLE LIKE option: %d", option);
}
+ }
if (including_indexes)
elog(ERROR, "TODO");
@@ -1418,14 +1419,16 @@ transformInhRelation(ParseState *pstate, CreateStmtContext *cxt,
}
}
- if (including_constraints && tupleDesc->constr) {
- int ccnum;
+ if (including_constraints && tupleDesc->constr)
+ {
+ int ccnum;
AttrNumber *attmap = varattnos_map_schema(tupleDesc, cxt->columns);
- for(ccnum = 0; ccnum < tupleDesc->constr->num_check; ccnum++) {
- char *ccname = tupleDesc->constr->check[ccnum].ccname;
- char *ccbin = tupleDesc->constr->check[ccnum].ccbin;
- Node *ccbin_node = stringToNode(ccbin);
+ for (ccnum = 0; ccnum < tupleDesc->constr->num_check; ccnum++)
+ {
+ char *ccname = tupleDesc->constr->check[ccnum].ccname;
+ char *ccbin = tupleDesc->constr->check[ccnum].ccbin;
+ Node *ccbin_node = stringToNode(ccbin);
Constraint *n = makeNode(Constraint);
change_varattnos_of_a_node(ccbin_node, attmap);
@@ -1435,7 +1438,7 @@ transformInhRelation(ParseState *pstate, CreateStmtContext *cxt,
n->raw_expr = ccbin_node;
n->cooked_expr = NULL;
n->indexspace = NULL;
- cxt->ckconstraints = lappend(cxt->ckconstraints, (Node*)n);
+ cxt->ckconstraints = lappend(cxt->ckconstraints, (Node *) n);
}
}
@@ -1888,7 +1891,7 @@ transformRuleStmt(ParseState *pstate, RuleStmt *stmt,
if (pstate->p_hasAggs)
ereport(ERROR,
(errcode(ERRCODE_GROUPING_ERROR),
- errmsg("cannot use aggregate function in rule WHERE condition")));
+ errmsg("cannot use aggregate function in rule WHERE condition")));
/* save info about sublinks in where clause */
qry->hasSubLinks = pstate->p_hasSubLinks;
@@ -2175,8 +2178,8 @@ transformValuesClause(ParseState *pstate, SelectStmt *stmt)
RangeTblEntry *rte;
RangeTblRef *rtr;
ListCell *lc;
- ListCell *lc2;
- int i;
+ ListCell *lc2;
+ int i;
qry->commandType = CMD_SELECT;
@@ -2190,21 +2193,21 @@ transformValuesClause(ParseState *pstate, SelectStmt *stmt)
Assert(stmt->op == SETOP_NONE);
/*
- * For each row of VALUES, transform the raw expressions and gather
- * type information. This is also a handy place to reject DEFAULT
- * nodes, which the grammar allows for simplicity.
+ * For each row of VALUES, transform the raw expressions and gather type
+ * information. This is also a handy place to reject DEFAULT nodes, which
+ * the grammar allows for simplicity.
*/
foreach(lc, stmt->valuesLists)
{
- List *sublist = (List *) lfirst(lc);
+ List *sublist = (List *) lfirst(lc);
/* Do basic expression transformation (same as a ROW() expr) */
sublist = transformExpressionList(pstate, sublist);
/*
* All the sublists must be the same length, *after* transformation
- * (which might expand '*' into multiple items). The VALUES RTE
- * can't handle anything different.
+ * (which might expand '*' into multiple items). The VALUES RTE can't
+ * handle anything different.
*/
if (sublist_length < 0)
{
@@ -2226,7 +2229,7 @@ transformValuesClause(ParseState *pstate, SelectStmt *stmt)
i = 0;
foreach(lc2, sublist)
{
- Node *col = (Node *) lfirst(lc2);
+ Node *col = (Node *) lfirst(lc2);
if (IsA(col, SetToDefault))
ereport(ERROR,
@@ -2238,8 +2241,8 @@ transformValuesClause(ParseState *pstate, SelectStmt *stmt)
}
/*
- * Now resolve the common types of the columns, and coerce everything
- * to those types.
+ * Now resolve the common types of the columns, and coerce everything to
+ * those types.
*/
for (i = 0; i < sublist_length; i++)
{
@@ -2249,13 +2252,13 @@ transformValuesClause(ParseState *pstate, SelectStmt *stmt)
newExprsLists = NIL;
foreach(lc, exprsLists)
{
- List *sublist = (List *) lfirst(lc);
- List *newsublist = NIL;
+ List *sublist = (List *) lfirst(lc);
+ List *newsublist = NIL;
i = 0;
foreach(lc2, sublist)
{
- Node *col = (Node *) lfirst(lc2);
+ Node *col = (Node *) lfirst(lc2);
col = coerce_to_common_type(pstate, col, coltypes[i], "VALUES");
newsublist = lappend(newsublist, col);
@@ -2283,8 +2286,8 @@ transformValuesClause(ParseState *pstate, SelectStmt *stmt)
qry->targetList = expandRelAttrs(pstate, rte, rtr->rtindex, 0);
/*
- * The grammar allows attaching ORDER BY, LIMIT, and FOR UPDATE
- * to a VALUES, so cope.
+ * The grammar allows attaching ORDER BY, LIMIT, and FOR UPDATE to a
+ * VALUES, so cope.
*/
qry->sortClause = transformSortClause(pstate,
stmt->sortClause,
@@ -2299,7 +2302,7 @@ transformValuesClause(ParseState *pstate, SelectStmt *stmt)
if (stmt->lockingClause)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("SELECT FOR UPDATE/SHARE cannot be applied to VALUES")));
+ errmsg("SELECT FOR UPDATE/SHARE cannot be applied to VALUES")));
/* handle any CREATE TABLE AS spec */
if (stmt->into)
@@ -2313,10 +2316,10 @@ transformValuesClause(ParseState *pstate, SelectStmt *stmt)
}
/*
- * There mustn't have been any table references in the expressions,
- * else strange things would happen, like Cartesian products of
- * those tables with the VALUES list. We have to check this after
- * parsing ORDER BY et al since those could insert more junk.
+ * There mustn't have been any table references in the expressions, else
+ * strange things would happen, like Cartesian products of those tables
+ * with the VALUES list. We have to check this after parsing ORDER BY et
+ * al since those could insert more junk.
*/
if (list_length(pstate->p_joinlist) != 1)
ereport(ERROR,
@@ -2324,10 +2327,10 @@ transformValuesClause(ParseState *pstate, SelectStmt *stmt)
errmsg("VALUES must not contain table references")));
/*
- * Another thing we can't currently support is NEW/OLD references
- * in rules --- seems we'd need something like SQL99's LATERAL
- * construct to ensure that the values would be available while
- * evaluating the VALUES RTE. This is a shame. FIXME
+ * Another thing we can't currently support is NEW/OLD references in rules
+ * --- seems we'd need something like SQL99's LATERAL construct to ensure
+ * that the values would be available while evaluating the VALUES RTE.
+ * This is a shame. FIXME
*/
if (list_length(pstate->p_rtable) != 1 &&
contain_vars_of_level((Node *) newExprsLists, 0))
@@ -2390,8 +2393,8 @@ transformSetOperationStmt(ParseState *pstate, SelectStmt *stmt)
/*
* Find leftmost leaf SelectStmt; extract the one-time-only items from it
* and from the top-level node. (Most of the INTO options can be
- * transferred to the Query immediately, but intoColNames has to be
- * saved to apply below.)
+ * transferred to the Query immediately, but intoColNames has to be saved
+ * to apply below.)
*/
leftmostSelect = stmt->larg;
while (leftmostSelect && leftmostSelect->op != SETOP_NONE)
@@ -2865,9 +2868,9 @@ transformUpdateStmt(ParseState *pstate, UpdateStmt *stmt)
qry->hasSubLinks = pstate->p_hasSubLinks;
/*
- * Top-level aggregates are simply disallowed in UPDATE, per spec.
- * (From an implementation point of view, this is forced because the
- * implicit ctid reference would otherwise be an ungrouped variable.)
+ * Top-level aggregates are simply disallowed in UPDATE, per spec. (From
+ * an implementation point of view, this is forced because the implicit
+ * ctid reference would otherwise be an ungrouped variable.)
*/
if (pstate->p_hasAggs)
ereport(ERROR,
@@ -2890,7 +2893,7 @@ transformUpdateStmt(ParseState *pstate, UpdateStmt *stmt)
{
TargetEntry *tle = (TargetEntry *) lfirst(tl);
ResTarget *origTarget;
- int attrno;
+ int attrno;
if (tle->resjunk)
{
@@ -2916,7 +2919,7 @@ transformUpdateStmt(ParseState *pstate, UpdateStmt *stmt)
(errcode(ERRCODE_UNDEFINED_COLUMN),
errmsg("column \"%s\" of relation \"%s\" does not exist",
origTarget->name,
- RelationGetRelationName(pstate->p_target_relation)),
+ RelationGetRelationName(pstate->p_target_relation)),
parser_errposition(pstate, origTarget->location)));
updateTargetListEntry(pstate, tle, origTarget->name,
@@ -2948,9 +2951,9 @@ transformReturningList(ParseState *pstate, List *returningList)
return NIL; /* nothing to do */
/*
- * We need to assign resnos starting at one in the RETURNING list.
- * Save and restore the main tlist's value of p_next_resno, just in
- * case someone looks at it later (probably won't happen).
+ * We need to assign resnos starting at one in the RETURNING list. Save
+ * and restore the main tlist's value of p_next_resno, just in case
+ * someone looks at it later (probably won't happen).
*/
save_next_resno = pstate->p_next_resno;
pstate->p_next_resno = 1;
@@ -2975,7 +2978,7 @@ transformReturningList(ParseState *pstate, List *returningList)
if (list_length(pstate->p_rtable) != length_rtable)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("RETURNING may not contain references to other relations")));
+ errmsg("RETURNING may not contain references to other relations")));
/* mark column origins */
markTargetListOrigins(pstate, rlist);
@@ -3204,7 +3207,7 @@ static Query *
transformPrepareStmt(ParseState *pstate, PrepareStmt *stmt)
{
Query *result = makeNode(Query);
- List *argtype_oids; /* argtype OIDs in a list */
+ List *argtype_oids; /* argtype OIDs in a list */
Oid *argtoids = NULL; /* and as an array */
int nargs;
List *queries;
@@ -3233,10 +3236,9 @@ transformPrepareStmt(ParseState *pstate, PrepareStmt *stmt)
}
/*
- * Analyze the statement using these parameter types (any
- * parameters passed in from above us will not be visible to it),
- * allowing information about unknown parameters to be deduced
- * from context.
+ * Analyze the statement using these parameter types (any parameters
+ * passed in from above us will not be visible to it), allowing
+ * information about unknown parameters to be deduced from context.
*/
queries = parse_analyze_varparams((Node *) stmt->query,
pstate->p_sourcetext,
@@ -3250,8 +3252,8 @@ transformPrepareStmt(ParseState *pstate, PrepareStmt *stmt)
elog(ERROR, "unexpected extra stuff in prepared statement");
/*
- * Check that all parameter types were determined, and convert the
- * array of OIDs into a list for storage.
+ * Check that all parameter types were determined, and convert the array
+ * of OIDs into a list for storage.
*/
argtype_oids = NIL;
for (i = 0; i < nargs; i++)
@@ -3360,7 +3362,7 @@ CheckSelectLocking(Query *qry)
if (qry->havingQual != NULL)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("SELECT FOR UPDATE/SHARE is not allowed with HAVING clause")));
+ errmsg("SELECT FOR UPDATE/SHARE is not allowed with HAVING clause")));
if (qry->hasAggs)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
@@ -3500,15 +3502,15 @@ applyLockingClause(Query *qry, Index rtindex, bool forUpdate, bool noWait)
if ((rc = get_rowmark(qry, rtindex)) != NULL)
{
/*
- * If the same RTE is specified both FOR UPDATE and FOR SHARE,
- * treat it as FOR UPDATE. (Reasonable, since you can't take
- * both a shared and exclusive lock at the same time; it'll
- * end up being exclusive anyway.)
+ * If the same RTE is specified both FOR UPDATE and FOR SHARE, treat
+ * it as FOR UPDATE. (Reasonable, since you can't take both a shared
+ * and exclusive lock at the same time; it'll end up being exclusive
+ * anyway.)
*
- * We also consider that NOWAIT wins if it's specified both ways.
- * This is a bit more debatable but raising an error doesn't
- * seem helpful. (Consider for instance SELECT FOR UPDATE NOWAIT
- * from a view that internally contains a plain FOR UPDATE spec.)
+ * We also consider that NOWAIT wins if it's specified both ways. This
+ * is a bit more debatable but raising an error doesn't seem helpful.
+ * (Consider for instance SELECT FOR UPDATE NOWAIT from a view that
+ * internally contains a plain FOR UPDATE spec.)
*/
rc->forUpdate |= forUpdate;
rc->noWait |= noWait;
diff --git a/src/backend/parser/parse_clause.c b/src/backend/parser/parse_clause.c
index 70b6946d5f..be584b514c 100644
--- a/src/backend/parser/parse_clause.c
+++ b/src/backend/parser/parse_clause.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/parse_clause.c,v 1.157 2006/08/14 23:39:32 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/parse_clause.c,v 1.158 2006/10/04 00:29:55 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -544,8 +544,8 @@ transformRangeFunction(ParseState *pstate, RangeFunction *r)
/*
* If a coldeflist was supplied, ensure it defines a legal set of names
* (no duplicates) and datatypes (no pseudo-types, for instance).
- * addRangeTableEntryForFunction looked up the type names but didn't
- * check them further than that.
+ * addRangeTableEntryForFunction looked up the type names but didn't check
+ * them further than that.
*/
if (r->coldeflist)
{
@@ -1338,10 +1338,10 @@ transformGroupClause(ParseState *pstate, List *grouplist,
ListCell *l;
/* Preprocess the grouping clause, lookup TLEs */
- foreach (l, grouplist)
+ foreach(l, grouplist)
{
TargetEntry *tle;
- Oid restype;
+ Oid restype;
tle = findTargetlistEntry(pstate, lfirst(l),
targetlist, GROUP_CLAUSE);
@@ -1359,21 +1359,20 @@ transformGroupClause(ParseState *pstate, List *grouplist,
}
/*
- * Now iterate through the ORDER BY clause. If we find a grouping
- * element that matches the ORDER BY element, append the grouping
- * element to the result set immediately. Otherwise, stop
- * iterating. The effect of this is to look for a prefix of the
- * ORDER BY list in the grouping clauses, and to move that prefix
- * to the front of the GROUP BY.
+ * Now iterate through the ORDER BY clause. If we find a grouping element
+ * that matches the ORDER BY element, append the grouping element to the
+ * result set immediately. Otherwise, stop iterating. The effect of this
+ * is to look for a prefix of the ORDER BY list in the grouping clauses,
+ * and to move that prefix to the front of the GROUP BY.
*/
- foreach (l, sortClause)
+ foreach(l, sortClause)
{
- SortClause *sc = (SortClause *) lfirst(l);
- ListCell *prev = NULL;
- ListCell *tl;
- bool found = false;
+ SortClause *sc = (SortClause *) lfirst(l);
+ ListCell *prev = NULL;
+ ListCell *tl;
+ bool found = false;
- foreach (tl, tle_list)
+ foreach(tl, tle_list)
{
TargetEntry *tle = (TargetEntry *) lfirst(tl);
@@ -1399,17 +1398,17 @@ transformGroupClause(ParseState *pstate, List *grouplist,
}
/*
- * Now add any remaining elements of the GROUP BY list in the
- * order we received them.
+ * Now add any remaining elements of the GROUP BY list in the order we
+ * received them.
*
- * XXX: are there any additional criteria to consider when
- * ordering grouping clauses?
+ * XXX: are there any additional criteria to consider when ordering
+ * grouping clauses?
*/
foreach(l, tle_list)
{
TargetEntry *tle = (TargetEntry *) lfirst(l);
GroupClause *gc;
- Oid sort_op;
+ Oid sort_op;
/* avoid making duplicate grouplist entries */
if (targetIsInSortList(tle, result))
diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c
index 010c704c68..9cfe4391bd 100644
--- a/src/backend/parser/parse_coerce.c
+++ b/src/backend/parser/parse_coerce.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/parse_coerce.c,v 2.143 2006/07/26 19:31:51 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/parse_coerce.c,v 2.144 2006/10/04 00:29:55 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -163,11 +163,11 @@ coerce_type(ParseState *pstate, Node *node,
/*
* If the target type is a domain, we want to call its base type's
- * input routine, not domain_in(). This is to avoid premature
- * failure when the domain applies a typmod: existing input
- * routines follow implicit-coercion semantics for length checks,
- * which is not always what we want here. The needed check will
- * be applied properly inside coerce_to_domain().
+ * input routine, not domain_in(). This is to avoid premature failure
+ * when the domain applies a typmod: existing input routines follow
+ * implicit-coercion semantics for length checks, which is not always
+ * what we want here. The needed check will be applied properly
+ * inside coerce_to_domain().
*/
baseTypeMod = -1;
baseTypeId = getBaseTypeAndTypmod(targetTypeId, &baseTypeMod);
@@ -180,13 +180,13 @@ coerce_type(ParseState *pstate, Node *node,
newcon->constisnull = con->constisnull;
/*
- * We pass typmod -1 to the input routine, primarily because
- * existing input routines follow implicit-coercion semantics for
- * length checks, which is not always what we want here. Any
- * length constraint will be applied later by our caller.
+ * We pass typmod -1 to the input routine, primarily because existing
+ * input routines follow implicit-coercion semantics for length
+ * checks, which is not always what we want here. Any length
+ * constraint will be applied later by our caller.
*
- * We assume here that UNKNOWN's internal representation is the
- * same as CSTRING.
+ * We assume here that UNKNOWN's internal representation is the same
+ * as CSTRING.
*/
if (!con->constisnull)
newcon->constvalue = stringTypeDatum(targetType,
@@ -886,8 +886,8 @@ coerce_to_bigint(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 bigint, not type %s",
- constructName, format_type_be(inputTypeId))));
+ errmsg("argument of %s must be type bigint, not type %s",
+ constructName, format_type_be(inputTypeId))));
}
if (expression_returns_set(node))
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c
index 0812c3d441..7c72ae9e22 100644
--- a/src/backend/parser/parse_expr.c
+++ b/src/backend/parser/parse_expr.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/parse_expr.c,v 1.197 2006/08/12 20:05:55 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/parse_expr.c,v 1.198 2006/10/04 00:29:55 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -65,7 +65,7 @@ static Node *transformIndirection(ParseState *pstate, Node *basenode,
static Node *typecast_expression(ParseState *pstate, Node *expr,
TypeName *typename);
static Node *make_row_comparison_op(ParseState *pstate, List *opname,
- List *largs, List *rargs, int location);
+ List *largs, List *rargs, int location);
static Node *make_row_distinct_op(ParseState *pstate, List *opname,
RowExpr *lrow, RowExpr *rrow, int location);
static Expr *make_distinct_op(ParseState *pstate, List *opname,
@@ -772,8 +772,8 @@ static Node *
transformAExprOf(ParseState *pstate, A_Expr *a)
{
/*
- * Checking an expression for match to a list of type names.
- * Will result in a boolean constant node.
+ * Checking an expression for match to a list of type names. Will result
+ * in a boolean constant node.
*/
Node *lexpr = transformExpr(pstate, a->lexpr);
ListCell *telem;
@@ -791,7 +791,7 @@ transformAExprOf(ParseState *pstate, A_Expr *a)
}
/*
- * We have two forms: equals or not equals. Flip the sense of the result
+ * We have two forms: equals or not equals. Flip the sense of the result
* for not equals.
*/
if (strcmp(strVal(linitial(a->name)), "<>") == 0)
@@ -820,10 +820,10 @@ transformAExprIn(ParseState *pstate, A_Expr *a)
useOr = true;
/*
- * We try to generate a ScalarArrayOpExpr from IN/NOT IN, but this is
- * only possible if the inputs are all scalars (no RowExprs) and there
- * is a suitable array type available. If not, we fall back to a
- * boolean condition tree with multiple copies of the lefthand expression.
+ * We try to generate a ScalarArrayOpExpr from IN/NOT IN, but this is only
+ * possible if the inputs are all scalars (no RowExprs) and there is a
+ * suitable array type available. If not, we fall back to a boolean
+ * condition tree with multiple copies of the lefthand expression.
*
* First step: transform all the inputs, and detect whether any are
* RowExprs.
@@ -834,7 +834,7 @@ transformAExprIn(ParseState *pstate, A_Expr *a)
rexprs = NIL;
foreach(l, (List *) a->rexpr)
{
- Node *rexpr = transformExpr(pstate, lfirst(l));
+ Node *rexpr = transformExpr(pstate, lfirst(l));
haveRowExpr |= (rexpr && IsA(rexpr, RowExpr));
rexprs = lappend(rexprs, rexpr);
@@ -842,10 +842,10 @@ transformAExprIn(ParseState *pstate, A_Expr *a)
}
/*
- * If not forced by presence of RowExpr, try to resolve a common
- * scalar type for all the expressions, and see if it has an array type.
- * (But if there's only one righthand expression, we may as well just
- * fall through and generate a simple = comparison.)
+ * If not forced by presence of RowExpr, try to resolve a common scalar
+ * type for all the expressions, and see if it has an array type. (But if
+ * there's only one righthand expression, we may as well just fall through
+ * and generate a simple = comparison.)
*/
if (!haveRowExpr && list_length(rexprs) != 1)
{
@@ -853,9 +853,9 @@ transformAExprIn(ParseState *pstate, A_Expr *a)
Oid array_type;
/*
- * Select a common type for the array elements. Note that since
- * the LHS' type is first in the list, it will be preferred when
- * there is doubt (eg, when all the RHS items are unknown literals).
+ * Select a common type for the array elements. Note that since the
+ * LHS' type is first in the list, it will be preferred when there is
+ * doubt (eg, when all the RHS items are unknown literals).
*/
scalar_type = select_common_type(typeids, "IN");
@@ -864,8 +864,8 @@ transformAExprIn(ParseState *pstate, A_Expr *a)
if (array_type != InvalidOid)
{
/*
- * OK: coerce all the right-hand inputs to the common type
- * and build an ArrayExpr for them.
+ * OK: coerce all the right-hand inputs to the common type and
+ * build an ArrayExpr for them.
*/
List *aexprs;
ArrayExpr *newa;
@@ -910,11 +910,11 @@ transformAExprIn(ParseState *pstate, A_Expr *a)
!IsA(rexpr, RowExpr))
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
- errmsg("arguments of row IN must all be row expressions"),
+ errmsg("arguments of row IN must all be row expressions"),
parser_errposition(pstate, a->location)));
cmp = make_row_comparison_op(pstate,
a->name,
- (List *) copyObject(((RowExpr *) lexpr)->args),
+ (List *) copyObject(((RowExpr *) lexpr)->args),
((RowExpr *) rexpr)->args,
a->location);
}
@@ -1111,8 +1111,8 @@ transformSubLink(ParseState *pstate, SubLink *sublink)
if (sublink->subLinkType == EXISTS_SUBLINK)
{
/*
- * EXISTS needs no test expression or combining operator.
- * These fields should be null already, but make sure.
+ * EXISTS needs no test expression or combining operator. These fields
+ * should be null already, but make sure.
*/
sublink->testexpr = NULL;
sublink->operName = NIL;
@@ -1140,8 +1140,8 @@ transformSubLink(ParseState *pstate, SubLink *sublink)
}
/*
- * EXPR and ARRAY need no test expression or combining operator.
- * These fields should be null already, but make sure.
+ * EXPR and ARRAY need no test expression or combining operator. These
+ * fields should be null already, but make sure.
*/
sublink->testexpr = NULL;
sublink->operName = NIL;
@@ -1164,8 +1164,8 @@ transformSubLink(ParseState *pstate, SubLink *sublink)
left_list = list_make1(lefthand);
/*
- * Build a list of PARAM_SUBLINK nodes representing the
- * output columns of the subquery.
+ * Build a list of PARAM_SUBLINK nodes representing the output columns
+ * of the subquery.
*/
right_list = NIL;
foreach(l, qtree->targetList)
@@ -1185,9 +1185,9 @@ transformSubLink(ParseState *pstate, SubLink *sublink)
}
/*
- * We could rely on make_row_comparison_op to complain if the
- * list lengths differ, but we prefer to generate a more specific
- * error message.
+ * We could rely on make_row_comparison_op to complain if the list
+ * lengths differ, but we prefer to generate a more specific error
+ * message.
*/
if (list_length(left_list) < list_length(right_list))
ereport(ERROR,
@@ -1968,8 +1968,8 @@ make_row_comparison_op(ParseState *pstate, List *opname,
parser_errposition(pstate, location)));
/*
- * We can't compare zero-length rows because there is no principled
- * basis for figuring out what the operator is.
+ * We can't compare zero-length rows because there is no principled basis
+ * for figuring out what the operator is.
*/
if (nopers == 0)
ereport(ERROR,
@@ -1978,8 +1978,8 @@ make_row_comparison_op(ParseState *pstate, List *opname,
parser_errposition(pstate, location)));
/*
- * Identify all the pairwise operators, using make_op so that
- * behavior is the same as in the simple scalar case.
+ * Identify all the pairwise operators, using make_op so that behavior is
+ * the same as in the simple scalar case.
*/
opexprs = NIL;
forboth(l, largs, r, rargs)
@@ -1999,9 +1999,9 @@ make_row_comparison_op(ParseState *pstate, List *opname,
if (cmp->opresulttype != BOOLOID)
ereport(ERROR,
(errcode(ERRCODE_DATATYPE_MISMATCH),
- errmsg("row comparison operator must yield type boolean, "
- "not type %s",
- format_type_be(cmp->opresulttype)),
+ errmsg("row comparison operator must yield type boolean, "
+ "not type %s",
+ format_type_be(cmp->opresulttype)),
parser_errposition(pstate, location)));
if (expression_returns_set((Node *) cmp))
ereport(ERROR,
@@ -2012,16 +2012,16 @@ make_row_comparison_op(ParseState *pstate, List *opname,
}
/*
- * If rows are length 1, just return the single operator. In this
- * case we don't insist on identifying btree semantics for the operator
- * (but we still require it to return boolean).
+ * If rows are length 1, just return the single operator. In this case we
+ * don't insist on identifying btree semantics for the operator (but we
+ * still require it to return boolean).
*/
if (nopers == 1)
return (Node *) linitial(opexprs);
/*
* Now we must determine which row comparison semantics (= <> < <= > >=)
- * apply to this set of operators. We look for btree opclasses containing
+ * apply to this set of operators. We look for btree opclasses containing
* the operators, and see which interpretations (strategy numbers) exist
* for each operator.
*/
@@ -2031,14 +2031,15 @@ make_row_comparison_op(ParseState *pstate, List *opname,
i = 0;
foreach(l, opexprs)
{
- Bitmapset *this_strats;
+ Bitmapset *this_strats;
ListCell *j;
get_op_btree_interpretation(((OpExpr *) lfirst(l))->opno,
&opclass_lists[i], &opstrat_lists[i]);
+
/*
- * convert strategy number list to a Bitmapset to make the intersection
- * calculation easy.
+ * convert strategy number list to a Bitmapset to make the
+ * intersection calculation easy.
*/
this_strats = NULL;
foreach(j, opstrat_lists[i])
@@ -2074,21 +2075,21 @@ make_row_comparison_op(ParseState *pstate, List *opname,
/*
* Prefer the interpretation with the most default opclasses.
*/
- int best_defaults = 0;
- bool multiple_best = false;
- int this_rctype;
+ int best_defaults = 0;
+ bool multiple_best = false;
+ int this_rctype;
rctype = 0; /* keep compiler quiet */
while ((this_rctype = bms_first_member(strats)) >= 0)
{
- int ndefaults = 0;
+ int ndefaults = 0;
for (i = 0; i < nopers; i++)
{
forboth(l, opclass_lists[i], r, opstrat_lists[i])
{
- Oid opclass = lfirst_oid(l);
- int opstrat = lfirst_int(r);
+ Oid opclass = lfirst_oid(l);
+ int opstrat = lfirst_int(r);
if (opstrat == this_rctype &&
opclass_is_default(opclass))
@@ -2116,12 +2117,12 @@ make_row_comparison_op(ParseState *pstate, List *opname,
}
/*
- * For = and <> cases, we just combine the pairwise operators with
- * AND or OR respectively.
+ * For = and <> cases, we just combine the pairwise operators with AND or
+ * OR respectively.
*
* Note: this is presently the only place where the parser generates
- * BoolExpr with more than two arguments. Should be OK since the
- * rest of the system thinks BoolExpr is N-argument anyway.
+ * BoolExpr with more than two arguments. Should be OK since the rest of
+ * the system thinks BoolExpr is N-argument anyway.
*/
if (rctype == ROWCOMPARE_EQ)
return (Node *) makeBoolExpr(AND_EXPR, opexprs);
@@ -2129,20 +2130,20 @@ make_row_comparison_op(ParseState *pstate, List *opname,
return (Node *) makeBoolExpr(OR_EXPR, opexprs);
/*
- * Otherwise we need to determine exactly which opclass to associate
- * with each operator.
+ * Otherwise we need to determine exactly which opclass to associate with
+ * each operator.
*/
opclasses = NIL;
for (i = 0; i < nopers; i++)
{
- Oid best_opclass = 0;
- int ndefault = 0;
- int nmatch = 0;
+ Oid best_opclass = 0;
+ int ndefault = 0;
+ int nmatch = 0;
forboth(l, opclass_lists[i], r, opstrat_lists[i])
{
- Oid opclass = lfirst_oid(l);
- int opstrat = lfirst_int(r);
+ Oid opclass = lfirst_oid(l);
+ int opstrat = lfirst_int(r);
if (opstrat == rctype)
{
@@ -2161,7 +2162,7 @@ make_row_comparison_op(ParseState *pstate, List *opname,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("could not determine interpretation of row comparison operator %s",
strVal(llast(opname))),
- errdetail("There are multiple equally-plausible candidates."),
+ errdetail("There are multiple equally-plausible candidates."),
parser_errposition(pstate, location)));
}
@@ -2251,7 +2252,7 @@ make_distinct_op(ParseState *pstate, List *opname, Node *ltree, Node *rtree,
if (((OpExpr *) result)->opresulttype != BOOLOID)
ereport(ERROR,
(errcode(ERRCODE_DATATYPE_MISMATCH),
- errmsg("IS DISTINCT FROM requires = operator to yield boolean"),
+ errmsg("IS DISTINCT FROM requires = operator to yield boolean"),
parser_errposition(pstate, location)));
/*
diff --git a/src/backend/parser/parse_func.c b/src/backend/parser/parse_func.c
index b1b53164f8..a61099766b 100644
--- a/src/backend/parser/parse_func.c
+++ b/src/backend/parser/parse_func.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/parse_func.c,v 1.189 2006/07/27 19:52:05 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/parse_func.c,v 1.190 2006/10/04 00:29:55 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -36,7 +36,7 @@
static Node *ParseComplexProjection(ParseState *pstate, char *funcname,
Node *first_arg, int location);
static void unknown_attribute(ParseState *pstate, Node *relref, char *attname,
- int location);
+ int location);
/*
@@ -265,13 +265,13 @@ ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
/*
* Reject attempt to call a parameterless aggregate without (*)
- * syntax. This is mere pedantry but some folks insisted ...
+ * syntax. This is mere pedantry but some folks insisted ...
*/
if (fargs == NIL && !agg_star)
ereport(ERROR,
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
- errmsg("%s(*) must be used to call a parameterless aggregate function",
- NameListToString(funcname)),
+ errmsg("%s(*) must be used to call a parameterless aggregate function",
+ NameListToString(funcname)),
parser_errposition(pstate, location)));
/* parse_agg.c does additional aggregate-specific processing */
diff --git a/src/backend/parser/parse_node.c b/src/backend/parser/parse_node.c
index 9c1b58704e..8cad187550 100644
--- a/src/backend/parser/parse_node.c
+++ b/src/backend/parser/parse_node.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/parse_node.c,v 1.94 2006/08/02 01:59:47 joe Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/parse_node.c,v 1.95 2006/10/04 00:29:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -61,15 +61,15 @@ make_parsestate(ParseState *parentParseState)
* is a dummy (always 0, in fact).
*
* The locations stored in raw parsetrees are byte offsets into the source
- * string. We have to convert them to 1-based character indexes for reporting
- * to clients. (We do things this way to avoid unnecessary overhead in the
+ * string. We have to convert them to 1-based character indexes for reporting
+ * to clients. (We do things this way to avoid unnecessary overhead in the
* normal non-error case: computing character indexes would be much more
* expensive than storing token offsets.)
*/
int
parser_errposition(ParseState *pstate, int location)
{
- int pos;
+ int pos;
/* No-op if location was not provided */
if (location < 0)
diff --git a/src/backend/parser/parse_oper.c b/src/backend/parser/parse_oper.c
index be53472d04..d8ac0d0ff8 100644
--- a/src/backend/parser/parse_oper.c
+++ b/src/backend/parser/parse_oper.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/parse_oper.c,v 1.89 2006/07/14 14:52:22 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/parse_oper.c,v 1.90 2006/10/04 00:29:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -29,7 +29,7 @@
#include "utils/typcache.h"
-static Oid binary_oper_exact(List *opname, Oid arg1, Oid arg2);
+static Oid binary_oper_exact(List *opname, Oid arg1, Oid arg2);
static FuncDetailCode oper_select_candidate(int nargs,
Oid *input_typeids,
FuncCandidateList candidates,
@@ -37,8 +37,8 @@ static FuncDetailCode oper_select_candidate(int nargs,
static const char *op_signature_string(List *op, char oprkind,
Oid arg1, Oid arg2);
static void op_error(ParseState *pstate, List *op, char oprkind,
- Oid arg1, Oid arg2,
- FuncDetailCode fdresult, int location);
+ Oid arg1, Oid arg2,
+ FuncDetailCode fdresult, int location);
static Expr *make_op_expr(ParseState *pstate, Operator op,
Node *ltree, Node *rtree,
Oid ltypeId, Oid rtypeId);
@@ -701,10 +701,9 @@ left_oper(ParseState *pstate, List *op, Oid arg, bool noError, int location)
if (clist != NULL)
{
/*
- * The returned list has args in the form (0, oprright).
- * Move the useful data into args[0] to keep oper_select_candidate
- * simple. XXX we are assuming here that we may scribble on the
- * list!
+ * The returned list has args in the form (0, oprright). Move the
+ * useful data into args[0] to keep oper_select_candidate simple.
+ * XXX we are assuming here that we may scribble on the list!
*/
FuncCandidateList clisti;
@@ -872,7 +871,7 @@ make_scalar_array_op(ParseState *pstate, List *opname,
if (!OidIsValid(rtypeId))
ereport(ERROR,
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
- errmsg("op ANY/ALL (array) requires array on right side"),
+ errmsg("op ANY/ALL (array) requires array on right side"),
parser_errposition(pstate, location)));
}
@@ -902,12 +901,12 @@ make_scalar_array_op(ParseState *pstate, List *opname,
if (rettype != BOOLOID)
ereport(ERROR,
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
- errmsg("op ANY/ALL (array) requires operator to yield boolean"),
+ errmsg("op ANY/ALL (array) requires operator to yield boolean"),
parser_errposition(pstate, location)));
if (get_func_retset(opform->oprcode))
ereport(ERROR,
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
- errmsg("op ANY/ALL (array) requires operator not to return a set"),
+ errmsg("op ANY/ALL (array) requires operator not to return a set"),
parser_errposition(pstate, location)));
/*
diff --git a/src/backend/parser/parse_relation.c b/src/backend/parser/parse_relation.c
index e9896be634..75d5a50702 100644
--- a/src/backend/parser/parse_relation.c
+++ b/src/backend/parser/parse_relation.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/parse_relation.c,v 1.124 2006/08/02 01:59:47 joe Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/parse_relation.c,v 1.125 2006/10/04 00:29:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -48,7 +48,7 @@ static void expandTupleDesc(TupleDesc tupdesc, Alias *eref,
List **colnames, List **colvars);
static int specialAttNum(const char *attname);
static void warnAutoRange(ParseState *pstate, RangeVar *relation,
- int location);
+ int location);
/*
@@ -970,7 +970,7 @@ addRangeTableEntryForValues(ParseState *pstate,
numaliases = list_length(eref->colnames);
while (numaliases < numcolumns)
{
- char attrname[64];
+ char attrname[64];
numaliases++;
snprintf(attrname, sizeof(attrname), "column%d", numaliases);
@@ -1146,6 +1146,7 @@ addImplicitRTE(ParseState *pstate, RangeVar *relation, int location)
/* issue warning or error as needed */
warnAutoRange(pstate, relation, location);
+
/*
* Note that we set inFromCl true, so that the RTE will be listed
* explicitly if the parsetree is ever decompiled by ruleutils.c. This
@@ -1311,7 +1312,7 @@ expandRTE(RangeTblEntry *rte, int rtindex, int sublevels_up,
varattno = 0;
foreach(lc, (List *) linitial(rte->values_lists))
{
- Node *col = (Node *) lfirst(lc);
+ Node *col = (Node *) lfirst(lc);
varattno++;
if (colnames)
@@ -1676,13 +1677,13 @@ get_rte_attribute_type(RangeTblEntry *rte, AttrNumber attnum,
case RTE_VALUES:
{
/* Values RTE --- get type info from first sublist */
- List *collist = (List *) linitial(rte->values_lists);
+ List *collist = (List *) linitial(rte->values_lists);
Node *col;
if (attnum < 1 || attnum > list_length(collist))
elog(ERROR, "values list %s does not have attribute %d",
rte->eref->aliasname, attnum);
- col = (Node *) list_nth(collist, attnum-1);
+ col = (Node *) list_nth(collist, attnum - 1);
*vartype = exprType(col);
*vartypmod = exprTypmod(col);
}
@@ -1963,15 +1964,15 @@ warnAutoRange(ParseState *pstate, RangeVar *relation, int location)
/*
* Check to see if there are any potential matches in the query's
- * rangetable. This affects the message we provide.
+ * rangetable. This affects the message we provide.
*/
rte = searchRangeTable(pstate, relation);
/*
- * If we found a match that has an alias and the alias is visible in
- * the namespace, then the problem is probably use of the relation's
- * real name instead of its alias, ie "SELECT foo.* FROM foo f".
- * This mistake is common enough to justify a specific hint.
+ * If we found a match that has an alias and the alias is visible in the
+ * namespace, then the problem is probably use of the relation's real name
+ * instead of its alias, ie "SELECT foo.* FROM foo f". This mistake is
+ * common enough to justify a specific hint.
*
* If we found a match that doesn't meet those criteria, assume the
* problem is illegal use of a relation outside its scope, as in the
@@ -1988,11 +1989,11 @@ warnAutoRange(ParseState *pstate, RangeVar *relation, int location)
if (rte)
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_TABLE),
- errmsg("invalid reference to FROM-clause entry for table \"%s\"",
- relation->relname),
+ errmsg("invalid reference to FROM-clause entry for table \"%s\"",
+ relation->relname),
(badAlias ?
- errhint("Perhaps you meant to reference the table alias \"%s\".",
- badAlias) :
+ errhint("Perhaps you meant to reference the table alias \"%s\".",
+ badAlias) :
errhint("There is an entry for table \"%s\", but it cannot be referenced from this part of the query.",
rte->eref->aliasname)),
parser_errposition(pstate, location)));
@@ -2000,8 +2001,8 @@ warnAutoRange(ParseState *pstate, RangeVar *relation, int location)
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_TABLE),
(pstate->parentParseState ?
- errmsg("missing FROM-clause entry in subquery for table \"%s\"",
- relation->relname) :
+ errmsg("missing FROM-clause entry in subquery for table \"%s\"",
+ relation->relname) :
errmsg("missing FROM-clause entry for table \"%s\"",
relation->relname)),
parser_errposition(pstate, location)));
@@ -2017,8 +2018,8 @@ warnAutoRange(ParseState *pstate, RangeVar *relation, int location)
errmsg("adding missing FROM-clause entry for table \"%s\"",
relation->relname)),
(badAlias ?
- errhint("Perhaps you meant to reference the table alias \"%s\".",
- badAlias) :
+ errhint("Perhaps you meant to reference the table alias \"%s\".",
+ badAlias) :
(rte ?
errhint("There is an entry for table \"%s\", but it cannot be referenced from this part of the query.",
rte->eref->aliasname) : 0)),
diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c
index 961e320543..bb4b065eeb 100644
--- a/src/backend/parser/parse_target.c
+++ b/src/backend/parser/parse_target.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/parse_target.c,v 1.148 2006/08/14 23:39:32 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/parse_target.c,v 1.149 2006/10/04 00:29:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -161,7 +161,7 @@ transformTargetList(ParseState *pstate, List *targetlist)
* This is the identical transformation to transformTargetList, except that
* the input list elements are bare expressions without ResTarget decoration,
* and the output elements are likewise just expressions without TargetEntry
- * decoration. We use this for ROW() and VALUES() constructs.
+ * decoration. We use this for ROW() and VALUES() constructs.
*/
List *
transformExpressionList(ParseState *pstate, List *exprlist)
@@ -436,7 +436,7 @@ transformAssignedExpr(ParseState *pstate,
colname,
format_type_be(attrtype),
format_type_be(type_id)),
- errhint("You will need to rewrite or cast the expression."),
+ errhint("You will need to rewrite or cast the expression."),
parser_errposition(pstate, location)));
}
@@ -446,7 +446,7 @@ transformAssignedExpr(ParseState *pstate,
/*
* updateTargetListEntry()
- * This is used in UPDATE statements only. It prepares an UPDATE
+ * This is used in UPDATE statements only. It prepares an UPDATE
* TargetEntry for assignment to a column of the target table.
* This includes coercing the given value to the target column's type
* (if necessary), and dealing with any subfield names or subscripts
@@ -687,7 +687,7 @@ transformAssignmentIndirection(ParseState *pstate,
targetName,
format_type_be(targetTypeId),
format_type_be(exprType(rhs))),
- errhint("You will need to rewrite or cast the expression."),
+ errhint("You will need to rewrite or cast the expression."),
parser_errposition(pstate, location)));
else
ereport(ERROR,
@@ -697,7 +697,7 @@ transformAssignmentIndirection(ParseState *pstate,
targetName,
format_type_be(targetTypeId),
format_type_be(exprType(rhs))),
- errhint("You will need to rewrite or cast the expression."),
+ errhint("You will need to rewrite or cast the expression."),
parser_errposition(pstate, location)));
}
@@ -761,9 +761,9 @@ checkInsertTargets(ParseState *pstate, List *cols, List **attrnos)
if (attrno == InvalidAttrNumber)
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_COLUMN),
- errmsg("column \"%s\" of relation \"%s\" does not exist",
- name,
- RelationGetRelationName(pstate->p_target_relation)),
+ errmsg("column \"%s\" of relation \"%s\" does not exist",
+ name,
+ RelationGetRelationName(pstate->p_target_relation)),
parser_errposition(pstate, col->location)));
/*
@@ -825,8 +825,8 @@ ExpandColumnRefStar(ParseState *pstate, ColumnRef *cref,
*
* (e.g., SELECT * FROM emp, dept)
*
- * Since the grammar only accepts bare '*' at top level of SELECT,
- * we need not handle the targetlist==false case here.
+ * Since the grammar only accepts bare '*' at top level of SELECT, we
+ * need not handle the targetlist==false case here.
*/
Assert(targetlist);
@@ -898,7 +898,7 @@ ExpandColumnRefStar(ParseState *pstate, ColumnRef *cref,
return expandRelAttrs(pstate, rte, rtindex, sublevels_up);
else
{
- List *vars;
+ List *vars;
expandRTE(rte, rtindex, sublevels_up, false,
NULL, &vars);
@@ -1114,8 +1114,8 @@ expandRecordVariable(ParseState *pstate, Var *var, int levelsup)
/*
* This case should not occur: a column of a table or values list
- * shouldn't have type RECORD. Fall through and fail
- * (most likely) at the bottom.
+ * shouldn't have type RECORD. Fall through and fail (most
+ * likely) at the bottom.
*/
break;
case RTE_SUBQUERY:
diff --git a/src/backend/parser/parse_type.c b/src/backend/parser/parse_type.c
index 45666d8880..93c7db6b52 100644
--- a/src/backend/parser/parse_type.c
+++ b/src/backend/parser/parse_type.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/parse_type.c,v 1.84 2006/09/25 15:17:34 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/parse_type.c,v 1.85 2006/10/04 00:29:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -210,7 +210,7 @@ TypeNameListToString(List *typenames)
initStringInfo(&string);
foreach(l, typenames)
{
- TypeName *typename = (TypeName *) lfirst(l);
+ TypeName *typename = (TypeName *) lfirst(l);
Assert(IsA(typename, TypeName));
if (l != list_head(typenames))
@@ -358,7 +358,7 @@ typeTypeRelid(Type typ)
/*
* Given a type structure and a string, returns the internal representation
- * of that string. The "string" can be NULL to perform conversion of a NULL
+ * of that string. The "string" can be NULL to perform conversion of a NULL
* (which might result in failure, if the input function rejects NULLs).
*/
Datum
diff --git a/src/backend/parser/parser.c b/src/backend/parser/parser.c
index 7f1c926f67..674d4d497c 100644
--- a/src/backend/parser/parser.c
+++ b/src/backend/parser/parser.c
@@ -14,7 +14,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/parser.c,v 1.67 2006/07/15 03:35:21 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/parser.c,v 1.68 2006/10/04 00:29:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -64,7 +64,7 @@ raw_parser(const char *str)
* Intermediate filter between parser and base lexer (base_yylex in scan.l).
*
* The filter is needed because in some cases the standard SQL grammar
- * requires more than one token lookahead. We reduce these cases to one-token
+ * requires more than one token lookahead. We reduce these cases to one-token
* lookahead by combining tokens here, in order to keep the grammar LALR(1).
*
* Using a filter is simpler than trying to recognize multiword tokens
@@ -91,15 +91,16 @@ filtered_base_yylex(void)
switch (cur_token)
{
case WITH:
+
/*
* WITH CASCADED, LOCAL, or CHECK must be reduced to one token
*
- * XXX an alternative way is to recognize just WITH_TIME and
- * put the ugliness into the datetime datatype productions
- * instead of WITH CHECK OPTION. However that requires promoting
- * WITH to a fully reserved word. If we ever have to do that
- * anyway (perhaps for SQL99 recursive queries), come back and
- * simplify this code.
+ * XXX an alternative way is to recognize just WITH_TIME and put
+ * the ugliness into the datetime datatype productions instead of
+ * WITH CHECK OPTION. However that requires promoting WITH to a
+ * fully reserved word. If we ever have to do that anyway
+ * (perhaps for SQL99 recursive queries), come back and simplify
+ * this code.
*/
lookahead_token = base_yylex();
switch (lookahead_token)
diff --git a/src/backend/port/win32/socket.c b/src/backend/port/win32/socket.c
index 1b69e32d8e..47bb0d9cb8 100644
--- a/src/backend/port/win32/socket.c
+++ b/src/backend/port/win32/socket.c
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/port/win32/socket.c,v 1.12 2006/07/29 19:55:18 adunstan Exp $
+ * $PostgreSQL: pgsql/src/backend/port/win32/socket.c,v 1.13 2006/10/04 00:29:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -123,7 +123,7 @@ pgwin32_waitforsinglesocket(SOCKET s, int what)
(errmsg_internal("Failed to reset socket waiting event: %i", (int) GetLastError())));
/*
- * make sure we don't multiplex this kernel event object with a different
+ * make sure we don't multiplex this kernel event object with a different
* socket from a previous call
*/
diff --git a/src/backend/port/win32/timer.c b/src/backend/port/win32/timer.c
index 384ca9d451..5a764053f8 100644
--- a/src/backend/port/win32/timer.c
+++ b/src/backend/port/win32/timer.c
@@ -11,7 +11,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/port/win32/timer.c,v 1.12 2006/08/09 21:18:13 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/port/win32/timer.c,v 1.13 2006/10/04 00:29:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -59,7 +59,7 @@ pg_timer_thread(LPVOID param)
{
/* WaitForSingleObjectEx() uses milliseconds, round up */
waittime = (timerCommArea.value.it_value.tv_usec + 999) / 1000 +
- timerCommArea.value.it_value.tv_sec * 1000;
+ timerCommArea.value.it_value.tv_sec * 1000;
}
ResetEvent(timerCommArea.event);
LeaveCriticalSection(&timerCommArea.crit_sec);
@@ -85,7 +85,7 @@ pg_timer_thread(LPVOID param)
* to handle the timer setting and notification upon timeout.
*/
int
-setitimer(int which, const struct itimerval *value, struct itimerval *ovalue)
+setitimer(int which, const struct itimerval * value, struct itimerval * ovalue)
{
Assert(value != NULL);
Assert(value->it_interval.tv_sec == 0 && value->it_interval.tv_usec == 0);
diff --git a/src/backend/port/win32_sema.c b/src/backend/port/win32_sema.c
index 3af18df634..0d99a9a0f5 100644
--- a/src/backend/port/win32_sema.c
+++ b/src/backend/port/win32_sema.c
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/port/win32_sema.c,v 1.2 2006/07/16 02:44:01 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/port/win32_sema.c,v 1.3 2006/10/04 00:29:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -32,9 +32,10 @@ static void ReleaseSemaphores(int code, Datum arg);
* so the semaphores are automatically freed when the last referencing
* process exits.
*/
-void PGReserveSemaphores(int maxSemas, int port)
+void
+PGReserveSemaphores(int maxSemas, int port)
{
- mySemSet = (HANDLE *)malloc(maxSemas * sizeof(HANDLE));
+ mySemSet = (HANDLE *) malloc(maxSemas * sizeof(HANDLE));
if (mySemSet == NULL)
elog(PANIC, "out of memory");
numSems = 0;
@@ -63,7 +64,8 @@ ReleaseSemaphores(int code, Datum arg)
*
* Initialize a PGSemaphore structure to represent a sema with count 1
*/
-void PGSemaphoreCreate(PGSemaphore sema)
+void
+PGSemaphoreCreate(PGSemaphore sema)
{
HANDLE cur_handle;
SECURITY_ATTRIBUTES sec_attrs;
@@ -89,7 +91,7 @@ void PGSemaphoreCreate(PGSemaphore sema)
}
else
ereport(PANIC,
- (errmsg("could not create semaphore: error code %d", (int)GetLastError())));
+ (errmsg("could not create semaphore: error code %d", (int) GetLastError())));
}
/*
@@ -97,7 +99,8 @@ void PGSemaphoreCreate(PGSemaphore sema)
*
* Reset a previously-initialized PGSemaphore to have count 0
*/
-void PGSemaphoreReset(PGSemaphore sema)
+void
+PGSemaphoreReset(PGSemaphore sema)
{
/*
* There's no direct API for this in Win32, so we have to ratchet the
@@ -112,7 +115,8 @@ void PGSemaphoreReset(PGSemaphore sema)
* Lock a semaphore (decrement count), blocking if count would be < 0.
* Serve the interrupt if interruptOK is true.
*/
-void PGSemaphoreLock(PGSemaphore sema, bool interruptOK)
+void
+PGSemaphoreLock(PGSemaphore sema, bool interruptOK)
{
DWORD ret;
HANDLE wh[2];
@@ -156,7 +160,8 @@ void PGSemaphoreLock(PGSemaphore sema, bool interruptOK)
*
* Unlock a semaphore (increment count)
*/
-void PGSemaphoreUnlock(PGSemaphore sema)
+void
+PGSemaphoreUnlock(PGSemaphore sema)
{
if (!ReleaseSemaphore(*sema, 1, NULL))
ereport(FATAL,
@@ -168,7 +173,8 @@ void PGSemaphoreUnlock(PGSemaphore sema)
*
* Lock a semaphore only if able to do so without blocking
*/
-bool PGSemaphoreTryLock(PGSemaphore sema)
+bool
+PGSemaphoreTryLock(PGSemaphore sema)
{
DWORD ret;
@@ -189,7 +195,7 @@ bool PGSemaphoreTryLock(PGSemaphore sema)
/* Otherwise we are in trouble */
ereport(FATAL,
(errmsg("could not try-lock semaphore: error code %d", (int) GetLastError())));
-
+
/* keep compiler quiet */
return false;
}
diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c
index 25a19b2b24..2ba12c2f9e 100644
--- a/src/backend/postmaster/autovacuum.c
+++ b/src/backend/postmaster/autovacuum.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/postmaster/autovacuum.c,v 1.26 2006/07/31 20:09:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/postmaster/autovacuum.c,v 1.27 2006/10/04 00:29:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -269,10 +269,10 @@ AutoVacMain(int argc, char *argv[])
BaseInit();
/*
- * Create a per-backend PGPROC struct in shared memory, except in
- * the EXEC_BACKEND case where this was done in SubPostmasterMain.
- * We must do this before we can use LWLocks (and in the EXEC_BACKEND
- * case we already had to do some stuff with LWLocks).
+ * Create a per-backend PGPROC struct in shared memory, except in the
+ * EXEC_BACKEND case where this was done in SubPostmasterMain. We must do
+ * this before we can use LWLocks (and in the EXEC_BACKEND case we already
+ * had to do some stuff with LWLocks).
*/
#ifndef EXEC_BACKEND
InitProcess();
@@ -305,9 +305,9 @@ AutoVacMain(int argc, char *argv[])
PG_SETMASK(&UnBlockSig);
/*
- * Force zero_damaged_pages OFF in the autovac process, even if it is
- * set in postgresql.conf. We don't really want such a dangerous option
- * being applied non-interactively.
+ * Force zero_damaged_pages OFF in the autovac process, even if it is set
+ * in postgresql.conf. We don't really want such a dangerous option being
+ * applied non-interactively.
*/
SetConfigOption("zero_damaged_pages", "false", PGC_SUSET, PGC_S_OVERRIDE);
@@ -387,8 +387,8 @@ AutoVacMain(int argc, char *argv[])
}
/*
- * Otherwise, skip a database with no pgstat entry; it means it hasn't
- * seen any activity.
+ * Otherwise, skip a database with no pgstat entry; it means it
+ * hasn't seen any activity.
*/
tmp->entry = pgstat_fetch_stat_dbentry(tmp->oid);
if (!tmp->entry)
@@ -409,7 +409,7 @@ AutoVacMain(int argc, char *argv[])
* backend signalled the postmaster. Pick up the database with the
* greatest age, and apply a database-wide vacuum on it.
*/
- int32 oldest = 0;
+ int32 oldest = 0;
whole_db = true;
foreach(cell, dblist)
@@ -535,7 +535,7 @@ process_whole_db(void)
/* Start a transaction so our commands have one to play into. */
StartTransactionCommand();
- /* functions in indexes may want a snapshot set */
+ /* functions in indexes may want a snapshot set */
ActiveSnapshot = CopySnapshot(GetTransactionSnapshot());
/*
@@ -593,13 +593,13 @@ do_autovacuum(PgStat_StatDBEntry *dbentry)
/* Start a transaction so our commands have one to play into. */
StartTransactionCommand();
- /* functions in indexes may want a snapshot set */
+ /* functions in indexes may want a snapshot set */
ActiveSnapshot = CopySnapshot(GetTransactionSnapshot());
/*
- * Clean up any dead statistics collector entries for this DB.
- * We always want to do this exactly once per DB-processing cycle,
- * even if we find nothing worth vacuuming in the database.
+ * Clean up any dead statistics collector entries for this DB. We always
+ * want to do this exactly once per DB-processing cycle, even if we find
+ * nothing worth vacuuming in the database.
*/
pgstat_vacuum_tabstat();
@@ -948,7 +948,7 @@ autovacuum_do_vac_analyze(List *relids, bool dovacuum, bool doanalyze,
/*
* autovac_report_activity
- * Report to pgstat what autovacuum is doing
+ * Report to pgstat what autovacuum is doing
*
* We send a SQL string corresponding to what the user would see if the
* equivalent command was to be issued manually.
@@ -989,13 +989,13 @@ autovac_report_activity(VacuumStmt *vacstmt, List *relids)
char *nspname = get_namespace_name(get_rel_namespace(relid));
/*
- * 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)
{
- int len = strlen(activity);
+ int len = strlen(activity);
snprintf(activity + len, MAX_AUTOVAC_ACTIV_LEN - len,
" %s.%s", nspname, relname);
diff --git a/src/backend/postmaster/bgwriter.c b/src/backend/postmaster/bgwriter.c
index 679b8a5c72..69a6734bc5 100644
--- a/src/backend/postmaster/bgwriter.c
+++ b/src/backend/postmaster/bgwriter.c
@@ -37,7 +37,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/postmaster/bgwriter.c,v 1.27 2006/08/17 23:04:06 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/postmaster/bgwriter.c,v 1.28 2006/10/04 00:29:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -207,14 +207,13 @@ BackgroundWriterMain(void)
#endif
/*
- * Initialize so that first time-driven event happens at the correct
- * time.
+ * Initialize so that first time-driven event happens at the correct time.
*/
last_checkpoint_time = last_xlog_switch_time = time(NULL);
/*
- * Create a resource owner to keep track of our resources (currently
- * only buffer pins).
+ * Create a resource owner to keep track of our resources (currently only
+ * buffer pins).
*/
CurrentResourceOwner = ResourceOwnerCreate(NULL, "Background Writer");
@@ -406,17 +405,17 @@ BackgroundWriterMain(void)
BgBufferSync();
/*
- * Check for archive_timeout, if so, switch xlog files. First
- * we do a quick check using possibly-stale local state.
+ * Check for archive_timeout, if so, switch xlog files. First we do a
+ * quick check using possibly-stale local state.
*/
if (XLogArchiveTimeout > 0 &&
(int) (now - last_xlog_switch_time) >= XLogArchiveTimeout)
{
/*
- * 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*.
*/
- time_t last_time = GetLastSegSwitchTime();
+ time_t last_time = GetLastSegSwitchTime();
last_xlog_switch_time = Max(last_xlog_switch_time, last_time);
@@ -427,7 +426,7 @@ BackgroundWriterMain(void)
/* Now we can do the real check */
if ((int) (now - last_xlog_switch_time) >= XLogArchiveTimeout)
{
- XLogRecPtr switchpoint;
+ XLogRecPtr switchpoint;
/* OK, it's time to switch */
switchpoint = RequestXLogSwitch();
@@ -440,9 +439,10 @@ BackgroundWriterMain(void)
ereport(DEBUG1,
(errmsg("xlog 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;
}
@@ -463,9 +463,9 @@ BackgroundWriterMain(void)
(bgwriter_lru_percent > 0.0 && bgwriter_lru_maxpages > 0))
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)
{
diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c
index 715de0071c..db4a57b017 100644
--- a/src/backend/postmaster/pgstat.c
+++ b/src/backend/postmaster/pgstat.c
@@ -13,7 +13,7 @@
*
* Copyright (c) 2001-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.138 2006/08/28 19:38:09 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.139 2006/10/04 00:29:56 momjian Exp $
* ----------
*/
#include "postgres.h"
@@ -136,8 +136,8 @@ static TransactionId pgStatLocalStatusXact = InvalidTransactionId;
static PgBackendStatus *localBackendStatusTable = NULL;
static int localNumBackends = 0;
-static volatile bool need_exit = false;
-static volatile bool need_statwrite = false;
+static volatile bool need_exit = false;
+static volatile bool need_statwrite = false;
/* ----------
@@ -199,13 +199,13 @@ pgstat_init(void)
char test_byte;
int sel_res;
int tries = 0;
-
+
#define TESTBYTEVAL ((char) 199)
/*
* Force start of collector daemon if something to collect. Note that
- * pgstat_collect_querystring is now an independent facility that does
- * not require the collector daemon.
+ * pgstat_collect_querystring is now an independent facility that does not
+ * require the collector daemon.
*/
if (pgstat_collect_tuplelevel ||
pgstat_collect_blocklevel)
@@ -262,8 +262,8 @@ pgstat_init(void)
if (++tries > 1)
ereport(LOG,
- (errmsg("trying another address for the statistics collector")));
-
+ (errmsg("trying another address for the statistics collector")));
+
/*
* Create the socket.
*/
@@ -479,7 +479,6 @@ pgstat_forkexec(void)
return postmaster_forkexec(ac, av);
}
-
#endif /* EXEC_BACKEND */
@@ -823,7 +822,7 @@ pgstat_drop_relation(Oid relid)
msg.m_tableid[0] = relid;
msg.m_nentries = 1;
- len = offsetof(PgStat_MsgTabpurge, m_tableid[0]) + sizeof(Oid);
+ len = offsetof(PgStat_MsgTabpurge, m_tableid[0]) +sizeof(Oid);
pgstat_setheader(&msg.m_hdr, PGSTAT_MTYPE_TABPURGE);
msg.m_databaseid = MyDatabaseId;
@@ -900,7 +899,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 = IsAutoVacuumProcess(); /* is this autovacuum? */
+ msg.m_autovacuum = IsAutoVacuumProcess(); /* is this autovacuum? */
msg.m_vacuumtime = GetCurrentTimestamp();
msg.m_tuples = tuples;
pgstat_send(&msg, sizeof(msg));
@@ -925,7 +924,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 = IsAutoVacuumProcess(); /* is this autovacuum? */
+ msg.m_autovacuum = IsAutoVacuumProcess(); /* is this autovacuum? */
msg.m_analyzetime = GetCurrentTimestamp();
msg.m_live_tuples = livetuples;
msg.m_dead_tuples = deadtuples;
@@ -1079,8 +1078,8 @@ pgstat_initstats(PgStat_Info *stats, Relation rel)
void
pgstat_count_xact_commit(void)
{
- if (!pgstat_collect_tuplelevel &&
- !pgstat_collect_blocklevel)
+ if (!pgstat_collect_tuplelevel &&
+ !pgstat_collect_blocklevel)
return;
pgStatXactCommit++;
@@ -1110,8 +1109,8 @@ pgstat_count_xact_commit(void)
void
pgstat_count_xact_rollback(void)
{
- if (!pgstat_collect_tuplelevel &&
- !pgstat_collect_blocklevel)
+ if (!pgstat_collect_tuplelevel &&
+ !pgstat_collect_blocklevel)
return;
pgStatXactRollback++;
@@ -1319,8 +1318,8 @@ pgstat_bestart(void)
MyBEEntry = &BackendStatusArray[MyBackendId - 1];
/*
- * To minimize the time spent modifying the entry, fetch all the
- * needed data first.
+ * To minimize the time spent modifying the 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).
@@ -1343,12 +1342,13 @@ pgstat_bestart(void)
/*
* Initialize my status entry, following the protocol of bumping
- * st_changecount before and after; and make sure it's even afterwards.
- * We use a volatile pointer here to ensure the compiler doesn't try to
- * get cute.
+ * st_changecount before and after; and make sure it's even afterwards. We
+ * use a volatile pointer here to ensure the compiler doesn't try to get
+ * cute.
*/
beentry = MyBEEntry;
- do {
+ do
+ {
beentry->st_changecount++;
} while ((beentry->st_changecount & 1) == 0);
@@ -1389,9 +1389,9 @@ pgstat_beshutdown_hook(int code, Datum arg)
pgstat_report_tabstat();
/*
- * Clear 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.
+ * Clear 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.
*/
beentry->st_changecount++;
@@ -1420,8 +1420,8 @@ pgstat_report_activity(const char *cmd_str)
return;
/*
- * To minimize the time spent modifying the entry, fetch all the
- * needed data first.
+ * To minimize the time spent modifying the entry, fetch all the needed
+ * data first.
*/
start_timestamp = GetCurrentStatementStartTimestamp();
@@ -1430,8 +1430,8 @@ pgstat_report_activity(const char *cmd_str)
/*
* 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++;
@@ -1499,20 +1499,19 @@ pgstat_read_current_status(void)
for (i = 1; i <= MaxBackends; i++)
{
/*
- * Follow the protocol of retrying if st_changecount changes while
- * we copy the entry, or if it's odd. (The check for odd is needed
- * to cover the case where we are able to completely copy the entry
- * while the source backend is between increment steps.) We use a
- * volatile pointer here to ensure the compiler doesn't try to get
- * cute.
+ * Follow the protocol of retrying if st_changecount changes while we
+ * copy the entry, or if it's odd. (The check for odd is needed to
+ * cover the case where we are able to completely copy the entry while
+ * the source backend is between increment steps.) We use a volatile
+ * pointer here to ensure the compiler doesn't try to get cute.
*/
for (;;)
{
- int save_changecount = beentry->st_changecount;
+ int save_changecount = beentry->st_changecount;
/*
- * XXX if PGBE_ACTIVITY_SIZE is really large, it might be best
- * to use strcpy not memcpy for copying the activity string?
+ * XXX if PGBE_ACTIVITY_SIZE is really large, it might be best to
+ * use strcpy not memcpy for copying the activity string?
*/
memcpy(localentry, (char *) beentry, sizeof(PgBackendStatus));
@@ -1589,7 +1588,7 @@ pgstat_send(void *msg, int len)
/* ----------
* PgstatCollectorMain() -
*
- * Start up the statistics collector process. This is the body of the
+ * Start up the statistics collector process. This is the body of the
* postmaster child process.
*
* The argc/argv parameters are valid only in EXEC_BACKEND case.
@@ -1602,6 +1601,7 @@ PgstatCollectorMain(int argc, char *argv[])
bool need_timer = false;
int len;
PgStat_Msg msg;
+
#ifdef HAVE_POLL
struct pollfd input_fd;
#else
@@ -1655,8 +1655,8 @@ PgstatCollectorMain(int argc, char *argv[])
pgstat_read_statsfile(&pgStatDBHash, InvalidOid);
/*
- * Setup the descriptor set for select(2). Since only one bit in the
- * set ever changes, we need not repeat FD_ZERO each time.
+ * Setup the descriptor set for select(2). Since only one bit in the set
+ * ever changes, we need not repeat FD_ZERO each time.
*/
#ifndef HAVE_POLL
FD_ZERO(&rfds);
@@ -1666,13 +1666,13 @@ PgstatCollectorMain(int argc, char *argv[])
* Loop to process messages until we get SIGQUIT or detect ungraceful
* death of our parent postmaster.
*
- * For performance reasons, we don't want to do a PostmasterIsAlive()
- * test after every message; instead, do it at statwrite time and if
+ * For performance reasons, we don't want to do a PostmasterIsAlive() test
+ * after every message; instead, do it at statwrite time and if
* select()/poll() is interrupted by timeout.
*/
for (;;)
{
- int got_data;
+ int got_data;
/*
* Quit if we get SIGQUIT from the postmaster.
@@ -1681,7 +1681,7 @@ PgstatCollectorMain(int argc, char *argv[])
break;
/*
- * If time to write the stats file, do so. Note that the alarm
+ * If time to write the stats file, do so. Note that the alarm
* interrupt isn't re-enabled immediately, but only after we next
* receive a stats message; so no cycles are wasted when there is
* nothing going on.
@@ -1701,9 +1701,9 @@ PgstatCollectorMain(int argc, char *argv[])
* Wait for a message to arrive; but not for more than
* PGSTAT_SELECT_TIMEOUT seconds. (This determines how quickly we will
* shut down after an ungraceful postmaster termination; so it needn't
- * be very fast. However, on some systems SIGQUIT won't interrupt
- * the poll/select call, so this also limits speed of response to
- * SIGQUIT, which is more important.)
+ * be very fast. However, on some systems SIGQUIT won't interrupt the
+ * 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)
*/
@@ -1722,7 +1722,6 @@ PgstatCollectorMain(int argc, char *argv[])
}
got_data = (input_fd.revents != 0);
-
#else /* !HAVE_POLL */
FD_SET(pgStatSock, &rfds);
@@ -1744,7 +1743,6 @@ PgstatCollectorMain(int argc, char *argv[])
}
got_data = FD_ISSET(pgStatSock, &rfds);
-
#endif /* HAVE_POLL */
/*
@@ -1826,20 +1824,20 @@ PgstatCollectorMain(int argc, char *argv[])
{
if (setitimer(ITIMER_REAL, &write_timeout, NULL))
ereport(ERROR,
- (errmsg("could not set statistics collector timer: %m")));
+ (errmsg("could not set statistics collector timer: %m")));
need_timer = false;
}
}
else
{
/*
- * We can only get here if the select/poll timeout elapsed.
- * Check for postmaster death.
+ * We can only get here if the select/poll timeout elapsed. Check
+ * for postmaster death.
*/
if (!PostmasterIsAlive(true))
break;
}
- } /* end of message-processing loop */
+ } /* end of message-processing loop */
/*
* Save the final stats to reuse at next startup.
@@ -1953,9 +1951,9 @@ pgstat_write_statsfile(void)
while ((dbentry = (PgStat_StatDBEntry *) hash_seq_search(&hstat)) != NULL)
{
/*
- * Write out the DB entry including the number of live backends.
- * We don't write the tables pointer since it's of no use to any
- * other process.
+ * Write out the DB entry including the number of live backends. We
+ * don't write the tables pointer since it's of no use to any other
+ * process.
*/
fputc('D', fpout);
fwrite(dbentry, offsetof(PgStat_StatDBEntry, tables), 1, fpout);
@@ -1987,8 +1985,8 @@ pgstat_write_statsfile(void)
{
ereport(LOG,
(errcode_for_file_access(),
- errmsg("could not write temporary statistics file \"%s\": %m",
- PGSTAT_STAT_TMPFILE)));
+ errmsg("could not write temporary statistics file \"%s\": %m",
+ PGSTAT_STAT_TMPFILE)));
fclose(fpout);
unlink(PGSTAT_STAT_TMPFILE);
}
@@ -2491,10 +2489,10 @@ pgstat_recv_vacuum(PgStat_MsgVacuum *msg, int len)
if (tabentry == NULL)
return;
- if (msg->m_autovacuum)
+ if (msg->m_autovacuum)
tabentry->autovac_vacuum_timestamp = msg->m_vacuumtime;
- else
- tabentry->vacuum_timestamp = msg->m_vacuumtime;
+ else
+ tabentry->vacuum_timestamp = msg->m_vacuumtime;
tabentry->n_live_tuples = msg->m_tuples;
tabentry->n_dead_tuples = 0;
if (msg->m_analyze)
@@ -2539,9 +2537,9 @@ pgstat_recv_analyze(PgStat_MsgAnalyze *msg, int len)
if (tabentry == NULL)
return;
- if (msg->m_autovacuum)
+ if (msg->m_autovacuum)
tabentry->autovac_analyze_timestamp = msg->m_analyzetime;
- else
+ else
tabentry->analyze_timestamp = msg->m_analyzetime;
tabentry->n_live_tuples = msg->m_live_tuples;
tabentry->n_dead_tuples = msg->m_dead_tuples;
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 130415c74c..ed4de72698 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -37,7 +37,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.499 2006/08/15 18:26:58 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.500 2006/10/04 00:29:56 momjian Exp $
*
* NOTES
*
@@ -141,9 +141,9 @@ typedef struct bkend
static Dllist *BackendList;
#ifdef EXEC_BACKEND
-/*
+/*
* Number of entries in the backend table. Twice the number of backends,
- * plus four other subprocesses (stats, bgwriter, autovac, logger).
+ * plus four other subprocesses (stats, bgwriter, autovac, logger).
*/
#define NUM_BACKENDARRAY_ELEMS (2*MaxBackends + 4)
static Backend *ShmemBackendArray;
@@ -510,6 +510,7 @@ PostmasterMain(int argc, char *argv[])
break;
case 'T':
+
/*
* In the event that some backend dumps core, send SIGSTOP,
* rather than SIGQUIT, to all its peers. This lets the wily
@@ -519,21 +520,21 @@ PostmasterMain(int argc, char *argv[])
break;
case 't':
- {
- const char *tmp = get_stats_option_name(optarg);
-
- if (tmp)
{
- SetConfigOption(tmp, "true", PGC_POSTMASTER, PGC_S_ARGV);
- }
- else
- {
- write_stderr("%s: invalid argument for option -t: \"%s\"\n",
- progname, optarg);
- ExitPostmaster(1);
+ const char *tmp = get_stats_option_name(optarg);
+
+ if (tmp)
+ {
+ SetConfigOption(tmp, "true", PGC_POSTMASTER, PGC_S_ARGV);
+ }
+ else
+ {
+ write_stderr("%s: invalid argument for option -t: \"%s\"\n",
+ progname, optarg);
+ ExitPostmaster(1);
+ }
+ break;
}
- break;
- }
case 'W':
SetConfigOption("post_auth_delay", optarg, PGC_POSTMASTER, PGC_S_ARGV);
@@ -2468,9 +2469,9 @@ BackendStartup(Port *port)
* postmaster's listen sockets. (In EXEC_BACKEND case this is all
* done in SubPostmasterMain.)
*/
- IsUnderPostmaster = true; /* we are a postmaster subprocess now */
+ IsUnderPostmaster = true; /* we are a postmaster subprocess now */
- MyProcPid = getpid(); /* reset MyProcPid */
+ MyProcPid = getpid(); /* reset MyProcPid */
/* We don't want the postmaster's proc_exit() handlers */
on_exit_reset();
@@ -2718,8 +2719,8 @@ BackendInitialize(Port *port)
* title for ps. It's good to do this as early as possible in startup.
*/
init_ps_display(port->user_name, port->database_name, remote_ps_data,
- update_process_title ? "authentication" : "");
-
+ update_process_title ? "authentication" : "");
+
/*
* Now perform authentication exchange.
*/
@@ -3252,12 +3253,11 @@ SubPostmasterMain(int argc, char *argv[])
/*
* Perform additional initialization and client authentication.
*
- * We want to do this before InitProcess() for a couple of reasons:
- * 1. so that we aren't eating up a PGPROC slot while waiting on the
- * client.
- * 2. so that if InitProcess() fails due to being out of PGPROC slots,
- * we have already initialized libpq and are able to report the error
- * to the client.
+ * We want to do this before InitProcess() for a couple of reasons: 1.
+ * so that we aren't eating up a PGPROC slot while waiting on the
+ * client. 2. so that if InitProcess() fails due to being out of
+ * PGPROC slots, we have already initialized libpq and are able to
+ * report the error to the client.
*/
BackendInitialize(&port);
@@ -3268,16 +3268,15 @@ SubPostmasterMain(int argc, char *argv[])
InitProcess();
/*
- * Attach process to shared data structures. If testing
- * EXEC_BACKEND on Linux, you must run this as root
- * before starting the postmaster:
+ * Attach process to shared data structures. If testing EXEC_BACKEND
+ * on Linux, you must run this as root before starting the postmaster:
*
- * echo 0 >/proc/sys/kernel/randomize_va_space
+ * echo 0 >/proc/sys/kernel/randomize_va_space
*
- * This prevents a randomized stack base address that causes
- * child shared memory to be at a different address than
- * the parent, making it impossible to attached to shared
- * memory. Return the value to '1' when finished.
+ * This prevents a randomized stack base address that causes child
+ * shared memory to be at a different address than the parent, making
+ * it impossible to attached to shared memory. Return the value to
+ * '1' when finished.
*/
CreateSharedMemoryAndSemaphores(false, 0);
diff --git a/src/backend/rewrite/rewriteDefine.c b/src/backend/rewrite/rewriteDefine.c
index 17f437c385..d4f9c7f1ff 100644
--- a/src/backend/rewrite/rewriteDefine.c
+++ b/src/backend/rewrite/rewriteDefine.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/rewrite/rewriteDefine.c,v 1.114 2006/09/05 21:08:35 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/rewrite/rewriteDefine.c,v 1.115 2006/10/04 00:29:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -32,7 +32,7 @@
static void checkRuleResultList(List *targetList, TupleDesc resultDesc,
- bool isSelect);
+ bool isSelect);
static bool setRuleCheckAsUser_walker(Node *node, Oid *context);
static void setRuleCheckAsUser_Query(Query *qry, Oid userid);
@@ -286,7 +286,7 @@ DefineQueryRewrite(RuleStmt *stmt)
*/
if (!replace && event_relation->rd_rules != NULL)
{
- int i;
+ int i;
for (i = 0; i < event_relation->rd_rules->numLocks; i++)
{
@@ -369,14 +369,14 @@ DefineQueryRewrite(RuleStmt *stmt)
else
{
/*
- * For non-SELECT rules, a RETURNING list can appear in at most one
- * of the actions ... and there can't be any RETURNING list at all
- * in a conditional or non-INSTEAD rule. (Actually, there can be
- * at most one RETURNING list across all rules on the same event,
- * but it seems best to enforce that at rule expansion time.) If
- * there is a RETURNING list, it must match the event relation.
+ * For non-SELECT rules, a RETURNING list can appear in at most one of
+ * the actions ... and there can't be any RETURNING list at all in a
+ * conditional or non-INSTEAD rule. (Actually, there can be at most
+ * one RETURNING list across all rules on the same event, but it seems
+ * best to enforce that at rule expansion time.) If there is a
+ * RETURNING list, it must match the event relation.
*/
- bool haveReturning = false;
+ bool haveReturning = false;
foreach(l, action)
{
@@ -387,7 +387,7 @@ DefineQueryRewrite(RuleStmt *stmt)
if (haveReturning)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("cannot have multiple RETURNING lists in a rule")));
+ errmsg("cannot have multiple RETURNING lists in a rule")));
haveReturning = true;
if (event_qual != NULL)
ereport(ERROR,
@@ -478,7 +478,7 @@ checkRuleResultList(List *targetList, TupleDesc resultDesc, bool isSelect)
ereport(ERROR,
(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
isSelect ?
- errmsg("SELECT rule's target list has too many entries") :
+ errmsg("SELECT rule's target list has too many entries") :
errmsg("RETURNING list has too many entries")));
attr = resultDesc->attrs[i - 1];
@@ -513,9 +513,9 @@ checkRuleResultList(List *targetList, TupleDesc resultDesc, bool isSelect)
/*
* Allow typmods to be different only if one of them is -1, ie,
- * "unspecified". This is necessary for cases like "numeric",
- * where the table will have a filled-in default length but the
- * select rule's expression will probably have typmod = -1.
+ * "unspecified". This is necessary for cases like "numeric", where
+ * the table will have a filled-in default length but the select
+ * rule's expression will probably have typmod = -1.
*/
tletypmod = exprTypmod((Node *) tle->expr);
if (attr->atttypmod != tletypmod &&
@@ -638,4 +638,5 @@ RenameRewriteRule(Oid owningRel, const char *oldName,
heap_freetuple(ruletup);
heap_close(pg_rewrite_desc, RowExclusiveLock);
}
+
#endif
diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c
index 1af5bd7e7f..81af9eebad 100644
--- a/src/backend/rewrite/rewriteHandler.c
+++ b/src/backend/rewrite/rewriteHandler.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/rewrite/rewriteHandler.c,v 1.166 2006/09/02 17:06:52 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/rewrite/rewriteHandler.c,v 1.167 2006/10/04 00:29:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -43,13 +43,13 @@ static Query *rewriteRuleAction(Query *parsetree,
bool *returning_flag);
static List *adjustJoinTreeList(Query *parsetree, bool removert, int rt_index);
static void rewriteTargetList(Query *parsetree, Relation target_relation,
- List **attrno_list);
+ List **attrno_list);
static TargetEntry *process_matched_tle(TargetEntry *src_tle,
TargetEntry *prior_tle,
const char *attrName);
static Node *get_assignment_input(Node *node);
static void rewriteValuesRTE(RangeTblEntry *rte, Relation target_relation,
- List *attrnos);
+ List *attrnos);
static void markQueryForLocking(Query *qry, bool forUpdate, bool noWait,
bool skipOldNew);
static List *matchLocks(CmdType event, RuleLock *rulelocks,
@@ -431,10 +431,10 @@ rewriteRuleAction(Query *parsetree,
}
/*
- * If rule_action has a RETURNING clause, then either throw it away
- * if the triggering query has no RETURNING clause, or rewrite it to
- * emit what the triggering query's RETURNING clause asks for. Throw
- * an error if more than one rule has a RETURNING clause.
+ * If rule_action has a RETURNING clause, then either throw it away if the
+ * triggering query has no RETURNING clause, or rewrite it to emit what
+ * the triggering query's RETURNING clause asks for. Throw an error if
+ * more than one rule has a RETURNING clause.
*/
if (!parsetree->returningList)
rule_action->returningList = NIL;
@@ -443,7 +443,7 @@ rewriteRuleAction(Query *parsetree,
if (*returning_flag)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("cannot have RETURNING lists in multiple rules")));
+ errmsg("cannot have RETURNING lists in multiple rules")));
*returning_flag = true;
rule_action->returningList = (List *)
ResolveNew((Node *) parsetree->returningList,
@@ -907,12 +907,12 @@ searchForDefault(RangeTblEntry *rte)
foreach(lc, rte->values_lists)
{
- List *sublist = (List *) lfirst(lc);
- ListCell *lc2;
+ List *sublist = (List *) lfirst(lc);
+ ListCell *lc2;
foreach(lc2, sublist)
{
- Node *col = (Node *) lfirst(lc2);
+ Node *col = (Node *) lfirst(lc2);
if (IsA(col, SetToDefault))
return true;
@@ -952,15 +952,15 @@ rewriteValuesRTE(RangeTblEntry *rte, Relation target_relation, List *attrnos)
newValues = NIL;
foreach(lc, rte->values_lists)
{
- List *sublist = (List *) lfirst(lc);
- List *newList = NIL;
- ListCell *lc2;
- ListCell *lc3;
+ List *sublist = (List *) lfirst(lc);
+ List *newList = NIL;
+ ListCell *lc2;
+ ListCell *lc3;
forboth(lc2, sublist, lc3, attrnos)
{
- Node *col = (Node *) lfirst(lc2);
- int attrno = lfirst_int(lc3);
+ Node *col = (Node *) lfirst(lc2);
+ int attrno = lfirst_int(lc3);
if (IsA(col, SetToDefault))
{
@@ -972,7 +972,7 @@ rewriteValuesRTE(RangeTblEntry *rte, Relation target_relation, List *attrnos)
if (!att_tup->attisdropped)
new_expr = build_column_default(target_relation, attrno);
else
- new_expr = NULL; /* force a NULL if dropped */
+ new_expr = NULL; /* force a NULL if dropped */
/*
* If there is no default (ie, default is effectively NULL),
@@ -1548,8 +1548,8 @@ RewriteQuery(Query *parsetree, List *rewrite_events)
RangeTblEntry *values_rte = NULL;
/*
- * If it's an INSERT ... VALUES (...), (...), ...
- * there will be a single RTE for the VALUES targetlists.
+ * If it's an INSERT ... VALUES (...), (...), ... there will be a
+ * single RTE for the VALUES targetlists.
*/
if (list_length(parsetree->jointree->fromlist) == 1)
{
@@ -1567,7 +1567,7 @@ RewriteQuery(Query *parsetree, List *rewrite_events)
if (values_rte)
{
- List *attrnos;
+ List *attrnos;
/* Process the main targetlist ... */
rewriteTargetList(parsetree, rt_entry_relation, &attrnos);
@@ -1638,11 +1638,11 @@ RewriteQuery(Query *parsetree, List *rewrite_events)
}
/*
- * If there is an INSTEAD, and the original query has a RETURNING,
- * we have to have found a RETURNING in the rule(s), else fail.
- * (Because DefineQueryRewrite only allows RETURNING in unconditional
- * INSTEAD rules, there's no need to worry whether the substituted
- * RETURNING will actually be executed --- it must be.)
+ * If there is an INSTEAD, and the original query has a RETURNING, we
+ * have to have found a RETURNING in the rule(s), else fail. (Because
+ * DefineQueryRewrite only allows RETURNING in unconditional INSTEAD
+ * rules, there's no need to worry whether the substituted RETURNING
+ * will actually be executed --- it must be.)
*/
if ((instead || qual_product != NULL) &&
parsetree->returningList &&
@@ -1653,22 +1653,22 @@ RewriteQuery(Query *parsetree, List *rewrite_events)
case CMD_INSERT:
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("cannot INSERT RETURNING on relation \"%s\"",
- RelationGetRelationName(rt_entry_relation)),
+ errmsg("cannot INSERT RETURNING on relation \"%s\"",
+ RelationGetRelationName(rt_entry_relation)),
errhint("You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause.")));
break;
case CMD_UPDATE:
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("cannot UPDATE RETURNING on relation \"%s\"",
- RelationGetRelationName(rt_entry_relation)),
+ errmsg("cannot UPDATE RETURNING on relation \"%s\"",
+ RelationGetRelationName(rt_entry_relation)),
errhint("You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause.")));
break;
case CMD_DELETE:
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("cannot DELETE RETURNING on relation \"%s\"",
- RelationGetRelationName(rt_entry_relation)),
+ errmsg("cannot DELETE RETURNING on relation \"%s\"",
+ RelationGetRelationName(rt_entry_relation)),
errhint("You need an unconditional ON DELETE DO INSTEAD rule with a RETURNING clause.")));
break;
default:
diff --git a/src/backend/rewrite/rewriteManip.c b/src/backend/rewrite/rewriteManip.c
index ce951a4601..96bfdf5f3a 100644
--- a/src/backend/rewrite/rewriteManip.c
+++ b/src/backend/rewrite/rewriteManip.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/rewrite/rewriteManip.c,v 1.101 2006/07/14 14:52:22 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/rewrite/rewriteManip.c,v 1.102 2006/10/04 00:29:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -984,10 +984,11 @@ ResolveNew(Node *node, int target_varno, int sublevels_up,
{
if (IsA(result, Query))
((Query *) result)->hasSubLinks = true;
+
/*
* Note: if we're called on a non-Query node then it's the caller's
- * responsibility to update hasSubLinks in the ancestor Query.
- * This is pretty fragile and perhaps should be rethought ...
+ * responsibility to update hasSubLinks in the ancestor Query. This is
+ * pretty fragile and perhaps should be rethought ...
*/
}
diff --git a/src/backend/rewrite/rewriteRemove.c b/src/backend/rewrite/rewriteRemove.c
index f08001ce03..d09b5d2c42 100644
--- a/src/backend/rewrite/rewriteRemove.c
+++ b/src/backend/rewrite/rewriteRemove.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/rewrite/rewriteRemove.c,v 1.67 2006/10/03 21:21:36 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/rewrite/rewriteRemove.c,v 1.68 2006/10/04 00:29:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -35,7 +35,7 @@
*/
void
RemoveRewriteRule(Oid owningRel, const char *ruleName, DropBehavior behavior,
- bool missing_ok)
+ bool missing_ok)
{
HeapTuple tuple;
Oid eventRelationOid;
@@ -54,7 +54,7 @@ RemoveRewriteRule(Oid owningRel, const char *ruleName, DropBehavior behavior,
*/
if (!HeapTupleIsValid(tuple))
{
- if (! missing_ok)
+ if (!missing_ok)
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_OBJECT),
errmsg("rule \"%s\" for relation \"%s\" does not exist",
diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c
index aaa0dff684..5efd9cc7b1 100644
--- a/src/backend/storage/buffer/bufmgr.c
+++ b/src/backend/storage/buffer/bufmgr.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.211 2006/09/25 22:01:10 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.212 2006/10/04 00:29:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -178,10 +178,10 @@ ReadBuffer(Relation reln, BlockNumber blockNum)
* This can happen because mdread doesn't complain about reads beyond
* EOF --- which is arguably bogus, but changing it seems tricky ---
* and so a previous attempt to read a block just beyond EOF could
- * have left a "valid" zero-filled buffer. Unfortunately, we have
+ * have left a "valid" zero-filled 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
+ * a recent write. In that situation, the pre-existing buffer would
* contain valid data that we don't want to overwrite. Since the
* legitimate cases should always have left a zero-filled buffer,
* complain if not PageIsNew.
@@ -194,10 +194,10 @@ ReadBuffer(Relation reln, BlockNumber blockNum)
errhint("This has been seen to occur with buggy kernels; consider updating your system.")));
/*
- * We *must* do smgrextend before succeeding, else the
- * page will not be reserved by the kernel, and the next P_NEW call
- * will decide to return the same page. Clear the BM_VALID bit,
- * do the StartBufferIO call that BufferAlloc didn't, and proceed.
+ * We *must* do smgrextend before succeeding, else the page will not
+ * be reserved by the kernel, and the next P_NEW call will decide to
+ * return the same page. Clear the BM_VALID bit, do the StartBufferIO
+ * call that BufferAlloc didn't, and proceed.
*/
if (isLocalBuf)
{
@@ -208,11 +208,12 @@ ReadBuffer(Relation reln, BlockNumber blockNum)
else
{
/*
- * Loop to handle the very small possibility that someone
- * re-sets BM_VALID between our clearing it and StartBufferIO
- * inspecting it.
+ * Loop to handle the very small possibility that someone re-sets
+ * BM_VALID between our clearing it and StartBufferIO inspecting
+ * it.
*/
- do {
+ do
+ {
LockBufHdr(bufHdr);
Assert(bufHdr->flags & BM_VALID);
bufHdr->flags &= ~BM_VALID;
@@ -311,10 +312,10 @@ BufferAlloc(Relation reln,
{
BufferTag newTag; /* identity of requested block */
uint32 newHash; /* hash value for newTag */
- LWLockId newPartitionLock; /* buffer partition lock for it */
+ LWLockId newPartitionLock; /* buffer partition lock for it */
BufferTag oldTag; /* previous identity of selected buffer */
uint32 oldHash; /* hash value for oldTag */
- LWLockId oldPartitionLock; /* buffer partition lock for it */
+ LWLockId oldPartitionLock; /* buffer partition lock for it */
BufFlags oldFlags;
int buf_id;
volatile BufferDesc *buf;
@@ -620,7 +621,7 @@ InvalidateBuffer(volatile BufferDesc *buf)
{
BufferTag oldTag;
uint32 oldHash; /* hash value for oldTag */
- LWLockId oldPartitionLock; /* buffer partition lock for it */
+ LWLockId oldPartitionLock; /* buffer partition lock for it */
BufFlags oldFlags;
/* Save the original buffer tag before dropping the spinlock */
@@ -629,9 +630,9 @@ InvalidateBuffer(volatile BufferDesc *buf)
UnlockBufHdr(buf);
/*
- * Need to compute the old tag's hashcode and partition lock ID.
- * XXX is it worth storing the hashcode in BufferDesc so we need
- * not recompute it here? Probably not.
+ * Need to compute the old tag's hashcode and partition lock ID. XXX is it
+ * worth storing the hashcode in BufferDesc so we need not recompute it
+ * here? Probably not.
*/
oldHash = BufTableHashCode(&oldTag);
oldPartitionLock = BufMappingPartitionLock(oldHash);
@@ -715,7 +716,7 @@ retry:
*
* Marks buffer contents as dirty (actual write happens later).
*
- * Buffer must be pinned and exclusive-locked. (If caller does not hold
+ * Buffer must be pinned and exclusive-locked. (If caller does not hold
* exclusive lock, then somebody could be in process of writing the buffer,
* leading to risk of bad data written to disk.)
*/
@@ -972,9 +973,9 @@ BufferSync(void)
{
/*
* If in bgwriter, absorb pending fsync requests after each
- * WRITES_PER_ABSORB write operations, to prevent overflow of
- * the fsync request queue. If not in bgwriter process, this is
- * a no-op.
+ * WRITES_PER_ABSORB write operations, to prevent overflow of the
+ * fsync request queue. If not in bgwriter process, this is a
+ * no-op.
*/
if (--absorb_counter <= 0)
{
@@ -1770,9 +1771,9 @@ SetBufferCommitInfoNeedsSave(Buffer buffer)
/*
* This routine might get called many times on the same page, if we are
* making the first scan after commit of an xact that added/deleted many
- * tuples. So, be as quick as we can if the buffer is already dirty. We
+ * tuples. So, be as quick as we can if the buffer is already dirty. We
* do this by not acquiring spinlock if it looks like the status bits are
- * already OK. (Note it is okay if someone else clears BM_JUST_DIRTIED
+ * already OK. (Note it is okay if someone else clears BM_JUST_DIRTIED
* immediately after we look, because the buffer content update is already
* done and will be reflected in the I/O.)
*/
diff --git a/src/backend/storage/buffer/freelist.c b/src/backend/storage/buffer/freelist.c
index 333053c1c9..92c2cfce62 100644
--- a/src/backend/storage/buffer/freelist.c
+++ b/src/backend/storage/buffer/freelist.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/buffer/freelist.c,v 1.56 2006/07/23 18:34:45 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/buffer/freelist.c,v 1.57 2006/10/04 00:29:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -237,12 +237,12 @@ StrategyInitialize(bool init)
/*
* Initialize the shared buffer lookup hashtable.
*
- * Since we can't tolerate running out of lookup table entries, we
- * must be sure to specify an adequate table size here. The maximum
- * steady-state usage is of course NBuffers entries, but BufferAlloc()
- * tries to insert a new entry before deleting the old. In principle
- * this could be happening in each partition concurrently, so we
- * could need as many as NBuffers + NUM_BUFFER_PARTITIONS entries.
+ * Since we can't tolerate running out of lookup table entries, we must be
+ * sure to specify an adequate table size here. The maximum steady-state
+ * usage is of course NBuffers entries, but BufferAlloc() tries to insert
+ * a new entry before deleting the old. In principle this could be
+ * happening in each partition concurrently, so we could need as many as
+ * NBuffers + NUM_BUFFER_PARTITIONS entries.
*/
InitBufTable(NBuffers + NUM_BUFFER_PARTITIONS);
diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c
index 04cdd95a69..a594b16edf 100644
--- a/src/backend/storage/file/fd.c
+++ b/src/backend/storage/file/fd.c
@@ -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.129 2006/08/24 03:15:43 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/file/fd.c,v 1.130 2006/10/04 00:29:57 momjian Exp $
*
* NOTES:
*
@@ -1026,7 +1026,7 @@ retry:
* in which case immediate retry is indicated.
*/
#ifdef WIN32
- DWORD error = GetLastError();
+ DWORD error = GetLastError();
switch (error)
{
@@ -1081,7 +1081,7 @@ retry:
* See comments in FileRead()
*/
#ifdef WIN32
- DWORD error = GetLastError();
+ DWORD error = GetLastError();
switch (error)
{
@@ -1279,8 +1279,8 @@ TryAgain:
}
/*
- * TEMPORARY hack to log the Windows error code on fopen failures,
- * in hopes of diagnosing some hard-to-reproduce problems.
+ * TEMPORARY hack to log the Windows error code on fopen failures, in
+ * hopes of diagnosing some hard-to-reproduce problems.
*/
#ifdef WIN32
{
diff --git a/src/backend/storage/freespace/freespace.c b/src/backend/storage/freespace/freespace.c
index 3309ba11da..7c85b44221 100644
--- a/src/backend/storage/freespace/freespace.c
+++ b/src/backend/storage/freespace/freespace.c
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/freespace/freespace.c,v 1.55 2006/09/21 20:31:22 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/freespace/freespace.c,v 1.56 2006/10/04 00:29:57 momjian Exp $
*
*
* NOTES:
@@ -111,7 +111,7 @@ typedef struct FsmCacheRelHeader
RelFileNode key; /* hash key (must be first) */
bool isIndex; /* if true, we store only page numbers */
uint32 avgRequest; /* moving average of space requests */
- BlockNumber interestingPages; /* # of pages with useful free space */
+ BlockNumber interestingPages; /* # of pages with useful free space */
int32 storedPages; /* # of pages stored in arena */
} FsmCacheRelHeader;
@@ -128,8 +128,8 @@ static void CheckFreeSpaceMapStatistics(int elevel, int numRels,
static FSMRelation *lookup_fsm_rel(RelFileNode *rel);
static FSMRelation *create_fsm_rel(RelFileNode *rel);
static void delete_fsm_rel(FSMRelation *fsmrel);
-static int realloc_fsm_rel(FSMRelation *fsmrel, BlockNumber interestingPages,
- bool isIndex);
+static int realloc_fsm_rel(FSMRelation *fsmrel, BlockNumber interestingPages,
+ bool isIndex);
static void link_fsm_rel_usage(FSMRelation *fsmrel);
static void unlink_fsm_rel_usage(FSMRelation *fsmrel);
static void link_fsm_rel_storage(FSMRelation *fsmrel);
@@ -601,6 +601,7 @@ PrintFreeSpaceMapStatistics(int elevel)
double needed;
LWLockAcquire(FreeSpaceLock, LW_EXCLUSIVE);
+
/*
* Count total space actually used, as well as the unclamped request total
*/
@@ -1688,9 +1689,9 @@ fsm_calc_request(FSMRelation *fsmrel)
}
/*
- * We clamp the per-relation requests to at most half the arena size;
- * this is intended to prevent a single bloated relation from crowding
- * out FSM service for every other rel.
+ * We clamp the per-relation requests to at most half the arena size; this
+ * is intended to prevent a single bloated relation from crowding out FSM
+ * service for every other rel.
*/
req = Min(req, FreeSpaceMap->totalChunks / 2);
diff --git a/src/backend/storage/ipc/ipci.c b/src/backend/storage/ipc/ipci.c
index a4d36d157b..716963f448 100644
--- a/src/backend/storage/ipc/ipci.c
+++ b/src/backend/storage/ipc/ipci.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/ipc/ipci.c,v 1.87 2006/08/01 19:03:11 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/ipc/ipci.c,v 1.88 2006/10/04 00:29:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -95,8 +95,8 @@ CreateSharedMemoryAndSemaphores(bool makePrivate, int port)
size = add_size(size, 8192 - (size % 8192));
/*
- * The shared memory for add-ins is treated as a separate
- * segment, but in reality it is not.
+ * The shared memory for add-ins is treated as a separate segment, but
+ * in reality it is not.
*/
size_b4addins = size;
size = add_size(size, AddinShmemSize());
@@ -115,8 +115,8 @@ CreateSharedMemoryAndSemaphores(bool makePrivate, int port)
* Modify hdr to show segment size before add-ins
*/
seghdr->totalsize = size_b4addins;
-
- /*
+
+ /*
* Set up segment header sections in each Addin context
*/
InitAddinContexts((void *) ((char *) seghdr + size_b4addins));
diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c
index 7b4ea9077e..39de167fe5 100644
--- a/src/backend/storage/ipc/procarray.c
+++ b/src/backend/storage/ipc/procarray.c
@@ -23,7 +23,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/ipc/procarray.c,v 1.17 2006/09/03 15:59:38 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/ipc/procarray.c,v 1.18 2006/10/04 00:29:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -393,7 +393,7 @@ TransactionIdIsActive(TransactionId xid)
* This is used by VACUUM to decide which deleted tuples must be preserved
* in a table. allDbs = TRUE is needed for shared relations, but allDbs =
* FALSE is sufficient for non-shared relations, since only backends in my
- * own database could ever see the tuples in them. Also, we can ignore
+ * own database could ever see the tuples in them. Also, we can ignore
* concurrently running lazy VACUUMs because (a) they must be working on other
* tables, and (b) they don't need to do snapshot-based lookups.
*
@@ -545,13 +545,13 @@ GetSnapshotData(Snapshot snapshot, bool serializable)
globalxmin = xmin = GetTopTransactionId();
/*
- * It is sufficient to get shared lock on ProcArrayLock, even if we
- * are computing a serializable snapshot and therefore will be setting
+ * It is sufficient to get shared lock on ProcArrayLock, even if we are
+ * computing a serializable snapshot and therefore will be setting
* MyProc->xmin. This is because any two backends that have overlapping
* shared holds on ProcArrayLock will certainly compute the same xmin
* (since no xact, in particular not the oldest, can exit the set of
* running transactions while we hold ProcArrayLock --- see further
- * discussion just below). So it doesn't matter whether another backend
+ * discussion just below). So it doesn't matter whether another backend
* concurrently doing GetSnapshotData or GetOldestXmin sees our xmin as
* set or not; he'd compute the same xmin for himself either way.
*/
@@ -595,8 +595,8 @@ GetSnapshotData(Snapshot snapshot, bool serializable)
/*
* Ignore my own proc (dealt with my xid above), procs not running a
- * transaction, xacts started since we read the next transaction
- * ID, and xacts executing LAZY VACUUM. There's no need to store XIDs
+ * transaction, xacts started since we read the next transaction ID,
+ * and xacts executing LAZY VACUUM. There's no need to store XIDs
* above what we got from ReadNewTransactionId, since we'll treat them
* as running anyway. We also assume that such xacts can't compute an
* xmin older than ours, so they needn't be considered in computing
@@ -625,18 +625,17 @@ GetSnapshotData(Snapshot snapshot, bool serializable)
* their parent, so no need to check them against xmin.
*
* The other backend can add more subxids concurrently, but cannot
- * remove any. Hence it's important to fetch nxids just once.
- * Should be safe to use memcpy, though. (We needn't worry about
- * missing any xids added concurrently, because they must postdate
- * xmax.)
+ * remove any. Hence it's important to fetch nxids just once. Should
+ * be safe to use memcpy, though. (We needn't worry about missing any
+ * xids added concurrently, because they must postdate xmax.)
*/
if (subcount >= 0)
{
if (proc->subxids.overflowed)
- subcount = -1; /* overflowed */
+ subcount = -1; /* overflowed */
else
{
- int nxids = proc->subxids.nxids;
+ int nxids = proc->subxids.nxids;
if (nxids > 0)
{
diff --git a/src/backend/storage/ipc/shmem.c b/src/backend/storage/ipc/shmem.c
index 4cff4c19f3..685912e157 100644
--- a/src/backend/storage/ipc/shmem.c
+++ b/src/backend/storage/ipc/shmem.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/ipc/shmem.c,v 1.96 2006/09/27 18:40:09 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/ipc/shmem.c,v 1.97 2006/10/04 00:29:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -62,14 +62,14 @@
* hash bucket garbage collector if need be. Right now, it seems
* unnecessary.
*
- * (e) Add-ins can request their own logical shared memory segments
- * by calling RegisterAddinContext() from the preload-libraries hook.
- * Each call establishes a uniquely named add-in shared memopry
- * context which will be set up as part of postgres intialisation.
- * Memory can be allocated from these contexts using
- * ShmemAllocFromContext(), and can be reset to its initial condition
- * using ShmemResetContext(). Also, RegisterAddinLWLock(LWLockid *lock_ptr)
- * can be used to request that a LWLock be allocated, placed into *lock_ptr.
+ * (e) Add-ins can request their own logical shared memory segments
+ * by calling RegisterAddinContext() from the preload-libraries hook.
+ * Each call establishes a uniquely named add-in shared memopry
+ * context which will be set up as part of postgres intialisation.
+ * Memory can be allocated from these contexts using
+ * ShmemAllocFromContext(), and can be reset to its initial condition
+ * using ShmemResetContext(). Also, RegisterAddinLWLock(LWLockid *lock_ptr)
+ * can be used to request that a LWLock be allocated, placed into *lock_ptr.
*/
#include "postgres.h"
@@ -98,9 +98,9 @@ static HTAB *ShmemIndex = NULL; /* primary index hashtable for shmem */
/* Structures and globals for managing add-in shared memory contexts */
typedef struct context
{
- char *name;
- Size size;
- PGShmemHeader *seg_hdr;
+ char *name;
+ Size size;
+ PGShmemHeader *seg_hdr;
struct context *next;
} ContextNode;
@@ -138,9 +138,9 @@ InitShmemAllocation(void)
Assert(shmhdr != NULL);
/*
- * Initialize the spinlock used by ShmemAlloc. We have to do the
- * space allocation the hard way, since obviously ShmemAlloc can't
- * be called yet.
+ * Initialize the spinlock used by ShmemAlloc. We have to do the space
+ * allocation the hard way, since obviously ShmemAlloc can't be called
+ * yet.
*/
ShmemLock = (slock_t *) (((char *) shmhdr) + shmhdr->freeoffset);
shmhdr->freeoffset += MAXALIGN(sizeof(slock_t));
@@ -153,22 +153,22 @@ InitShmemAllocation(void)
ShmemIndex = (HTAB *) NULL;
/*
- * Initialize ShmemVariableCache for transaction manager.
- * (This doesn't really belong here, but not worth moving.)
+ * Initialize ShmemVariableCache for transaction manager. (This doesn't
+ * really belong here, but not worth moving.)
*/
ShmemVariableCache = (VariableCache)
- ShmemAlloc(sizeof(*ShmemVariableCache));
+ ShmemAlloc(sizeof(*ShmemVariableCache));
memset(ShmemVariableCache, 0, sizeof(*ShmemVariableCache));
}
/*
* RegisterAddinContext -- Register the requirement for a named shared
- * memory context.
+ * memory context.
*/
void
RegisterAddinContext(const char *name, Size size)
{
- char *newstr = malloc(strlen(name) + 1);
+ char *newstr = malloc(strlen(name) + 1);
ContextNode *node = malloc(sizeof(ContextNode));
strcpy(newstr, name);
@@ -185,7 +185,7 @@ RegisterAddinContext(const char *name, Size size)
/*
* ContextFromName -- Return the ContextNode for the given named
- * context, or NULL if not found.
+ * context, or NULL if not found.
*/
static ContextNode *
ContextFromName(const char *name)
@@ -203,7 +203,7 @@ ContextFromName(const char *name)
/*
* InitAddinContexts -- Initialise the registered addin shared memory
- * contexts.
+ * contexts.
*/
void
InitAddinContexts(void *start)
@@ -218,7 +218,7 @@ InitAddinContexts(void *start)
next_segment->totalsize = context->size;
next_segment->freeoffset = MAXALIGN(sizeof(PGShmemHeader));
- next_segment = (PGShmemHeader *)
+ next_segment = (PGShmemHeader *)
((char *) next_segment + context->size);
context = context->next;
}
@@ -245,7 +245,7 @@ ShmemResetContext(const char *name)
/*
* AddinShmemSize -- Report how much shared memory has been registered
- * for add-ins.
+ * for add-ins.
*/
Size
AddinShmemSize(void)
@@ -265,15 +265,15 @@ AddinShmemSize(void)
void *
ShmemAllocFromContext(Size size, const char *context_name)
{
- Size newStart;
- Size newFree;
- void *newSpace;
- ContextNode *context;
+ Size newStart;
+ Size newFree;
+ void *newSpace;
+ ContextNode *context;
/* use volatile pointer to prevent code rearrangement */
volatile PGShmemHeader *shmemseghdr = ShmemSegHdr;
- /*
+ /*
* if context_name is provided, allocate from the named context
*/
if (context_name)
@@ -480,8 +480,8 @@ ShmemInitStruct(const char *name, Size size, bool *foundPtr)
* be trying to init the shmem index itself.
*
* Notice that the ShmemIndexLock is released before the shmem
- * index has been initialized. This should be OK because no
- * other process can be accessing shared memory yet.
+ * index has been initialized. This should be OK because no other
+ * process can be accessing shared memory yet.
*/
Assert(shmemseghdr->indexoffset == 0);
structPtr = ShmemAlloc(size);
diff --git a/src/backend/storage/lmgr/lmgr.c b/src/backend/storage/lmgr/lmgr.c
index 28e862533d..4a4c0990ad 100644
--- a/src/backend/storage/lmgr/lmgr.c
+++ b/src/backend/storage/lmgr/lmgr.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/lmgr/lmgr.c,v 1.88 2006/09/22 23:20:13 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/lmgr/lmgr.c,v 1.89 2006/10/04 00:29:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -54,7 +54,7 @@ RelationInitLockInfo(Relation relation)
static inline void
SetLocktagRelationOid(LOCKTAG *tag, Oid relid)
{
- Oid dbid;
+ Oid dbid;
if (IsSharedRelation(relid))
dbid = InvalidOid;
@@ -67,7 +67,7 @@ SetLocktagRelationOid(LOCKTAG *tag, Oid relid)
/*
* LockRelationOid
*
- * Lock a relation given only its OID. This should generally be used
+ * Lock a relation given only its OID. This should generally be used
* before attempting to open the relation's relcache entry.
*/
void
@@ -81,13 +81,13 @@ LockRelationOid(Oid relid, LOCKMODE lockmode)
res = LockAcquire(&tag, lockmode, false, false);
/*
- * Now that we have the lock, check for invalidation messages, so that
- * we will update or flush any stale relcache entry before we try to use
- * it. We can skip this in the not-uncommon case that we already had
- * the same type of lock being requested, since then no one else could
- * have modified the relcache entry in an undesirable way. (In the
- * case where our own xact modifies the rel, the relcache update happens
- * via CommandCounterIncrement, not here.)
+ * Now that we have the lock, check for invalidation messages, so that we
+ * will update or flush any stale relcache entry before we try to use it.
+ * We can skip this in the not-uncommon case that we already had the same
+ * type of lock being requested, since then no one else could have
+ * modified the relcache entry in an undesirable way. (In the case where
+ * our own xact modifies the rel, the relcache update happens via
+ * CommandCounterIncrement, not here.)
*/
if (res != LOCKACQUIRE_ALREADY_HELD)
AcceptInvalidationMessages();
@@ -116,8 +116,8 @@ ConditionalLockRelationOid(Oid relid, LOCKMODE lockmode)
return false;
/*
- * Now that we have the lock, check for invalidation messages; see
- * notes in LockRelationOid.
+ * Now that we have the lock, check for invalidation messages; see notes
+ * in LockRelationOid.
*/
if (res != LOCKACQUIRE_ALREADY_HELD)
AcceptInvalidationMessages();
@@ -176,8 +176,8 @@ LockRelation(Relation relation, LOCKMODE lockmode)
res = LockAcquire(&tag, lockmode, false, false);
/*
- * Now that we have the lock, check for invalidation messages; see
- * notes in LockRelationOid.
+ * Now that we have the lock, check for invalidation messages; see notes
+ * in LockRelationOid.
*/
if (res != LOCKACQUIRE_ALREADY_HELD)
AcceptInvalidationMessages();
@@ -206,8 +206,8 @@ ConditionalLockRelation(Relation relation, LOCKMODE lockmode)
return false;
/*
- * Now that we have the lock, check for invalidation messages; see
- * notes in LockRelationOid.
+ * Now that we have the lock, check for invalidation messages; see notes
+ * in LockRelationOid.
*/
if (res != LOCKACQUIRE_ALREADY_HELD)
AcceptInvalidationMessages();
diff --git a/src/backend/storage/lmgr/lock.c b/src/backend/storage/lmgr/lock.c
index 6300dc2eeb..939528e754 100644
--- a/src/backend/storage/lmgr/lock.c
+++ b/src/backend/storage/lmgr/lock.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/lmgr/lock.c,v 1.173 2006/09/18 22:40:36 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/lmgr/lock.c,v 1.174 2006/10/04 00:29:57 momjian Exp $
*
* NOTES
* A lock table is a shared memory hash table. When
@@ -112,7 +112,7 @@ static const char *const lock_mode_names[] =
};
#ifndef LOCK_DEBUG
-static bool Dummy_trace = false;
+static bool Dummy_trace = false;
#endif
static const LockMethodData default_lockmethod = {
@@ -290,8 +290,8 @@ InitLocks(void)
init_table_size = max_table_size / 2;
/*
- * Allocate hash table for LOCK structs. This stores
- * per-locked-object information.
+ * Allocate hash table for LOCK structs. This stores per-locked-object
+ * information.
*/
MemSet(&info, 0, sizeof(info));
info.keysize = sizeof(LOCKTAG);
@@ -331,8 +331,8 @@ InitLocks(void)
elog(FATAL, "could not initialize proclock hash table");
/*
- * Allocate non-shared hash table for LOCALLOCK structs. This stores
- * lock counts and resource owner information.
+ * Allocate non-shared hash table for LOCALLOCK structs. This stores lock
+ * counts and resource owner information.
*
* The non-shared table could already exist in this process (this occurs
* when the postmaster is recreating shared memory after a backend crash).
@@ -396,8 +396,8 @@ static uint32
proclock_hash(const void *key, Size keysize)
{
const PROCLOCKTAG *proclocktag = (const PROCLOCKTAG *) key;
- uint32 lockhash;
- Datum procptr;
+ uint32 lockhash;
+ Datum procptr;
Assert(keysize == sizeof(PROCLOCKTAG));
@@ -407,9 +407,9 @@ proclock_hash(const void *key, Size keysize)
/*
* To make the hash code also depend on the PGPROC, we xor the proc
* struct's address into the hash code, left-shifted so that the
- * partition-number bits don't change. Since this is only a hash,
- * we don't care if we lose high-order bits of the address; use
- * an intermediate variable to suppress cast-pointer-to-int warnings.
+ * partition-number bits don't change. Since this is only a hash, we
+ * don't care if we lose high-order bits of the address; use an
+ * intermediate variable to suppress cast-pointer-to-int warnings.
*/
procptr = PointerGetDatum(proclocktag->myProc);
lockhash ^= ((uint32) procptr) << LOG2_NUM_LOCK_PARTITIONS;
@@ -426,8 +426,8 @@ proclock_hash(const void *key, Size keysize)
static inline uint32
ProcLockHashCode(const PROCLOCKTAG *proclocktag, uint32 hashcode)
{
- uint32 lockhash = hashcode;
- Datum procptr;
+ uint32 lockhash = hashcode;
+ Datum procptr;
/*
* This must match proclock_hash()!
@@ -1117,7 +1117,7 @@ WaitOnLock(LOCALLOCK *locallock, ResourceOwner owner)
memcpy(new_status, old_status, len);
strcpy(new_status + len, " waiting");
set_ps_display(new_status, false);
- new_status[len] = '\0'; /* truncate off " waiting" */
+ new_status[len] = '\0'; /* truncate off " waiting" */
}
pgstat_report_waiting(true);
@@ -1549,12 +1549,12 @@ LockReleaseAll(LOCKMETHODID lockmethodid, bool allLocks)
LockTagHashCode(&lock->tag),
wakeupNeeded);
- next_item:
+ next_item:
proclock = nextplock;
- } /* loop over PROCLOCKs within this partition */
+ } /* loop over PROCLOCKs within this partition */
LWLockRelease(partitionLock);
- } /* loop over partitions */
+ } /* loop over partitions */
#ifdef LOCK_DEBUG
if (*(lockMethodTable->trace_flag))
@@ -1726,8 +1726,8 @@ GetLockConflicts(const LOCKTAG *locktag, LOCKMODE lockmode)
if (!lock)
{
/*
- * If the lock object doesn't exist, there is nothing holding a
- * lock on this lockable object.
+ * If the lock object doesn't exist, there is nothing holding a lock
+ * on this lockable object.
*/
LWLockRelease(partitionLock);
return NIL;
@@ -1747,7 +1747,7 @@ GetLockConflicts(const LOCKTAG *locktag, LOCKMODE lockmode)
{
if (conflictMask & proclock->holdMask)
{
- PGPROC *proc = proclock->tag.myProc;
+ PGPROC *proc = proclock->tag.myProc;
/* A backend never blocks itself */
if (proc != MyProc)
@@ -1963,7 +1963,7 @@ PostPrepare_Locks(TransactionId xid)
/*
* We cannot simply modify proclock->tag.myProc to reassign
* ownership of the lock, because that's part of the hash key and
- * the proclock would then be in the wrong hash chain. So, unlink
+ * the proclock would then be in the wrong hash chain. So, unlink
* and delete the old proclock; create a new one with the right
* contents; and link it into place. We do it in this order to be
* certain we won't run out of shared memory (the way dynahash.c
@@ -1987,7 +1987,7 @@ PostPrepare_Locks(TransactionId xid)
(void *) &proclocktag,
HASH_ENTER_NULL, &found);
if (!newproclock)
- ereport(PANIC, /* should not happen */
+ ereport(PANIC, /* should not happen */
(errcode(ERRCODE_OUT_OF_MEMORY),
errmsg("out of shared memory"),
errdetail("Not enough memory for reassigning the prepared transaction's locks.")));
@@ -2017,12 +2017,12 @@ PostPrepare_Locks(TransactionId xid)
Assert((newproclock->holdMask & holdMask) == 0);
newproclock->holdMask |= holdMask;
- next_item:
+ next_item:
proclock = nextplock;
- } /* loop over PROCLOCKs within this partition */
+ } /* loop over PROCLOCKs within this partition */
LWLockRelease(partitionLock);
- } /* loop over partitions */
+ } /* loop over partitions */
END_CRIT_SECTION();
}
@@ -2084,10 +2084,11 @@ GetLockStatusData(void)
* operate one partition at a time if we want to deliver a self-consistent
* view of the state.
*
- * Since this is a read-only operation, we take shared instead of exclusive
- * lock. There's not a whole lot of point to this, because all the normal
- * operations require exclusive lock, but it doesn't hurt anything either.
- * It will at least allow two backends to do GetLockStatusData in parallel.
+ * Since this is a read-only operation, we take shared instead of
+ * exclusive lock. There's not a whole lot of point to this, because all
+ * the normal operations require exclusive lock, but it doesn't hurt
+ * anything either. It will at least allow two backends to do
+ * GetLockStatusData in parallel.
*
* Must grab LWLocks in partition-number order to avoid LWLock deadlock.
*/
@@ -2119,7 +2120,7 @@ GetLockStatusData(void)
}
/* And release locks */
- for (i = NUM_LOCK_PARTITIONS; --i >= 0; )
+ for (i = NUM_LOCK_PARTITIONS; --i >= 0;)
LWLockRelease(FirstLockMgrLock + i);
Assert(el == data->nelements);
diff --git a/src/backend/storage/lmgr/lwlock.c b/src/backend/storage/lmgr/lwlock.c
index 28c73a8a9b..c5b0d2af4d 100644
--- a/src/backend/storage/lmgr/lwlock.c
+++ b/src/backend/storage/lmgr/lwlock.c
@@ -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.45 2006/08/07 21:56:25 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/lmgr/lwlock.c,v 1.46 2006/10/04 00:29:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -30,7 +30,7 @@
#include "storage/spin.h"
-static int NumAddinLWLocks(void);
+static int NumAddinLWLocks(void);
static void AssignAddinLWLocks(void);
@@ -95,23 +95,23 @@ static int *ex_acquire_counts;
static int *block_counts;
#endif
-/*
+/*
* Structures and globals to allow add-ins to register for their own
* lwlocks from the preload-libraries hook.
*/
typedef struct LWLockNode
{
- LWLockId *lock;
+ LWLockId *lock;
struct LWLockNode *next;
} LWLockNode;
static LWLockNode *addin_locks = NULL;
-static int num_addin_locks = 0;
+static int num_addin_locks = 0;
/*
* RegisterAddinLWLock() --- Allow an andd-in to request a LWLock
- * from the preload-libraries hook.
+ * from the preload-libraries hook.
*/
void
RegisterAddinLWLock(LWLockId *lock)
@@ -198,8 +198,7 @@ print_lwlock_stats(int code, Datum arg)
LWLockRelease(0);
}
-
-#endif /* LWLOCK_STATS */
+#endif /* LWLOCK_STATS */
/*
@@ -306,9 +305,8 @@ CreateLWLocks(void)
LWLockCounter[0] = (int) NumFixedLWLocks;
LWLockCounter[1] = numLocks;
- /*
- * Allocate LWLocks for those add-ins that have explicitly requested
- * them.
+ /*
+ * Allocate LWLocks for those add-ins that have explicitly requested them.
*/
AssignAddinLWLocks();
}
@@ -364,8 +362,8 @@ LWLockAcquire(LWLockId lockid, LWLockMode mode)
/* Set up local count state first time through in a given process */
if (counts_for_pid != MyProcPid)
{
- int *LWLockCounter = (int *) ((char *) LWLockArray - 2 * sizeof(int));
- int numLocks = LWLockCounter[1];
+ int *LWLockCounter = (int *) ((char *) LWLockArray - 2 * sizeof(int));
+ int numLocks = LWLockCounter[1];
sh_acquire_counts = calloc(numLocks, sizeof(int));
ex_acquire_counts = calloc(numLocks, sizeof(int));
@@ -378,7 +376,7 @@ LWLockAcquire(LWLockId lockid, LWLockMode mode)
ex_acquire_counts[lockid]++;
else
sh_acquire_counts[lockid]++;
-#endif /* LWLOCK_STATS */
+#endif /* LWLOCK_STATS */
/*
* We can't wait if we haven't got a PGPROC. This should only occur
diff --git a/src/backend/storage/lmgr/proc.c b/src/backend/storage/lmgr/proc.c
index 07fc3e3d25..cf71b83eab 100644
--- a/src/backend/storage/lmgr/proc.c
+++ b/src/backend/storage/lmgr/proc.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/lmgr/proc.c,v 1.179 2006/07/30 02:07:18 alvherre Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/lmgr/proc.c,v 1.180 2006/10/04 00:29:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -149,8 +149,8 @@ InitProcGlobal(void)
Assert(!found);
/*
- * Create the PGPROC structures for dummy (bgwriter) processes, too.
- * These do not get linked into the freeProcs list.
+ * Create the PGPROC structures for dummy (bgwriter) processes, too. These
+ * do not get linked into the freeProcs list.
*/
DummyProcs = (PGPROC *)
ShmemInitStruct("DummyProcs", NUM_DUMMY_PROCS * sizeof(PGPROC),
@@ -183,7 +183,7 @@ InitProcGlobal(void)
MemSet(DummyProcs, 0, NUM_DUMMY_PROCS * sizeof(PGPROC));
for (i = 0; i < NUM_DUMMY_PROCS; i++)
{
- DummyProcs[i].pid = 0; /* marks dummy proc as not in use */
+ DummyProcs[i].pid = 0; /* marks dummy proc as not in use */
PGSemaphoreCreate(&(DummyProcs[i].sem));
}
@@ -268,7 +268,7 @@ InitProcess(void)
/*
* We might be reusing a semaphore that belonged to a failed process. So
- * be careful and reinitialize its value here. (This is not strictly
+ * be careful and reinitialize its value here. (This is not strictly
* necessary anymore, but seems like a good idea for cleanliness.)
*/
PGSemaphoreReset(&MyProc->sem);
@@ -298,9 +298,9 @@ InitProcessPhase2(void)
Assert(MyProc != NULL);
/*
- * We should now know what database we're in, so advertise that. (We
- * need not do any locking here, since no other backend can yet see
- * our PGPROC.)
+ * We should now know what database we're in, so advertise that. (We need
+ * not do any locking here, since no other backend can yet see our
+ * PGPROC.)
*/
Assert(OidIsValid(MyDatabaseId));
MyProc->databaseId = MyDatabaseId;
@@ -400,7 +400,7 @@ InitDummyProcess(void)
/*
* We might be reusing a semaphore that belonged to a failed process. So
- * be careful and reinitialize its value here. (This is not strictly
+ * be careful and reinitialize its value here. (This is not strictly
* necessary anymore, but seems like a good idea for cleanliness.)
*/
PGSemaphoreReset(&MyProc->sem);
@@ -489,12 +489,12 @@ LockWaitCancel(void)
/*
* We used to do PGSemaphoreReset() here to ensure that our proc's wait
- * semaphore is reset to zero. This prevented a leftover wakeup signal
- * from remaining in the semaphore if someone else had granted us the
- * lock we wanted before we were able to remove ourselves from the
- * wait-list. However, now that ProcSleep loops until waitStatus changes,
- * a leftover wakeup signal isn't harmful, and it seems not worth
- * expending cycles to get rid of a signal that most likely isn't there.
+ * semaphore is reset to zero. This prevented a leftover wakeup signal
+ * from remaining in the semaphore if someone else had granted us the lock
+ * we wanted before we were able to remove ourselves from the wait-list.
+ * However, now that ProcSleep loops until waitStatus changes, a leftover
+ * wakeup signal isn't harmful, and it seems not worth expending cycles to
+ * get rid of a signal that most likely isn't there.
*/
/*
@@ -810,11 +810,11 @@ ProcSleep(LOCALLOCK *locallock, LockMethod lockMethodTable)
/*
* If someone wakes us between LWLockRelease and PGSemaphoreLock,
* PGSemaphoreLock will not block. The wakeup is "saved" by the semaphore
- * implementation. While this is normally good, there are cases where
- * a saved wakeup might be leftover from a previous operation (for
- * example, we aborted ProcWaitForSignal just before someone did
- * ProcSendSignal). So, loop to wait again if the waitStatus shows
- * we haven't been granted nor denied the lock yet.
+ * implementation. While this is normally good, there are cases where a
+ * saved wakeup might be leftover from a previous operation (for example,
+ * we aborted ProcWaitForSignal just before someone did ProcSendSignal).
+ * So, loop to wait again if the waitStatus shows we haven't been granted
+ * nor denied the lock yet.
*
* We pass interruptOK = true, which eliminates a window in which
* cancel/die interrupts would be held off undesirably. This is a promise
@@ -824,7 +824,8 @@ ProcSleep(LOCALLOCK *locallock, LockMethod lockMethodTable)
* updating the locallock table, but if we lose control to an error,
* LockWaitCancel will fix that up.
*/
- do {
+ do
+ {
PGSemaphoreLock(&MyProc->sem, true);
} while (MyProc->waitStatus == STATUS_WAITING);
@@ -835,9 +836,9 @@ ProcSleep(LOCALLOCK *locallock, LockMethod lockMethodTable)
elog(FATAL, "could not disable timer for process wakeup");
/*
- * Re-acquire the lock table's partition lock. We have to do this to
- * hold off cancel/die interrupts before we can mess with lockAwaited
- * (else we might have a missed or duplicated locallock update).
+ * Re-acquire the lock table's partition lock. We have to do this to hold
+ * off cancel/die interrupts before we can mess with lockAwaited (else we
+ * might have a missed or duplicated locallock update).
*/
LWLockAcquire(partitionLock, LW_EXCLUSIVE);
@@ -977,8 +978,8 @@ CheckDeadLock(void)
int i;
/*
- * Acquire exclusive lock on the entire shared lock data structures.
- * Must grab LWLocks in partition-number order to avoid LWLock deadlock.
+ * Acquire exclusive lock on the entire shared lock data structures. Must
+ * grab LWLocks in partition-number order to avoid LWLock deadlock.
*
* Note that the deadlock check interrupt had better not be enabled
* anywhere that this process itself holds lock partition locks, else this
@@ -1018,7 +1019,7 @@ CheckDeadLock(void)
/*
* Oops. We have a deadlock.
*
- * Get this process out of wait state. (Note: we could do this more
+ * Get this process out of wait state. (Note: we could do this more
* efficiently by relying on lockAwaited, but use this coding to preserve
* the flexibility to kill some other transaction than the one detecting
* the deadlock.)
@@ -1047,12 +1048,12 @@ CheckDeadLock(void)
*/
/*
- * Release locks acquired at head of routine. Order is not critical,
- * so do it back-to-front to avoid waking another CheckDeadLock instance
+ * Release locks acquired at head of routine. Order is not critical, so
+ * do it back-to-front to avoid waking another CheckDeadLock instance
* before it can get all the locks.
*/
check_done:
- for (i = NUM_LOCK_PARTITIONS; --i >= 0; )
+ for (i = NUM_LOCK_PARTITIONS; --i >= 0;)
LWLockRelease(FirstLockMgrLock + i);
}
@@ -1063,10 +1064,10 @@ check_done:
* This can share the semaphore normally used for waiting for locks,
* since a backend could never be waiting for a lock and a signal at
* the same time. As with locks, it's OK if the signal arrives just
- * before we actually reach the waiting state. Also as with locks,
+ * before we actually reach the waiting state. Also as with locks,
* it's necessary that the caller be robust against bogus wakeups:
* always check that the desired state has occurred, and wait again
- * if not. This copes with possible "leftover" wakeups.
+ * if not. This copes with possible "leftover" wakeups.
*/
void
ProcWaitForSignal(void)
@@ -1122,10 +1123,10 @@ enable_sig_alarm(int delayms, bool is_statement_timeout)
* interval will have elapsed and so this doesn't matter, but there
* are corner cases (involving multi-statement query strings with
* embedded COMMIT or ROLLBACK) where we might re-initialize the
- * statement timeout long after initial receipt of the message.
- * In such cases the enforcement of the statement timeout will be
- * a bit inconsistent. This annoyance is judged not worth the cost
- * of performing an additional gettimeofday() here.
+ * statement timeout long after initial receipt of the message. In
+ * such cases the enforcement of the statement timeout will be a bit
+ * inconsistent. This annoyance is judged not worth the cost of
+ * performing an additional gettimeofday() here.
*/
Assert(!deadlock_timeout_active);
fin_time = GetCurrentStatementStartTimestamp();
@@ -1253,6 +1254,7 @@ CheckStatementTimeout(void)
TimestampDifference(now, statement_fin_time,
&secs, &usecs);
+
/*
* It's possible that the difference is less than a microsecond;
* ensure we don't cancel, rather than set, the interrupt.
diff --git a/src/backend/storage/lmgr/s_lock.c b/src/backend/storage/lmgr/s_lock.c
index 8c4be2364f..c90545e105 100644
--- a/src/backend/storage/lmgr/s_lock.c
+++ b/src/backend/storage/lmgr/s_lock.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/lmgr/s_lock.c,v 1.46 2006/07/14 14:52:23 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/lmgr/s_lock.c,v 1.47 2006/10/04 00:29:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -119,7 +119,7 @@ s_lock(volatile slock_t *lock, const char *file, int line)
/* increase delay by a random fraction between 1X and 2X */
cur_delay += (int) (cur_delay *
- ((double) random() / (double) MAX_RANDOM_VALUE) + 0.5);
+ ((double) random() / (double) MAX_RANDOM_VALUE) + 0.5);
/* wrap back to minimum delay when max is exceeded */
if (cur_delay > MAX_DELAY_MSEC)
cur_delay = MIN_DELAY_MSEC;
@@ -280,7 +280,6 @@ tas_dummy() /* really means: extern int tas(slock_t
asm(" .data");
}
#endif /* sun3 */
-
#endif /* not __GNUC__ */
#endif /* HAVE_SPINLOCKS */
diff --git a/src/backend/storage/page/itemptr.c b/src/backend/storage/page/itemptr.c
index 08f2273ab9..d693ded4a2 100644
--- a/src/backend/storage/page/itemptr.c
+++ b/src/backend/storage/page/itemptr.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/page/itemptr.c,v 1.18 2006/08/25 04:06:53 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/page/itemptr.c,v 1.19 2006/10/04 00:29:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -51,7 +51,7 @@ ItemPointerCompare(ItemPointer arg1, ItemPointer arg2)
*/
BlockNumber b1 = BlockIdGetBlockNumber(&(arg1->ip_blkid));
BlockNumber b2 = BlockIdGetBlockNumber(&(arg2->ip_blkid));
-
+
if (b1 < b2)
return -1;
else if (b1 > b2)
diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c
index 928b64410e..ca1c34fecf 100644
--- a/src/backend/storage/smgr/md.c
+++ b/src/backend/storage/smgr/md.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/smgr/md.c,v 1.121 2006/07/14 05:28:28 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/smgr/md.c,v 1.122 2006/10/04 00:29:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -735,8 +735,8 @@ mdsync(void)
* If in bgwriter, absorb pending requests every so often to
* prevent overflow of the fsync request queue. The hashtable
* code does not specify whether entries added by this will be
- * visited by our search, but we don't really care: it's OK if
- * we do, and OK if we don't.
+ * visited by our search, but we don't really care: it's OK if we
+ * do, and OK if we don't.
*/
if (--absorb_counter <= 0)
{
diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c
index 28aaca716b..0ceb800b36 100644
--- a/src/backend/storage/smgr/smgr.c
+++ b/src/backend/storage/smgr/smgr.c
@@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/smgr/smgr.c,v 1.100 2006/07/14 14:52:23 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/smgr/smgr.c,v 1.101 2006/10/04 00:29:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -471,10 +471,10 @@ smgr_internal_unlink(RelFileNode rnode, int which, bool isTemp, bool isRedo)
FreeSpaceMapForgetRel(&rnode);
/*
- * Tell the stats collector to forget it immediately, too. Skip this
- * in recovery mode, since the stats collector likely isn't running
- * (and if it is, pgstat.c will get confused because we aren't a real
- * backend process).
+ * Tell the stats collector to forget it immediately, too. Skip this in
+ * recovery mode, since the stats collector likely isn't running (and if
+ * it is, pgstat.c will get confused because we aren't a real backend
+ * process).
*/
if (!InRecovery)
pgstat_drop_relation(rnode.relNode);
@@ -960,16 +960,16 @@ smgr_desc(StringInfo buf, uint8 xl_info, char *rec)
xl_smgr_create *xlrec = (xl_smgr_create *) rec;
appendStringInfo(buf, "file create: %u/%u/%u",
- xlrec->rnode.spcNode, xlrec->rnode.dbNode,
- xlrec->rnode.relNode);
+ xlrec->rnode.spcNode, xlrec->rnode.dbNode,
+ xlrec->rnode.relNode);
}
else if (info == XLOG_SMGR_TRUNCATE)
{
xl_smgr_truncate *xlrec = (xl_smgr_truncate *) rec;
appendStringInfo(buf, "file truncate: %u/%u/%u to %u blocks",
- xlrec->rnode.spcNode, xlrec->rnode.dbNode,
- xlrec->rnode.relNode, xlrec->blkno);
+ xlrec->rnode.spcNode, xlrec->rnode.dbNode,
+ xlrec->rnode.relNode, xlrec->blkno);
}
else
appendStringInfo(buf, "UNKNOWN");
diff --git a/src/backend/tcop/fastpath.c b/src/backend/tcop/fastpath.c
index 26931e0a6d..8a9d51a551 100644
--- a/src/backend/tcop/fastpath.c
+++ b/src/backend/tcop/fastpath.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/tcop/fastpath.c,v 1.92 2006/09/08 15:55:53 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/tcop/fastpath.c,v 1.93 2006/10/04 00:29:58 momjian Exp $
*
* NOTES
* This cruft is the server side of PQfn.
@@ -303,8 +303,8 @@ HandleFunctionRequest(StringInfo msgBuf)
"commands ignored until end of transaction block")));
/*
- * Now that we know we are in a valid transaction, set snapshot in
- * case needed by function itself or one of the datatype I/O routines.
+ * Now that we know we are in a valid transaction, set snapshot in case
+ * needed by function itself or one of the datatype I/O routines.
*/
ActiveSnapshot = CopySnapshot(GetTransactionSnapshot());
@@ -312,7 +312,7 @@ HandleFunctionRequest(StringInfo msgBuf)
* Begin parsing the buffer contents.
*/
if (PG_PROTOCOL_MAJOR(FrontendProtocol) < 3)
- (void) pq_getmsgstring(msgBuf); /* dummy string */
+ (void) pq_getmsgstring(msgBuf); /* dummy string */
fid = (Oid) pq_getmsgint(msgBuf, 4); /* function oid */
@@ -474,8 +474,8 @@ parse_fcall_arguments(StringInfo msgBuf, struct fp_info * fip,
if (argsize < 0)
ereport(ERROR,
(errcode(ERRCODE_PROTOCOL_VIOLATION),
- errmsg("invalid argument size %d in function call message",
- argsize)));
+ errmsg("invalid argument size %d in function call message",
+ argsize)));
/* Reset abuf to empty, and insert raw data into it */
abuf.len = 0;
@@ -607,8 +607,8 @@ parse_fcall_arguments_20(StringInfo msgBuf, struct fp_info * fip,
if (argsize < 0)
ereport(ERROR,
(errcode(ERRCODE_PROTOCOL_VIOLATION),
- errmsg("invalid argument size %d in function call message",
- argsize)));
+ errmsg("invalid argument size %d in function call message",
+ argsize)));
/* Reset abuf to empty, and insert raw data into it */
abuf.len = 0;
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index 6e83a23293..835b5ab36e 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.509 2006/09/13 21:59:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.510 2006/10/04 00:29:58 momjian Exp $
*
* NOTES
* this is the "main" module of the postgres backend and
@@ -1340,8 +1340,8 @@ exec_bind_message(StringInfo input_message)
numPFormats = pq_getmsgint(input_message, 2);
if (numPFormats > 0)
{
- int i;
-
+ int i;
+
pformats = (int16 *) palloc(numPFormats * sizeof(int16));
for (i = 0; i < numPFormats; i++)
pformats[i] = pq_getmsgint(input_message, 2);
@@ -1400,7 +1400,7 @@ exec_bind_message(StringInfo input_message)
/* sizeof(ParamListInfoData) includes the first array element */
params = (ParamListInfo) palloc(sizeof(ParamListInfoData) +
- (numParams - 1) * sizeof(ParamExternData));
+ (numParams - 1) *sizeof(ParamExternData));
params->numParams = numParams;
paramno = 0;
@@ -1473,7 +1473,7 @@ exec_bind_message(StringInfo input_message)
if (pstring && pstring != pbuf.data)
pfree(pstring);
}
- else if (pformat == 1) /* binary mode */
+ else if (pformat == 1) /* binary mode */
{
Oid typreceive;
Oid typioparam;
@@ -1513,6 +1513,7 @@ exec_bind_message(StringInfo input_message)
params->params[paramno].value = pval;
params->params[paramno].isnull = isNull;
+
/*
* We mark the params as CONST. This has no effect if we already
* did planning, but if we didn't, it licenses the planner to
@@ -1534,7 +1535,7 @@ exec_bind_message(StringInfo input_message)
numRFormats = pq_getmsgint(input_message, 2);
if (numRFormats > 0)
{
- int i;
+ int i;
rformats = (int16 *) palloc(numRFormats * sizeof(int16));
for (i = 0; i < numRFormats; i++)
@@ -1548,14 +1549,14 @@ exec_bind_message(StringInfo input_message)
* to make use of the concrete parameter values we now have. Because we
* use PARAM_FLAG_CONST, the plan is good only for this set of param
* values, and so we generate the plan in the portal's own memory context
- * where it will be thrown away after use. As in exec_parse_message,
- * we make no attempt to recover planner temporary memory until the end
- * of the operation.
+ * where it will be thrown away after use. As in exec_parse_message, we
+ * make no attempt to recover planner temporary memory until the end of
+ * the operation.
*
- * XXX because the planner has a bad habit of scribbling on its input,
- * we have to make a copy of the parse trees, just in case someone binds
- * and executes an unnamed statement multiple times; this also means that
- * the portal's queryContext becomes its own heap context rather than the
+ * XXX because the planner has a bad habit of scribbling on its input, we
+ * have to make a copy of the parse trees, just in case someone binds and
+ * executes an unnamed statement multiple times; this also means that the
+ * portal's queryContext becomes its own heap context rather than the
* prepared statement's context. FIXME someday
*/
if (pstmt->plan_list == NIL && pstmt->query_list != NIL)
@@ -1694,9 +1695,9 @@ exec_execute_message(const char *portal_name, long max_rows)
execute_is_fetch = !portal->atStart;
/*
- * We must copy the sourceText and prepStmtName into MessageContext
- * in case the portal is destroyed during finish_xact_command.
- * Can avoid the copy if it's not an xact command, though.
+ * We must copy the sourceText and prepStmtName into MessageContext in
+ * case the portal is destroyed during finish_xact_command. Can avoid the
+ * copy if it's not an xact command, though.
*/
if (is_xact_command)
{
@@ -1705,6 +1706,7 @@ exec_execute_message(const char *portal_name, long max_rows)
prepStmtName = pstrdup(portal->prepStmtName);
else
prepStmtName = "<unnamed>";
+
/*
* An xact command shouldn't have any parameters, which is a good
* thing because they wouldn't be around after finish_xact_command.
@@ -1925,10 +1927,9 @@ check_log_duration(char *msec_str, bool was_logged)
msecs = usecs / 1000;
/*
- * This odd-looking test for log_min_duration_statement being
- * exceeded is designed to avoid integer overflow with very
- * long durations: don't compute secs * 1000 until we've
- * verified it will fit in int.
+ * This odd-looking test for log_min_duration_statement being exceeded
+ * is designed to avoid integer overflow with very long durations:
+ * don't compute secs * 1000 until we've verified it will fit in int.
*/
exceeded = (log_min_duration_statement == 0 ||
(log_min_duration_statement > 0 &&
@@ -2026,7 +2027,7 @@ errdetail_params(ParamListInfo params)
appendStringInfoCharMacro(&param_str, '\'');
for (p = pstring; *p; p++)
{
- if (*p == '\'') /* double single quotes */
+ if (*p == '\'') /* double single quotes */
appendStringInfoCharMacro(&param_str, *p);
appendStringInfoCharMacro(&param_str, *p);
}
@@ -2082,7 +2083,7 @@ exec_describe_statement_message(const char *stmt_name)
/*
* If we are in aborted transaction state, we can't safely create a result
- * tupledesc, because that needs catalog accesses. Hence, refuse to
+ * tupledesc, because that needs catalog accesses. 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 blindly Describes
@@ -2154,7 +2155,7 @@ exec_describe_portal_message(const char *portal_name)
/*
* If we are in aborted transaction state, we can't run
* SendRowDescriptionMessage(), because that needs catalog accesses.
- * Hence, refuse to Describe portals that return data. (We shouldn't just
+ * Hence, refuse to Describe portals 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
* blindly Describes whatever it does.)
@@ -2581,29 +2582,29 @@ set_debug_options(int debug_flag, GucContext context, GucSource source)
bool
set_plan_disabling_options(const char *arg, GucContext context, GucSource source)
{
- char *tmp = NULL;
+ char *tmp = NULL;
switch (arg[0])
{
- case 's': /* seqscan */
+ case 's': /* seqscan */
tmp = "enable_seqscan";
break;
- case 'i': /* indexscan */
+ case 'i': /* indexscan */
tmp = "enable_indexscan";
break;
- case 'b': /* bitmapscan */
+ case 'b': /* bitmapscan */
tmp = "enable_bitmapscan";
break;
- case 't': /* tidscan */
+ case 't': /* tidscan */
tmp = "enable_tidscan";
break;
- case 'n': /* nestloop */
+ case 'n': /* nestloop */
tmp = "enable_nestloop";
break;
- case 'm': /* mergejoin */
+ case 'm': /* mergejoin */
tmp = "enable_mergejoin";
break;
- case 'h': /* hashjoin */
+ case 'h': /* hashjoin */
tmp = "enable_hashjoin";
break;
}
@@ -2623,13 +2624,13 @@ get_stats_option_name(const char *arg)
switch (arg[0])
{
case 'p':
- if (optarg[1] == 'a') /* "parser" */
+ if (optarg[1] == 'a') /* "parser" */
return "log_parser_stats";
- else if (optarg[1] == 'l') /* "planner" */
+ else if (optarg[1] == 'l') /* "planner" */
return "log_planner_stats";
break;
- case 'e': /* "executor" */
+ case 'e': /* "executor" */
return "log_executor_stats";
break;
}
@@ -2834,6 +2835,7 @@ PostgresMain(int argc, char *argv[], const char *username)
break;
case 's':
+
/*
* Since log options are SUSET, we need to postpone unless
* still in secure context
@@ -2850,19 +2852,20 @@ PostgresMain(int argc, char *argv[], const char *username)
break;
case 't':
- {
- const char *tmp = get_stats_option_name(optarg);
- if (tmp)
{
- if (ctx == PGC_BACKEND)
- PendingConfigOption(tmp, "true");
+ const char *tmp = get_stats_option_name(optarg);
+
+ if (tmp)
+ {
+ if (ctx == PGC_BACKEND)
+ PendingConfigOption(tmp, "true");
+ else
+ SetConfigOption(tmp, "true", ctx, gucsource);
+ }
else
- SetConfigOption(tmp, "true", ctx, gucsource);
+ errs++;
+ break;
}
- else
- errs++;
- break;
- }
case 'v':
if (secure)
@@ -2875,6 +2878,7 @@ PostgresMain(int argc, char *argv[], const char *username)
case 'y':
+
/*
* y - special flag passed if backend was forked by a
* postmaster.
@@ -3090,10 +3094,10 @@ PostgresMain(int argc, char *argv[], const char *username)
}
/*
- * Create a per-backend PGPROC struct in shared memory, except in
- * the EXEC_BACKEND case where this was done in SubPostmasterMain.
- * We must do this before we can use LWLocks (and in the EXEC_BACKEND
- * case we already had to do some stuff with LWLocks).
+ * Create a per-backend PGPROC struct in shared memory, except in the
+ * EXEC_BACKEND case where this was done in SubPostmasterMain. We must do
+ * this before we can use LWLocks (and in the EXEC_BACKEND case we already
+ * had to do some stuff with LWLocks).
*/
#ifdef EXEC_BACKEND
if (!IsUnderPostmaster)
@@ -3154,8 +3158,8 @@ PostgresMain(int argc, char *argv[], const char *username)
on_proc_exit(log_disconnections, 0);
/*
- * process any libraries that should be preloaded at backend start
- * (this likewise can't be done until GUC settings are complete)
+ * process any libraries that should be preloaded at backend start (this
+ * likewise can't be done until GUC settings are complete)
*/
process_local_preload_libraries();
@@ -3290,7 +3294,7 @@ PostgresMain(int argc, char *argv[], const char *username)
PG_SETMASK(&UnBlockSig);
if (!ignore_till_sync)
- send_ready_for_query = true; /* initially, or after error */
+ send_ready_for_query = true; /* initially, or after error */
/*
* Non-error queries loop here.
@@ -3465,8 +3469,8 @@ PostgresMain(int argc, char *argv[], const char *username)
/*
* Note: we may at this point be inside an aborted
- * transaction. We can't throw error for that until
- * we've finished reading the function-call message, so
+ * transaction. We can't throw error for that until we've
+ * finished reading the function-call message, so
* HandleFunctionRequest() must check for it after doing so.
* Be careful not to do anything that assumes we're inside a
* valid transaction here.
@@ -3778,5 +3782,5 @@ log_disconnections(int code, Datum arg)
"user=%s database=%s host=%s%s%s",
hours, minutes, seconds, msecs,
port->user_name, port->database_name, port->remote_host,
- port->remote_port[0] ? " port=" : "", port->remote_port)));
+ port->remote_port[0] ? " port=" : "", port->remote_port)));
}
diff --git a/src/backend/tcop/pquery.c b/src/backend/tcop/pquery.c
index 8738d91abd..62310f7c0c 100644
--- a/src/backend/tcop/pquery.c
+++ b/src/backend/tcop/pquery.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/tcop/pquery.c,v 1.110 2006/09/03 03:19:45 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/tcop/pquery.c,v 1.111 2006/10/04 00:29:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -218,8 +218,8 @@ ChoosePortalStrategy(List *parseTrees)
/*
* PORTAL_ONE_SELECT and PORTAL_UTIL_SELECT need only consider the
- * single-Query-struct case, since there are no rewrite rules that
- * can add auxiliary queries to a SELECT or a utility command.
+ * single-Query-struct case, since there are no rewrite rules that can add
+ * auxiliary queries to a SELECT or a utility command.
*/
if (list_length(parseTrees) == 1)
{
@@ -244,8 +244,8 @@ ChoosePortalStrategy(List *parseTrees)
/*
* PORTAL_ONE_RETURNING has to allow auxiliary queries added by rewrite.
- * Choose PORTAL_ONE_RETURNING if there is exactly one canSetTag query
- * and it has a RETURNING list.
+ * Choose PORTAL_ONE_RETURNING if there is exactly one canSetTag query and
+ * it has a RETURNING list.
*/
nSetTag = 0;
foreach(lc, parseTrees)
@@ -256,9 +256,9 @@ ChoosePortalStrategy(List *parseTrees)
if (query->canSetTag)
{
if (++nSetTag > 1)
- return PORTAL_MULTI_QUERY; /* no need to look further */
+ return PORTAL_MULTI_QUERY; /* no need to look further */
if (query->returningList == NIL)
- return PORTAL_MULTI_QUERY; /* no need to look further */
+ return PORTAL_MULTI_QUERY; /* no need to look further */
}
}
if (nSetTag == 1)
@@ -418,7 +418,7 @@ PortalStart(Portal portal, ParamListInfo params, Snapshot snapshot)
if (portal->cursorOptions & CURSOR_OPT_SCROLL)
eflags = EXEC_FLAG_REWIND | EXEC_FLAG_BACKWARD;
else
- eflags = 0; /* default run-to-completion flags */
+ eflags = 0; /* default run-to-completion flags */
/*
* Call ExecutorStart to prepare the plan for execution
@@ -447,8 +447,8 @@ PortalStart(Portal portal, ParamListInfo params, Snapshot snapshot)
case PORTAL_ONE_RETURNING:
/*
- * We don't start the executor until we are told to run
- * the portal. We do need to set up the result tupdesc.
+ * We don't start the executor until we are told to run the
+ * portal. We do need to set up the result tupdesc.
*/
portal->tupDesc =
ExecCleanTypeFromTL((PortalGetPrimaryQuery(portal))->returningList, false);
@@ -672,8 +672,8 @@ PortalRun(Portal portal, long count,
case PORTAL_UTIL_SELECT:
/*
- * If we have not yet run the command, do so,
- * storing its results in the portal's tuplestore.
+ * If we have not yet run the command, do so, storing its
+ * results in the portal's tuplestore.
*/
if (!portal->holdStore)
FillPortalStore(portal);
@@ -922,10 +922,11 @@ FillPortalStore(Portal portal)
switch (portal->strategy)
{
case PORTAL_ONE_RETURNING:
+
/*
- * Run the portal to completion just as for the default MULTI_QUERY
- * case, but send the primary query's output to the tuplestore.
- * Auxiliary query outputs are discarded.
+ * Run the portal to completion just as for the default
+ * MULTI_QUERY case, but send the primary query's output to the
+ * tuplestore. Auxiliary query outputs are discarded.
*/
PortalRunMulti(portal, treceiver, None_Receiver, completionTag);
/* Override default completion tag with actual command result */
@@ -1253,8 +1254,8 @@ PortalRunFetch(Portal portal,
case PORTAL_UTIL_SELECT:
/*
- * If we have not yet run the command, do so,
- * storing its results in the portal's tuplestore.
+ * If we have not yet run the command, do so, storing its
+ * results in the portal's tuplestore.
*/
if (!portal->holdStore)
FillPortalStore(portal);
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c
index 868da2d5ff..448b0fba02 100644
--- a/src/backend/tcop/utility.c
+++ b/src/backend/tcop/utility.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.268 2006/09/07 22:52:01 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.269 2006/10/04 00:29:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -632,7 +632,7 @@ ProcessUtility(Node *parsetree,
case T_CopyStmt:
{
- uint64 processed = DoCopy((CopyStmt *) parsetree);
+ uint64 processed = DoCopy((CopyStmt *) parsetree);
if (completionTag)
snprintf(completionTag, COMPLETION_TAG_BUFSIZE,
@@ -798,10 +798,10 @@ ProcessUtility(Node *parsetree,
stmt->unique,
stmt->primary,
stmt->isconstraint,
- false, /* is_alter_table */
- true, /* check_rights */
- false, /* skip_build */
- false, /* quiet */
+ false, /* is_alter_table */
+ true, /* check_rights */
+ false, /* skip_build */
+ false, /* quiet */
stmt->concurrent); /* concurrent */
}
break;
@@ -1883,7 +1883,7 @@ GetCommandLogLevel(Node *parsetree)
case T_SelectStmt:
if (((SelectStmt *) parsetree)->into)
- lev = LOGSTMT_DDL; /* CREATE AS, SELECT INTO */
+ lev = LOGSTMT_DDL; /* CREATE AS, SELECT INTO */
else
lev = LOGSTMT_ALL;
break;
@@ -2053,7 +2053,7 @@ GetCommandLogLevel(Node *parsetree)
case T_ExplainStmt:
{
- ExplainStmt *stmt = (ExplainStmt *) parsetree;
+ ExplainStmt *stmt = (ExplainStmt *) parsetree;
/* Look through an EXPLAIN ANALYZE to the contained stmt */
if (stmt->analyze)
@@ -2128,7 +2128,7 @@ GetCommandLogLevel(Node *parsetree)
break;
case T_ReindexStmt:
- lev = LOGSTMT_ALL; /* should this be DDL? */
+ lev = LOGSTMT_ALL; /* should this be DDL? */
break;
case T_CreateConversionStmt:
@@ -2153,7 +2153,7 @@ GetCommandLogLevel(Node *parsetree)
case T_PrepareStmt:
{
- PrepareStmt *stmt = (PrepareStmt *) parsetree;
+ PrepareStmt *stmt = (PrepareStmt *) parsetree;
/* Look through a PREPARE to the contained stmt */
return GetCommandLogLevel((Node *) stmt->query);
@@ -2162,9 +2162,9 @@ GetCommandLogLevel(Node *parsetree)
case T_ExecuteStmt:
{
- ExecuteStmt *stmt = (ExecuteStmt *) parsetree;
+ ExecuteStmt *stmt = (ExecuteStmt *) parsetree;
PreparedStatement *pstmt;
- ListCell *l;
+ ListCell *l;
/* Look through an EXECUTE to the referenced stmt(s) */
lev = LOGSTMT_ALL;
@@ -2173,7 +2173,7 @@ GetCommandLogLevel(Node *parsetree)
{
foreach(l, pstmt->query_list)
{
- Query *query = (Query *) lfirst(l);
+ Query *query = (Query *) lfirst(l);
LogStmtLevel stmt_lev;
stmt_lev = GetQueryLogLevel(query);
@@ -2188,10 +2188,11 @@ GetCommandLogLevel(Node *parsetree)
break;
case T_Query:
+
/*
* In complicated situations (eg, EXPLAIN ANALYZE in an extended
- * Query protocol), we might find an already-analyzed query
- * within a utility statement. Cope.
+ * Query protocol), we might find an already-analyzed query within
+ * a utility statement. Cope.
*/
lev = GetQueryLogLevel((Query *) parsetree);
break;
@@ -2224,7 +2225,7 @@ GetQueryLogLevel(Query *parsetree)
{
case CMD_SELECT:
if (parsetree->into != NULL)
- lev = LOGSTMT_DDL; /* CREATE AS, SELECT INTO */
+ lev = LOGSTMT_DDL; /* CREATE AS, SELECT INTO */
else
lev = LOGSTMT_ALL;
break;
diff --git a/src/backend/utils/adt/arrayfuncs.c b/src/backend/utils/adt/arrayfuncs.c
index dd1f1649fa..a29d31bd6e 100644
--- a/src/backend/utils/adt/arrayfuncs.c
+++ b/src/backend/utils/adt/arrayfuncs.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.132 2006/09/29 21:22:21 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.133 2006/10/04 00:29:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -2050,21 +2050,21 @@ array_set(ArrayType *array,
dim[0] += addedbefore;
lb[0] = indx[0];
if (addedbefore > 1)
- newhasnulls = true; /* will insert nulls */
+ newhasnulls = true; /* will insert nulls */
}
if (indx[0] >= (dim[0] + lb[0]))
{
addedafter = indx[0] - (dim[0] + lb[0]) + 1;
dim[0] += addedafter;
if (addedafter > 1)
- newhasnulls = true; /* will insert nulls */
+ newhasnulls = true; /* will insert nulls */
}
}
else
{
/*
- * XXX currently we do not support extending multi-dimensional
- * arrays during assignment
+ * XXX currently we do not support extending multi-dimensional arrays
+ * during assignment
*/
for (i = 0; i < ndim; i++)
{
@@ -2338,7 +2338,7 @@ array_set_slice(ArrayType *array,
if (lowerIndx[0] < lb[0])
{
if (upperIndx[0] < lb[0] - 1)
- newhasnulls = true; /* will insert nulls */
+ newhasnulls = true; /* will insert nulls */
addedbefore = lb[0] - lowerIndx[0];
dim[0] += addedbefore;
lb[0] = lowerIndx[0];
@@ -2346,7 +2346,7 @@ array_set_slice(ArrayType *array,
if (upperIndx[0] >= (dim[0] + lb[0]))
{
if (lowerIndx[0] > (dim[0] + lb[0]))
- newhasnulls = true; /* will insert nulls */
+ newhasnulls = true; /* will insert nulls */
addedafter = upperIndx[0] - (dim[0] + lb[0]) + 1;
dim[0] += addedafter;
}
@@ -2354,15 +2354,15 @@ array_set_slice(ArrayType *array,
else
{
/*
- * XXX currently we do not support extending multi-dimensional
- * arrays during assignment
+ * XXX currently we do not support extending multi-dimensional arrays
+ * during assignment
*/
for (i = 0; i < nSubscripts; i++)
{
if (lowerIndx[i] > upperIndx[i])
ereport(ERROR,
(errcode(ERRCODE_ARRAY_SUBSCRIPT_ERROR),
- errmsg("upper bound cannot be less than lower bound")));
+ errmsg("upper bound cannot be less than lower bound")));
if (lowerIndx[i] < lb[i] ||
upperIndx[i] >= (dim[i] + lb[i]))
ereport(ERROR,
@@ -2377,7 +2377,7 @@ array_set_slice(ArrayType *array,
if (lowerIndx[i] > upperIndx[i])
ereport(ERROR,
(errcode(ERRCODE_ARRAY_SUBSCRIPT_ERROR),
- errmsg("upper bound cannot be less than lower bound")));
+ errmsg("upper bound cannot be less than lower bound")));
}
}
@@ -3417,8 +3417,8 @@ array_contain_compare(ArrayType *array1, ArrayType *array2, bool matchall,
/*
* We arrange to look up the equality function only once per series of
* calls, assuming the element type doesn't change underneath us. The
- * typcache is used so that we have no memory leakage when being used
- * as an index support function.
+ * typcache is used so that we have no memory leakage when being used as
+ * an index support function.
*/
typentry = (TypeCacheEntry *) *fn_extra;
if (typentry == NULL ||
@@ -3429,8 +3429,8 @@ array_contain_compare(ArrayType *array1, ArrayType *array2, bool matchall,
if (!OidIsValid(typentry->eq_opr_finfo.fn_oid))
ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_FUNCTION),
- errmsg("could not identify an equality operator for type %s",
- format_type_be(element_type))));
+ errmsg("could not identify an equality operator for type %s",
+ format_type_be(element_type))));
*fn_extra = (void *) typentry;
}
typlen = typentry->typlen;
@@ -3486,9 +3486,9 @@ array_contain_compare(ArrayType *array1, ArrayType *array2, bool matchall,
}
/*
- * We assume that the comparison operator is strict, so a NULL
- * can't match anything. XXX this diverges from the "NULL=NULL"
- * behavior of array_eq, should we act like that?
+ * We assume that the comparison operator is strict, so a NULL can't
+ * match anything. XXX this diverges from the "NULL=NULL" behavior of
+ * array_eq, should we act like that?
*/
if (isnull1)
{
diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c
index 81f7e63650..fac642ddc9 100644
--- a/src/backend/utils/adt/datetime.c
+++ b/src/backend/utils/adt/datetime.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.171 2006/09/16 20:14:33 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.172 2006/10/04 00:29:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -97,7 +97,7 @@ char *days[] = {"Sunday", "Monday", "Tuesday", "Wednesday",
*/
static datetkn *timezonetktbl = NULL;
-static int sztimezonetktbl = 0;
+static int sztimezonetktbl = 0;
static const datetkn datetktbl[] = {
/* text, token, lexval */
@@ -176,7 +176,7 @@ static const datetkn datetktbl[] = {
{YESTERDAY, RESERV, DTK_YESTERDAY}, /* yesterday midnight */
};
-static int szdatetktbl = sizeof datetktbl / sizeof datetktbl[0];
+static int szdatetktbl = sizeof datetktbl / sizeof datetktbl[0];
static datetkn deltatktbl[] = {
/* text, token, lexval */
@@ -246,7 +246,7 @@ static datetkn deltatktbl[] = {
{"yrs", UNITS, DTK_YEAR}, /* "years" relative */
};
-static int szdeltatktbl = sizeof deltatktbl / sizeof deltatktbl[0];
+static int szdeltatktbl = sizeof deltatktbl / sizeof deltatktbl[0];
static const datetkn *datecache[MAXDATEFIELDS] = {NULL};
@@ -562,12 +562,19 @@ ParseDateTime(const char *timestr, char *workbuf, size_t buflen,
if (*cp == '/')
{
ftype[nf] = DTK_TZ;
- /* set the first character of the region to upper case
- * again*/
+
+ /*
+ * set the first character of the region to upper case
+ * again
+ */
field[nf][0] = pg_toupper((unsigned char) field[nf][0]);
- /* we have seen "Region/" of a POSIX timezone, continue to
- * read the City part */
- do {
+
+ /*
+ * we have seen "Region/" of a POSIX timezone, continue to
+ * read the City part
+ */
+ do
+ {
APPEND_CHAR(bufp, bufend, *cp++);
/* there is for example America/New_York */
} while (isalpha((unsigned char) *cp) || *cp == '_');
@@ -1303,13 +1310,14 @@ DecodeDateTime(char **field, int *ftype, int nf,
if (zicTzFnum != -1)
{
- Datum tsTz;
- Timestamp timestamp;
+ Datum tsTz;
+ Timestamp timestamp;
+
tm2timestamp(tm, *fsec, NULL, &timestamp);
tsTz = DirectFunctionCall2(timestamp_zone,
- DirectFunctionCall1(textin,
- CStringGetDatum(field[zicTzFnum])),
- TimestampGetDatum(timestamp));
+ DirectFunctionCall1(textin,
+ CStringGetDatum(field[zicTzFnum])),
+ TimestampGetDatum(timestamp));
timestamp2tm(DatumGetTimestampTz(tsTz), tzp, tm, fsec, NULL, NULL);
fmask &= ~DTK_M(TZ);
}
@@ -2920,7 +2928,8 @@ DecodeInterval(char **field, int *ftype, int nf, int *dtype, struct pg_tm * tm,
tm->tm_mday += val * 7;
if (fval != 0)
{
- int extra_days;
+ int extra_days;
+
fval *= 7;
extra_days = (int32) fval;
tm->tm_mday += extra_days;
@@ -2928,6 +2937,7 @@ DecodeInterval(char **field, int *ftype, int nf, int *dtype, struct pg_tm * tm,
if (fval != 0)
{
int sec;
+
fval *= SECS_PER_DAY;
sec = fval;
tm->tm_sec += sec;
@@ -2945,7 +2955,8 @@ DecodeInterval(char **field, int *ftype, int nf, int *dtype, struct pg_tm * tm,
tm->tm_mon += val;
if (fval != 0)
{
- int day;
+ int day;
+
fval *= DAYS_PER_MONTH;
day = fval;
tm->tm_mday += day;
@@ -2953,6 +2964,7 @@ DecodeInterval(char **field, int *ftype, int nf, int *dtype, struct pg_tm * tm,
if (fval != 0)
{
int sec;
+
fval *= SECS_PER_DAY;
sec = fval;
tm->tm_sec += sec;
@@ -3808,7 +3820,7 @@ CheckDateTokenTables(void)
void
InstallTimeZoneAbbrevs(tzEntry *abbrevs, int n)
{
- datetkn *newtbl;
+ datetkn *newtbl;
int i;
/*
@@ -3844,29 +3856,28 @@ InstallTimeZoneAbbrevs(tzEntry *abbrevs, int n)
Datum
pg_timezone_abbrevs(PG_FUNCTION_ARGS)
{
- FuncCallContext *funcctx;
- int *pindex;
- Datum result;
- HeapTuple tuple;
- Datum values[3];
- bool nulls[3];
- char buffer[TOKMAXLEN + 1];
- unsigned char *p;
- struct pg_tm tm;
- Interval *resInterval;
+ FuncCallContext *funcctx;
+ int *pindex;
+ Datum result;
+ HeapTuple tuple;
+ Datum values[3];
+ bool nulls[3];
+ char buffer[TOKMAXLEN + 1];
+ unsigned char *p;
+ struct pg_tm tm;
+ Interval *resInterval;
/* stuff done only on the first call of the function */
if (SRF_IS_FIRSTCALL())
{
- TupleDesc tupdesc;
- MemoryContext oldcontext;
+ TupleDesc tupdesc;
+ MemoryContext oldcontext;
/* create a function context for cross-call persistence */
funcctx = SRF_FIRSTCALL_INIT();
/*
- * switch to memory context appropriate for multiple function
- * calls
+ * switch to memory context appropriate for multiple function calls
*/
oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
@@ -3901,8 +3912,8 @@ pg_timezone_abbrevs(PG_FUNCTION_ARGS)
MemSet(nulls, 0, sizeof(nulls));
/*
- * Convert name to text, using upcasing conversion that is the inverse
- * of what ParseDateTime() uses.
+ * Convert name to text, using upcasing conversion that is the inverse of
+ * what ParseDateTime() uses.
*/
strncpy(buffer, timezonetktbl[*pindex].token, TOKMAXLEN);
buffer[TOKMAXLEN] = '\0'; /* may not be null-terminated */
@@ -3936,32 +3947,31 @@ pg_timezone_abbrevs(PG_FUNCTION_ARGS)
Datum
pg_timezone_names(PG_FUNCTION_ARGS)
{
- MemoryContext oldcontext;
- FuncCallContext *funcctx;
- pg_tzenum *tzenum;
- pg_tz *tz;
- Datum result;
- HeapTuple tuple;
- Datum values[4];
- bool nulls[4];
+ MemoryContext oldcontext;
+ FuncCallContext *funcctx;
+ pg_tzenum *tzenum;
+ pg_tz *tz;
+ Datum result;
+ HeapTuple tuple;
+ Datum values[4];
+ bool nulls[4];
int tzoff;
- struct pg_tm tm;
+ struct pg_tm tm;
fsec_t fsec;
char *tzn;
- Interval *resInterval;
- struct pg_tm itm;
+ Interval *resInterval;
+ struct pg_tm itm;
/* stuff done only on the first call of the function */
if (SRF_IS_FIRSTCALL())
{
- TupleDesc tupdesc;
+ TupleDesc tupdesc;
/* create a function context for cross-call persistence */
funcctx = SRF_FIRSTCALL_INIT();
/*
- * switch to memory context appropriate for multiple function
- * calls
+ * switch to memory context appropriate for multiple function calls
*/
oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
@@ -4021,7 +4031,7 @@ pg_timezone_names(PG_FUNCTION_ARGS)
MemSet(nulls, 0, sizeof(nulls));
values[0] = DirectFunctionCall1(textin,
- CStringGetDatum(pg_get_timezone_name(tz)));
+ CStringGetDatum(pg_get_timezone_name(tz)));
values[1] = DirectFunctionCall1(textin,
CStringGetDatum(tzn ? tzn : ""));
diff --git a/src/backend/utils/adt/domains.c b/src/backend/utils/adt/domains.c
index 2126c6b87b..590c561589 100644
--- a/src/backend/utils/adt/domains.c
+++ b/src/backend/utils/adt/domains.c
@@ -25,7 +25,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/domains.c,v 1.3 2006/08/04 21:33:36 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/domains.c,v 1.4 2006/10/04 00:29:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -146,8 +146,8 @@ domain_check_input(Datum value, bool isnull, DomainIOData *my_extra)
/*
* Set up value to be returned by CoerceToDomainValue
* nodes. Unlike ExecEvalCoerceToDomain, this econtext
- * couldn't be shared with anything else, so no need
- * to save and restore fields.
+ * couldn't be shared with anything else, so no need to
+ * save and restore fields.
*/
econtext->domainValue_datum = value;
econtext->domainValue_isNull = isnull;
@@ -174,8 +174,8 @@ domain_check_input(Datum value, bool isnull, DomainIOData *my_extra)
/*
* Before exiting, call any shutdown callbacks and reset econtext's
- * per-tuple memory. This avoids leaking non-memory resources,
- * if anything in the expression(s) has any.
+ * per-tuple memory. This avoids leaking non-memory resources, if
+ * anything in the expression(s) has any.
*/
if (econtext)
ReScanExprContext(econtext);
@@ -194,9 +194,9 @@ domain_in(PG_FUNCTION_ARGS)
Datum value;
/*
- * Since domain_in is not strict, we have to check for null inputs.
- * The typioparam argument should never be null in normal system usage,
- * but it could be null in a manual invocation --- if so, just return null.
+ * Since domain_in is not strict, we have to check for null inputs. The
+ * typioparam argument should never be null in normal system usage, but it
+ * could be null in a manual invocation --- if so, just return null.
*/
if (PG_ARGISNULL(0))
string = NULL;
@@ -207,8 +207,8 @@ domain_in(PG_FUNCTION_ARGS)
domainType = PG_GETARG_OID(1);
/*
- * We arrange to look up the needed info just once per series of
- * calls, assuming the domain type doesn't change underneath us.
+ * We arrange to look up the needed info just once per series of calls,
+ * assuming the domain type doesn't change underneath us.
*/
my_extra = (DomainIOData *) fcinfo->flinfo->fn_extra;
if (my_extra == NULL)
@@ -254,9 +254,9 @@ domain_recv(PG_FUNCTION_ARGS)
Datum value;
/*
- * Since domain_recv is not strict, we have to check for null inputs.
- * The typioparam argument should never be null in normal system usage,
- * but it could be null in a manual invocation --- if so, just return null.
+ * Since domain_recv is not strict, we have to check for null inputs. The
+ * typioparam argument should never be null in normal system usage, but it
+ * could be null in a manual invocation --- if so, just return null.
*/
if (PG_ARGISNULL(0))
buf = NULL;
@@ -267,8 +267,8 @@ domain_recv(PG_FUNCTION_ARGS)
domainType = PG_GETARG_OID(1);
/*
- * We arrange to look up the needed info just once per series of
- * calls, assuming the domain type doesn't change underneath us.
+ * We arrange to look up the needed info just once per series of calls,
+ * assuming the domain type doesn't change underneath us.
*/
my_extra = (DomainIOData *) fcinfo->flinfo->fn_extra;
if (my_extra == NULL)
diff --git a/src/backend/utils/adt/float.c b/src/backend/utils/adt/float.c
index 1f8d081c8b..c4fbe89455 100644
--- a/src/backend/utils/adt/float.c
+++ b/src/backend/utils/adt/float.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/float.c,v 1.128 2006/07/28 18:33:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/float.c,v 1.129 2006/10/04 00:29:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -78,11 +78,12 @@
#define HAVE_FINITE 1
#endif
-/* Visual C++ etc lacks NAN, and won't accept 0.0/0.0. NAN definition from
+/* Visual C++ etc lacks NAN, and won't accept 0.0/0.0. NAN definition from
* http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/vclrfNotNumberNANItems.asp
*/
#if defined(WIN32) && !defined(NAN)
static const uint32 nan[2] = {0xffffffff, 0x7fffffff};
+
#define NAN (*(const double *) nan)
#endif
@@ -2137,7 +2138,7 @@ float8_stddev_samp(PG_FUNCTION_ARGS)
* in that order. Note that Y is the first argument to the aggregates!
*
* It might seem attractive to optimize this by having multiple accumulator
- * functions that only calculate the sums actually needed. But on most
+ * functions that only calculate the sums actually needed. But on most
* modern machines, a couple of extra floating-point multiplies will be
* insignificant compared to the other per-tuple overhead, so I've chosen
* to minimize code space instead.
@@ -2150,7 +2151,12 @@ float8_regr_accum(PG_FUNCTION_ARGS)
float8 newvalY = PG_GETARG_FLOAT8(1);
float8 newvalX = PG_GETARG_FLOAT8(2);
float8 *transvalues;
- float8 N, sumX, sumX2, sumY, sumY2, sumXY;
+ float8 N,
+ sumX,
+ sumX2,
+ sumY,
+ sumY2,
+ sumXY;
transvalues = check_float8_array(transarray, "float8_regr_accum", 6);
N = transvalues[0];
@@ -2265,7 +2271,11 @@ float8_regr_sxy(PG_FUNCTION_ARGS)
{
ArrayType *transarray = PG_GETARG_ARRAYTYPE_P(0);
float8 *transvalues;
- float8 N, sumX, sumY, sumXY, numerator;
+ float8 N,
+ sumX,
+ sumY,
+ sumXY,
+ numerator;
transvalues = check_float8_array(transarray, "float8_regr_sxy", 6);
N = transvalues[0];
@@ -2327,7 +2337,11 @@ float8_covar_pop(PG_FUNCTION_ARGS)
{
ArrayType *transarray = PG_GETARG_ARRAYTYPE_P(0);
float8 *transvalues;
- float8 N, sumX, sumY, sumXY, numerator;
+ float8 N,
+ sumX,
+ sumY,
+ sumXY,
+ numerator;
transvalues = check_float8_array(transarray, "float8_covar_pop", 6);
N = transvalues[0];
@@ -2349,7 +2363,11 @@ float8_covar_samp(PG_FUNCTION_ARGS)
{
ArrayType *transarray = PG_GETARG_ARRAYTYPE_P(0);
float8 *transvalues;
- float8 N, sumX, sumY, sumXY, numerator;
+ float8 N,
+ sumX,
+ sumY,
+ sumXY,
+ numerator;
transvalues = check_float8_array(transarray, "float8_covar_samp", 6);
N = transvalues[0];
@@ -2371,8 +2389,15 @@ float8_corr(PG_FUNCTION_ARGS)
{
ArrayType *transarray = PG_GETARG_ARRAYTYPE_P(0);
float8 *transvalues;
- float8 N, sumX, sumX2, sumY, sumY2, sumXY, numeratorX,
- numeratorY, numeratorXY;
+ float8 N,
+ sumX,
+ sumX2,
+ sumY,
+ sumY2,
+ sumXY,
+ numeratorX,
+ numeratorY,
+ numeratorXY;
transvalues = check_float8_array(transarray, "float8_corr", 6);
N = transvalues[0];
@@ -2391,7 +2416,7 @@ float8_corr(PG_FUNCTION_ARGS)
numeratorXY = N * sumXY - sumX * sumY;
if (numeratorX <= 0 || numeratorY <= 0)
PG_RETURN_NULL();
-
+
PG_RETURN_FLOAT8(sqrt((numeratorXY * numeratorXY) /
(numeratorX * numeratorY)));
}
@@ -2401,8 +2426,15 @@ float8_regr_r2(PG_FUNCTION_ARGS)
{
ArrayType *transarray = PG_GETARG_ARRAYTYPE_P(0);
float8 *transvalues;
- float8 N, sumX, sumX2, sumY, sumY2, sumXY, numeratorX,
- numeratorY, numeratorXY;
+ float8 N,
+ sumX,
+ sumX2,
+ sumY,
+ sumY2,
+ sumXY,
+ numeratorX,
+ numeratorY,
+ numeratorXY;
transvalues = check_float8_array(transarray, "float8_regr_r2", 6);
N = transvalues[0];
@@ -2434,8 +2466,13 @@ float8_regr_slope(PG_FUNCTION_ARGS)
{
ArrayType *transarray = PG_GETARG_ARRAYTYPE_P(0);
float8 *transvalues;
- float8 N, sumX, sumX2, sumY, sumXY, numeratorX,
- numeratorXY;
+ float8 N,
+ sumX,
+ sumX2,
+ sumY,
+ sumXY,
+ numeratorX,
+ numeratorXY;
transvalues = check_float8_array(transarray, "float8_regr_slope", 6);
N = transvalues[0];
@@ -2452,7 +2489,7 @@ float8_regr_slope(PG_FUNCTION_ARGS)
numeratorXY = N * sumXY - sumX * sumY;
if (numeratorX <= 0)
PG_RETURN_NULL();
-
+
PG_RETURN_FLOAT8(numeratorXY / numeratorX);
}
@@ -2461,8 +2498,13 @@ float8_regr_intercept(PG_FUNCTION_ARGS)
{
ArrayType *transarray = PG_GETARG_ARRAYTYPE_P(0);
float8 *transvalues;
- float8 N, sumX, sumX2, sumY, sumXY, numeratorX,
- numeratorXXY;
+ float8 N,
+ sumX,
+ sumX2,
+ sumY,
+ sumXY,
+ numeratorX,
+ numeratorXXY;
transvalues = check_float8_array(transarray, "float8_regr_intercept", 6);
N = transvalues[0];
@@ -2479,7 +2521,7 @@ float8_regr_intercept(PG_FUNCTION_ARGS)
numeratorXXY = sumY * sumX2 - sumX * sumXY;
if (numeratorX <= 0)
PG_RETURN_NULL();
-
+
PG_RETURN_FLOAT8(numeratorXXY / numeratorX);
}
@@ -2744,13 +2786,13 @@ cbrt(double x)
double tmpres = pow(absx, (double) 1.0 / (double) 3.0);
/*
- * The result is somewhat inaccurate --- not really pow()'s fault,
- * as the exponent it's handed contains roundoff error. We can improve
- * the accuracy by doing one iteration of Newton's formula. Beware of
- * zero input however.
+ * The result is somewhat inaccurate --- not really pow()'s fault, as the
+ * exponent it's handed contains roundoff error. We can improve the
+ * accuracy by doing one iteration of Newton's formula. Beware of zero
+ * input however.
*/
if (tmpres > 0.0)
- tmpres -= (tmpres - absx/(tmpres*tmpres)) / (double) 3.0;
+ tmpres -= (tmpres - absx / (tmpres * tmpres)) / (double) 3.0;
return isneg ? -tmpres : tmpres;
}
diff --git a/src/backend/utils/adt/formatting.c b/src/backend/utils/adt/formatting.c
index 53cf15319d..d97c1bf405 100644
--- a/src/backend/utils/adt/formatting.c
+++ b/src/backend/utils/adt/formatting.c
@@ -1,7 +1,7 @@
/* -----------------------------------------------------------------------
* formatting.c
*
- * $PostgreSQL: pgsql/src/backend/utils/adt/formatting.c,v 1.112 2006/09/10 22:54:47 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/formatting.c,v 1.113 2006/10/04 00:29:59 momjian Exp $
*
*
* Portions Copyright (c) 1999-2006, PostgreSQL Global Development Group
@@ -83,7 +83,7 @@
#include "utils/numeric.h"
#include "utils/pg_locale.h"
-#define _(x) gettext((x))
+#define _(x) gettext((x))
/* ----------
* Routines type
@@ -1708,7 +1708,7 @@ strdigits_len(char *str)
len = strspace_len(str);
p += len;
-
+
while (*p && isdigit((unsigned char) *p) && len <= DCH_MAX_ITEM_SIZ)
{
len++;
@@ -1828,7 +1828,7 @@ dch_time(int arg, char *inout, int suf, bool is_to_char, bool is_interval,
{
sprintf(inout, "%0*d", S_FM(suf) ? 0 : 2,
tm->tm_hour % (HOURS_PER_DAY / 2) == 0 ? 12 :
- tm->tm_hour % (HOURS_PER_DAY / 2));
+ tm->tm_hour % (HOURS_PER_DAY / 2));
if (S_THth(suf))
str_numth(p_inout, inout, 0);
return strlen(p_inout);
@@ -2084,8 +2084,8 @@ dch_date(int arg, char *inout, int suf, bool is_to_char, bool is_interval,
tmfc = (TmFromChar *) data;
/*
- * In the FROM-char there is no difference between "January" or "JANUARY" or
- * "january", all is before search convert to "first-upper". This
+ * In the FROM-char there is no difference between "January" or "JANUARY"
+ * or "january", all is before search convert to "first-upper". This
* convention is used for MONTH, MON, DAY, DY
*/
if (!is_to_char)
@@ -2863,7 +2863,7 @@ datetime_to_char_body(TmToChar *tmtc, text *fmt, bool is_interval)
static char *
localize_month_full(int index)
{
- char *m = NULL;
+ char *m = NULL;
switch (index)
{
@@ -2911,7 +2911,7 @@ localize_month_full(int index)
static char *
localize_month(int index)
{
- char *m = NULL;
+ char *m = NULL;
switch (index)
{
@@ -2959,7 +2959,7 @@ localize_month(int index)
static char *
localize_day_full(int index)
{
- char *d = NULL;
+ char *d = NULL;
switch (index)
{
@@ -2992,7 +2992,7 @@ localize_day_full(int index)
static char *
localize_day(int index)
{
- char *d = NULL;
+ char *d = NULL;
switch (index)
{
diff --git a/src/backend/utils/adt/int.c b/src/backend/utils/adt/int.c
index 0a93354697..3970bda83d 100644
--- a/src/backend/utils/adt/int.c
+++ b/src/backend/utils/adt/int.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/int.c,v 1.74 2006/06/12 16:28:52 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/int.c,v 1.75 2006/10/04 00:29:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -209,10 +209,10 @@ int2vectorrecv(PG_FUNCTION_ARGS)
int2vector *result;
/*
- * Normally one would call array_recv() using DirectFunctionCall3,
- * but that does not work since array_recv wants to cache some data
- * using fcinfo->flinfo->fn_extra. So we need to pass it our own
- * flinfo parameter.
+ * Normally one would call array_recv() using DirectFunctionCall3, but
+ * that does not work since array_recv wants to cache some data using
+ * fcinfo->flinfo->fn_extra. So we need to pass it our own flinfo
+ * parameter.
*/
InitFunctionCallInfoData(locfcinfo, fcinfo->flinfo, 3, NULL, NULL);
@@ -736,9 +736,10 @@ int4mul(PG_FUNCTION_ARGS)
int32 result;
#ifdef WIN32
+
/*
- * Win32 doesn't throw a catchable exception for
- * SELECT -2147483648 * (-1); -- INT_MIN
+ * Win32 doesn't throw a catchable exception for SELECT -2147483648 *
+ * (-1); -- INT_MIN
*/
if (arg2 == -1 && arg1 == INT_MIN)
ereport(ERROR,
@@ -782,9 +783,10 @@ int4div(PG_FUNCTION_ARGS)
errmsg("division by zero")));
#ifdef WIN32
+
/*
- * Win32 doesn't throw a catchable exception for
- * SELECT -2147483648 / (-1); -- INT_MIN
+ * Win32 doesn't throw a catchable exception for SELECT -2147483648 /
+ * (-1); -- INT_MIN
*/
if (arg2 == -1 && arg1 == INT_MIN)
ereport(ERROR,
diff --git a/src/backend/utils/adt/int8.c b/src/backend/utils/adt/int8.c
index 00432994c5..903d415327 100644
--- a/src/backend/utils/adt/int8.c
+++ b/src/backend/utils/adt/int8.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/int8.c,v 1.61 2006/07/28 18:33:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/int8.c,v 1.62 2006/10/04 00:29:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -696,7 +696,7 @@ int8inc(PG_FUNCTION_ARGS)
/*
* These functions are exactly like int8inc but are used for aggregates that
- * count only non-null values. Since the functions are declared strict,
+ * count only non-null values. Since the functions are declared strict,
* the null checks happen before we ever get here, and all we need do is
* increment the state value. We could actually make these pg_proc entries
* point right at int8inc, but then the opr_sanity regression test would
diff --git a/src/backend/utils/adt/like.c b/src/backend/utils/adt/like.c
index e2026218bf..4223bffb18 100644
--- a/src/backend/utils/adt/like.c
+++ b/src/backend/utils/adt/like.c
@@ -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.65 2006/09/04 18:32:55 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/like.c,v 1.66 2006/10/04 00:29:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -66,12 +66,12 @@ wchareq(char *p1, char *p2)
/*
* Formerly we had a routine iwchareq() here that tried to do case-insensitive
- * comparison of multibyte characters. It did not work at all, however,
+ * comparison of multibyte characters. It did not work at all, however,
* because it relied on tolower() which has a single-byte API ... and
* towlower() wouldn't be much better since we have no suitably cheap way
* of getting a single character transformed to the system's wchar_t format.
* So now, we just downcase the strings using lower() and apply regular LIKE
- * comparison. This should be revisited when we install better locale support.
+ * comparison. This should be revisited when we install better locale support.
*
* Note that MBMatchText and MBMatchTextIC do exactly the same thing now.
* Is it worth refactoring to avoid duplicated code? They might become
@@ -286,12 +286,12 @@ nameiclike(PG_FUNCTION_ARGS)
else
{
/* Force inputs to lower case to achieve case insensitivity */
- text *strtext;
+ text *strtext;
strtext = DatumGetTextP(DirectFunctionCall1(name_text,
NameGetDatum(str)));
strtext = DatumGetTextP(DirectFunctionCall1(lower,
- PointerGetDatum(strtext)));
+ PointerGetDatum(strtext)));
pat = DatumGetTextP(DirectFunctionCall1(lower,
PointerGetDatum(pat)));
@@ -327,12 +327,12 @@ nameicnlike(PG_FUNCTION_ARGS)
else
{
/* Force inputs to lower case to achieve case insensitivity */
- text *strtext;
+ text *strtext;
strtext = DatumGetTextP(DirectFunctionCall1(name_text,
NameGetDatum(str)));
strtext = DatumGetTextP(DirectFunctionCall1(lower,
- PointerGetDatum(strtext)));
+ PointerGetDatum(strtext)));
pat = DatumGetTextP(DirectFunctionCall1(lower,
PointerGetDatum(pat)));
diff --git a/src/backend/utils/adt/lockfuncs.c b/src/backend/utils/adt/lockfuncs.c
index a9d8b8b88f..8e0a7bcf98 100644
--- a/src/backend/utils/adt/lockfuncs.c
+++ b/src/backend/utils/adt/lockfuncs.c
@@ -6,7 +6,7 @@
* Copyright (c) 2002-2006, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/lockfuncs.c,v 1.26 2006/09/22 23:20:14 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/lockfuncs.c,v 1.27 2006/10/04 00:29:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -258,8 +258,8 @@ pg_lock_status(PG_FUNCTION_ARGS)
else
nulls[10] = 'n';
values[11] = DirectFunctionCall1(textin,
- CStringGetDatum(GetLockmodeName(LOCK_LOCKMETHOD(*lock),
- mode)));
+ CStringGetDatum(GetLockmodeName(LOCK_LOCKMETHOD(*lock),
+ mode)));
values[12] = BoolGetDatum(granted);
tuple = heap_formtuple(funcctx->tuple_desc, values, nulls);
@@ -361,7 +361,7 @@ pg_try_advisory_lock_shared_int8(PG_FUNCTION_ARGS)
}
/*
- * pg_advisory_unlock(int8) - release exclusive lock on an int8 key
+ * pg_advisory_unlock(int8) - release exclusive lock on an int8 key
*
* Returns true if successful, false if lock was not held
*/
@@ -473,7 +473,7 @@ pg_try_advisory_lock_shared_int4(PG_FUNCTION_ARGS)
}
/*
- * pg_advisory_unlock(int4, int4) - release exclusive lock on 2 int4 keys
+ * pg_advisory_unlock(int4, int4) - release exclusive lock on 2 int4 keys
*
* Returns true if successful, false if lock was not held
*/
diff --git a/src/backend/utils/adt/misc.c b/src/backend/utils/adt/misc.c
index 22c8af482c..014d2c8bf6 100644
--- a/src/backend/utils/adt/misc.c
+++ b/src/backend/utils/adt/misc.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/misc.c,v 1.53 2006/07/14 14:52:24 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/misc.c,v 1.54 2006/10/04 00:29:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -272,16 +272,16 @@ pg_sleep(PG_FUNCTION_ARGS)
float8 endtime;
/*
- * We break the requested sleep into segments of no more than 1 second,
- * to put an upper bound on how long it will take us to respond to a
- * cancel or die interrupt. (Note that pg_usleep is interruptible by
- * signals on some platforms but not others.) Also, this method avoids
- * exposing pg_usleep's upper bound on allowed delays.
+ * We break the requested sleep into segments of no more than 1 second, to
+ * put an upper bound on how long it will take us to respond to a cancel
+ * or die interrupt. (Note that pg_usleep is interruptible by signals on
+ * some platforms but not others.) Also, this method avoids exposing
+ * pg_usleep's upper bound on allowed delays.
*
- * By computing the intended stop time initially, we avoid accumulation
- * of extra delay across multiple sleeps. This also ensures we won't
- * delay less than the specified time if pg_usleep is interrupted
- * by other signals such as SIGHUP.
+ * By computing the intended stop time initially, we avoid accumulation of
+ * extra delay across multiple sleeps. This also ensures we won't delay
+ * less than the specified time if pg_usleep is interrupted by other
+ * signals such as SIGHUP.
*/
#ifdef HAVE_INT64_TIMESTAMP
diff --git a/src/backend/utils/adt/network.c b/src/backend/utils/adt/network.c
index 2624c203f7..bd7406bc2b 100644
--- a/src/backend/utils/adt/network.c
+++ b/src/backend/utils/adt/network.c
@@ -1,7 +1,7 @@
/*
* PostgreSQL type definitions for the INET and CIDR types.
*
- * $PostgreSQL: pgsql/src/backend/utils/adt/network.c,v 1.65 2006/02/11 20:39:58 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/network.c,v 1.66 2006/10/04 00:29:59 momjian Exp $
*
* Jon Postel RIP 16 Oct 1998
*/
@@ -181,7 +181,7 @@ cidr_out(PG_FUNCTION_ARGS)
* family, bits, is_cidr, address length, address in network byte order.
*
* Presence of is_cidr is largely for historical reasons, though it might
- * allow some code-sharing on the client side. We send it correctly on
+ * allow some code-sharing on the client side. We send it correctly on
* output, but ignore the value on input.
*/
static inet *
@@ -201,14 +201,14 @@ network_recv(StringInfo buf, bool is_cidr)
ip_family(addr) != PGSQL_AF_INET6)
ereport(ERROR,
(errcode(ERRCODE_INVALID_BINARY_REPRESENTATION),
- /* translator: %s is inet or cidr */
+ /* translator: %s is inet or cidr */
errmsg("invalid address family in external \"%s\" value",
is_cidr ? "cidr" : "inet")));
bits = pq_getmsgbyte(buf);
if (bits < 0 || bits > ip_maxbits(addr))
ereport(ERROR,
(errcode(ERRCODE_INVALID_BINARY_REPRESENTATION),
- /* translator: %s is inet or cidr */
+ /* translator: %s is inet or cidr */
errmsg("invalid bits in external \"%s\" value",
is_cidr ? "cidr" : "inet")));
ip_bits(addr) = bits;
@@ -217,7 +217,7 @@ network_recv(StringInfo buf, bool is_cidr)
if (nb != ip_addrsize(addr))
ereport(ERROR,
(errcode(ERRCODE_INVALID_BINARY_REPRESENTATION),
- /* translator: %s is inet or cidr */
+ /* translator: %s is inet or cidr */
errmsg("invalid length in external \"%s\" value",
is_cidr ? "cidr" : "inet")));
VARATT_SIZEP(addr) = VARHDRSZ +
@@ -1262,9 +1262,9 @@ inetnot(PG_FUNCTION_ARGS)
dst = (inet *) palloc0(VARHDRSZ + sizeof(inet_struct));
{
- int nb = ip_addrsize(ip);
- unsigned char *pip = ip_addr(ip);
- unsigned char *pdst = ip_addr(dst);
+ int nb = ip_addrsize(ip);
+ unsigned char *pip = ip_addr(ip);
+ unsigned char *pdst = ip_addr(dst);
while (nb-- > 0)
pdst[nb] = ~pip[nb];
@@ -1295,10 +1295,10 @@ inetand(PG_FUNCTION_ARGS)
errmsg("cannot AND inet values of different sizes")));
else
{
- int nb = ip_addrsize(ip);
- unsigned char *pip = ip_addr(ip);
- unsigned char *pip2 = ip_addr(ip2);
- unsigned char *pdst = ip_addr(dst);
+ int nb = ip_addrsize(ip);
+ unsigned char *pip = ip_addr(ip);
+ unsigned char *pip2 = ip_addr(ip2);
+ unsigned char *pdst = ip_addr(dst);
while (nb-- > 0)
pdst[nb] = pip[nb] & pip2[nb];
@@ -1329,10 +1329,10 @@ inetor(PG_FUNCTION_ARGS)
errmsg("cannot OR inet values of different sizes")));
else
{
- int nb = ip_addrsize(ip);
- unsigned char *pip = ip_addr(ip);
- unsigned char *pip2 = ip_addr(ip2);
- unsigned char *pdst = ip_addr(dst);
+ int nb = ip_addrsize(ip);
+ unsigned char *pip = ip_addr(ip);
+ unsigned char *pip2 = ip_addr(ip2);
+ unsigned char *pdst = ip_addr(dst);
while (nb-- > 0)
pdst[nb] = pip[nb] | pip2[nb];
@@ -1356,32 +1356,34 @@ internal_inetpl(inet *ip, int64 addend)
dst = (inet *) palloc0(VARHDRSZ + sizeof(inet_struct));
{
- int nb = ip_addrsize(ip);
- unsigned char *pip = ip_addr(ip);
- unsigned char *pdst = ip_addr(dst);
- int carry = 0;
+ int nb = ip_addrsize(ip);
+ unsigned char *pip = ip_addr(ip);
+ unsigned char *pdst = ip_addr(dst);
+ int carry = 0;
while (nb-- > 0)
{
carry = pip[nb] + (int) (addend & 0xFF) + carry;
pdst[nb] = (unsigned char) (carry & 0xFF);
carry >>= 8;
+
/*
* We have to be careful about right-shifting addend because
- * right-shift isn't portable for negative values, while
- * simply dividing by 256 doesn't work (the standard rounding
- * is in the wrong direction, besides which there may be machines
- * out there that round the wrong way). So, explicitly clear
- * the low-order byte to remove any doubt about the correct
- * result of the division, and then divide rather than shift.
+ * right-shift isn't portable for negative values, while simply
+ * dividing by 256 doesn't work (the standard rounding is in the
+ * wrong direction, besides which there may be machines out there
+ * that round the wrong way). So, explicitly clear the low-order
+ * byte to remove any doubt about the correct result of the
+ * division, and then divide rather than shift.
*/
addend &= ~((int64) 0xFF);
addend /= 0x100;
}
+
/*
- * At this point we should have addend and carry both zero if
- * original addend was >= 0, or addend -1 and carry 1 if original
- * addend was < 0. Anything else means overflow.
+ * At this point we should have addend and carry both zero if original
+ * addend was >= 0, or addend -1 and carry 1 if original addend was <
+ * 0. Anything else means overflow.
*/
if (!((addend == 0 && carry == 0) ||
(addend == -1 && carry == 1)))
@@ -1403,8 +1405,8 @@ internal_inetpl(inet *ip, int64 addend)
Datum
inetpl(PG_FUNCTION_ARGS)
{
- inet *ip = PG_GETARG_INET_P(0);
- int64 addend = PG_GETARG_INT64(1);
+ inet *ip = PG_GETARG_INET_P(0);
+ int64 addend = PG_GETARG_INT64(1);
PG_RETURN_INET_P(internal_inetpl(ip, addend));
}
@@ -1413,8 +1415,8 @@ inetpl(PG_FUNCTION_ARGS)
Datum
inetmi_int8(PG_FUNCTION_ARGS)
{
- inet *ip = PG_GETARG_INET_P(0);
- int64 addend = PG_GETARG_INT64(1);
+ inet *ip = PG_GETARG_INET_P(0);
+ int64 addend = PG_GETARG_INT64(1);
PG_RETURN_INET_P(internal_inetpl(ip, -addend));
}
@@ -1434,20 +1436,20 @@ inetmi(PG_FUNCTION_ARGS)
else
{
/*
- * We form the difference using the traditional complement,
- * increment, and add rule, with the increment part being handled
- * by starting the carry off at 1. If you don't think integer
- * arithmetic is done in two's complement, too bad.
+ * We form the difference using the traditional complement, increment,
+ * and add rule, with the increment part being handled by starting the
+ * carry off at 1. If you don't think integer arithmetic is done in
+ * two's complement, too bad.
*/
- int nb = ip_addrsize(ip);
- int byte = 0;
- unsigned char *pip = ip_addr(ip);
- unsigned char *pip2 = ip_addr(ip2);
- int carry = 1;
+ int nb = ip_addrsize(ip);
+ int byte = 0;
+ unsigned char *pip = ip_addr(ip);
+ unsigned char *pip2 = ip_addr(ip2);
+ int carry = 1;
while (nb-- > 0)
{
- int lobyte;
+ int lobyte;
carry = pip[nb] + (~pip2[nb] & 0xFF) + carry;
lobyte = carry & 0xFF;
@@ -1458,9 +1460,9 @@ inetmi(PG_FUNCTION_ARGS)
else
{
/*
- * Input wider than int64: check for overflow. All bytes
- * to the left of what will fit should be 0 or 0xFF,
- * depending on sign of the now-complete result.
+ * Input wider than int64: check for overflow. All bytes to
+ * the left of what will fit should be 0 or 0xFF, depending on
+ * sign of the now-complete result.
*/
if ((res < 0) ? (lobyte != 0xFF) : (lobyte != 0))
ereport(ERROR,
@@ -1472,8 +1474,8 @@ inetmi(PG_FUNCTION_ARGS)
}
/*
- * If input is narrower than int64, overflow is not possible, but
- * we have to do proper sign extension.
+ * If input is narrower than int64, overflow is not possible, but we
+ * have to do proper sign extension.
*/
if (carry == 0 && byte < sizeof(int64))
res |= ((int64) -1) << (byte * 8);
diff --git a/src/backend/utils/adt/numeric.c b/src/backend/utils/adt/numeric.c
index 6d77c49c12..35b0221b85 100644
--- a/src/backend/utils/adt/numeric.c
+++ b/src/backend/utils/adt/numeric.c
@@ -14,7 +14,7 @@
* Copyright (c) 1998-2006, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/numeric.c,v 1.95 2006/10/03 21:25:55 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/numeric.c,v 1.96 2006/10/04 00:29:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -253,10 +253,10 @@ static double numericvar_to_double_no_overflow(NumericVar *var);
static int cmp_numerics(Numeric num1, Numeric num2);
static int cmp_var(NumericVar *var1, NumericVar *var2);
-static int cmp_var_common(const NumericDigit *var1digits, int var1ndigits,
- int var1weight, int var1sign,
- const NumericDigit *var2digits, int var2ndigits,
- int var2weight, int var2sign);
+static int cmp_var_common(const NumericDigit *var1digits, int var1ndigits,
+ int var1weight, int var1sign,
+ const NumericDigit *var2digits, int var2ndigits,
+ int var2weight, int var2sign);
static void add_var(NumericVar *var1, NumericVar *var2, NumericVar *result);
static void sub_var(NumericVar *var1, NumericVar *var2, NumericVar *result);
static void mul_var(NumericVar *var1, NumericVar *var2, NumericVar *result,
@@ -278,10 +278,10 @@ static void power_var_int(NumericVar *base, int exp, NumericVar *result,
int rscale);
static int cmp_abs(NumericVar *var1, NumericVar *var2);
-static int cmp_abs_common(const NumericDigit *var1digits, int var1ndigits,
- int var1weight,
- const NumericDigit *var2digits, int var2ndigits,
- int var2weight);
+static int cmp_abs_common(const NumericDigit *var1digits, int var1ndigits,
+ int var1weight,
+ const NumericDigit *var2digits, int var2ndigits,
+ int var2weight);
static void add_abs(NumericVar *var1, NumericVar *var2, NumericVar *result);
static void sub_abs(NumericVar *var1, NumericVar *var2, NumericVar *result);
static void round_var(NumericVar *var, int rscale);
@@ -2228,9 +2228,8 @@ numeric_stddev_internal(ArrayType *transarray,
set_var_from_num(N, &vN);
/*
- * Sample stddev and variance are undefined when N <= 1;
- * population stddev is undefined when N == 0. Return NULL in
- * either case.
+ * Sample stddev and variance are undefined when N <= 1; population stddev
+ * is undefined when N == 0. Return NULL in either case.
*/
if (sample)
comp = &const_one;
@@ -2257,7 +2256,7 @@ numeric_stddev_internal(ArrayType *transarray,
mul_var(&vsumX, &vsumX, &vsumX, rscale); /* vsumX = sumX * sumX */
mul_var(&vN, &vsumX2, &vsumX2, rscale); /* vsumX2 = N * sumX2 */
- sub_var(&vsumX2, &vsumX, &vsumX2); /* N * sumX2 - sumX * sumX */
+ sub_var(&vsumX2, &vsumX, &vsumX2); /* N * sumX2 - sumX * sumX */
if (cmp_var(&vsumX2, &const_zero) <= 0)
{
@@ -2266,11 +2265,11 @@ numeric_stddev_internal(ArrayType *transarray,
}
else
{
- mul_var(&vN, &vNminus1, &vNminus1, 0); /* N * (N - 1) */
+ mul_var(&vN, &vNminus1, &vNminus1, 0); /* N * (N - 1) */
rscale = select_div_scale(&vsumX2, &vNminus1);
- div_var(&vsumX2, &vNminus1, &vsumX, rscale, true); /* variance */
+ div_var(&vsumX2, &vNminus1, &vsumX, rscale, true); /* variance */
if (!variance)
- sqrt_var(&vsumX, &vsumX, rscale); /* stddev */
+ sqrt_var(&vsumX, &vsumX, rscale); /* stddev */
res = make_result(&vsumX);
}
@@ -2286,8 +2285,8 @@ numeric_stddev_internal(ArrayType *transarray,
Datum
numeric_var_samp(PG_FUNCTION_ARGS)
{
- Numeric res;
- bool is_null;
+ Numeric res;
+ bool is_null;
res = numeric_stddev_internal(PG_GETARG_ARRAYTYPE_P(0),
true, true, &is_null);
@@ -2301,8 +2300,8 @@ numeric_var_samp(PG_FUNCTION_ARGS)
Datum
numeric_stddev_samp(PG_FUNCTION_ARGS)
{
- Numeric res;
- bool is_null;
+ Numeric res;
+ bool is_null;
res = numeric_stddev_internal(PG_GETARG_ARRAYTYPE_P(0),
false, true, &is_null);
@@ -2316,8 +2315,8 @@ numeric_stddev_samp(PG_FUNCTION_ARGS)
Datum
numeric_var_pop(PG_FUNCTION_ARGS)
{
- Numeric res;
- bool is_null;
+ Numeric res;
+ bool is_null;
res = numeric_stddev_internal(PG_GETARG_ARRAYTYPE_P(0),
true, false, &is_null);
@@ -2331,8 +2330,8 @@ numeric_var_pop(PG_FUNCTION_ARGS)
Datum
numeric_stddev_pop(PG_FUNCTION_ARGS)
{
- Numeric res;
- bool is_null;
+ Numeric res;
+ bool is_null;
res = numeric_stddev_internal(PG_GETARG_ARRAYTYPE_P(0),
false, false, &is_null);
@@ -3219,7 +3218,7 @@ apply_typmod(NumericVar *var, int32 typmod)
errmsg("numeric field overflow"),
errdetail("A field with precision %d, scale %d must round to an absolute value less than %s%d.",
precision, scale,
- /* Display 10^0 as 1 */
+ /* Display 10^0 as 1 */
maxdigits ? "10^" : "",
maxdigits ? maxdigits : 1
)));
@@ -3415,8 +3414,8 @@ cmp_var(NumericVar *var1, NumericVar *var2)
/*
* cmp_var_common() -
*
- * Main routine of cmp_var(). This function can be used by both
- * NumericVar and Numeric.
+ * Main routine of cmp_var(). This function can be used by both
+ * NumericVar and Numeric.
*/
static int
cmp_var_common(const NumericDigit *var1digits, int var1ndigits,
@@ -4853,13 +4852,13 @@ cmp_abs(NumericVar *var1, NumericVar *var2)
/* ----------
* cmp_abs_common() -
*
- * Main routine of cmp_abs(). This function can be used by both
- * NumericVar and Numeric.
+ * Main routine of cmp_abs(). This function can be used by both
+ * NumericVar and Numeric.
* ----------
*/
static int
cmp_abs_common(const NumericDigit *var1digits, int var1ndigits, int var1weight,
- const NumericDigit *var2digits, int var2ndigits, int var2weight)
+ const NumericDigit *var2digits, int var2ndigits, int var2weight)
{
int i1 = 0;
int i2 = 0;
diff --git a/src/backend/utils/adt/oid.c b/src/backend/utils/adt/oid.c
index 8ba769fafa..20142cb771 100644
--- a/src/backend/utils/adt/oid.c
+++ b/src/backend/utils/adt/oid.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/oid.c,v 1.68 2006/03/05 15:58:43 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/oid.c,v 1.69 2006/10/04 00:29:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -258,10 +258,10 @@ oidvectorrecv(PG_FUNCTION_ARGS)
oidvector *result;
/*
- * Normally one would call array_recv() using DirectFunctionCall3,
- * but that does not work since array_recv wants to cache some data
- * using fcinfo->flinfo->fn_extra. So we need to pass it our own
- * flinfo parameter.
+ * Normally one would call array_recv() using DirectFunctionCall3, but
+ * that does not work since array_recv wants to cache some data using
+ * fcinfo->flinfo->fn_extra. So we need to pass it our own flinfo
+ * parameter.
*/
InitFunctionCallInfoData(locfcinfo, fcinfo->flinfo, 3, NULL, NULL);
diff --git a/src/backend/utils/adt/pg_locale.c b/src/backend/utils/adt/pg_locale.c
index aa08c7bc8d..da81d79f39 100644
--- a/src/backend/utils/adt/pg_locale.c
+++ b/src/backend/utils/adt/pg_locale.c
@@ -4,7 +4,7 @@
*
* Portions Copyright (c) 2002-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/backend/utils/adt/pg_locale.c,v 1.36 2006/06/03 17:36:10 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/pg_locale.c,v 1.37 2006/10/04 00:29:59 momjian Exp $
*
*-----------------------------------------------------------------------
*/
@@ -70,6 +70,7 @@ static bool CurrentLocaleConvValid = false;
static char lc_collate_envbuf[LC_ENV_BUFSIZE];
static char lc_ctype_envbuf[LC_ENV_BUFSIZE];
+
#ifdef LC_MESSAGES
static char lc_messages_envbuf[LC_ENV_BUFSIZE];
#endif
@@ -93,18 +94,19 @@ static char lc_time_envbuf[LC_ENV_BUFSIZE];
char *
pg_perm_setlocale(int category, const char *locale)
{
- char *result;
+ char *result;
const char *envvar;
- char *envbuf;
+ char *envbuf;
#ifndef WIN32
result = setlocale(category, locale);
#else
+
/*
- * On Windows, setlocale(LC_MESSAGES) does not work, so just assume
- * that the given value is good and set it in the environment variables.
- * We must ignore attempts to set to "", which means "keep using the
- * old environment value".
+ * On Windows, setlocale(LC_MESSAGES) does not work, so just assume that
+ * the given value is good and set it in the environment variables. We
+ * must ignore attempts to set to "", which means "keep using the old
+ * environment value".
*/
#ifdef LC_MESSAGES
if (category == LC_MESSAGES)
@@ -116,7 +118,7 @@ pg_perm_setlocale(int category, const char *locale)
else
#endif
result = setlocale(category, locale);
-#endif /* WIN32 */
+#endif /* WIN32 */
if (result == NULL)
return result; /* fall out immediately on failure */
@@ -156,12 +158,13 @@ pg_perm_setlocale(int category, const char *locale)
break;
}
- snprintf(envbuf, LC_ENV_BUFSIZE-1, "%s=%s", envvar, result);
+ snprintf(envbuf, LC_ENV_BUFSIZE - 1, "%s=%s", envvar, result);
#ifndef WIN32
if (putenv(envbuf))
return NULL;
#else
+
/*
* On Windows, we need to modify both the process environment and the
* cached version in msvcrt
@@ -251,8 +254,8 @@ locale_messages_assign(const char *value, bool doit, GucSource source)
/*
* LC_MESSAGES category does not exist everywhere, but accept it anyway
*
- * On Windows, we can't even check the value, so the non-doit case
- * is a no-op
+ * On Windows, we can't even check the value, so the non-doit case is a
+ * no-op
*/
#ifdef LC_MESSAGES
if (doit)
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index d14a4c8e2f..e2d302b5a6 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/pgstatfuncs.c,v 1.33 2006/08/19 01:36:29 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/pgstatfuncs.c,v 1.34 2006/10/04 00:29:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -186,7 +186,7 @@ Datum
pg_stat_get_last_vacuum_time(PG_FUNCTION_ARGS)
{
Oid relid = PG_GETARG_OID(0);
- TimestampTz result;
+ TimestampTz result;
PgStat_StatTabEntry *tabentry;
if ((tabentry = pgstat_fetch_stat_tabentry(relid)) == NULL)
@@ -204,7 +204,7 @@ Datum
pg_stat_get_last_autovacuum_time(PG_FUNCTION_ARGS)
{
Oid relid = PG_GETARG_OID(0);
- TimestampTz result;
+ TimestampTz result;
PgStat_StatTabEntry *tabentry;
if ((tabentry = pgstat_fetch_stat_tabentry(relid)) == NULL)
@@ -222,7 +222,7 @@ Datum
pg_stat_get_last_analyze_time(PG_FUNCTION_ARGS)
{
Oid relid = PG_GETARG_OID(0);
- TimestampTz result;
+ TimestampTz result;
PgStat_StatTabEntry *tabentry;
if ((tabentry = pgstat_fetch_stat_tabentry(relid)) == NULL)
@@ -240,7 +240,7 @@ Datum
pg_stat_get_last_autoanalyze_time(PG_FUNCTION_ARGS)
{
Oid relid = PG_GETARG_OID(0);
- TimestampTz result;
+ TimestampTz result;
PgStat_StatTabEntry *tabentry;
if ((tabentry = pgstat_fetch_stat_tabentry(relid)) == NULL)
diff --git a/src/backend/utils/adt/regexp.c b/src/backend/utils/adt/regexp.c
index a7d11eaa6d..d249772064 100644
--- a/src/backend/utils/adt/regexp.c
+++ b/src/backend/utils/adt/regexp.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/regexp.c,v 1.65 2006/07/14 14:52:24 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/regexp.c,v 1.66 2006/10/04 00:29:59 momjian Exp $
*
* Alistair Crooks added the code for the regex caching
* agc - cached the regular expressions used - there's a good chance
@@ -554,7 +554,7 @@ similar_escape(PG_FUNCTION_ARGS)
* which is bizarre enough to require some explanation. "***:" is a
* director prefix to force the regex to be treated as an ARE regardless
* of the current regex_flavor setting. We need "^" and "$" to force
- * the pattern to match the entire input string as per SQL99 spec. The
+ * the pattern to match the entire input string as per SQL99 spec. The
* "(?:" and ")" are a non-capturing set of parens; we have to have
* parens in case the string contains "|", else the "^" and "$" will
* be bound into the first and last alternatives which is not what we
diff --git a/src/backend/utils/adt/ri_triggers.c b/src/backend/utils/adt/ri_triggers.c
index b58b99d2c8..747ef66bf7 100644
--- a/src/backend/utils/adt/ri_triggers.c
+++ b/src/backend/utils/adt/ri_triggers.c
@@ -17,7 +17,7 @@
*
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/backend/utils/adt/ri_triggers.c,v 1.88 2006/08/27 21:41:21 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/ri_triggers.c,v 1.89 2006/10/04 00:29:59 momjian Exp $
*
* ----------
*/
@@ -214,17 +214,17 @@ RI_FKey_check(PG_FUNCTION_ARGS)
/*
* We should not even consider checking the row if it is no longer valid,
* since it was either deleted (so the deferred check should be skipped)
- * or updated (in which case only the latest version of the row should
- * be checked). Test its liveness with HeapTupleSatisfiesItself.
+ * or updated (in which case only the latest version of the row should be
+ * checked). Test its liveness with HeapTupleSatisfiesItself.
*
* NOTE: The normal coding rule is that one must acquire the buffer
- * content lock to call HeapTupleSatisfiesFOO. We can skip that here
+ * content lock to call HeapTupleSatisfiesFOO. We can skip that 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.
+ * 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.
*/
Assert(new_row_buf != InvalidBuffer);
if (!HeapTupleSatisfiesItself(new_row->t_data, new_row_buf))
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c
index 821cc99e9f..f5b42524be 100644
--- a/src/backend/utils/adt/ruleutils.c
+++ b/src/backend/utils/adt/ruleutils.c
@@ -2,7 +2,7 @@
* ruleutils.c - Functions to convert stored expressions/querytrees
* back to source text
*
- * $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.233 2006/10/01 17:23:38 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.234 2006/10/04 00:29:59 momjian Exp $
**********************************************************************/
#include "postgres.h"
@@ -141,7 +141,7 @@ static void get_utility_query_def(Query *query, deparse_context *context);
static void get_basic_select_query(Query *query, deparse_context *context,
TupleDesc resultDesc);
static void get_target_list(List *targetList, deparse_context *context,
- TupleDesc resultDesc);
+ TupleDesc resultDesc);
static void get_setop_query(Node *setOp, Query *query,
deparse_context *context,
TupleDesc resultDesc);
@@ -176,7 +176,7 @@ static void get_from_clause_coldeflist(List *names, List *types, List *typmods,
static void get_opclass_name(Oid opclass, Oid actual_datatype,
StringInfo buf);
static Node *processIndirection(Node *node, deparse_context *context,
- bool printit);
+ bool printit);
static void printSubscripts(ArrayRef *aref, deparse_context *context);
static char *generate_relation_name(Oid relid);
static char *generate_function_name(Oid funcid, int nargs, Oid *argtypes);
@@ -530,10 +530,11 @@ pg_get_triggerdef(PG_FUNCTION_ARGS)
{
if (i > 0)
appendStringInfo(&buf, ", ");
+
/*
* We form the string literal according to the prevailing setting
- * of standard_conforming_strings; we never use E''.
- * User is responsible for making sure result is used correctly.
+ * of standard_conforming_strings; we never use E''. User is
+ * responsible for making sure result is used correctly.
*/
appendStringInfoChar(&buf, '\'');
while (*p)
@@ -1017,7 +1018,7 @@ pg_get_constraintdef_worker(Oid constraintId, bool fullCommand,
if (fullCommand && OidIsValid(conForm->conrelid))
{
- char *options = flatten_reloptions(conForm->conrelid);
+ char *options = flatten_reloptions(conForm->conrelid);
if (options)
{
@@ -1467,9 +1468,9 @@ deparse_context_for_subplan(const char *name, Node *subplan)
RangeTblEntry *rte = makeNode(RangeTblEntry);
/*
- * We create an RTE_SPECIAL RangeTblEntry, and store the subplan in
- * its funcexpr field. RTE_SPECIAL nodes shouldn't appear in
- * deparse contexts otherwise.
+ * We create an RTE_SPECIAL RangeTblEntry, and store the subplan in its
+ * funcexpr field. RTE_SPECIAL nodes shouldn't appear in deparse contexts
+ * otherwise.
*/
rte->rtekind = RTE_SPECIAL;
rte->relid = InvalidOid;
@@ -1831,7 +1832,7 @@ get_values_def(List *values_lists, deparse_context *context)
appendStringInfoChar(buf, '(');
foreach(lc, sublist)
{
- Node *col = (Node *) lfirst(lc);
+ Node *col = (Node *) lfirst(lc);
if (first_col)
first_col = false;
@@ -1964,10 +1965,10 @@ get_basic_select_query(Query *query, deparse_context *context,
}
/*
- * If the query looks like SELECT * FROM (VALUES ...), then print just
- * the VALUES part. This reverses what transformValuesClause() did at
- * parse time. If the jointree contains just a single VALUES RTE,
- * we assume this case applies (without looking at the targetlist...)
+ * If the query looks like SELECT * FROM (VALUES ...), then print just the
+ * VALUES part. This reverses what transformValuesClause() did at parse
+ * time. If the jointree contains just a single VALUES RTE, we assume
+ * this case applies (without looking at the targetlist...)
*/
if (list_length(query->jointree->fromlist) == 1)
{
@@ -2083,10 +2084,10 @@ get_target_list(List *targetList, deparse_context *context,
colno++;
/*
- * We special-case Var nodes rather than using get_rule_expr.
- * This is needed because get_rule_expr will display a whole-row Var
- * as "foo.*", which is the preferred notation in most contexts, but
- * at the top level of a SELECT list it's not right (the parser will
+ * We special-case Var nodes rather than using get_rule_expr. This is
+ * needed because get_rule_expr will display a whole-row Var as
+ * "foo.*", which is the preferred notation in most contexts, but at
+ * the top level of a SELECT list it's not right (the parser will
* expand that notation into multiple columns, yielding behavior
* different from a whole-row Var). We want just "foo", instead.
*/
@@ -2287,8 +2288,8 @@ get_insert_query_def(Query *query, deparse_context *context)
List *strippedexprs;
/*
- * If it's an INSERT ... SELECT or VALUES (...), (...), ...
- * there will be a single RTE for the SELECT or VALUES.
+ * If it's an INSERT ... SELECT or VALUES (...), (...), ... there will be
+ * a single RTE for the SELECT or VALUES.
*/
foreach(l, query->rtable)
{
@@ -2300,7 +2301,7 @@ get_insert_query_def(Query *query, deparse_context *context)
elog(ERROR, "too many subquery RTEs in INSERT");
select_rte = rte;
}
-
+
if (rte->rtekind == RTE_VALUES)
{
if (values_rte)
@@ -2326,12 +2327,12 @@ get_insert_query_def(Query *query, deparse_context *context)
generate_relation_name(rte->relid));
/*
- * Add the insert-column-names list. To handle indirection properly,
- * we need to look for indirection nodes in the top targetlist (if it's
+ * Add the insert-column-names list. To handle indirection properly, we
+ * need to look for indirection nodes in the top targetlist (if it's
* INSERT ... SELECT or INSERT ... single VALUES), or in the first
- * expression list of the VALUES RTE (if it's INSERT ... multi VALUES).
- * We assume that all the expression lists will have similar indirection
- * in the latter case.
+ * expression list of the VALUES RTE (if it's INSERT ... multi VALUES). We
+ * assume that all the expression lists will have similar indirection in
+ * the latter case.
*/
if (values_rte)
values_cell = list_head((List *) linitial(values_rte->values_lists));
@@ -2589,10 +2590,10 @@ get_rte_for_var(Var *var, int levelsup, deparse_context *context,
/*
* Try to find the relevant RTE in this rtable. In a plan tree, it's
- * likely that varno is OUTER, INNER, or 0, in which case we try to
- * use varnoold instead. If the Var references an expression computed
- * by a subplan, varnoold will be 0, and we fall back to looking at the
- * special subplan RTEs.
+ * likely that varno is OUTER, INNER, or 0, in which case we try to use
+ * varnoold instead. If the Var references an expression computed by a
+ * subplan, varnoold will be 0, and we fall back to looking at the special
+ * subplan RTEs.
*/
if (var->varno >= 1 && var->varno <= list_length(dpns->rtable))
rte = rt_fetch(var->varno, dpns->rtable);
@@ -2692,10 +2693,10 @@ get_names_for_var(Var *var, int levelsup, deparse_context *context,
/*
* This case occurs during EXPLAIN when we are looking at a
* deparse context node set up by deparse_context_for_subplan().
- * If the subplan tlist provides a name, use it, but usually
- * we'll end up with "?columnN?".
+ * If the subplan tlist provides a name, use it, but usually we'll
+ * end up with "?columnN?".
*/
- List *tlist = ((Plan *) rte->funcexpr)->targetlist;
+ List *tlist = ((Plan *) rte->funcexpr)->targetlist;
TargetEntry *tle = get_tle_by_resno(tlist, attnum);
if (tle && tle->resname)
@@ -2704,7 +2705,7 @@ get_names_for_var(Var *var, int levelsup, deparse_context *context,
}
else
{
- char buf[32];
+ char buf[32];
snprintf(buf, sizeof(buf), "?column%d?", attnum);
*attname = pstrdup(buf);
@@ -2767,8 +2768,8 @@ get_name_for_var_field(Var *var, int fieldno,
/*
* This case should not occur: a column of a table or values list
- * shouldn't have type RECORD. Fall through and fail
- * (most likely) at the bottom.
+ * shouldn't have type RECORD. Fall through and fail (most
+ * likely) at the bottom.
*/
break;
case RTE_SUBQUERY:
@@ -2836,7 +2837,7 @@ get_name_for_var_field(Var *var, int fieldno,
* that's not a Var, and then pass it to
* get_expr_result_type().
*/
- Plan *subplan = (Plan *) rte->funcexpr;
+ Plan *subplan = (Plan *) rte->funcexpr;
for (;;)
{
@@ -3484,7 +3485,7 @@ get_rule_expr(Node *node, deparse_context *context,
if (get_expr_result_type(arg, NULL, &tupdesc) != TYPEFUNC_COMPOSITE)
tupdesc = lookup_rowtype_tupdesc_copy(exprType(arg),
- exprTypmod(arg));
+ exprTypmod(arg));
Assert(tupdesc);
/* Got the tupdesc, so we can extract the field name */
Assert(fno >= 1 && fno <= tupdesc->natts);
@@ -3577,16 +3578,16 @@ get_rule_expr(Node *node, deparse_context *context,
if (caseexpr->arg)
{
/*
- * The parser should have produced WHEN clauses of
- * the form "CaseTestExpr = RHS"; we want to show
- * just the RHS. If the user wrote something silly
- * like "CASE boolexpr WHEN TRUE THEN ...", then
- * the optimizer's simplify_boolean_equality() may
- * have reduced this to just "CaseTestExpr" or
- * "NOT CaseTestExpr", for which we have to show
- * "TRUE" or "FALSE". Also, depending on context
- * the original CaseTestExpr might have been reduced
- * to a Const (but we won't see "WHEN Const").
+ * The parser should have produced WHEN clauses of the
+ * form "CaseTestExpr = RHS"; we want to show just the
+ * RHS. If the user wrote something silly like "CASE
+ * boolexpr WHEN TRUE THEN ...", then the optimizer's
+ * simplify_boolean_equality() may have reduced this
+ * to just "CaseTestExpr" or "NOT CaseTestExpr", for
+ * which we have to show "TRUE" or "FALSE". Also,
+ * depending on context the original CaseTestExpr
+ * might have been reduced to a Const (but we won't
+ * see "WHEN Const").
*/
if (IsA(w, OpExpr))
{
@@ -3719,17 +3720,18 @@ get_rule_expr(Node *node, deparse_context *context,
get_rule_expr(e, context, true);
sep = ", ";
}
+
/*
- * We assume that the name of the first-column operator
- * will do for all the rest too. This is definitely
- * open to failure, eg if some but not all operators
- * were renamed since the construct was parsed, but there
- * seems no way to be perfect.
+ * We assume that the name of the first-column operator will
+ * do for all the rest too. This is definitely open to
+ * failure, eg if some but not all operators were renamed
+ * since the construct was parsed, but there seems no way to
+ * be perfect.
*/
appendStringInfo(buf, ") %s ROW(",
- generate_operator_name(linitial_oid(rcexpr->opnos),
- exprType(linitial(rcexpr->largs)),
- exprType(linitial(rcexpr->rargs))));
+ generate_operator_name(linitial_oid(rcexpr->opnos),
+ exprType(linitial(rcexpr->largs)),
+ exprType(linitial(rcexpr->rargs))));
sep = "";
foreach(arg, rcexpr->rargs)
{
@@ -4052,7 +4054,7 @@ get_agg_expr(Aggref *aggref, deparse_context *context)
}
appendStringInfo(buf, "%s(%s",
- generate_function_name(aggref->aggfnoid, nargs, argtypes),
+ generate_function_name(aggref->aggfnoid, nargs, argtypes),
aggref->aggdistinct ? "DISTINCT " : "");
/* aggstar can be set only in zero-argument aggregates */
if (aggref->aggstar)
@@ -4142,8 +4144,8 @@ get_const_expr(Const *constval, deparse_context *context)
/*
* We form the string literal according to the prevailing setting
- * of standard_conforming_strings; we never use E''.
- * User is responsible for making sure result is used correctly.
+ * of standard_conforming_strings; we never use E''. User is
+ * responsible for making sure result is used correctly.
*/
appendStringInfoChar(buf, '\'');
for (valptr = extval; *valptr; valptr++)
@@ -4205,18 +4207,18 @@ get_sublink_expr(SubLink *sublink, deparse_context *context)
appendStringInfoChar(buf, '(');
/*
- * Note that we print the name of only the first operator, when there
- * are multiple combining operators. This is an approximation that
- * could go wrong in various scenarios (operators in different schemas,
- * renamed operators, etc) but there is not a whole lot we can do about
- * it, since the syntax allows only one operator to be shown.
+ * Note that we print the name of only the first operator, when there are
+ * multiple combining operators. This is an approximation that could go
+ * wrong in various scenarios (operators in different schemas, renamed
+ * operators, etc) but there is not a whole lot we can do about it, since
+ * the syntax allows only one operator to be shown.
*/
if (sublink->testexpr)
{
if (IsA(sublink->testexpr, OpExpr))
{
/* single combining operator */
- OpExpr *opexpr = (OpExpr *) sublink->testexpr;
+ OpExpr *opexpr = (OpExpr *) sublink->testexpr;
get_rule_expr(linitial(opexpr->args), context, true);
opname = generate_operator_name(opexpr->opno,
@@ -4233,7 +4235,7 @@ get_sublink_expr(SubLink *sublink, deparse_context *context)
sep = "";
foreach(l, ((BoolExpr *) sublink->testexpr)->args)
{
- OpExpr *opexpr = (OpExpr *) lfirst(l);
+ OpExpr *opexpr = (OpExpr *) lfirst(l);
Assert(IsA(opexpr, OpExpr));
appendStringInfoString(buf, sep);
@@ -4255,7 +4257,7 @@ get_sublink_expr(SubLink *sublink, deparse_context *context)
get_rule_expr((Node *) rcexpr->largs, context, true);
opname = generate_operator_name(linitial_oid(rcexpr->opnos),
exprType(linitial(rcexpr->largs)),
- exprType(linitial(rcexpr->rargs)));
+ exprType(linitial(rcexpr->rargs)));
appendStringInfoChar(buf, ')');
}
else
@@ -5129,8 +5131,8 @@ flatten_reloptions(Oid relid)
Anum_pg_class_reloptions, &isnull);
if (!isnull)
{
- Datum sep,
- txt;
+ Datum sep,
+ txt;
/*
* We want to use array_to_text(reloptions, ', ') --- but
diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfuncs.c
index 44879d20a2..4eed9619b7 100644
--- a/src/backend/utils/adt/selfuncs.c
+++ b/src/backend/utils/adt/selfuncs.c
@@ -15,7 +15,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/selfuncs.c,v 1.213 2006/09/20 19:50:21 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/selfuncs.c,v 1.214 2006/10/04 00:29:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -101,8 +101,8 @@
static double ineq_histogram_selectivity(VariableStatData *vardata,
- FmgrInfo *opproc, bool isgt,
- Datum constval, Oid consttype);
+ FmgrInfo *opproc, bool isgt,
+ Datum constval, Oid consttype);
static bool convert_to_scalar(Datum value, Oid valuetypid, double *scaledvalue,
Datum lobound, Datum hibound, Oid boundstypid,
double *scaledlobound, double *scaledhibound);
@@ -128,7 +128,7 @@ static double convert_timevalue_to_scalar(Datum value, Oid typid);
static bool get_variable_maximum(PlannerInfo *root, VariableStatData *vardata,
Oid sortop, Datum *max);
static Selectivity prefix_selectivity(VariableStatData *vardata,
- Oid opclass, Const *prefixcon);
+ Oid opclass, Const *prefixcon);
static Selectivity pattern_selectivity(Const *patt, Pattern_Type ptype);
static Datum string_to_datum(const char *str, Oid datatype);
static Const *string_to_const(const char *str, Oid datatype);
@@ -315,10 +315,9 @@ eqsel(PG_FUNCTION_ARGS)
else
{
/*
- * No ANALYZE stats available, so make a guess using estimated
- * number of distinct values and assuming they are equally common.
- * (The guess is unlikely to be very good, but we do know a few
- * special cases.)
+ * No ANALYZE stats available, so make a guess using estimated number
+ * of distinct values and assuming they are equally common. (The guess
+ * is unlikely to be very good, but we do know a few special cases.)
*/
selec = 1.0 / get_variable_numdistinct(&vardata);
}
@@ -523,7 +522,7 @@ mcv_selectivity(VariableStatData *vardata, FmgrInfo *opproc,
*
* Note that the result disregards both the most-common-values (if any) and
* null entries. The caller is expected to combine this result with
- * statistics for those portions of the column population. It may also be
+ * statistics for those portions of the column population. It may also be
* prudent to clamp the result range, ie, disbelieve exact 0 or 1 outputs.
*/
double
@@ -618,20 +617,20 @@ ineq_histogram_selectivity(VariableStatData *vardata,
if (nvalues > 1)
{
/*
- * Use binary search to find proper location, ie, the first
- * slot at which the comparison fails. (If the given operator
- * isn't actually sort-compatible with the histogram, you'll
- * get garbage results ... but probably not any more garbage-y
- * than you would from the old linear search.)
+ * Use binary search to find proper location, ie, the first slot
+ * at which the comparison fails. (If the given operator isn't
+ * actually sort-compatible with the histogram, you'll get garbage
+ * results ... but probably not any more garbage-y than you would
+ * from the old linear search.)
*/
- double histfrac;
- int lobound = 0; /* first possible slot to search */
- int hibound = nvalues; /* last+1 slot to search */
+ double histfrac;
+ int lobound = 0; /* first possible slot to search */
+ int hibound = nvalues; /* last+1 slot to search */
while (lobound < hibound)
{
- int probe = (lobound + hibound) / 2;
- bool ltcmp;
+ int probe = (lobound + hibound) / 2;
+ bool ltcmp;
ltcmp = DatumGetBool(FunctionCall2(opproc,
values[probe],
@@ -688,10 +687,10 @@ ineq_histogram_selectivity(VariableStatData *vardata,
binfrac = (val - low) / (high - low);
/*
- * Watch out for the possibility that we got a NaN
- * or Infinity from the division. This can happen
- * despite the previous checks, if for example
- * "low" is -Infinity.
+ * Watch out for the possibility that we got a NaN or
+ * Infinity from the division. This can happen
+ * despite the previous checks, if for example "low"
+ * is -Infinity.
*/
if (isnan(binfrac) ||
binfrac < 0.0 || binfrac > 1.0)
@@ -701,20 +700,20 @@ ineq_histogram_selectivity(VariableStatData *vardata,
else
{
/*
- * Ideally we'd produce an error here, on the grounds
- * that the given operator shouldn't have scalarXXsel
- * registered as its selectivity func unless we can
- * deal with its operand types. But currently, all
- * manner of stuff is invoking scalarXXsel, so give a
- * default estimate until that can be fixed.
+ * Ideally we'd produce an error here, on the grounds that
+ * the given operator shouldn't have scalarXXsel
+ * registered as its selectivity func unless we can deal
+ * with its operand types. But currently, all manner of
+ * stuff is invoking scalarXXsel, so give a default
+ * estimate until that can be fixed.
*/
binfrac = 0.5;
}
/*
* Now, compute the overall selectivity across the values
- * represented by the histogram. We have i-1 full bins
- * and binfrac partial bin below the constant.
+ * represented by the histogram. We have i-1 full bins and
+ * binfrac partial bin below the constant.
*/
histfrac = (double) (i - 1) + binfrac;
histfrac /= (double) (nvalues - 1);
@@ -1093,7 +1092,7 @@ patternsel(PG_FUNCTION_ARGS, Pattern_Type ptype)
/*
* If we have most-common-values info, add up the fractions of the MCV
* entries that satisfy MCV OP PATTERN. These fractions contribute
- * directly to the result selectivity. Also add up the total fraction
+ * directly to the result selectivity. Also add up the total fraction
* represented by MCV entries.
*/
mcv_selec = mcv_selectivity(&vardata, &opproc, constval, true,
@@ -1467,11 +1466,11 @@ scalararraysel(PlannerInfo *root,
RegProcedure oprsel;
FmgrInfo oprselproc;
Datum selarg4;
- Selectivity s1;
+ Selectivity s1;
/*
- * First, look up the underlying operator's selectivity estimator.
- * Punt if it hasn't got one.
+ * First, look up the underlying operator's selectivity estimator. Punt if
+ * it hasn't got one.
*/
if (is_join_clause)
{
@@ -1491,9 +1490,8 @@ scalararraysel(PlannerInfo *root,
* We consider three cases:
*
* 1. rightop is an Array constant: deconstruct the array, apply the
- * operator's selectivity function for each array element, and merge
- * the results in the same way that clausesel.c does for AND/OR
- * combinations.
+ * operator's selectivity function for each array element, and merge the
+ * results in the same way that clausesel.c does for AND/OR combinations.
*
* 2. rightop is an ARRAY[] construct: apply the operator's selectivity
* function for each element of the ARRAY[] construct, and merge.
@@ -1529,7 +1527,7 @@ scalararraysel(PlannerInfo *root,
s1 = useOr ? 0.0 : 1.0;
for (i = 0; i < num_elems; i++)
{
- List *args;
+ List *args;
Selectivity s2;
args = list_make2(leftop,
@@ -1562,7 +1560,7 @@ scalararraysel(PlannerInfo *root,
s1 = useOr ? 0.0 : 1.0;
foreach(l, arrayexpr->elements)
{
- List *args;
+ List *args;
Selectivity s2;
args = list_make2(leftop, lfirst(l));
@@ -1580,14 +1578,14 @@ scalararraysel(PlannerInfo *root,
else
{
CaseTestExpr *dummyexpr;
- List *args;
+ List *args;
Selectivity s2;
- int i;
+ int i;
/*
* We need a dummy rightop to pass to the operator selectivity
- * routine. It can be pretty much anything that doesn't look like
- * a constant; CaseTestExpr is a convenient choice.
+ * routine. It can be pretty much anything that doesn't look like a
+ * constant; CaseTestExpr is a convenient choice.
*/
dummyexpr = makeNode(CaseTestExpr);
dummyexpr->typeId = get_element_type(exprType(rightop));
@@ -1599,9 +1597,10 @@ scalararraysel(PlannerInfo *root,
PointerGetDatum(args),
selarg4));
s1 = useOr ? 0.0 : 1.0;
+
/*
- * Arbitrarily assume 10 elements in the eventual array value
- * (see also estimate_array_length)
+ * Arbitrarily assume 10 elements in the eventual array value (see
+ * also estimate_array_length)
*/
for (i = 0; i < 10; i++)
{
@@ -3050,14 +3049,19 @@ convert_string_datum(Datum value, Oid typid)
* == as you'd expect. Can't any of these people program their way
* out of a paper bag?
*/
-#if _MSC_VER == 1400 /* VS.Net 2005 */
- /* http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=99694 */
+#if _MSC_VER == 1400 /* VS.Net 2005 */
+
+ /*
+ * http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx
+ * ?FeedbackID=99694
+ */
{
- char x[1];
+ char x[1];
+
xfrmlen = strxfrm(x, val, 0);
}
#else
- xfrmlen = strxfrm(NULL, val, 0);
+ xfrmlen = strxfrm(NULL, val, 0);
#endif
xfrmstr = (char *) palloc(xfrmlen + 1);
xfrmlen2 = strxfrm(xfrmstr, val, xfrmlen + 1);
@@ -3399,9 +3403,9 @@ examine_variable(PlannerInfo *root, Node *node, int varRelid,
if (rte->inh)
{
/*
- * XXX This means the Var represents a column of an append relation.
- * Later add code to look at the member relations and try to derive
- * some kind of combined statistics?
+ * XXX This means the Var represents a column of an append
+ * relation. Later add code to look at the member relations and
+ * try to derive some kind of combined statistics?
*/
}
else if (rte->rtekind == RTE_RELATION)
@@ -4154,7 +4158,7 @@ prefix_selectivity(VariableStatData *vardata, Oid opclass, Const *prefixcon)
/*
* Merge the two selectivities in the same way as for a range query
- * (see clauselist_selectivity()). Note that we don't need to worry
+ * (see clauselist_selectivity()). Note that we don't need to worry
* about double-exclusion of nulls, since ineq_histogram_selectivity
* doesn't count those anyway.
*/
@@ -4162,8 +4166,8 @@ prefix_selectivity(VariableStatData *vardata, Oid opclass, Const *prefixcon)
/*
* A zero or negative prefixsel should be converted into a small
- * positive value; we probably are dealing with a very tight range
- * and got a bogus result due to roundoff errors.
+ * positive value; we probably are dealing with a very tight range and
+ * got a bogus result due to roundoff errors.
*/
if (prefixsel <= 0.0)
prefixsel = 1.0e-10;
@@ -4640,8 +4644,8 @@ genericcostestimate(PlannerInfo *root,
selectivityQuals = indexQuals;
/*
- * Check for ScalarArrayOpExpr index quals, and estimate the number
- * of index scans that will be performed.
+ * Check for ScalarArrayOpExpr index quals, and estimate the number of
+ * index scans that will be performed.
*/
num_sa_scans = 1;
foreach(l, indexQuals)
@@ -4651,7 +4655,7 @@ genericcostestimate(PlannerInfo *root,
if (IsA(rinfo->clause, ScalarArrayOpExpr))
{
ScalarArrayOpExpr *saop = (ScalarArrayOpExpr *) rinfo->clause;
- int alength = estimate_array_length(lsecond(saop->args));
+ int alength = estimate_array_length(lsecond(saop->args));
if (alength > 1)
num_sa_scans *= alength;
@@ -4679,8 +4683,8 @@ genericcostestimate(PlannerInfo *root,
numIndexTuples = rint(numIndexTuples / num_sa_scans);
/*
- * We can bound the number of tuples by the index size in any case.
- * Also, always estimate at least one tuple is touched, even when
+ * We can bound the number of tuples by the index size in any case. Also,
+ * always estimate at least one tuple is touched, even when
* indexSelectivity estimate is tiny.
*/
if (numIndexTuples > index->tuples)
@@ -4691,12 +4695,11 @@ genericcostestimate(PlannerInfo *root,
/*
* Estimate the number of index pages that will be retrieved.
*
- * We use the simplistic method of taking a pro-rata fraction of the
- * total number of index pages. In effect, this counts only leaf pages
- * and not any overhead such as index metapage or upper tree levels.
- * In practice this seems a better approximation than charging for
- * access to the upper levels, perhaps because those tend to stay in
- * cache under load.
+ * We use the simplistic method of taking a pro-rata fraction of the total
+ * number of index pages. In effect, this counts only leaf pages and not
+ * any overhead such as index metapage or upper tree levels. In practice
+ * this seems a better approximation than charging for access to the upper
+ * levels, perhaps because those tend to stay in cache under load.
*/
if (index->pages > 1 && index->tuples > 1)
numIndexPages = ceil(numIndexTuples * index->pages / index->tuples);
@@ -4706,19 +4709,19 @@ genericcostestimate(PlannerInfo *root,
/*
* Now compute the disk access costs.
*
- * The above calculations are all per-index-scan. However, if we are
- * in a nestloop inner scan, we can expect the scan to be repeated (with
+ * The above calculations are all per-index-scan. However, if we are in a
+ * nestloop inner scan, we can expect the scan to be repeated (with
* different search keys) for each row of the outer relation. Likewise,
- * ScalarArrayOpExpr quals result in multiple index scans. This
- * creates the potential for cache effects to reduce the number of
- * disk page fetches needed. We want to estimate the average per-scan
- * I/O cost in the presence of caching.
+ * ScalarArrayOpExpr quals result in multiple index scans. This creates
+ * the potential for cache effects to reduce the number of disk page
+ * fetches needed. We want to estimate the average per-scan I/O cost in
+ * the presence of caching.
*
* We use the Mackert-Lohman formula (see costsize.c for details) to
* estimate the total number of page fetches that occur. While this
* wasn't what it was designed for, it seems a reasonable model anyway.
- * Note that we are counting pages not tuples anymore, so we take
- * N = T = index size, as if there were one "tuple" per page.
+ * Note that we are counting pages not tuples anymore, so we take N = T =
+ * index size, as if there were one "tuple" per page.
*/
if (outer_rel != NULL && outer_rel->rows > 1)
{
@@ -4745,9 +4748,9 @@ genericcostestimate(PlannerInfo *root,
root);
/*
- * Now compute the total disk access cost, and then report a
- * pro-rated share for each outer scan. (Don't pro-rate for
- * ScalarArrayOpExpr, since that's internal to the indexscan.)
+ * Now compute the total disk access cost, and then report a pro-rated
+ * share for each outer scan. (Don't pro-rate for ScalarArrayOpExpr,
+ * since that's internal to the indexscan.)
*/
*indexTotalCost = (pages_fetched * random_page_cost) / num_outer_scans;
}
@@ -4761,20 +4764,20 @@ genericcostestimate(PlannerInfo *root,
}
/*
- * A difficulty with the leaf-pages-only cost approach is that for
- * small selectivities (eg, single index tuple fetched) all indexes
- * will look equally attractive because we will estimate exactly 1
- * leaf page to be fetched. All else being equal, we should prefer
- * physically smaller indexes over larger ones. (An index might be
- * smaller because it is partial or because it contains fewer columns;
- * presumably the other columns in the larger index aren't useful to
- * the query, or the larger index would have better selectivity.)
+ * A difficulty with the leaf-pages-only cost approach is that for small
+ * selectivities (eg, single index tuple fetched) all indexes will look
+ * equally attractive because we will estimate exactly 1 leaf page to be
+ * fetched. All else being equal, we should prefer physically smaller
+ * indexes over larger ones. (An index might be smaller because it is
+ * partial or because it contains fewer columns; presumably the other
+ * columns in the larger index aren't useful to the query, or the larger
+ * index would have better selectivity.)
*
* We can deal with this by adding a very small "fudge factor" that
* depends on the index size. The fudge factor used here is one
- * random_page_cost per 100000 index pages, which should be small
- * enough to not alter index-vs-seqscan decisions, but will prevent
- * indexes of different sizes from looking exactly equally attractive.
+ * random_page_cost per 100000 index pages, which should be small enough
+ * to not alter index-vs-seqscan decisions, but will prevent indexes of
+ * different sizes from looking exactly equally attractive.
*/
*indexTotalCost += index->pages * random_page_cost / 100000.0;
@@ -4841,8 +4844,8 @@ btcostestimate(PG_FUNCTION_ARGS)
* For a RowCompareExpr, we consider only the first column, just as
* rowcomparesel() does.
*
- * If there's a ScalarArrayOpExpr in the quals, we'll actually perform
- * N index scans not one, but the ScalarArrayOpExpr's operator can be
+ * If there's a ScalarArrayOpExpr in the quals, we'll actually perform N
+ * index scans not one, but the ScalarArrayOpExpr's operator can be
* considered to act the same as it normally does.
*/
indexBoundQuals = NIL;
@@ -4960,9 +4963,9 @@ btcostestimate(PG_FUNCTION_ARGS)
* ordering, but don't negate it entirely. Before 8.0 we divided the
* correlation by the number of columns, but that seems too strong.)
*
- * We can skip all this if we found a ScalarArrayOpExpr, because then
- * the call must be for a bitmap index scan, and the caller isn't going
- * to care what the index correlation is.
+ * We can skip all this if we found a ScalarArrayOpExpr, because then the
+ * call must be for a bitmap index scan, and the caller isn't going to
+ * care what the index correlation is.
*/
if (found_saop)
PG_RETURN_VOID();
diff --git a/src/backend/utils/adt/tid.c b/src/backend/utils/adt/tid.c
index 1362d0a3f8..33b551aed8 100644
--- a/src/backend/utils/adt/tid.c
+++ b/src/backend/utils/adt/tid.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/tid.c,v 1.55 2006/08/25 04:06:53 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/tid.c,v 1.56 2006/10/04 00:29:59 momjian Exp $
*
* NOTES
* input routine largely stolen from boxin().
@@ -164,7 +164,7 @@ tideq(PG_FUNCTION_ARGS)
ItemPointer arg1 = PG_GETARG_ITEMPOINTER(0);
ItemPointer arg2 = PG_GETARG_ITEMPOINTER(1);
- PG_RETURN_BOOL(ItemPointerCompare(arg1,arg2) == 0);
+ PG_RETURN_BOOL(ItemPointerCompare(arg1, arg2) == 0);
}
Datum
@@ -173,7 +173,7 @@ tidne(PG_FUNCTION_ARGS)
ItemPointer arg1 = PG_GETARG_ITEMPOINTER(0);
ItemPointer arg2 = PG_GETARG_ITEMPOINTER(1);
- PG_RETURN_BOOL(ItemPointerCompare(arg1,arg2) != 0);
+ PG_RETURN_BOOL(ItemPointerCompare(arg1, arg2) != 0);
}
Datum
@@ -182,7 +182,7 @@ tidlt(PG_FUNCTION_ARGS)
ItemPointer arg1 = PG_GETARG_ITEMPOINTER(0);
ItemPointer arg2 = PG_GETARG_ITEMPOINTER(1);
- PG_RETURN_BOOL(ItemPointerCompare(arg1,arg2) < 0);
+ PG_RETURN_BOOL(ItemPointerCompare(arg1, arg2) < 0);
}
Datum
@@ -191,7 +191,7 @@ tidle(PG_FUNCTION_ARGS)
ItemPointer arg1 = PG_GETARG_ITEMPOINTER(0);
ItemPointer arg2 = PG_GETARG_ITEMPOINTER(1);
- PG_RETURN_BOOL(ItemPointerCompare(arg1,arg2) <= 0);
+ PG_RETURN_BOOL(ItemPointerCompare(arg1, arg2) <= 0);
}
Datum
@@ -200,7 +200,7 @@ tidgt(PG_FUNCTION_ARGS)
ItemPointer arg1 = PG_GETARG_ITEMPOINTER(0);
ItemPointer arg2 = PG_GETARG_ITEMPOINTER(1);
- PG_RETURN_BOOL(ItemPointerCompare(arg1,arg2) > 0);
+ PG_RETURN_BOOL(ItemPointerCompare(arg1, arg2) > 0);
}
Datum
@@ -209,7 +209,7 @@ tidge(PG_FUNCTION_ARGS)
ItemPointer arg1 = PG_GETARG_ITEMPOINTER(0);
ItemPointer arg2 = PG_GETARG_ITEMPOINTER(1);
- PG_RETURN_BOOL(ItemPointerCompare(arg1,arg2) >= 0);
+ PG_RETURN_BOOL(ItemPointerCompare(arg1, arg2) >= 0);
}
Datum
@@ -227,7 +227,7 @@ tidlarger(PG_FUNCTION_ARGS)
ItemPointer arg1 = PG_GETARG_ITEMPOINTER(0);
ItemPointer arg2 = PG_GETARG_ITEMPOINTER(1);
- PG_RETURN_ITEMPOINTER(ItemPointerCompare(arg1,arg2) >= 0 ? arg1 : arg2);
+ PG_RETURN_ITEMPOINTER(ItemPointerCompare(arg1, arg2) >= 0 ? arg1 : arg2);
}
Datum
@@ -236,7 +236,7 @@ tidsmaller(PG_FUNCTION_ARGS)
ItemPointer arg1 = PG_GETARG_ITEMPOINTER(0);
ItemPointer arg2 = PG_GETARG_ITEMPOINTER(1);
- PG_RETURN_ITEMPOINTER(ItemPointerCompare(arg1,arg2) <= 0 ? arg1 : arg2);
+ PG_RETURN_ITEMPOINTER(ItemPointerCompare(arg1, arg2) <= 0 ? arg1 : arg2);
}
diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c
index fcd90432af..e06fa99dc1 100644
--- a/src/backend/utils/adt/timestamp.c
+++ b/src/backend/utils/adt/timestamp.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/timestamp.c,v 1.167 2006/09/05 01:13:39 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/timestamp.c,v 1.168 2006/10/04 00:29:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1029,10 +1029,10 @@ timestamptz_to_time_t(TimestampTz t)
#ifdef HAVE_INT64_TIMESTAMP
result = (time_t) (t / USECS_PER_SEC +
- ((POSTGRES_EPOCH_JDATE - UNIX_EPOCH_JDATE) * SECS_PER_DAY));
+ ((POSTGRES_EPOCH_JDATE - UNIX_EPOCH_JDATE) * SECS_PER_DAY));
#else
result = (time_t) (t +
- ((POSTGRES_EPOCH_JDATE - UNIX_EPOCH_JDATE) * SECS_PER_DAY));
+ ((POSTGRES_EPOCH_JDATE - UNIX_EPOCH_JDATE) * SECS_PER_DAY));
#endif
return result;
@@ -2015,7 +2015,7 @@ timestamp_mi(PG_FUNCTION_ARGS)
* test=> SET timezone = 'EST5EDT';
* test=> SELECT
* test-> ('2005-10-30 13:22:00-05'::timestamptz -
- * test(> '2005-10-29 13:22:00-04'::timestamptz);
+ * test(> '2005-10-29 13:22:00-04'::timestamptz);
* ?column?
* ----------------
* 1 day 01:00:00
@@ -2027,7 +2027,7 @@ timestamp_mi(PG_FUNCTION_ARGS)
* test-> ('2005-10-29 13:22:00-04'::timestamptz +
* test(> ('2005-10-30 13:22:00-05'::timestamptz -
* test(> '2005-10-29 13:22:00-04'::timestamptz)) at time zone 'EST';
- * timezone
+ * timezone
* --------------------
* 2005-10-30 14:22:00
* (1 row)
@@ -2040,23 +2040,23 @@ timestamp_mi(PG_FUNCTION_ARGS)
}
/*
- * interval_justify_interval()
+ * interval_justify_interval()
*
- * Adjust interval so 'month', 'day', and 'time' portions are within
- * customary bounds. Specifically:
+ * Adjust interval so 'month', 'day', and 'time' portions are within
+ * customary bounds. Specifically:
*
- * 0 <= abs(time) < 24 hours
- * 0 <= abs(day) < 30 days
+ * 0 <= abs(time) < 24 hours
+ * 0 <= abs(day) < 30 days
*
- * Also, the sign bit on all three fields is made equal, so either
- * all three fields are negative or all are positive.
+ * Also, the sign bit on all three fields is made equal, so either
+ * all three fields are negative or all are positive.
*/
Datum
interval_justify_interval(PG_FUNCTION_ARGS)
{
Interval *span = PG_GETARG_INTERVAL_P(0);
Interval *result;
-
+
#ifdef HAVE_INT64_TIMESTAMP
int64 wholeday;
#else
@@ -2087,7 +2087,7 @@ interval_justify_interval(PG_FUNCTION_ARGS)
result->month--;
}
else if (result->month < 0 &&
- (result->day > 0 || (result->day == 0 && result->time > 0)))
+ (result->day > 0 || (result->day == 0 && result->time > 0)))
{
result->day -= DAYS_PER_MONTH;
result->month++;
@@ -2103,7 +2103,7 @@ interval_justify_interval(PG_FUNCTION_ARGS)
result->day--;
}
else if (result->day < 0 && result->time > 0)
- {
+ {
#ifdef HAVE_INT64_TIMESTAMP
result->time -= USECS_PER_DAY;
#else
@@ -2492,8 +2492,10 @@ interval_mul(PG_FUNCTION_ARGS)
{
Interval *span = PG_GETARG_INTERVAL_P(0);
float8 factor = PG_GETARG_FLOAT8(1);
- double month_remainder_days, sec_remainder;
- int32 orig_month = span->month, orig_day = span->day;
+ double month_remainder_days,
+ sec_remainder;
+ int32 orig_month = span->month,
+ orig_day = span->day;
Interval *result;
result = (Interval *) palloc(sizeof(Interval));
@@ -2512,28 +2514,28 @@ interval_mul(PG_FUNCTION_ARGS)
*/
/*
- * Fractional months full days into days.
+ * Fractional months full days into days.
*
- * Floating point calculation are inherently inprecise, so these
- * calculations are crafted to produce the most reliable result
- * possible. TSROUND() is needed to more accurately produce whole
- * numbers where appropriate.
+ * Floating point calculation are inherently inprecise, so these
+ * calculations are crafted to produce the most reliable result possible.
+ * TSROUND() is needed to more accurately produce whole numbers where
+ * appropriate.
*/
month_remainder_days = (orig_month * factor - result->month) * DAYS_PER_MONTH;
month_remainder_days = TSROUND(month_remainder_days);
sec_remainder = (orig_day * factor - result->day +
- month_remainder_days - (int)month_remainder_days) * SECS_PER_DAY;
+ month_remainder_days - (int) month_remainder_days) * SECS_PER_DAY;
sec_remainder = TSROUND(sec_remainder);
/*
- * Might have 24:00:00 hours due to rounding, or >24 hours because of
- * time cascade from months and days. It might still be >24 if the
- * combination of cascade and the seconds factor operation itself.
+ * Might have 24:00:00 hours due to rounding, or >24 hours because of time
+ * cascade from months and days. It might still be >24 if the combination
+ * of cascade and the seconds factor operation itself.
*/
if (Abs(sec_remainder) >= SECS_PER_DAY)
{
- result->day += (int)(sec_remainder / SECS_PER_DAY);
- sec_remainder -= (int)(sec_remainder / SECS_PER_DAY) * SECS_PER_DAY;
+ result->day += (int) (sec_remainder / SECS_PER_DAY);
+ sec_remainder -= (int) (sec_remainder / SECS_PER_DAY) * SECS_PER_DAY;
}
/* cascade units down */
@@ -2562,10 +2564,12 @@ interval_div(PG_FUNCTION_ARGS)
{
Interval *span = PG_GETARG_INTERVAL_P(0);
float8 factor = PG_GETARG_FLOAT8(1);
- double month_remainder_days, sec_remainder;
- int32 orig_month = span->month, orig_day = span->day;
+ double month_remainder_days,
+ sec_remainder;
+ int32 orig_month = span->month,
+ orig_day = span->day;
Interval *result;
-
+
result = (Interval *) palloc(sizeof(Interval));
if (factor == 0.0)
@@ -2577,18 +2581,17 @@ interval_div(PG_FUNCTION_ARGS)
result->day = (int32) (span->day / factor);
/*
- * Fractional months full days into days. See comment in
- * interval_mul().
+ * Fractional months full days into days. See comment in interval_mul().
*/
month_remainder_days = (orig_month / factor - result->month) * DAYS_PER_MONTH;
month_remainder_days = TSROUND(month_remainder_days);
sec_remainder = (orig_day / factor - result->day +
- month_remainder_days - (int)month_remainder_days) * SECS_PER_DAY;
+ month_remainder_days - (int) month_remainder_days) * SECS_PER_DAY;
sec_remainder = TSROUND(sec_remainder);
if (Abs(sec_remainder) >= SECS_PER_DAY)
{
- result->day += (int)(sec_remainder / SECS_PER_DAY);
- sec_remainder -= (int)(sec_remainder / SECS_PER_DAY) * SECS_PER_DAY;
+ result->day += (int) (sec_remainder / SECS_PER_DAY);
+ sec_remainder -= (int) (sec_remainder / SECS_PER_DAY) * SECS_PER_DAY;
}
/* cascade units down */
diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c
index 5124bee765..937cf96ebe 100644
--- a/src/backend/utils/adt/varchar.c
+++ b/src/backend/utils/adt/varchar.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/varchar.c,v 1.118 2006/07/14 14:52:24 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/varchar.c,v 1.119 2006/10/04 00:30:00 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -604,8 +604,8 @@ bpchareq(PG_FUNCTION_ARGS)
len2 = bcTruelen(arg2);
/*
- * Since we only care about equality or not-equality, we can avoid all
- * the expense of strcoll() here, and just do bitwise comparison.
+ * Since we only care about equality or not-equality, we can avoid all the
+ * expense of strcoll() here, and just do bitwise comparison.
*/
if (len1 != len2)
result = false;
@@ -631,8 +631,8 @@ bpcharne(PG_FUNCTION_ARGS)
len2 = bcTruelen(arg2);
/*
- * Since we only care about equality or not-equality, we can avoid all
- * the expense of strcoll() here, and just do bitwise comparison.
+ * Since we only care about equality or not-equality, we can avoid all the
+ * expense of strcoll() here, and just do bitwise comparison.
*/
if (len1 != len2)
result = true;
diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c
index 6215e3eda5..33f40b685c 100644
--- a/src/backend/utils/adt/varlena.c
+++ b/src/backend/utils/adt/varlena.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/varlena.c,v 1.150 2006/07/14 14:52:24 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/varlena.c,v 1.151 2006/10/04 00:30:00 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -985,8 +985,8 @@ texteq(PG_FUNCTION_ARGS)
bool result;
/*
- * Since we only care about equality or not-equality, we can avoid all
- * the expense of strcoll() here, and just do bitwise comparison.
+ * Since we only care about equality or not-equality, we can avoid all the
+ * expense of strcoll() here, and just do bitwise comparison.
*/
if (VARSIZE(arg1) != VARSIZE(arg2))
result = false;
@@ -1008,8 +1008,8 @@ textne(PG_FUNCTION_ARGS)
bool result;
/*
- * Since we only care about equality or not-equality, we can avoid all
- * the expense of strcoll() here, and just do bitwise comparison.
+ * Since we only care about equality or not-equality, we can avoid all the
+ * expense of strcoll() here, and just do bitwise comparison.
*/
if (VARSIZE(arg1) != VARSIZE(arg2))
result = true;
@@ -2217,7 +2217,7 @@ replace_text_regexp(text *src_text, void *regexp,
text *ret_text;
regex_t *re = (regex_t *) regexp;
int src_text_len = VARSIZE(src_text) - VARHDRSZ;
- StringInfoData buf;
+ StringInfoData buf;
regmatch_t pmatch[REGEXP_REPLACE_BACKREF_CNT];
pg_wchar *data;
size_t data_len;
@@ -2236,7 +2236,7 @@ replace_text_regexp(text *src_text, void *regexp,
for (search_start = data_pos = 0; search_start <= data_len;)
{
- int regexec_result;
+ int regexec_result;
regexec_result = pg_regexec(re,
data,
@@ -2503,7 +2503,7 @@ array_to_text(PG_FUNCTION_ARGS)
int typlen;
bool typbyval;
char typalign;
- StringInfoData buf;
+ StringInfoData buf;
bool printed = false;
char *p;
bits8 *bitmap;
diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c
index 20b83e196a..0d1ae15b39 100644
--- a/src/backend/utils/cache/catcache.c
+++ b/src/backend/utils/cache/catcache.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/cache/catcache.c,v 1.132 2006/07/31 20:09:05 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/cache/catcache.c,v 1.133 2006/10/04 00:30:00 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -786,8 +786,8 @@ InitCatCache(int id,
/*
* nbuckets is the number of hash buckets to use in this catcache.
- * Currently we just use a hard-wired estimate of an appropriate size
- * for each cache; maybe later make them dynamically resizable?
+ * Currently we just use a hard-wired estimate of an appropriate size for
+ * each cache; maybe later make them dynamically resizable?
*
* nbuckets must be a power of two. We check this via Assert rather than
* a full runtime check because the values will be coming from constant
diff --git a/src/backend/utils/cache/inval.c b/src/backend/utils/cache/inval.c
index 247c6bf5a6..899c8e202b 100644
--- a/src/backend/utils/cache/inval.c
+++ b/src/backend/utils/cache/inval.c
@@ -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.77 2006/07/14 14:52:25 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/cache/inval.c,v 1.78 2006/10/04 00:30:00 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -633,11 +633,11 @@ AcceptInvalidationMessages(void)
* However, it also makes the system unbelievably slow --- the regression
* tests take about 100 times longer than normal.
*
- * If you're a glutton for punishment, try CLOBBER_CACHE_RECURSIVELY.
- * This slows things by at least a factor of 10000, so I wouldn't suggest
- * trying to run the entire regression tests that way. It's useful to
- * try a few simple tests, to make sure that cache reload isn't subject
- * to internal cache-flush hazards, but after you've done a few thousand
+ * If you're a glutton for punishment, try CLOBBER_CACHE_RECURSIVELY. This
+ * slows things by at least a factor of 10000, so I wouldn't suggest
+ * trying to run the entire regression tests that way. It's useful to try
+ * a few simple tests, to make sure that cache reload isn't subject to
+ * internal cache-flush hazards, but after you've done a few thousand
* recursive reloads it's unlikely you'll learn more.
*/
#if defined(CLOBBER_CACHE_ALWAYS)
diff --git a/src/backend/utils/cache/lsyscache.c b/src/backend/utils/cache/lsyscache.c
index 53e3a5bf55..fdc31e0d97 100644
--- a/src/backend/utils/cache/lsyscache.c
+++ b/src/backend/utils/cache/lsyscache.c
@@ -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.137 2006/09/28 20:51:42 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/cache/lsyscache.c,v 1.138 2006/10/04 00:30:00 momjian Exp $
*
* NOTES
* Eventually, the index information should go through here, too.
@@ -206,9 +206,9 @@ get_op_btree_interpretation(Oid opno, List **opclasses, List **opstrats)
/*
* Get the nominal left-hand input type of the operator; we will ignore
- * opclasses that don't have that as the expected input datatype. This
- * is a kluge to avoid being confused by binary-compatible opclasses
- * (such as text_ops and varchar_ops, which share the same operators).
+ * opclasses that don't have that as the expected input datatype. This is
+ * a kluge to avoid being confused by binary-compatible opclasses (such as
+ * text_ops and varchar_ops, which share the same operators).
*/
op_input_types(opno, &lefttype, &righttype);
Assert(OidIsValid(lefttype));
@@ -219,14 +219,15 @@ get_op_btree_interpretation(Oid opno, List **opclasses, List **opstrats)
catlist = SearchSysCacheList(AMOPOPID, 1,
ObjectIdGetDatum(opno),
0, 0, 0);
+
/*
- * If we can't find any opclass containing the op, perhaps it is a
- * <> operator. See if it has a negator that is in an opclass.
+ * If we can't find any opclass containing the op, perhaps it is a <>
+ * operator. See if it has a negator that is in an opclass.
*/
op_negated = false;
if (catlist->n_members == 0)
{
- Oid op_negator = get_negator(opno);
+ Oid op_negator = get_negator(opno);
if (OidIsValid(op_negator))
{
@@ -1395,13 +1396,13 @@ get_type_io_data(Oid typid,
Form_pg_type typeStruct;
/*
- * In bootstrap mode, pass it off to bootstrap.c. This hack allows
- * us to use array_in and array_out during bootstrap.
+ * In bootstrap mode, pass it off to bootstrap.c. This hack allows us to
+ * use array_in and array_out during bootstrap.
*/
if (IsBootstrapProcessingMode())
{
- Oid typinput;
- Oid typoutput;
+ Oid typinput;
+ Oid typoutput;
boot_get_type_io_data(typid,
typlen,
diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c
index 190543e2bd..40e71d513d 100644
--- a/src/backend/utils/cache/relcache.c
+++ b/src/backend/utils/cache/relcache.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.248 2006/09/05 21:08:36 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.249 2006/10/04 00:30:00 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -182,7 +182,7 @@ static void RelationReloadClassinfo(Relation relation);
static void RelationFlushRelation(Relation relation);
static bool load_relcache_init_file(void);
static void write_relcache_init_file(void);
-static void write_item(const void *data, Size len, FILE *fp);
+static void write_item(const void *data, Size len, FILE *fp);
static void formrdesc(const char *relationName, Oid relationReltype,
bool hasoids, int natts, FormData_pg_attribute *att);
@@ -298,14 +298,14 @@ AllocateRelationDesc(Relation relation, Form_pg_class relp)
/*
* Copy the relation tuple form
*
- * We only allocate space for the fixed fields, ie, CLASS_TUPLE_SIZE.
- * The variable-length fields (relacl, reloptions) are NOT stored in the
+ * We only allocate space for the fixed fields, ie, CLASS_TUPLE_SIZE. The
+ * variable-length fields (relacl, reloptions) are NOT stored in the
* relcache --- there'd be little point in it, since we don't copy the
* tuple's nulls bitmap and hence wouldn't know if the values are valid.
- * Bottom line is that relacl *cannot* be retrieved from the relcache.
- * Get it from the syscache if you need it. The same goes for the
- * original form of reloptions (however, we do store the parsed form
- * of reloptions in rd_options).
+ * Bottom line is that relacl *cannot* be retrieved from the relcache. Get
+ * it from the syscache if you need it. The same goes for the original
+ * form of reloptions (however, we do store the parsed form of reloptions
+ * in rd_options).
*/
relationForm = (Form_pg_class) palloc(CLASS_TUPLE_SIZE);
@@ -355,9 +355,9 @@ RelationParseRelOptions(Relation relation, HeapTuple tuple)
}
/*
- * Fetch reloptions from tuple; have to use a hardwired descriptor
- * because we might not have any other for pg_class yet (consider
- * executing this code for pg_class itself)
+ * Fetch reloptions from tuple; have to use a hardwired descriptor because
+ * we might not have any other for pg_class yet (consider executing this
+ * code for pg_class itself)
*/
datum = fastgetattr(tuple,
Anum_pg_class_reloptions,
@@ -620,8 +620,8 @@ RelationBuildRuleLock(Relation relation)
*
* Note: since we scan the rules using RewriteRelRulenameIndexId, we will
* be reading the rules in name order, except possibly during
- * emergency-recovery operations (ie, IgnoreSystemIndexes). This in
- * turn ensures that rules will be fired in name order.
+ * emergency-recovery operations (ie, IgnoreSystemIndexes). This in turn
+ * ensures that rules will be fired in name order.
*/
rewrite_desc = heap_open(RewriteRelationId, AccessShareLock);
rewrite_tupdesc = RelationGetDescr(rewrite_desc);
@@ -649,10 +649,10 @@ RelationBuildRuleLock(Relation relation)
rule->isInstead = rewrite_form->is_instead;
/*
- * Must use heap_getattr to fetch ev_action and ev_qual. Also,
- * the rule strings are often large enough to be toasted. To avoid
- * leaking memory in the caller's context, do the detoasting here
- * so we can free the detoasted version.
+ * Must use heap_getattr to fetch ev_action and ev_qual. Also, the
+ * rule strings are often large enough to be toasted. To avoid
+ * leaking memory in the caller's context, do the detoasting here so
+ * we can free the detoasted version.
*/
rule_datum = heap_getattr(rewrite_tuple,
Anum_pg_rewrite_ev_action,
@@ -686,16 +686,16 @@ RelationBuildRuleLock(Relation relation)
/*
* We want the rule's table references to be checked as though by the
- * table owner, not the user referencing the rule. Therefore, scan
+ * table owner, not the user referencing the rule. Therefore, scan
* through the rule's actions and set the checkAsUser field on all
- * rtable entries. We have to look at the qual as well, in case it
+ * rtable entries. We have to look at the qual as well, in case it
* contains sublinks.
*
- * The reason for doing this when the rule is loaded, rather than
- * when it is stored, is that otherwise ALTER TABLE OWNER would have
- * to grovel through stored rules to update checkAsUser fields.
- * Scanning the rule tree during load is relatively cheap (compared
- * to constructing it in the first place), so we do it here.
+ * The reason for doing this when the rule is loaded, rather than when
+ * it is stored, is that otherwise ALTER TABLE OWNER would have to
+ * grovel through stored rules to update checkAsUser fields. Scanning
+ * the rule tree during load is relatively cheap (compared to
+ * constructing it in the first place), so we do it here.
*/
setRuleCheckAsUser((Node *) rule->actions, relation->rd_rel->relowner);
setRuleCheckAsUser(rule->qual, relation->rd_rel->relowner);
@@ -1626,14 +1626,14 @@ RelationClearRelation(Relation relation, bool rebuild)
* Even non-system indexes should not be blown away if they are open and
* have valid index support information. This avoids problems with active
* use of the index support information. As with nailed indexes, we
- * re-read the pg_class row to handle possible physical relocation of
- * the index.
+ * re-read the pg_class row to handle possible physical relocation of the
+ * index.
*/
if (relation->rd_rel->relkind == RELKIND_INDEX &&
relation->rd_refcnt > 0 &&
relation->rd_indexcxt != NULL)
{
- relation->rd_isvalid = false; /* needs to be revalidated */
+ relation->rd_isvalid = false; /* needs to be revalidated */
RelationReloadClassinfo(relation);
return;
}
@@ -2140,9 +2140,9 @@ RelationBuildLocalRelation(const char *relname,
/*
* check that hardwired list of shared rels matches what's in the
- * bootstrap .bki file. If you get a failure here during initdb,
- * you probably need to fix IsSharedRelation() to match whatever
- * you've done to the set of shared relations.
+ * bootstrap .bki file. If you get a failure here during initdb, you
+ * probably need to fix IsSharedRelation() to match whatever you've done
+ * to the set of shared relations.
*/
if (shared_relation != IsSharedRelation(relid))
elog(ERROR, "shared_relation flag for \"%s\" does not match IsSharedRelation(%u)",
@@ -2308,7 +2308,7 @@ RelationCacheInitialize(void)
* the system catalogs. We first try to read pre-computed relcache
* entries from the pg_internal.init file. If that's missing or
* broken, make phony entries for the minimum set of nailed-in-cache
- * relations. Then (unless bootstrapping) make sure we have entries
+ * relations. Then (unless bootstrapping) make sure we have entries
* for the critical system indexes. Once we've done all this, we
* have enough infrastructure to open any system catalog or use any
* catcache. The last step is to rewrite pg_internal.init if needed.
@@ -2319,7 +2319,7 @@ RelationCacheInitializePhase2(void)
HASH_SEQ_STATUS status;
RelIdCacheEnt *idhentry;
MemoryContext oldcxt;
- bool needNewCacheFile = false;
+ bool needNewCacheFile = false;
/*
* switch to cache memory context
@@ -2375,7 +2375,7 @@ RelationCacheInitializePhase2(void)
* RewriteRelRulenameIndexId and TriggerRelidNameIndexId are not critical
* in the same way as the others, because the critical catalogs don't
* (currently) have any rules or triggers, and so these indexes can be
- * rebuilt without inducing recursion. However they are used during
+ * rebuilt without inducing recursion. However they are used during
* relcache load when a rel does have rules or triggers, so we choose to
* nail them for performance reasons.
*/
@@ -2505,7 +2505,7 @@ BuildHardcodedDescriptor(int natts, Form_pg_attribute attrs, bool hasoids)
oldcxt = MemoryContextSwitchTo(CacheMemoryContext);
result = CreateTemplateTupleDesc(natts, hasoids);
- result->tdtypeid = RECORDOID; /* not right, but we don't care */
+ result->tdtypeid = RECORDOID; /* not right, but we don't care */
result->tdtypmod = -1;
for (i = 0; i < natts; i++)
@@ -3166,7 +3166,7 @@ load_relcache_init_file(void)
if ((nread = fread(rel->rd_options, 1, len, fp)) != len)
goto read_failed;
if (len != VARATT_SIZE(rel->rd_options))
- goto read_failed; /* sanity check */
+ goto read_failed; /* sanity check */
}
else
{
@@ -3457,7 +3457,7 @@ write_relcache_init_file(void)
/* finally, write the vector of support procedures */
write_item(rel->rd_support,
- relform->relnatts * (am->amsupport * sizeof(RegProcedure)),
+ relform->relnatts * (am->amsupport * sizeof(RegProcedure)),
fp);
}
diff --git a/src/backend/utils/cache/syscache.c b/src/backend/utils/cache/syscache.c
index 2eaa9ee096..79aba4ebc8 100644
--- a/src/backend/utils/cache/syscache.c
+++ b/src/backend/utils/cache/syscache.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/cache/syscache.c,v 1.106 2006/07/14 14:52:25 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/cache/syscache.c,v 1.107 2006/10/04 00:30:00 momjian Exp $
*
* NOTES
* These routines allow the parser/planner/executor to perform
@@ -516,7 +516,8 @@ static const struct cachedesc cacheinfo[] = {
}
};
-static CatCache *SysCache[lengthof(cacheinfo)];
+static CatCache *SysCache[
+ lengthof(cacheinfo)];
static int SysCacheSize = lengthof(cacheinfo);
static bool CacheInitialized = false;
diff --git a/src/backend/utils/cache/typcache.c b/src/backend/utils/cache/typcache.c
index ee91c9fe41..c5a0272414 100644
--- a/src/backend/utils/cache/typcache.c
+++ b/src/backend/utils/cache/typcache.c
@@ -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.21 2006/07/14 14:52:25 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/cache/typcache.c,v 1.22 2006/10/04 00:30:01 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -268,9 +268,9 @@ lookup_type_cache(Oid type_id, int flags)
Assert(rel->rd_rel->reltype == typentry->type_id);
/*
- * Link to the tupdesc and increment its refcount (we assert it's
- * a refcounted descriptor). We don't use IncrTupleDescRefCount()
- * for this, because the reference mustn't be entered in the current
+ * Link to the tupdesc and increment its refcount (we assert it's a
+ * refcounted descriptor). We don't use IncrTupleDescRefCount() for
+ * this, because the reference mustn't be entered in the current
* resource owner; it can outlive the current query.
*/
typentry->tupDesc = RelationGetDescr(rel);
@@ -372,7 +372,7 @@ lookup_rowtype_tupdesc_noerror(Oid type_id, int32 typmod, bool noError)
TupleDesc
lookup_rowtype_tupdesc_copy(Oid type_id, int32 typmod)
{
- TupleDesc tmp;
+ TupleDesc tmp;
tmp = lookup_rowtype_tupdesc_internal(type_id, typmod, false);
return CreateTupleDescCopyConstr(tmp);
@@ -501,9 +501,9 @@ flush_rowtype_cache(Oid type_id)
return; /* tupdesc hasn't been requested */
/*
- * Release our refcount and free the tupdesc if none remain.
- * (Can't use DecrTupleDescRefCount because this reference is not
- * logged in current resource owner.)
+ * Release our refcount and free the tupdesc if none remain. (Can't use
+ * DecrTupleDescRefCount because this reference is not logged in current
+ * resource owner.)
*/
Assert(typentry->tupDesc->tdrefcount > 0);
if (--typentry->tupDesc->tdrefcount == 0)
diff --git a/src/backend/utils/fmgr/dfmgr.c b/src/backend/utils/fmgr/dfmgr.c
index b12674026e..c3710c6211 100644
--- a/src/backend/utils/fmgr/dfmgr.c
+++ b/src/backend/utils/fmgr/dfmgr.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.90 2006/09/27 18:40:09 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.91 2006/10/04 00:30:01 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -27,14 +27,14 @@
/* signatures for PostgreSQL-specific library init/fini functions */
-typedef void (*PG_init_t)(void);
-typedef void (*PG_fini_t)(void);
+typedef void (*PG_init_t) (void);
+typedef void (*PG_fini_t) (void);
/* hashtable entry for rendezvous variables */
typedef struct
-{
- char varName[NAMEDATALEN]; /* hash key (must be first) */
- void *varValue;
+{
+ char varName[NAMEDATALEN]; /* hash key (must be first) */
+ void *varValue;
} rendezvousHashEntry;
/*
@@ -168,7 +168,7 @@ lookup_external_function(void *filehandle, char *funcname)
/*
* Load the specified dynamic-link library file, unless it already is
- * loaded. Return the pg_dl* handle for the file.
+ * loaded. Return the pg_dl* handle for the file.
*
* Note: libname is expected to be an exact name for the library file.
*/
@@ -248,7 +248,7 @@ internal_load_library(const char *libname)
const Pg_magic_struct *magic_data_ptr = (*magic_func) ();
if (magic_data_ptr->len != magic_data.len ||
- memcmp(magic_data_ptr, &magic_data, magic_data.len) != 0)
+ memcmp(magic_data_ptr, &magic_data, magic_data.len) != 0)
{
/* copy data block before unlinking library */
Pg_magic_struct module_magic_data = *magic_data_ptr;
@@ -258,22 +258,22 @@ internal_load_library(const char *libname)
free((char *) file_scanner);
/*
- * Report suitable error. It's probably not worth writing
- * a separate error message for each field; only the most
- * common case of wrong major version gets its own message.
+ * Report suitable error. It's probably not worth writing a
+ * separate error message for each field; only the most common
+ * case of wrong major version gets its own message.
*/
if (module_magic_data.version != magic_data.version)
ereport(ERROR,
- (errmsg("incompatible library \"%s\": version mismatch",
- libname),
- errdetail("Server is version %d.%d, library is version %d.%d.",
- magic_data.version/100,
- magic_data.version % 100,
- module_magic_data.version/100,
- module_magic_data.version % 100)));
+ (errmsg("incompatible library \"%s\": version mismatch",
+ libname),
+ errdetail("Server is version %d.%d, library is version %d.%d.",
+ magic_data.version / 100,
+ magic_data.version % 100,
+ module_magic_data.version / 100,
+ module_magic_data.version % 100)));
ereport(ERROR,
- (errmsg("incompatible library \"%s\": magic block mismatch",
- libname)));
+ (errmsg("incompatible library \"%s\": magic block mismatch",
+ libname)));
}
}
else
@@ -283,9 +283,9 @@ internal_load_library(const char *libname)
free((char *) file_scanner);
/* complain */
ereport(ERROR,
- (errmsg("incompatible library \"%s\": missing magic block",
- libname),
- errhint("Extension libraries are now required to use the PG_MODULE_MAGIC macro.")));
+ (errmsg("incompatible library \"%s\": missing magic block",
+ libname),
+ errhint("Extension libraries are now required to use the PG_MODULE_MAGIC macro.")));
}
/*
@@ -293,7 +293,7 @@ internal_load_library(const char *libname)
*/
PG_init = (PG_init_t) pg_dlsym(file_scanner->handle, "_PG_init");
if (PG_init)
- (*PG_init)();
+ (*PG_init) ();
/* OK to link it into list */
if (file_list == NULL)
@@ -351,7 +351,7 @@ internal_unload_library(const char *libname)
*/
PG_fini = (PG_fini_t) pg_dlsym(file_scanner->handle, "_PG_fini");
if (PG_fini)
- (*PG_fini)();
+ (*PG_fini) ();
clear_external_function_hash(file_scanner->handle);
pg_dlclose(file_scanner->handle);
@@ -441,8 +441,8 @@ expand_dynamic_library_name(const char *name)
}
/*
- * If we can't find the file, just return the string as-is.
- * The ensuing load attempt will fail and report a suitable message.
+ * If we can't find the file, just return the string as-is. The ensuing
+ * load attempt will fail and report a suitable message.
*/
return pstrdup(name);
}
@@ -575,7 +575,7 @@ find_in_dynamic_libpath(const char *basename)
/*
- * Find (or create) a rendezvous variable that one dynamically
+ * Find (or create) a rendezvous variable that one dynamically
* loaded library can use to meet up with another.
*
* On the first call of this function for a particular varName,
@@ -589,22 +589,22 @@ find_in_dynamic_libpath(const char *basename)
* to find each other and share information: they just need to agree
* on the variable name and the data it will point to.
*/
-void **
+void **
find_rendezvous_variable(const char *varName)
{
- static HTAB *rendezvousHash = NULL;
+ static HTAB *rendezvousHash = NULL;
rendezvousHashEntry *hentry;
- bool found;
+ bool found;
/* Create a hashtable if we haven't already done so in this process */
if (rendezvousHash == NULL)
{
- HASHCTL ctl;
+ HASHCTL ctl;
MemSet(&ctl, 0, sizeof(ctl));
- ctl.keysize = NAMEDATALEN;
- ctl.entrysize = sizeof(rendezvousHashEntry);
+ ctl.keysize = NAMEDATALEN;
+ ctl.entrysize = sizeof(rendezvousHashEntry);
rendezvousHash = hash_create("Rendezvous variable hash",
16,
&ctl,
diff --git a/src/backend/utils/fmgr/fmgr.c b/src/backend/utils/fmgr/fmgr.c
index 4472b3fcc9..df4594b435 100644
--- a/src/backend/utils/fmgr/fmgr.c
+++ b/src/backend/utils/fmgr/fmgr.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/fmgr/fmgr.c,v 1.101 2006/05/30 21:21:30 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/fmgr/fmgr.c,v 1.102 2006/10/04 00:30:01 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1798,7 +1798,7 @@ ReceiveFunctionCall(FmgrInfo *flinfo, StringInfo buf,
*
* This is little more than window dressing for FunctionCall1, but its use is
* recommended anyway so that code invoking output functions can be identified
- * easily. Note however that it does guarantee a non-toasted result.
+ * easily. Note however that it does guarantee a non-toasted result.
*/
bytea *
SendFunctionCall(FmgrInfo *flinfo, Datum val)
diff --git a/src/backend/utils/hash/dynahash.c b/src/backend/utils/hash/dynahash.c
index aa0a6b11f2..23b48c0b63 100644
--- a/src/backend/utils/hash/dynahash.c
+++ b/src/backend/utils/hash/dynahash.c
@@ -5,19 +5,19 @@
*
* dynahash.c supports both local-to-a-backend hash tables and hash tables in
* shared memory. For shared hash tables, it is the caller's responsibility
- * to provide appropriate access interlocking. The simplest convention is
- * that a single LWLock protects the whole hash table. Searches (HASH_FIND or
+ * to provide appropriate access interlocking. The simplest convention is
+ * that a single LWLock protects the whole hash table. Searches (HASH_FIND or
* hash_seq_search) need only shared lock, but any update requires exclusive
* lock. For heavily-used shared tables, the single-lock approach creates a
* concurrency bottleneck, so we also support "partitioned" locking wherein
* there are multiple LWLocks guarding distinct subsets of the table. To use
* a hash table in partitioned mode, the HASH_PARTITION flag must be given
- * to hash_create. This prevents any attempt to split buckets on-the-fly.
+ * to hash_create. This prevents any attempt to split buckets on-the-fly.
* Therefore, each hash bucket chain operates independently, and no fields
* of the hash header change after init except nentries and freeList.
* A partitioned table uses a spinlock to guard changes of those two fields.
* This lets any subset of the hash buckets be treated as a separately
- * lockable partition. We expect callers to use the low-order bits of a
+ * lockable partition. We expect callers to use the low-order bits of a
* lookup key's hash value as a partition number --- this will work because
* of the way calc_bucket() maps hash values to bucket numbers.
*
@@ -26,7 +26,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/hash/dynahash.c,v 1.72 2006/09/27 18:40:09 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/hash/dynahash.c,v 1.73 2006/10/04 00:30:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -124,7 +124,7 @@ struct HASHHDR
/* These fields are fixed at hashtable creation */
Size keysize; /* hash key length in bytes */
Size entrysize; /* total user element size in bytes */
- long num_partitions; /* # partitions (must be power of 2), or 0 */
+ long num_partitions; /* # partitions (must be power of 2), or 0 */
long ffactor; /* target fill factor */
long max_dsize; /* 'dsize' limit if directory is fixed size */
long ssize; /* segment size --- must be power of 2 */
@@ -132,9 +132,10 @@ struct HASHHDR
int nelem_alloc; /* number of entries to allocate at once */
#ifdef HASH_STATISTICS
+
/*
- * Count statistics here. NB: stats code doesn't bother with mutex,
- * so counts could be corrupted a bit in a partitioned table.
+ * Count statistics here. NB: stats code doesn't bother with mutex, so
+ * counts could be corrupted a bit in a partitioned table.
*/
long accesses;
long collisions;
@@ -287,8 +288,8 @@ hash_create(const char *tabname, long nelem, HASHCTL *info, int flags)
hashp->hash = string_hash; /* default hash function */
/*
- * If you don't specify a match function, it defaults to string_compare
- * if you used string_hash (either explicitly or by default) and to memcmp
+ * If you don't specify a match function, it defaults to string_compare if
+ * you used string_hash (either explicitly or by default) and to memcmp
* otherwise. (Prior to PostgreSQL 7.4, memcmp was always used.)
*/
if (flags & HASH_COMPARE)
@@ -317,8 +318,8 @@ hash_create(const char *tabname, long nelem, HASHCTL *info, int flags)
{
/*
* ctl structure and directory are preallocated for shared memory
- * tables. Note that HASH_DIRSIZE and HASH_ALLOC had better be set
- * as well.
+ * tables. Note that HASH_DIRSIZE and HASH_ALLOC had better be set as
+ * well.
*/
hashp->hctl = info->hctl;
hashp->dir = (HASHSEGMENT *) (((char *) info->hctl) + sizeof(HASHHDR));
@@ -413,8 +414,8 @@ hash_create(const char *tabname, long nelem, HASHCTL *info, int flags)
* This reduces problems with run-time out-of-shared-memory conditions.
*
* For a non-shared hash table, preallocate the requested number of
- * elements if it's less than our chosen nelem_alloc. This avoids
- * wasting space if the caller correctly estimates a small table size.
+ * elements if it's less than our chosen nelem_alloc. This avoids wasting
+ * space if the caller correctly estimates a small table size.
*/
if ((flags & HASH_SHARED_MEM) ||
nelem < hctl->nelem_alloc)
@@ -479,15 +480,16 @@ choose_nelem_alloc(Size entrysize)
elementSize = MAXALIGN(sizeof(HASHELEMENT)) + MAXALIGN(entrysize);
/*
- * The idea here is to choose nelem_alloc at least 32, but round up
- * so that the allocation request will be a power of 2 or just less.
- * This makes little difference for hash tables in shared memory,
- * but for hash tables managed by palloc, the allocation request
- * will be rounded up to a power of 2 anyway. If we fail to take
- * this into account, we'll waste as much as half the allocated space.
+ * The idea here is to choose nelem_alloc at least 32, but round up so
+ * that the allocation request will be a power of 2 or just less. This
+ * makes little difference for hash tables in shared memory, but for hash
+ * tables managed by palloc, the allocation request will be rounded up to
+ * a power of 2 anyway. If we fail to take this into account, we'll waste
+ * as much as half the allocated space.
*/
allocSize = 32 * 4; /* assume elementSize at least 8 */
- do {
+ do
+ {
allocSize <<= 1;
nelem_alloc = allocSize / elementSize;
} while (nelem_alloc < 32);
@@ -926,7 +928,7 @@ hash_search_with_hash_value(HTAB *hashp,
/* Check if it is time to split a bucket */
/* Can't split if running in partitioned mode */
if (!IS_PARTITIONED(hctl) &&
- hctl->nentries / (long) (hctl->max_bucket + 1) >= hctl->ffactor)
+ hctl->nentries / (long) (hctl->max_bucket + 1) >= hctl->ffactor)
{
/*
* NOTE: failure to expand table is not a fatal error, it just
diff --git a/src/backend/utils/hash/hashfn.c b/src/backend/utils/hash/hashfn.c
index af528881ef..2b0a30abe0 100644
--- a/src/backend/utils/hash/hashfn.c
+++ b/src/backend/utils/hash/hashfn.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/hash/hashfn.c,v 1.28 2006/09/27 18:40:09 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/hash/hashfn.c,v 1.29 2006/10/04 00:30:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -32,9 +32,9 @@ string_hash(const void *key, Size keysize)
* because when it is copied into the hash table it will be truncated at
* that length.
*/
- Size s_len = strlen((const char *) key);
+ Size s_len = strlen((const char *) key);
- s_len = Min(s_len, keysize-1);
+ s_len = Min(s_len, keysize - 1);
return DatumGetUInt32(hash_any((const unsigned char *) key,
(int) s_len));
}
diff --git a/src/backend/utils/init/globals.c b/src/backend/utils/init/globals.c
index 1295288b89..265a3a06be 100644
--- a/src/backend/utils/init/globals.c
+++ b/src/backend/utils/init/globals.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/init/globals.c,v 1.98 2006/05/02 11:28:55 teodor Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/init/globals.c,v 1.99 2006/10/04 00:30:02 momjian Exp $
*
* NOTES
* Globals used all over the place should be declared here and not
@@ -108,4 +108,4 @@ int VacuumCostDelay = 0;
int VacuumCostBalance = 0; /* working state for vacuum */
bool VacuumCostActive = false;
-int GinFuzzySearchLimit = 0;
+int GinFuzzySearchLimit = 0;
diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c
index 2d979afead..5ddb0b2e44 100644
--- a/src/backend/utils/init/miscinit.c
+++ b/src/backend/utils/init/miscinit.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/init/miscinit.c,v 1.158 2006/08/16 04:32:48 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/init/miscinit.c,v 1.159 2006/10/04 00:30:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -60,7 +60,7 @@ static char socketLockFile[MAXPGPATH];
* ----------------------------------------------------------------
*/
-bool IgnoreSystemIndexes = false;
+bool IgnoreSystemIndexes = false;
/* ----------------------------------------------------------------
* system index reindexing support
@@ -1097,7 +1097,7 @@ ValidatePgVersion(const char *path)
*-------------------------------------------------------------------------
*/
-/*
+/*
* GUC variables: lists of library names to be preloaded at postmaster
* start and at backend start
*/
@@ -1146,7 +1146,7 @@ load_libraries(const char *libraries, const char *gucname, bool restricted)
/* If restricting, insert $libdir/plugins if not mentioned already */
if (restricted && first_dir_separator(filename) == NULL)
{
- char *expanded;
+ char *expanded;
expanded = palloc(strlen("$libdir/plugins/") + strlen(filename) + 1);
strcpy(expanded, "$libdir/plugins/");
diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c
index 6664755fd3..9ab8c9ba97 100644
--- a/src/backend/utils/init/postinit.c
+++ b/src/backend/utils/init/postinit.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.170 2006/09/18 22:40:38 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.171 2006/10/04 00:30:02 momjian Exp $
*
*
*-------------------------------------------------------------------------
@@ -132,9 +132,9 @@ CheckMyDatabase(const char *name, bool am_superuser)
/*
* Check permissions to connect to the database.
*
- * These checks are not enforced when in standalone mode, so that
- * there is a way to recover from disabling all access to all databases,
- * for example "UPDATE pg_database SET datallowconn = false;".
+ * These checks are not enforced when in standalone mode, so that there is
+ * a way to recover from disabling all access to all databases, for
+ * example "UPDATE pg_database SET datallowconn = false;".
*
* We do not enforce them for the autovacuum process either.
*/
@@ -150,9 +150,9 @@ CheckMyDatabase(const char *name, bool am_superuser)
name)));
/*
- * Check privilege to connect to the database. (The am_superuser
- * test is redundant, but since we have the flag, might as well
- * check it and save a few cycles.)
+ * Check privilege to connect to the database. (The am_superuser test
+ * is redundant, but since we have the flag, might as well check it
+ * and save a few cycles.)
*/
if (!am_superuser &&
pg_database_aclcheck(MyDatabaseId, GetUserId(),
@@ -294,8 +294,8 @@ InitPostgres(const char *dbname, const char *username)
char *fullpath;
/*
- * Set up the global variables holding database id and path. But note
- * we won't actually try to touch the database just yet.
+ * Set up the global variables holding database id and path. But note we
+ * won't actually try to touch the database just yet.
*
* We take a shortcut in the bootstrap case, otherwise we have to look up
* the db name in pg_database.
@@ -324,8 +324,8 @@ InitPostgres(const char *dbname, const char *username)
SetDatabasePath(fullpath);
/*
- * Finish filling in the PGPROC struct, and add it to the ProcArray.
- * (We need to know MyDatabaseId before we can do this, since it's entered
+ * Finish filling in the PGPROC struct, and add it to the ProcArray. (We
+ * need to know MyDatabaseId before we can do this, since it's entered
* into the PGPROC struct.)
*
* Once I have done this, I am visible to other backends!
@@ -360,8 +360,8 @@ InitPostgres(const char *dbname, const char *username)
/*
* Initialize the relation cache and the system catalog caches. Note that
* no catalog access happens here; we only set up the hashtable structure.
- * We must do this before starting a transaction because transaction
- * abort would try to touch these hashtables.
+ * We must do this before starting a transaction because transaction abort
+ * would try to touch these hashtables.
*/
RelationCacheInitialize();
InitCatalogCache();
@@ -388,20 +388,19 @@ InitPostgres(const char *dbname, const char *username)
/*
* Now that we have a transaction, we can take locks. Take a writer's
- * lock on the database we are trying to connect to. If there is
- * a concurrently running DROP DATABASE on that database, this will
- * block us until it finishes (and has updated the flat file copy
- * of pg_database).
+ * lock on the database we are trying to connect to. If there is a
+ * concurrently running DROP DATABASE on that database, this will block us
+ * until it finishes (and has updated the flat file copy of pg_database).
*
- * Note that the lock is not held long, only until the end of this
- * startup transaction. This is OK since we are already advertising
- * our use of the database in the PGPROC array; anyone trying a DROP
- * DATABASE after this point will see us there.
+ * Note that the lock is not held long, only until the end of this startup
+ * transaction. This is OK since we are already advertising our use of
+ * the database in the PGPROC array; anyone trying a DROP DATABASE after
+ * this point will see us there.
*
* Note: use of RowExclusiveLock here is reasonable because we envision
- * our session as being a concurrent writer of the database. If we had
- * a way of declaring a session as being guaranteed-read-only, we could
- * use AccessShareLock for such sessions and thereby not conflict against
+ * our session as being a concurrent writer of the database. If we had a
+ * way of declaring a session as being guaranteed-read-only, we could use
+ * AccessShareLock for such sessions and thereby not conflict against
* CREATE DATABASE.
*/
if (!bootstrap)
@@ -415,8 +414,8 @@ InitPostgres(const char *dbname, const char *username)
*/
if (!bootstrap)
{
- Oid dbid2;
- Oid tsid2;
+ Oid dbid2;
+ Oid tsid2;
if (!FindMyDatabase(dbname, &dbid2, &tsid2) ||
dbid2 != MyDatabaseId || tsid2 != MyDatabaseTableSpace)
@@ -424,12 +423,12 @@ InitPostgres(const char *dbname, const char *username)
(errcode(ERRCODE_UNDEFINED_DATABASE),
errmsg("database \"%s\" does not exist",
dbname),
- errdetail("It seems to have just been dropped or renamed.")));
+ errdetail("It seems to have just been dropped or renamed.")));
}
/*
- * Now we should be able to access the database directory safely.
- * Verify it's there and looks reasonable.
+ * Now we should be able to access the database directory safely. Verify
+ * it's there and looks reasonable.
*/
if (!bootstrap)
{
@@ -440,8 +439,8 @@ InitPostgres(const char *dbname, const char *username)
(errcode(ERRCODE_UNDEFINED_DATABASE),
errmsg("database \"%s\" does not exist",
dbname),
- errdetail("The database subdirectory \"%s\" is missing.",
- fullpath)));
+ errdetail("The database subdirectory \"%s\" is missing.",
+ fullpath)));
else
ereport(FATAL,
(errcode_for_file_access(),
@@ -493,10 +492,10 @@ InitPostgres(const char *dbname, const char *username)
initialize_acl();
/*
- * Read the real pg_database row for our database, check permissions
- * and set up database-specific GUC settings. We can't do this until all
- * the database-access infrastructure is up. (Also, it wants to know if
- * the user is a superuser, so the above stuff has to happen first.)
+ * Read the real pg_database row for our database, check permissions and
+ * set up database-specific GUC settings. We can't do this until all the
+ * database-access infrastructure is up. (Also, it wants to know if the
+ * user is a superuser, so the above stuff has to happen first.)
*/
if (!bootstrap)
CheckMyDatabase(dbname, am_superuser);
diff --git a/src/backend/utils/mb/conv.c b/src/backend/utils/mb/conv.c
index deaf912ed0..5a771f5f55 100644
--- a/src/backend/utils/mb/conv.c
+++ b/src/backend/utils/mb/conv.c
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/mb/conv.c,v 1.60 2006/05/21 20:05:19 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/mb/conv.c,v 1.61 2006/10/04 00:30:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -70,7 +70,7 @@ mic2latin(const unsigned char *mic, unsigned char *p, int len,
}
else
{
- int l = pg_mic_mblen(mic);
+ int l = pg_mic_mblen(mic);
if (len < l)
report_invalid_encoding(PG_MULE_INTERNAL, (const char *) mic,
@@ -217,7 +217,7 @@ mic2latin_with_table(const unsigned char *mic,
}
else
{
- int l = pg_mic_mblen(mic);
+ int l = pg_mic_mblen(mic);
if (len < l)
report_invalid_encoding(PG_MULE_INTERNAL, (const char *) mic,
diff --git a/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c b/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c
index 0e964c4583..326d84238c 100644
--- a/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c
+++ b/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c,v 1.15 2006/05/30 22:12:14 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c,v 1.16 2006/10/04 00:30:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -173,7 +173,7 @@ euc_tw2mic(const unsigned char *euc, unsigned char *p, int len)
(const char *) euc, len);
if (c1 == SS2)
{
- c1 = euc[1]; /* plane No. */
+ c1 = euc[1]; /* plane No. */
if (c1 == 0xa1)
*p++ = LC_CNS11643_1;
else if (c1 == 0xa2)
@@ -187,7 +187,7 @@ euc_tw2mic(const unsigned char *euc, unsigned char *p, int len)
*p++ = euc[3];
}
else
- { /* CNS11643-1 */
+ { /* CNS11643-1 */
*p++ = LC_CNS11643_1;
*p++ = c1;
*p++ = euc[1];
@@ -302,7 +302,7 @@ big52mic(const unsigned char *big5, unsigned char *p, int len)
{
*p++ = 0x9d; /* LCPRV2 */
}
- *p++ = lc; /* Plane No. */
+ *p++ = lc; /* Plane No. */
*p++ = (cnsBuf >> 8) & 0x00ff;
*p++ = cnsBuf & 0x00ff;
}
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c b/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c
index b9f6c46c22..c311c1d3af 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c
@@ -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.16 2006/05/30 22:12:15 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c,v 1.17 2006/10/04 00:30:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -69,4 +69,3 @@ koi8r_to_utf8(PG_FUNCTION_ARGS)
PG_RETURN_VOID();
}
-
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c b/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c
index d65f64f1ef..b8cbe7c7c0 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c
@@ -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.15 2006/05/30 22:12:15 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c,v 1.16 2006/10/04 00:30:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -64,7 +64,7 @@ utf8_to_gb18030(PG_FUNCTION_ARGS)
Assert(len >= 0);
UtfToLocal(src, dest, ULmapGB18030,
- sizeof(ULmapGB18030) / sizeof(pg_utf_to_local), PG_GB18030, len);
+ sizeof(ULmapGB18030) / sizeof(pg_utf_to_local), PG_GB18030, len);
PG_RETURN_VOID();
}
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c b/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c
index a53f99985a..668758e746 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c
@@ -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.21 2006/07/11 18:26:11 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c,v 1.22 2006/10/04 00:30:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -118,12 +118,12 @@ iso8859_to_utf8(PG_FUNCTION_ARGS)
unsigned char *src = (unsigned char *) PG_GETARG_CSTRING(2);
unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3);
int len = PG_GETARG_INT32(4);
- int i;
+ int i;
Assert(PG_GETARG_INT32(1) == PG_UTF8);
Assert(len >= 0);
- for (i=0;i<sizeof(maps)/sizeof(pg_conv_map);i++)
+ for (i = 0; i < sizeof(maps) / sizeof(pg_conv_map); i++)
{
if (encoding == maps[i].encoding)
{
@@ -134,7 +134,7 @@ iso8859_to_utf8(PG_FUNCTION_ARGS)
ereport(ERROR,
(errcode(ERRCODE_INTERNAL_ERROR),
- errmsg("unexpected encoding id %d for ISO-8859 charsets", encoding)));
+ errmsg("unexpected encoding id %d for ISO-8859 charsets", encoding)));
PG_RETURN_VOID();
}
@@ -146,12 +146,12 @@ utf8_to_iso8859(PG_FUNCTION_ARGS)
unsigned char *src = (unsigned char *) PG_GETARG_CSTRING(2);
unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3);
int len = PG_GETARG_INT32(4);
- int i;
+ int i;
Assert(PG_GETARG_INT32(0) == PG_UTF8);
Assert(len >= 0);
- for (i=0;i<sizeof(maps)/sizeof(pg_conv_map);i++)
+ for (i = 0; i < sizeof(maps) / sizeof(pg_conv_map); i++)
{
if (encoding == maps[i].encoding)
{
@@ -162,7 +162,7 @@ utf8_to_iso8859(PG_FUNCTION_ARGS)
ereport(ERROR,
(errcode(ERRCODE_INTERNAL_ERROR),
- errmsg("unexpected encoding id %d for ISO-8859 charsets", encoding)));
+ errmsg("unexpected encoding id %d for ISO-8859 charsets", encoding)));
PG_RETURN_VOID();
}
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c b/src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c
index 627573b0f5..a3746d754b 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c
@@ -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_1/utf8_and_iso8859_1.c,v 1.17 2006/05/30 22:12:15 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c,v 1.18 2006/10/04 00:30:03 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -93,7 +93,7 @@ utf8_to_iso8859_1(PG_FUNCTION_ARGS)
}
else
{
- int l = pg_utf_mblen(src);
+ int l = pg_utf_mblen(src);
if (l > len || !pg_utf8_islegal(src, l))
report_invalid_encoding(PG_UTF8, (const char *) src, len);
diff --git a/src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c b/src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c
index c95919fa0a..559367701b 100644
--- a/src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c
+++ b/src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c
@@ -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.5 2006/07/11 18:26:11 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c,v 1.6 2006/10/04 00:30:03 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -68,37 +68,37 @@ typedef struct
static pg_conv_map maps[] = {
{PG_WIN866, LUmapWIN866, ULmapWIN866,
sizeof(LUmapWIN866) / sizeof(pg_local_to_utf),
- sizeof(ULmapWIN866) / sizeof(pg_utf_to_local)},
+ sizeof(ULmapWIN866) / sizeof(pg_utf_to_local)},
{PG_WIN874, LUmapWIN874, ULmapWIN874,
sizeof(LUmapWIN874) / sizeof(pg_local_to_utf),
- sizeof(ULmapWIN874) / sizeof(pg_utf_to_local)},
+ sizeof(ULmapWIN874) / sizeof(pg_utf_to_local)},
{PG_WIN1250, LUmapWIN1250, ULmapWIN1250,
sizeof(LUmapWIN1250) / sizeof(pg_local_to_utf),
- sizeof(ULmapWIN1250) / sizeof(pg_utf_to_local)},
+ sizeof(ULmapWIN1250) / sizeof(pg_utf_to_local)},
{PG_WIN1251, LUmapWIN1251, ULmapWIN1251,
sizeof(LUmapWIN1251) / sizeof(pg_local_to_utf),
- sizeof(ULmapWIN1251) / sizeof(pg_utf_to_local)},
+ sizeof(ULmapWIN1251) / sizeof(pg_utf_to_local)},
{PG_WIN1252, LUmapWIN1252, ULmapWIN1252,
sizeof(LUmapWIN1252) / sizeof(pg_local_to_utf),
- sizeof(ULmapWIN1252) / sizeof(pg_utf_to_local)},
+ sizeof(ULmapWIN1252) / sizeof(pg_utf_to_local)},
{PG_WIN1253, LUmapWIN1253, ULmapWIN1253,
sizeof(LUmapWIN1253) / sizeof(pg_local_to_utf),
- sizeof(ULmapWIN1253) / sizeof(pg_utf_to_local)},
+ sizeof(ULmapWIN1253) / sizeof(pg_utf_to_local)},
{PG_WIN1254, LUmapWIN1254, ULmapWIN1254,
sizeof(LUmapWIN1254) / sizeof(pg_local_to_utf),
- sizeof(ULmapWIN1254) / sizeof(pg_utf_to_local)},
+ sizeof(ULmapWIN1254) / sizeof(pg_utf_to_local)},
{PG_WIN1255, LUmapWIN1255, ULmapWIN1255,
sizeof(LUmapWIN1255) / sizeof(pg_local_to_utf),
- sizeof(ULmapWIN1255) / sizeof(pg_utf_to_local)},
+ sizeof(ULmapWIN1255) / sizeof(pg_utf_to_local)},
{PG_WIN1256, LUmapWIN1256, ULmapWIN1256,
sizeof(LUmapWIN1256) / sizeof(pg_local_to_utf),
- sizeof(ULmapWIN1256) / sizeof(pg_utf_to_local)},
+ sizeof(ULmapWIN1256) / sizeof(pg_utf_to_local)},
{PG_WIN1257, LUmapWIN1257, ULmapWIN1257,
sizeof(LUmapWIN1257) / sizeof(pg_local_to_utf),
- sizeof(ULmapWIN1257) / sizeof(pg_utf_to_local)},
+ sizeof(ULmapWIN1257) / sizeof(pg_utf_to_local)},
{PG_WIN1258, LUmapWIN1258, ULmapWIN1258,
sizeof(LUmapWIN1258) / sizeof(pg_local_to_utf),
- sizeof(ULmapWIN1258) / sizeof(pg_utf_to_local)},
+ sizeof(ULmapWIN1258) / sizeof(pg_utf_to_local)},
};
Datum
@@ -108,12 +108,12 @@ win_to_utf8(PG_FUNCTION_ARGS)
unsigned char *src = (unsigned char *) PG_GETARG_CSTRING(2);
unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3);
int len = PG_GETARG_INT32(4);
- int i;
+ int i;
Assert(PG_GETARG_INT32(1) == PG_UTF8);
Assert(len >= 0);
- for (i=0;i<sizeof(maps)/sizeof(pg_conv_map);i++)
+ for (i = 0; i < sizeof(maps) / sizeof(pg_conv_map); i++)
{
if (encoding == maps[i].encoding)
{
@@ -136,12 +136,12 @@ utf8_to_win(PG_FUNCTION_ARGS)
unsigned char *src = (unsigned char *) PG_GETARG_CSTRING(2);
unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3);
int len = PG_GETARG_INT32(4);
- int i;
+ int i;
Assert(PG_GETARG_INT32(0) == PG_UTF8);
Assert(len >= 0);
- for (i=0;i<sizeof(maps)/sizeof(pg_conv_map);i++)
+ for (i = 0; i < sizeof(maps) / sizeof(pg_conv_map); i++)
{
if (encoding == maps[i].encoding)
{
diff --git a/src/backend/utils/mb/mbutils.c b/src/backend/utils/mb/mbutils.c
index c45d3eb778..e91c8a2a58 100644
--- a/src/backend/utils/mb/mbutils.c
+++ b/src/backend/utils/mb/mbutils.c
@@ -4,7 +4,7 @@
* (currently mule internal code (mic) is used)
* Tatsuo Ishii
*
- * $PostgreSQL: pgsql/src/backend/utils/mb/mbutils.c,v 1.58 2006/07/14 14:52:25 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/mb/mbutils.c,v 1.59 2006/10/04 00:30:02 momjian Exp $
*/
#include "postgres.h"
@@ -133,9 +133,9 @@ SetClientEncoding(int encoding, bool doit)
else
{
/*
- * This is the first time through, so create the context. Make
- * it a child of TopMemoryContext so that these values survive
- * across transactions.
+ * This is the first time through, so create the context. Make it a
+ * child of TopMemoryContext so that these values survive across
+ * transactions.
*/
MbProcContext = AllocSetContextCreate(TopMemoryContext,
"MbProcContext",
@@ -378,28 +378,27 @@ pg_client_to_server(const char *s, int len)
{
/*
* No conversion is possible, but we must still validate the data,
- * because the client-side code might have done string escaping
- * using the selected client_encoding. If the client encoding is
- * ASCII-safe then we just do a straight validation under that
- * encoding. For an ASCII-unsafe encoding we have a problem:
- * we dare not pass such data to the parser but we have no way
- * to convert it. We compromise by rejecting the data if it
- * contains any non-ASCII characters.
+ * because the client-side code might have done string escaping using
+ * the selected client_encoding. If the client encoding is ASCII-safe
+ * then we just do a straight validation under that encoding. For an
+ * ASCII-unsafe encoding we have a problem: we dare not pass such data
+ * to the parser but we have no way to convert it. We compromise by
+ * rejecting the data if it contains any non-ASCII characters.
*/
if (PG_VALID_BE_ENCODING(ClientEncoding->encoding))
(void) pg_verify_mbstr(ClientEncoding->encoding, s, len, false);
else
{
- int i;
+ int i;
for (i = 0; i < len; i++)
{
if (s[i] == '\0' || IS_HIGHBIT_SET(s[i]))
ereport(ERROR,
(errcode(ERRCODE_CHARACTER_NOT_IN_REPERTOIRE),
- errmsg("invalid byte value for encoding \"%s\": 0x%02x",
- pg_enc2name_tbl[PG_SQL_ASCII].name,
- (unsigned char) s[i])));
+ errmsg("invalid byte value for encoding \"%s\": 0x%02x",
+ pg_enc2name_tbl[PG_SQL_ASCII].name,
+ (unsigned char) s[i])));
}
}
return (char *) s;
diff --git a/src/backend/utils/mb/wchar.c b/src/backend/utils/mb/wchar.c
index b33cbef49f..6828fce7d3 100644
--- a/src/backend/utils/mb/wchar.c
+++ b/src/backend/utils/mb/wchar.c
@@ -1,7 +1,7 @@
/*
* conversion functions between pg_wchar and multibyte streams.
* Tatsuo Ishii
- * $PostgreSQL: pgsql/src/backend/utils/mb/wchar.c,v 1.57 2006/08/22 12:11:28 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/mb/wchar.c,v 1.58 2006/10/04 00:30:02 momjian Exp $
*
* WIN1250 client encoding updated by Pavel Behal
*
@@ -40,7 +40,7 @@
* SQL/ASCII
*/
static int
-pg_ascii2wchar_with_len
+ pg_ascii2wchar_with_len
(const unsigned char *from, pg_wchar *to, int len)
{
int cnt = 0;
@@ -68,7 +68,7 @@ pg_ascii_dsplen(const unsigned char *s)
return 0;
if (*s < 0x20 || *s == 0x7f)
return -1;
-
+
return 1;
}
@@ -82,7 +82,8 @@ static int pg_euc2wchar_with_len
while (len > 0 && *from)
{
- if (*from == SS2 && len >= 2) /* JIS X 0201 (so called "1 byte KANA") */
+ if (*from == SS2 && len >= 2) /* JIS X 0201 (so called "1 byte
+ * KANA") */
{
from++;
*to = (SS2 << 8) | *from++;
@@ -95,13 +96,14 @@ static int pg_euc2wchar_with_len
*to |= *from++;
len -= 3;
}
- else if (IS_HIGHBIT_SET(*from) && len >= 2) /* JIS X 0208 KANJI */
+ else if (IS_HIGHBIT_SET(*from) && len >= 2) /* JIS X 0208 KANJI */
{
*to = *from++ << 8;
*to |= *from++;
len -= 2;
}
- else /* must be ASCII */
+ else
+ /* must be ASCII */
{
*to = *from++;
len--;
@@ -222,7 +224,7 @@ static int pg_euccn2wchar_with_len
*to |= *from++;
len -= 3;
}
- else if (IS_HIGHBIT_SET(*from) && len >= 2) /* code set 1 */
+ else if (IS_HIGHBIT_SET(*from) && len >= 2) /* code set 1 */
{
*to = *from++ << 8;
*to |= *from++;
@@ -278,7 +280,7 @@ static int pg_euctw2wchar_with_len
if (*from == SS2 && len >= 4) /* code set 2 */
{
from++;
- *to = (SS2 << 24) | (*from++ << 16) ;
+ *to = (SS2 << 24) | (*from++ << 16);
*to |= *from++ << 8;
*to |= *from++;
len -= 4;
@@ -290,7 +292,7 @@ static int pg_euctw2wchar_with_len
*to |= *from++;
len -= 3;
}
- else if (IS_HIGHBIT_SET(*from) && len >= 2) /* code set 2 */
+ else if (IS_HIGHBIT_SET(*from) && len >= 2) /* code set 2 */
{
*to = *from++ << 8;
*to |= *from++;
@@ -455,7 +457,7 @@ struct mbinterval
/* auxiliary function for binary search in interval table */
static int
-mbbisearch(pg_wchar ucs, const struct mbinterval *table, int max)
+mbbisearch(pg_wchar ucs, const struct mbinterval * table, int max)
{
int min = 0;
int mid;
@@ -677,14 +679,14 @@ pg_mule_mblen(const unsigned char *s)
else if (IS_LCPRV2(*s))
len = 4;
else
- len = 1; /* assume ASCII */
+ len = 1; /* assume ASCII */
return len;
}
static int
pg_mule_dsplen(const unsigned char *s)
{
- int len;
+ int len;
if (IS_LC1(*s))
len = 1;
@@ -695,7 +697,7 @@ pg_mule_dsplen(const unsigned char *s)
else if (IS_LCPRV2(*s))
len = 2;
else
- len = 1; /* assume ASCII */
+ len = 1; /* assume ASCII */
return len;
}
@@ -739,11 +741,11 @@ pg_sjis_mblen(const unsigned char *s)
int len;
if (*s >= 0xa1 && *s <= 0xdf)
- len = 1; /* 1 byte kana? */
+ len = 1; /* 1 byte kana? */
else if (IS_HIGHBIT_SET(*s))
- len = 2; /* kanji? */
+ len = 2; /* kanji? */
else
- len = 1; /* should be ASCII */
+ len = 1; /* should be ASCII */
return len;
}
@@ -753,11 +755,11 @@ pg_sjis_dsplen(const unsigned char *s)
int len;
if (*s >= 0xa1 && *s <= 0xdf)
- len = 1; /* 1 byte kana? */
+ len = 1; /* 1 byte kana? */
else if (IS_HIGHBIT_SET(*s))
- len = 2; /* kanji? */
+ len = 2; /* kanji? */
else
- len = pg_ascii_dsplen(s); /* should be ASCII */
+ len = pg_ascii_dsplen(s); /* should be ASCII */
return len;
}
@@ -770,9 +772,9 @@ pg_big5_mblen(const unsigned char *s)
int len;
if (IS_HIGHBIT_SET(*s))
- len = 2; /* kanji? */
+ len = 2; /* kanji? */
else
- len = 1; /* should be ASCII */
+ len = 1; /* should be ASCII */
return len;
}
@@ -782,9 +784,9 @@ pg_big5_dsplen(const unsigned char *s)
int len;
if (IS_HIGHBIT_SET(*s))
- len = 2; /* kanji? */
+ len = 2; /* kanji? */
else
- len = pg_ascii_dsplen(s); /* should be ASCII */
+ len = pg_ascii_dsplen(s); /* should be ASCII */
return len;
}
@@ -797,9 +799,9 @@ pg_gbk_mblen(const unsigned char *s)
int len;
if (IS_HIGHBIT_SET(*s))
- len = 2; /* kanji? */
+ len = 2; /* kanji? */
else
- len = 1; /* should be ASCII */
+ len = 1; /* should be ASCII */
return len;
}
@@ -809,9 +811,9 @@ pg_gbk_dsplen(const unsigned char *s)
int len;
if (IS_HIGHBIT_SET(*s))
- len = 2; /* kanji? */
+ len = 2; /* kanji? */
else
- len = pg_ascii_dsplen(s); /* should be ASCII */
+ len = pg_ascii_dsplen(s); /* should be ASCII */
return len;
}
@@ -824,9 +826,9 @@ pg_uhc_mblen(const unsigned char *s)
int len;
if (IS_HIGHBIT_SET(*s))
- len = 2; /* 2byte? */
+ len = 2; /* 2byte? */
else
- len = 1; /* should be ASCII */
+ len = 1; /* should be ASCII */
return len;
}
@@ -836,9 +838,9 @@ pg_uhc_dsplen(const unsigned char *s)
int len;
if (IS_HIGHBIT_SET(*s))
- len = 2; /* 2byte? */
+ len = 2; /* 2byte? */
else
- len = pg_ascii_dsplen(s); /* should be ASCII */
+ len = pg_ascii_dsplen(s); /* should be ASCII */
return len;
}
@@ -852,7 +854,7 @@ pg_gb18030_mblen(const unsigned char *s)
int len;
if (!IS_HIGHBIT_SET(*s))
- len = 1; /* ASCII */
+ len = 1; /* ASCII */
else
{
if ((*(s + 1) >= 0x40 && *(s + 1) <= 0x7e) || (*(s + 1) >= 0x80 && *(s + 1) <= 0xfe))
@@ -873,7 +875,7 @@ pg_gb18030_dsplen(const unsigned char *s)
if (IS_HIGHBIT_SET(*s))
len = 2;
else
- len = pg_ascii_dsplen(s); /* ASCII */
+ len = pg_ascii_dsplen(s); /* ASCII */
return len;
}
@@ -906,13 +908,14 @@ static int
pg_eucjp_verifier(const unsigned char *s, int len)
{
int l;
- unsigned char c1, c2;
+ unsigned char c1,
+ c2;
c1 = *s++;
switch (c1)
{
- case SS2: /* JIS X 0201 */
+ case SS2: /* JIS X 0201 */
l = 2;
if (l > len)
return -1;
@@ -921,7 +924,7 @@ pg_eucjp_verifier(const unsigned char *s, int len)
return -1;
break;
- case SS3: /* JIS X 0212 */
+ case SS3: /* JIS X 0212 */
l = 3;
if (l > len)
return -1;
@@ -945,7 +948,8 @@ pg_eucjp_verifier(const unsigned char *s, int len)
if (!IS_EUC_RANGE_VALID(c2))
return -1;
}
- else /* must be ASCII */
+ else
+ /* must be ASCII */
{
l = 1;
}
@@ -959,7 +963,8 @@ static int
pg_euckr_verifier(const unsigned char *s, int len)
{
int l;
- unsigned char c1, c2;
+ unsigned char c1,
+ c2;
c1 = *s++;
@@ -974,7 +979,8 @@ pg_euckr_verifier(const unsigned char *s, int len)
if (!IS_EUC_RANGE_VALID(c2))
return -1;
}
- else /* must be ASCII */
+ else
+ /* must be ASCII */
{
l = 1;
}
@@ -989,13 +995,14 @@ static int
pg_euctw_verifier(const unsigned char *s, int len)
{
int l;
- unsigned char c1, c2;
+ unsigned char c1,
+ c2;
c1 = *s++;
switch (c1)
{
- case SS2: /* CNS 11643 Plane 1-7 */
+ case SS2: /* CNS 11643 Plane 1-7 */
l = 4;
if (l > len)
return -1;
@@ -1010,7 +1017,7 @@ pg_euctw_verifier(const unsigned char *s, int len)
return -1;
break;
- case SS3: /* unused */
+ case SS3: /* unused */
return -1;
default:
@@ -1024,7 +1031,8 @@ pg_euctw_verifier(const unsigned char *s, int len)
if (!IS_EUC_RANGE_VALID(c2))
return -1;
}
- else /* must be ASCII */
+ else
+ /* must be ASCII */
{
l = 1;
}
@@ -1036,7 +1044,8 @@ pg_euctw_verifier(const unsigned char *s, int len)
static int
pg_johab_verifier(const unsigned char *s, int len)
{
- int l, mbl;
+ int l,
+ mbl;
unsigned char c;
l = mbl = pg_johab_mblen(s);
@@ -1059,7 +1068,8 @@ pg_johab_verifier(const unsigned char *s, int len)
static int
pg_mule_verifier(const unsigned char *s, int len)
{
- int l, mbl;
+ int l,
+ mbl;
unsigned char c;
l = mbl = pg_mule_mblen(s);
@@ -1085,8 +1095,10 @@ pg_latin1_verifier(const unsigned char *s, int len)
static int
pg_sjis_verifier(const unsigned char *s, int len)
{
- int l, mbl;
- unsigned char c1, c2;
+ int l,
+ mbl;
+ unsigned char c1,
+ c2;
l = mbl = pg_sjis_mblen(s);
@@ -1106,7 +1118,8 @@ pg_sjis_verifier(const unsigned char *s, int len)
static int
pg_big5_verifier(const unsigned char *s, int len)
{
- int l, mbl;
+ int l,
+ mbl;
l = mbl = pg_big5_mblen(s);
@@ -1125,7 +1138,8 @@ pg_big5_verifier(const unsigned char *s, int len)
static int
pg_gbk_verifier(const unsigned char *s, int len)
{
- int l, mbl;
+ int l,
+ mbl;
l = mbl = pg_gbk_mblen(s);
@@ -1144,7 +1158,8 @@ pg_gbk_verifier(const unsigned char *s, int len)
static int
pg_uhc_verifier(const unsigned char *s, int len)
{
- int l, mbl;
+ int l,
+ mbl;
l = mbl = pg_uhc_mblen(s);
@@ -1163,7 +1178,8 @@ pg_uhc_verifier(const unsigned char *s, int len)
static int
pg_gb18030_verifier(const unsigned char *s, int len)
{
- int l, mbl;
+ int l,
+ mbl;
l = mbl = pg_gb18030_mblen(s);
@@ -1182,7 +1198,7 @@ pg_gb18030_verifier(const unsigned char *s, int len)
static int
pg_utf8_verifier(const unsigned char *s, int len)
{
- int l = pg_utf_mblen(s);
+ int l = pg_utf_mblen(s);
if (len < l)
return -1;
@@ -1270,45 +1286,45 @@ pg_utf8_islegal(const unsigned char *source, int length)
*-------------------------------------------------------------------
*/
pg_wchar_tbl pg_wchar_table[] = {
- {pg_ascii2wchar_with_len, pg_ascii_mblen, pg_ascii_dsplen, pg_ascii_verifier, 1}, /* 0; PG_SQL_ASCII */
- {pg_eucjp2wchar_with_len, pg_eucjp_mblen, pg_eucjp_dsplen, pg_eucjp_verifier, 3}, /* 1; PG_EUC_JP */
- {pg_euccn2wchar_with_len, pg_euccn_mblen, pg_euccn_dsplen, pg_euccn_verifier, 3}, /* 2; PG_EUC_CN */
- {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, 3}, /* 4; PG_EUC_TW */
- {pg_johab2wchar_with_len, pg_johab_mblen, pg_johab_dsplen, pg_johab_verifier, 3}, /* 5; PG_JOHAB */
+ {pg_ascii2wchar_with_len, pg_ascii_mblen, pg_ascii_dsplen, pg_ascii_verifier, 1}, /* 0; PG_SQL_ASCII */
+ {pg_eucjp2wchar_with_len, pg_eucjp_mblen, pg_eucjp_dsplen, pg_eucjp_verifier, 3}, /* 1; PG_EUC_JP */
+ {pg_euccn2wchar_with_len, pg_euccn_mblen, pg_euccn_dsplen, pg_euccn_verifier, 3}, /* 2; PG_EUC_CN */
+ {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, 3}, /* 4; PG_EUC_TW */
+ {pg_johab2wchar_with_len, pg_johab_mblen, pg_johab_dsplen, pg_johab_verifier, 3}, /* 5; PG_JOHAB */
{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, 3}, /* 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 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 10; PG_LATIN3 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 11; PG_LATIN4 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 12; PG_LATIN5 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 13; PG_LATIN6 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 14; PG_LATIN7 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 15; PG_LATIN8 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 16; PG_LATIN9 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 17; PG_LATIN10 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 18; PG_WIN1256 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 19; PG_WIN1258 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 20; PG_WIN874 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 21; PG_KOI8 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 22; PG_WIN1251 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 22; PG_WIN1252 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 23; PG_WIN866 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 24; ISO-8859-5 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 25; ISO-8859-6 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 26; ISO-8859-7 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 27; ISO-8859-8 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 28; PG_WIN1250 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 29; PG_WIN1253 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 30; PG_WIN1254 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 31; PG_WIN1255 */
- {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 32; PG_WIN1257 */
- {0, pg_sjis_mblen, pg_sjis_dsplen, pg_sjis_verifier, 2}, /* 33; PG_SJIS */
- {0, pg_big5_mblen, pg_big5_dsplen, pg_big5_verifier, 2}, /* 34; PG_BIG5 */
+ {pg_mule2wchar_with_len, pg_mule_mblen, pg_mule_dsplen, pg_mule_verifier, 3}, /* 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 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 10; PG_LATIN3 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 11; PG_LATIN4 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 12; PG_LATIN5 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 13; PG_LATIN6 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 14; PG_LATIN7 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 15; PG_LATIN8 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 16; PG_LATIN9 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 17; PG_LATIN10 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 18; PG_WIN1256 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 19; PG_WIN1258 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 20; PG_WIN874 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 21; PG_KOI8 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 22; PG_WIN1251 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 22; PG_WIN1252 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 23; PG_WIN866 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 24; ISO-8859-5 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 25; ISO-8859-6 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 26; ISO-8859-7 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 27; ISO-8859-8 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 28; PG_WIN1250 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 29; PG_WIN1253 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 30; PG_WIN1254 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 31; PG_WIN1255 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen, pg_latin1_dsplen, pg_latin1_verifier, 1}, /* 32; PG_WIN1257 */
+ {0, pg_sjis_mblen, pg_sjis_dsplen, pg_sjis_verifier, 2}, /* 33; PG_SJIS */
+ {0, pg_big5_mblen, pg_big5_dsplen, pg_big5_verifier, 2}, /* 34; PG_BIG5 */
{0, pg_gbk_mblen, pg_gbk_dsplen, pg_gbk_verifier, 2}, /* 35; PG_GBK */
{0, pg_uhc_mblen, pg_uhc_dsplen, pg_uhc_verifier, 2}, /* 36; PG_UHC */
- {0, pg_gb18030_mblen, pg_gb18030_dsplen, pg_gb18030_verifier, 2} /* 37; PG_GB18030 */
+ {0, pg_gb18030_mblen, pg_gb18030_dsplen, pg_gb18030_verifier, 2} /* 37; PG_GB18030 */
};
/* returns the byte length of a word for mule internal code */
@@ -1358,8 +1374,8 @@ pg_encoding_verifymb(int encoding, const char *mbstr, int len)
return ((encoding >= 0 &&
encoding < sizeof(pg_wchar_table) / sizeof(pg_wchar_tbl)) ?
- ((*pg_wchar_table[encoding].mbverify) ((const unsigned char *) mbstr, len)) :
- ((*pg_wchar_table[PG_SQL_ASCII].mbverify) ((const unsigned char *) mbstr, len)));
+ ((*pg_wchar_table[encoding].mbverify) ((const unsigned char *) mbstr, len)) :
+ ((*pg_wchar_table[PG_SQL_ASCII].mbverify) ((const unsigned char *) mbstr, len)));
}
/*
@@ -1487,9 +1503,9 @@ report_invalid_encoding(int encoding, const char *mbstr, int len)
errmsg("invalid byte sequence for encoding \"%s\": 0x%s",
pg_enc2name_tbl[encoding].name,
buf),
- errhint("This error can also happen if the byte sequence does not "
- "match the encoding expected by the server, which is controlled "
- "by \"client_encoding\".")));
+ errhint("This error can also happen if the byte sequence does not "
+ "match the encoding expected by the server, which is controlled "
+ "by \"client_encoding\".")));
}
/*
@@ -1516,10 +1532,10 @@ report_untranslatable_char(int src_encoding, int dest_encoding,
ereport(ERROR,
(errcode(ERRCODE_UNTRANSLATABLE_CHARACTER),
- errmsg("character 0x%s of encoding \"%s\" has no equivalent in \"%s\"",
- buf,
- pg_enc2name_tbl[src_encoding].name,
- pg_enc2name_tbl[dest_encoding].name)));
+ errmsg("character 0x%s of encoding \"%s\" has no equivalent in \"%s\"",
+ buf,
+ pg_enc2name_tbl[src_encoding].name,
+ pg_enc2name_tbl[dest_encoding].name)));
}
#endif
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index d0eb77a4ad..74092a8f78 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -10,7 +10,7 @@
* Written by Peter Eisentraut <peter_e@gmx.net>.
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.353 2006/10/03 21:11:54 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.354 2006/10/04 00:30:03 momjian Exp $
*
*--------------------------------------------------------------------
*/
@@ -204,6 +204,7 @@ static char *log_error_verbosity_str;
static char *log_statement_str;
static char *log_min_error_statement_str;
static char *log_destination_string;
+
#ifdef HAVE_SYSLOG
static char *syslog_facility_str;
static char *syslog_ident_str;
@@ -220,7 +221,7 @@ static char *locale_ctype;
static char *regex_flavor_string;
static char *server_encoding_string;
static char *server_version_string;
-static int server_version_num;
+static int server_version_num;
static char *timezone_string;
static char *timezone_abbreviations_string;
static char *XactIsoLevel_string;
@@ -992,9 +993,9 @@ static struct config_bool ConfigureNamesBool[] =
{
{"allow_system_table_mods", PGC_POSTMASTER, DEVELOPER_OPTIONS,
- gettext_noop("Allows modifications of the structure of system tables."),
- NULL,
- GUC_NOT_IN_SAMPLE
+ gettext_noop("Allows modifications of the structure of system tables."),
+ NULL,
+ GUC_NOT_IN_SAMPLE
},
&allowSystemTableMods,
false, NULL, NULL
@@ -1002,10 +1003,10 @@ static struct config_bool ConfigureNamesBool[] =
{
{"ignore_system_indexes", PGC_BACKEND, DEVELOPER_OPTIONS,
- gettext_noop("Disables reading from system indexes."),
- gettext_noop("It does not prevent updating the indexes, so it is safe "
- "to use. The worst consequence is slowness."),
- GUC_NOT_IN_SAMPLE
+ gettext_noop("Disables reading from system indexes."),
+ gettext_noop("It does not prevent updating the indexes, so it is safe "
+ "to use. The worst consequence is slowness."),
+ GUC_NOT_IN_SAMPLE
},
&IgnoreSystemIndexes,
false, NULL, NULL
@@ -1022,19 +1023,19 @@ static struct config_int ConfigureNamesInt[] =
{
{
{"archive_timeout", PGC_SIGHUP, WAL_SETTINGS,
- gettext_noop("Forces a switch to the next xlog file if a "
- "new file has not been started within N seconds."),
- NULL,
- GUC_UNIT_S
+ gettext_noop("Forces a switch to the next xlog file if a "
+ "new file has not been started within N seconds."),
+ NULL,
+ GUC_UNIT_S
},
&XLogArchiveTimeout,
0, 0, INT_MAX, NULL, NULL
},
{
{"post_auth_delay", PGC_BACKEND, DEVELOPER_OPTIONS,
- gettext_noop("Waits N seconds on connection startup after authentication."),
- gettext_noop("This allows attaching a debugger to the process."),
- GUC_NOT_IN_SAMPLE | GUC_UNIT_S
+ gettext_noop("Waits N seconds on connection startup after authentication."),
+ gettext_noop("This allows attaching a debugger to the process."),
+ GUC_NOT_IN_SAMPLE | GUC_UNIT_S
},
&PostAuthDelay,
0, 0, INT_MAX, NULL, NULL
@@ -1863,7 +1864,7 @@ static struct config_string ConfigureNamesString[] =
{"default_tablespace", PGC_USERSET, CLIENT_CONN_STATEMENT,
gettext_noop("Sets the default tablespace to create tables and indexes in."),
gettext_noop("An empty string selects the database's default tablespace."),
- GUC_IS_NAME
+ GUC_IS_NAME
},
&default_tablespace,
"", assign_default_tablespace, NULL
@@ -2295,7 +2296,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);
/*
@@ -3584,7 +3585,7 @@ parse_int(const char *value, int *result, int flags)
if ((flags & GUC_UNIT_MEMORY) && endptr != value)
{
- bool used = false;
+ bool used = false;
while (*endptr == ' ')
endptr++;
@@ -3612,10 +3613,10 @@ parse_int(const char *value, int *result, int flags)
switch (flags & GUC_UNIT_MEMORY)
{
case GUC_UNIT_BLOCKS:
- val /= (BLCKSZ/1024);
+ val /= (BLCKSZ / 1024);
break;
case GUC_UNIT_XBLOCKS:
- val /= (XLOG_BLCKSZ/1024);
+ val /= (XLOG_BLCKSZ / 1024);
break;
}
}
@@ -3623,7 +3624,7 @@ parse_int(const char *value, int *result, int flags)
if ((flags & GUC_UNIT_TIME) && endptr != value)
{
- bool used = false;
+ bool used = false;
while (*endptr == ' ')
endptr++;
@@ -3662,12 +3663,12 @@ parse_int(const char *value, int *result, int flags)
{
switch (flags & GUC_UNIT_TIME)
{
- case GUC_UNIT_S:
- val /= MS_PER_S;
- break;
- case GUC_UNIT_MIN:
- val /= MS_PER_MIN;
- break;
+ case GUC_UNIT_S:
+ val /= MS_PER_S;
+ break;
+ case GUC_UNIT_MIN:
+ val /= MS_PER_MIN;
+ break;
}
}
}
@@ -4173,9 +4174,10 @@ set_config_option(const char *name, const char *value,
newval = guc_strdup(elevel, value);
if (newval == NULL)
return false;
+
/*
- * The only sort of "parsing" check we need to do is
- * apply truncation if GUC_IS_NAME.
+ * The only sort of "parsing" check we need to do is apply
+ * truncation if GUC_IS_NAME.
*/
if (conf->gen.flags & GUC_IS_NAME)
truncate_identifier(newval, strlen(newval), true);
@@ -4988,11 +4990,11 @@ GetConfigOptionByNum(int varnum, const char **values, bool *noshow)
values[2] = "kB";
break;
case GUC_UNIT_BLOCKS:
- snprintf(buf, sizeof(buf), "%dkB", BLCKSZ/1024);
+ snprintf(buf, sizeof(buf), "%dkB", BLCKSZ / 1024);
values[2] = buf;
break;
case GUC_UNIT_XBLOCKS:
- snprintf(buf, sizeof(buf), "%dkB", XLOG_BLCKSZ/1024);
+ snprintf(buf, sizeof(buf), "%dkB", XLOG_BLCKSZ / 1024);
values[2] = buf;
break;
case GUC_UNIT_MS:
@@ -5271,18 +5273,18 @@ _ShowOption(struct config_generic * record, bool use_units)
val = (*conf->show_hook) ();
else
{
- char unit[4];
- int result = *conf->variable;
+ char unit[4];
+ int result = *conf->variable;
if (use_units && result > 0 && (record->flags & GUC_UNIT_MEMORY))
{
switch (record->flags & GUC_UNIT_MEMORY)
{
case GUC_UNIT_BLOCKS:
- result *= BLCKSZ/1024;
+ result *= BLCKSZ / 1024;
break;
case GUC_UNIT_XBLOCKS:
- result *= XLOG_BLCKSZ/1024;
+ result *= XLOG_BLCKSZ / 1024;
break;
}
@@ -5342,7 +5344,7 @@ _ShowOption(struct config_generic * record, bool use_units)
strcpy(unit, "");
snprintf(buffer, sizeof(buffer), "%d%s",
- (int)result, unit);
+ (int) result, unit);
val = buffer;
}
}
@@ -5387,37 +5389,37 @@ _ShowOption(struct config_generic * record, bool use_units)
static bool
-is_newvalue_equal(struct config_generic *record, const char *newvalue)
+is_newvalue_equal(struct config_generic * record, const char *newvalue)
{
switch (record->vartype)
{
case PGC_BOOL:
- {
- struct config_bool *conf = (struct config_bool *) record;
- bool newval;
+ {
+ struct config_bool *conf = (struct config_bool *) record;
+ bool newval;
- return parse_bool(newvalue, &newval) && *conf->variable == newval;
- }
+ return parse_bool(newvalue, &newval) && *conf->variable == newval;
+ }
case PGC_INT:
- {
- struct config_int *conf = (struct config_int *) record;
- int newval;
+ {
+ struct config_int *conf = (struct config_int *) record;
+ int newval;
- return parse_int(newvalue, &newval, record->flags) && *conf->variable == newval;
- }
+ return parse_int(newvalue, &newval, record->flags) && *conf->variable == newval;
+ }
case PGC_REAL:
- {
- struct config_real *conf = (struct config_real *) record;
- double newval;
+ {
+ struct config_real *conf = (struct config_real *) record;
+ double newval;
- return parse_real(newvalue, &newval) && *conf->variable == newval;
- }
+ return parse_real(newvalue, &newval) && *conf->variable == newval;
+ }
case PGC_STRING:
- {
- struct config_string *conf = (struct config_string *) record;
+ {
+ struct config_string *conf = (struct config_string *) record;
- return strcmp(*conf->variable, newvalue) == 0;
- }
+ return strcmp(*conf->variable, newvalue) == 0;
+ }
}
return false;
@@ -6251,7 +6253,7 @@ assign_debug_assertions(bool newval, bool doit, GucSource source)
if (newval)
ereport(ERROR,
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
- errmsg("assertion checking is not supported by this build")));
+ errmsg("assertion checking is not supported by this build")));
#endif
return true;
}
@@ -6338,12 +6340,11 @@ static const char *
assign_backslash_quote(const char *newval, bool doit, GucSource source)
{
BackslashQuoteType bq;
- bool bqbool;
+ bool bqbool;
/*
- * Although only "on", "off", and "safe_encoding" are documented,
- * we use parse_bool so we can accept all the likely variants of
- * "on" and "off".
+ * Although only "on", "off", and "safe_encoding" are documented, we use
+ * parse_bool so we can accept all the likely variants of "on" and "off".
*/
if (pg_strcasecmp(newval, "safe_encoding") == 0)
bq = BACKSLASH_QUOTE_SAFE_ENCODING;
@@ -6367,14 +6368,14 @@ assign_timezone_abbreviations(const char *newval, bool doit, GucSource source)
* The powerup value shown above for timezone_abbreviations is "UNKNOWN".
* When we see this we just do nothing. If this value isn't overridden
* from the config file then pg_timezone_abbrev_initialize() will
- * eventually replace it with "Default". This hack has two purposes:
- * to avoid wasting cycles loading values that might soon be overridden
- * from the config file, and to avoid trying to read the timezone abbrev
- * files during InitializeGUCOptions(). The latter doesn't work in an
- * EXEC_BACKEND subprocess because my_exec_path hasn't been set yet and
- * so we can't locate PGSHAREDIR. (Essentially the same hack is used
- * to delay initializing TimeZone ... if we have any more, we should
- * try to clean up and centralize this mechanism ...)
+ * eventually replace it with "Default". This hack has two purposes: to
+ * avoid wasting cycles loading values that might soon be overridden from
+ * the config file, and to avoid trying to read the timezone abbrev files
+ * during InitializeGUCOptions(). The latter doesn't work in an
+ * EXEC_BACKEND subprocess because my_exec_path hasn't been set yet and so
+ * we can't locate PGSHAREDIR. (Essentially the same hack is used to
+ * delay initializing TimeZone ... if we have any more, we should try to
+ * clean up and centralize this mechanism ...)
*/
if (strcmp(newval, "UNKNOWN") == 0)
{
@@ -6385,11 +6386,11 @@ assign_timezone_abbreviations(const char *newval, bool doit, GucSource source)
if (timezone_abbreviations_string == NULL ||
strcmp(timezone_abbreviations_string, newval) != 0)
{
- int elevel;
+ int elevel;
/*
* If reading config file, only the postmaster should bleat loudly
- * about problems. Otherwise, it's just this one process doing it,
+ * about problems. Otherwise, it's just this one process doing it,
* and we use WARNING message level.
*/
if (source == PGC_S_FILE)
diff --git a/src/backend/utils/misc/ps_status.c b/src/backend/utils/misc/ps_status.c
index f6c4c588b2..38d98634f1 100644
--- a/src/backend/utils/misc/ps_status.c
+++ b/src/backend/utils/misc/ps_status.c
@@ -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.32 2006/09/27 18:40:10 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/misc/ps_status.c,v 1.33 2006/10/04 00:30:04 momjian Exp $
*
* Copyright (c) 2000-2006, PostgreSQL Global Development Group
* various details abducted from various places
@@ -31,7 +31,7 @@
#include "utils/ps_status.h"
extern char **environ;
-bool update_process_title = true;
+bool update_process_title = true;
/*
@@ -287,7 +287,7 @@ set_ps_display(const char *activity, bool force)
if (!force && !update_process_title)
return;
-
+
#ifndef PS_USE_NONE
/* no ps display for stand-alone backend */
if (!IsUnderPostmaster)
@@ -336,8 +336,8 @@ set_ps_display(const char *activity, bool force)
#ifdef PS_USE_WIN32
{
/*
- * Win32 does not support showing any changed arguments. To make it
- * at all possible to track which backend is doing what, we create a
+ * Win32 does not support showing any changed arguments. To make it at
+ * all possible to track which backend is doing what, we create a
* named object that can be viewed with for example Process Explorer.
*/
static HANDLE ident_handle = INVALID_HANDLE_VALUE;
@@ -351,7 +351,6 @@ set_ps_display(const char *activity, bool force)
ident_handle = CreateEvent(NULL, TRUE, FALSE, name);
}
#endif /* PS_USE_WIN32 */
-
#endif /* not PS_USE_NONE */
}
diff --git a/src/backend/utils/misc/tzparser.c b/src/backend/utils/misc/tzparser.c
index 1a092ca242..1eff2e401b 100644
--- a/src/backend/utils/misc/tzparser.c
+++ b/src/backend/utils/misc/tzparser.c
@@ -13,7 +13,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/misc/tzparser.c,v 1.1 2006/07/25 03:51:21 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/misc/tzparser.c,v 1.2 2006/10/04 00:30:04 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -35,11 +35,11 @@ static int tz_elevel; /* to avoid passing this around a lot */
static bool validateTzEntry(tzEntry *tzentry);
static bool splitTzLine(const char *filename, int lineno,
- char *line, tzEntry *tzentry);
-static int addToArray(tzEntry **base, int *arraysize, int n,
- tzEntry *entry, bool override);
-static int ParseTzFile(const char *filename, int depth,
- tzEntry **base, int *arraysize, int n);
+ char *line, tzEntry *tzentry);
+static int addToArray(tzEntry **base, int *arraysize, int n,
+ tzEntry *entry, bool override);
+static int ParseTzFile(const char *filename, int depth,
+ tzEntry **base, int *arraysize, int n);
/*
@@ -53,7 +53,8 @@ validateTzEntry(tzEntry *tzentry)
unsigned char *p;
/*
- * Check restrictions imposed by datetkntbl storage format (see datetime.c)
+ * Check restrictions imposed by datetkntbl storage format (see
+ * datetime.c)
*/
if (strlen(tzentry->abbrev) > TOKMAXLEN)
{
@@ -77,8 +78,8 @@ validateTzEntry(tzEntry *tzentry)
/*
* Sanity-check the offset: shouldn't exceed 14 hours
*/
- if (tzentry->offset > 14*60*60 ||
- tzentry->offset < -14*60*60)
+ if (tzentry->offset > 14 * 60 * 60 ||
+ tzentry->offset < -14 * 60 * 60)
{
ereport(tz_elevel,
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
@@ -105,11 +106,11 @@ validateTzEntry(tzEntry *tzentry)
static bool
splitTzLine(const char *filename, int lineno, char *line, tzEntry *tzentry)
{
- char *abbrev;
- char *offset;
- char *offset_endptr;
- char *remain;
- char *is_dst;
+ char *abbrev;
+ char *offset;
+ char *offset_endptr;
+ char *remain;
+ char *is_dst;
tzentry->lineno = lineno;
tzentry->filename = filename;
@@ -130,8 +131,8 @@ splitTzLine(const char *filename, int lineno, char *line, tzEntry *tzentry)
{
ereport(tz_elevel,
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
- errmsg("missing time zone offset in time zone file \"%s\", line %d",
- filename, lineno)));
+ errmsg("missing time zone offset in time zone file \"%s\", line %d",
+ filename, lineno)));
return false;
}
tzentry->offset = strtol(offset, &offset_endptr, 10);
@@ -157,7 +158,7 @@ splitTzLine(const char *filename, int lineno, char *line, tzEntry *tzentry)
remain = is_dst;
}
- if (!remain) /* no more non-whitespace chars */
+ if (!remain) /* no more non-whitespace chars */
return true;
if (remain[0] != '#') /* must be a comment */
@@ -186,23 +187,23 @@ static int
addToArray(tzEntry **base, int *arraysize, int n,
tzEntry *entry, bool override)
{
- tzEntry* arrayptr;
+ tzEntry *arrayptr;
int low;
int high;
/*
- * Search the array for a duplicate; as a useful side effect, the array
- * is maintained in sorted order. We use strcmp() to ensure we match
- * the sort order datetime.c expects.
+ * Search the array for a duplicate; as a useful side effect, the array is
+ * maintained in sorted order. We use strcmp() to ensure we match the
+ * sort order datetime.c expects.
*/
arrayptr = *base;
low = 0;
- high = n-1;
+ high = n - 1;
while (low <= high)
{
- int mid = (low + high) >> 1;
- tzEntry *midptr = arrayptr + mid;
- int cmp;
+ int mid = (low + high) >> 1;
+ tzEntry *midptr = arrayptr + mid;
+ int cmp;
cmp = strcmp(entry->abbrev, midptr->abbrev);
if (cmp < 0)
@@ -214,7 +215,7 @@ addToArray(tzEntry **base, int *arraysize, int n,
/*
* Found a duplicate entry; complain unless it's the same.
*/
- if (midptr->offset == entry->offset &&
+ if (midptr->offset == entry->offset &&
midptr->is_dst == entry->is_dst)
{
/* return unchanged array */
@@ -230,8 +231,8 @@ addToArray(tzEntry **base, int *arraysize, int n,
/* same abbrev but something is different, complain */
ereport(tz_elevel,
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
- errmsg("time zone abbreviation \"%s\" is multiply defined",
- entry->abbrev),
+ errmsg("time zone abbreviation \"%s\" is multiply defined",
+ entry->abbrev),
errdetail("Time zone file \"%s\", line %d conflicts with file \"%s\", line %d.",
midptr->filename, midptr->lineno,
entry->filename, entry->lineno)));
@@ -257,7 +258,7 @@ addToArray(tzEntry **base, int *arraysize, int n,
/* Must dup the abbrev to ensure it survives */
arrayptr->abbrev = pstrdup(entry->abbrev);
- return n+1;
+ return n + 1;
}
/*
@@ -275,15 +276,15 @@ static int
ParseTzFile(const char *filename, int depth,
tzEntry **base, int *arraysize, int n)
{
- char share_path[MAXPGPATH];
- char file_path[MAXPGPATH];
- FILE *tzFile;
- char tzbuf[1024];
- char *line;
- tzEntry tzentry;
- int lineno = 0;
- bool override = false;
- const char *p;
+ char share_path[MAXPGPATH];
+ char file_path[MAXPGPATH];
+ FILE *tzFile;
+ char tzbuf[1024];
+ char *line;
+ tzEntry tzentry;
+ int lineno = 0;
+ bool override = false;
+ const char *p;
/*
* We enforce that the filename is all alpha characters. This may be
@@ -299,23 +300,23 @@ ParseTzFile(const char *filename, int depth,
if (depth > 0)
ereport(tz_elevel,
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
- errmsg("invalid time zone file name \"%s\"",
- filename)));
+ errmsg("invalid time zone file name \"%s\"",
+ filename)));
return -1;
}
}
/*
- * The maximal recursion depth is a pretty arbitrary setting.
- * It is hard to imagine that someone needs more than 3 levels so stick
- * with this conservative setting until someone complains.
+ * The maximal recursion depth is a pretty arbitrary setting. It is hard
+ * to imagine that someone needs more than 3 levels so stick with this
+ * conservative setting until someone complains.
*/
if (depth > 3)
{
ereport(tz_elevel,
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
- errmsg("time zone file recursion limit exceeded in file \"%s\"",
- filename)));
+ errmsg("time zone file recursion limit exceeded in file \"%s\"",
+ filename)));
return -1;
}
@@ -350,13 +351,13 @@ ParseTzFile(const char *filename, int depth,
/* else we're at EOF after all */
break;
}
- if (strlen(tzbuf) == sizeof(tzbuf)-1)
+ if (strlen(tzbuf) == sizeof(tzbuf) - 1)
{
/* the line is too long for tzbuf */
ereport(tz_elevel,
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
- errmsg("line is too long in time zone file \"%s\", line %d",
- filename, lineno)));
+ errmsg("line is too long in time zone file \"%s\", line %d",
+ filename, lineno)));
return -1;
}
@@ -365,15 +366,15 @@ ParseTzFile(const char *filename, int depth,
while (*line && isspace((unsigned char) *line))
line++;
- if (*line == '\0') /* empty line */
+ if (*line == '\0') /* empty line */
continue;
- if (*line == '#') /* comment line */
+ if (*line == '#') /* comment line */
continue;
if (pg_strncasecmp(line, "@INCLUDE", strlen("@INCLUDE")) == 0)
{
/* pstrdup so we can use filename in result data structure */
- char* includeFile = pstrdup(line + strlen("@INCLUDE"));
+ char *includeFile = pstrdup(line + strlen("@INCLUDE"));
includeFile = strtok(includeFile, WHITESPACE);
if (!includeFile || !*includeFile)
@@ -425,15 +426,15 @@ load_tzoffsets(const char *filename, bool doit, int elevel)
{
MemoryContext tmpContext;
MemoryContext oldContext;
- tzEntry *array;
+ tzEntry *array;
int arraysize;
int n;
tz_elevel = elevel;
/*
- * Create a temp memory context to work in. This makes it easy to
- * clean up afterwards.
+ * Create a temp memory context to work in. This makes it easy to clean
+ * up afterwards.
*/
tmpContext = AllocSetContextCreate(CurrentMemoryContext,
"TZParserMemory",
diff --git a/src/backend/utils/mmgr/aset.c b/src/backend/utils/mmgr/aset.c
index 5762607b9e..7f525891f6 100644
--- a/src/backend/utils/mmgr/aset.c
+++ b/src/backend/utils/mmgr/aset.c
@@ -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.67 2006/06/28 22:05:37 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/mmgr/aset.c,v 1.68 2006/10/04 00:30:04 momjian Exp $
*
* NOTE:
* This is a new (Feb. 05, 1999) implementation of the allocation set
@@ -883,7 +883,7 @@ AllocSetRealloc(MemoryContext context, void *pointer, Size size)
if (oldsize > ALLOC_CHUNK_LIMIT)
{
/*
- * The chunk must have been allocated as a single-chunk block. Find
+ * The chunk must have been allocated as a single-chunk block. Find
* the containing block and use realloc() to make it bigger with
* minimum space wastage.
*/
diff --git a/src/backend/utils/mmgr/portalmem.c b/src/backend/utils/mmgr/portalmem.c
index 883f075eec..7fabe243ac 100644
--- a/src/backend/utils/mmgr/portalmem.c
+++ b/src/backend/utils/mmgr/portalmem.c
@@ -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.95 2006/09/27 18:40:10 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/mmgr/portalmem.c,v 1.96 2006/10/04 00:30:04 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -69,7 +69,7 @@ do { \
PortalHashEnt *hentry; bool found; \
\
hentry = (PortalHashEnt *) hash_search(PortalHashTable, \
- (NAME), HASH_ENTER, &found); \
+ (NAME), HASH_ENTER, &found); \
if (found) \
elog(ERROR, "duplicate portal name"); \
hentry->portal = PORTAL; \
@@ -145,11 +145,11 @@ GetPortalByName(const char *name)
* Get the "primary" Query within a portal, ie, the one marked canSetTag.
*
* Returns NULL if no such Query. If multiple Query structs within the
- * portal are marked canSetTag, returns the first one. Neither of these
+ * portal are marked canSetTag, returns the first one. Neither of these
* cases should occur in present usages of this function.
*
* Note: the reason this is just handed a List is so that prepared statements
- * can share the code. For use with a portal, use PortalGetPrimaryQuery
+ * can share the code. For use with a portal, use PortalGetPrimaryQuery
* rather than calling this directly.
*/
Query *
@@ -790,22 +790,21 @@ AtSubCleanup_Portals(SubTransactionId mySubid)
Datum
pg_cursor(PG_FUNCTION_ARGS)
{
- FuncCallContext *funcctx;
- HASH_SEQ_STATUS *hash_seq;
- PortalHashEnt *hentry;
+ FuncCallContext *funcctx;
+ HASH_SEQ_STATUS *hash_seq;
+ PortalHashEnt *hentry;
/* stuff done only on the first call of the function */
if (SRF_IS_FIRSTCALL())
{
- MemoryContext oldcontext;
- TupleDesc tupdesc;
+ MemoryContext oldcontext;
+ TupleDesc tupdesc;
/* create a function context for cross-call persistence */
funcctx = SRF_FIRSTCALL_INIT();
/*
- * switch to memory context appropriate for multiple function
- * calls
+ * switch to memory context appropriate for multiple function calls
*/
oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
@@ -819,8 +818,8 @@ pg_cursor(PG_FUNCTION_ARGS)
funcctx->user_fctx = NULL;
/*
- * 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",
@@ -871,7 +870,7 @@ pg_cursor(PG_FUNCTION_ARGS)
nulls[1] = true;
else
values[1] = DirectFunctionCall1(textin,
- CStringGetDatum(portal->sourceText));
+ CStringGetDatum(portal->sourceText));
values[2] = BoolGetDatum(portal->cursorOptions & CURSOR_OPT_HOLD);
values[3] = BoolGetDatum(portal->cursorOptions & CURSOR_OPT_BINARY);
values[4] = BoolGetDatum(portal->cursorOptions & CURSOR_OPT_SCROLL);
@@ -884,4 +883,3 @@ pg_cursor(PG_FUNCTION_ARGS)
SRF_RETURN_DONE(funcctx);
}
-
diff --git a/src/backend/utils/sort/logtape.c b/src/backend/utils/sort/logtape.c
index 18dc461778..d978fd135a 100644
--- a/src/backend/utils/sort/logtape.c
+++ b/src/backend/utils/sort/logtape.c
@@ -55,7 +55,7 @@
* To support the above policy of writing to the lowest free block,
* ltsGetFreeBlock sorts the list of free block numbers into decreasing
* order each time it is asked for a block and the list isn't currently
- * sorted. This is an efficient way to handle it because we expect cycles
+ * sorted. This is an efficient way to handle it because we expect cycles
* of releasing many blocks followed by re-using many blocks, due to
* tuplesort.c's "preread" behavior.
*
@@ -70,7 +70,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/sort/logtape.c,v 1.21 2006/03/07 23:46:24 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/sort/logtape.c,v 1.22 2006/10/04 00:30:04 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -157,7 +157,7 @@ struct LogicalTapeSet
*
* If blocksSorted is true then the block numbers in freeBlocks are in
* *decreasing* order, so that removing the last entry gives us the lowest
- * free block. We re-sort the blocks whenever a block is demanded; this
+ * free block. We re-sort the blocks whenever a block is demanded; this
* should be reasonably efficient given the expected usage pattern.
*/
bool forgetFreeSpace; /* are we remembering free blocks? */
@@ -171,7 +171,7 @@ struct LogicalTapeSet
* is of length nTapes.
*/
int nTapes; /* # of logical tapes in set */
- LogicalTape tapes[1]; /* must be last in struct! */
+ LogicalTape tapes[1]; /* must be last in struct! */
};
static void ltsWriteBlock(LogicalTapeSet *lts, long blocknum, void *buffer);
@@ -303,12 +303,12 @@ ltsReleaseBlock(LogicalTapeSet *lts, long blocknum)
}
/*
- * Add blocknum to array, and mark the array unsorted if it's no longer
- * in decreasing order.
+ * Add blocknum to array, and mark the array unsorted if it's no longer in
+ * decreasing order.
*/
ndx = lts->nFreeBlocks++;
lts->freeBlocks[ndx] = blocknum;
- if (ndx > 0 && lts->freeBlocks[ndx-1] < blocknum)
+ if (ndx > 0 && lts->freeBlocks[ndx - 1] < blocknum)
lts->blocksSorted = false;
}
@@ -522,12 +522,12 @@ LogicalTapeSetCreate(int ntapes)
int i;
/*
- * Create top-level struct including per-tape LogicalTape structs.
- * First LogicalTape struct is already counted in sizeof(LogicalTapeSet).
+ * Create top-level struct including per-tape LogicalTape structs. First
+ * LogicalTape struct is already counted in sizeof(LogicalTapeSet).
*/
Assert(ntapes > 0);
lts = (LogicalTapeSet *) palloc(sizeof(LogicalTapeSet) +
- (ntapes - 1) * sizeof(LogicalTape));
+ (ntapes - 1) *sizeof(LogicalTape));
lts->pfile = BufFileCreateTemp(false);
lts->nFileBlocks = 0L;
lts->forgetFreeSpace = false;
@@ -540,7 +540,7 @@ LogicalTapeSetCreate(int ntapes)
/*
* Initialize per-tape structs. Note we allocate the I/O buffer and
* first-level indirect block for a tape only when it is first actually
- * written to. This avoids wasting memory space when tuplesort.c
+ * written to. This avoids wasting memory space when tuplesort.c
* overestimates the number of tapes needed.
*/
for (i = 0; i < ntapes; i++)
@@ -591,7 +591,7 @@ LogicalTapeSetClose(LogicalTapeSet *lts)
* Mark a logical tape set as not needing management of free space anymore.
*
* This should be called if the caller does not intend to write any more data
- * into the tape set, but is reading from un-frozen tapes. Since no more
+ * into the tape set, but is reading from un-frozen tapes. Since no more
* writes are planned, remembering free blocks is no longer useful. Setting
* this flag lets us avoid wasting time and space in ltsReleaseBlock(), which
* is not designed to handle large numbers of free blocks.
diff --git a/src/backend/utils/sort/tuplesort.c b/src/backend/utils/sort/tuplesort.c
index 08e63e0756..652f9a2ff4 100644
--- a/src/backend/utils/sort/tuplesort.c
+++ b/src/backend/utils/sort/tuplesort.c
@@ -77,7 +77,7 @@
* grounds that 7 is the "sweet spot" on the tapes-to-passes curve according
* to Knuth's figure 70 (section 5.4.2). However, Knuth is assuming that
* tape drives are expensive beasts, and in particular that there will always
- * be many more runs than tape drives. In our implementation a "tape drive"
+ * be many more runs than tape drives. In our implementation a "tape drive"
* doesn't cost much more than a few Kb of memory buffers, so we can afford
* to have lots of them. In particular, if we can have as many tape drives
* as sorted runs, we can eliminate any repeated I/O at all. In the current
@@ -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.69 2006/10/03 22:18:23 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/sort/tuplesort.c,v 1.70 2006/10/04 00:30:04 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -119,28 +119,28 @@ bool trace_sort = false;
/*
- * The objects we actually sort are SortTuple structs. These contain
+ * The objects we actually sort are SortTuple structs. These contain
* a pointer to the tuple proper (might be a MinimalTuple or IndexTuple),
* which is a separate palloc chunk --- we assume it is just one chunk and
* can be freed by a simple pfree(). SortTuples also contain the tuple's
* first key column in Datum/nullflag format, and an index integer.
*
* Storing the first key column lets us save heap_getattr or index_getattr
- * calls during tuple comparisons. We could extract and save all the key
+ * calls during tuple comparisons. We could extract and save all the key
* columns not just the first, but this would increase code complexity and
* overhead, and wouldn't actually save any comparison cycles in the common
* case where the first key determines the comparison result. Note that
* for a pass-by-reference datatype, datum1 points into the "tuple" storage.
*
* When sorting single Datums, the data value is represented directly by
- * datum1/isnull1. If the datatype is pass-by-reference and isnull1 is false,
+ * datum1/isnull1. If the datatype is pass-by-reference and isnull1 is false,
* then datum1 points to a separately palloc'd data value that is also pointed
* to by the "tuple" pointer; otherwise "tuple" is NULL.
*
* While building initial runs, tupindex holds the tuple's run number. During
* merge passes, we re-use it to hold the input tape number that each tuple in
* the heap was read from, or to hold the index of the next tuple pre-read
- * from the same tape in the case of pre-read entries. tupindex goes unused
+ * from the same tape in the case of pre-read entries. tupindex goes unused
* if the sort occurs entirely in memory.
*/
typedef struct
@@ -205,7 +205,7 @@ struct Tuplesortstate
* qsort_arg_comparator.
*/
int (*comparetup) (const SortTuple *a, const SortTuple *b,
- Tuplesortstate *state);
+ Tuplesortstate *state);
/*
* Function to copy a supplied input tuple into palloc'd space and set up
@@ -223,19 +223,19 @@ struct Tuplesortstate
* state->availMem by the amount of memory space thereby released.
*/
void (*writetup) (Tuplesortstate *state, int tapenum,
- SortTuple *stup);
+ SortTuple *stup);
/*
* Function to read a stored tuple from tape back into memory. 'len' is
* the already-read length of the stored tuple. Create a palloc'd copy,
- * initialize tuple/datum1/isnull1 in the target SortTuple struct,
- * and decrease state->availMem by the amount of memory space consumed.
+ * initialize tuple/datum1/isnull1 in the target SortTuple struct, and
+ * decrease state->availMem by the amount of memory space consumed.
*/
void (*readtup) (Tuplesortstate *state, SortTuple *stup,
- int tapenum, unsigned int len);
+ int tapenum, unsigned int len);
/*
- * This array holds the tuples now in sort memory. If we are in state
+ * This array holds the tuples now in sort memory. If we are in state
* INITIAL, the tuples are in no particular order; if we are in state
* SORTEDINMEM, the tuples are in final sorted order; in states BUILDRUNS
* and FINALMERGE, the tuples are organized in "heap" order per Algorithm
@@ -255,8 +255,8 @@ struct Tuplesortstate
int currentRun;
/*
- * Unless otherwise noted, all pointer variables below are pointers
- * to arrays of length maxTapes, holding per-tape data.
+ * Unless otherwise noted, all pointer variables below are pointers to
+ * arrays of length maxTapes, holding per-tape data.
*/
/*
@@ -280,7 +280,7 @@ struct Tuplesortstate
int *mergeavailslots; /* slots left for prereading each tape */
long *mergeavailmem; /* availMem for prereading each tape */
int mergefreelist; /* head of freelist of recycled slots */
- int mergefirstfree; /* first slot never used in this merge */
+ int mergefirstfree; /* first slot never used in this merge */
/*
* Variables for Algorithm D. Note that destTape is a "logical" tape
@@ -314,8 +314,8 @@ struct Tuplesortstate
* tuplesort_begin_heap and used only by the MinimalTuple routines.
*/
TupleDesc tupDesc;
- ScanKey scanKeys; /* array of length nKeys */
- SortFunctionKind *sortFnKinds; /* array of length nKeys */
+ ScanKey scanKeys; /* array of length nKeys */
+ SortFunctionKind *sortFnKinds; /* array of length nKeys */
/*
* These variables are specific to the IndexTuple case; they are set by
@@ -346,7 +346,7 @@ struct Tuplesortstate
};
#define COMPARETUP(state,a,b) ((*(state)->comparetup) (a, b, state))
-#define COPYTUP(state,stup,tup) ((*(state)->copytup) (state, stup, tup))
+#define COPYTUP(state,stup,tup) ((*(state)->copytup) (state, stup, tup))
#define WRITETUP(state,tape,stup) ((*(state)->writetup) (state, tape, stup))
#define READTUP(state,stup,tape,len) ((*(state)->readtup) (state, stup, tape, len))
#define LACKMEM(state) ((state)->availMem < 0)
@@ -411,26 +411,26 @@ static void tuplesort_heap_siftup(Tuplesortstate *state, bool checkIndex);
static unsigned int getlen(Tuplesortstate *state, int tapenum, bool eofOK);
static void markrunend(Tuplesortstate *state, int tapenum);
static int comparetup_heap(const SortTuple *a, const SortTuple *b,
- Tuplesortstate *state);
+ Tuplesortstate *state);
static void copytup_heap(Tuplesortstate *state, SortTuple *stup, void *tup);
static void writetup_heap(Tuplesortstate *state, int tapenum,
- SortTuple *stup);
+ SortTuple *stup);
static void readtup_heap(Tuplesortstate *state, SortTuple *stup,
- int tapenum, unsigned int len);
+ int tapenum, unsigned int len);
static int comparetup_index(const SortTuple *a, const SortTuple *b,
- Tuplesortstate *state);
+ Tuplesortstate *state);
static void copytup_index(Tuplesortstate *state, SortTuple *stup, void *tup);
static void writetup_index(Tuplesortstate *state, int tapenum,
- SortTuple *stup);
+ SortTuple *stup);
static void readtup_index(Tuplesortstate *state, SortTuple *stup,
- int tapenum, unsigned int len);
+ int tapenum, unsigned int len);
static int comparetup_datum(const SortTuple *a, const SortTuple *b,
- Tuplesortstate *state);
+ Tuplesortstate *state);
static void copytup_datum(Tuplesortstate *state, SortTuple *stup, void *tup);
static void writetup_datum(Tuplesortstate *state, int tapenum,
- SortTuple *stup);
+ SortTuple *stup);
static void readtup_datum(Tuplesortstate *state, SortTuple *stup,
- int tapenum, unsigned int len);
+ int tapenum, unsigned int len);
/*
@@ -460,8 +460,8 @@ tuplesort_begin_common(int workMem, bool randomAccess)
MemoryContext oldcontext;
/*
- * Create a working memory context for this sort operation.
- * All data needed by the sort will live inside this context.
+ * Create a working memory context for this sort operation. All data
+ * needed by the sort will live inside this context.
*/
sortcontext = AllocSetContextCreate(CurrentMemoryContext,
"TupleSort",
@@ -470,8 +470,8 @@ tuplesort_begin_common(int workMem, bool randomAccess)
ALLOCSET_DEFAULT_MAXSIZE);
/*
- * Make the Tuplesortstate within the per-sort context. This way,
- * we don't need a separate pfree() operation for it at shutdown.
+ * Make the Tuplesortstate within the per-sort context. This way, we
+ * don't need a separate pfree() operation for it at shutdown.
*/
oldcontext = MemoryContextSwitchTo(sortcontext);
@@ -680,8 +680,8 @@ tuplesort_end(Tuplesortstate *state)
/*
* Delete temporary "tape" files, if any.
*
- * Note: want to include this in reported total cost of sort, hence
- * need for two #ifdef TRACE_SORT sections.
+ * Note: want to include this in reported total cost of sort, hence need
+ * for two #ifdef TRACE_SORT sections.
*/
if (state->tapeset)
LogicalTapeSetClose(state->tapeset);
@@ -701,8 +701,8 @@ tuplesort_end(Tuplesortstate *state)
MemoryContextSwitchTo(oldcontext);
/*
- * Free the per-sort memory context, thereby releasing all working
- * memory, including the Tuplesortstate struct itself.
+ * Free the per-sort memory context, thereby releasing all working memory,
+ * including the Tuplesortstate struct itself.
*/
MemoryContextDelete(state->sortcontext);
}
@@ -721,15 +721,16 @@ grow_memtuples(Tuplesortstate *state)
{
/*
* We need to be sure that we do not cause LACKMEM to become true, else
- * the space management algorithm will go nuts. We assume here that
- * the memory chunk overhead associated with the memtuples array is
- * constant and so there will be no unexpected addition to what we ask
- * for. (The minimum array size established in tuplesort_begin_common
- * is large enough to force palloc to treat it as a separate chunk, so
- * this assumption should be good. But let's check it.)
+ * the space management algorithm will go nuts. We assume here that the
+ * memory chunk overhead associated with the memtuples array is constant
+ * and so there will be no unexpected addition to what we ask for. (The
+ * minimum array size established in tuplesort_begin_common is large
+ * enough to force palloc to treat it as a separate chunk, so this
+ * assumption should be good. But let's check it.)
*/
if (state->availMem <= (long) (state->memtupsize * sizeof(SortTuple)))
return false;
+
/*
* On a 64-bit machine, allowedMem could be high enough to get us into
* trouble with MaxAllocSize, too.
@@ -804,8 +805,8 @@ tuplesort_putdatum(Tuplesortstate *state, Datum val, bool isNull)
SortTuple stup;
/*
- * If it's a pass-by-reference value, copy it into memory we control,
- * and decrease availMem. Then call the common code.
+ * If it's a pass-by-reference value, copy it into memory we control, and
+ * decrease availMem. Then call the common code.
*/
if (isNull || state->datumTypeByVal)
{
@@ -837,10 +838,10 @@ puttuple_common(Tuplesortstate *state, SortTuple *tuple)
case TSS_INITIAL:
/*
- * Save the tuple into the unsorted array. First, grow the
- * array as needed. Note that we try to grow the array when there
- * is still one free slot remaining --- if we fail, there'll still
- * be room to store the incoming tuple, and then we'll switch to
+ * Save the tuple into the unsorted array. First, grow the array
+ * as needed. Note that we try to grow the array when there is
+ * still one free slot remaining --- if we fail, there'll still be
+ * room to store the incoming tuple, and then we'll switch to
* tape-based operation.
*/
if (state->memtupcount >= state->memtupsize - 1)
@@ -869,14 +870,14 @@ puttuple_common(Tuplesortstate *state, SortTuple *tuple)
case TSS_BUILDRUNS:
/*
- * Insert the tuple into the heap, with run number
- * currentRun if it can go into the current run, else run number
- * currentRun+1. The tuple can go into the current run if it is
- * >= the first not-yet-output tuple. (Actually, it could go into
- * the current run if it is >= the most recently output tuple ...
- * but that would require keeping around the tuple we last output,
- * and it's simplest to let writetup free each tuple as soon as
- * it's written.)
+ * Insert the tuple into the heap, with run number currentRun if
+ * it can go into the current run, else run number currentRun+1.
+ * The tuple can go into the current run if it is >= the first
+ * not-yet-output tuple. (Actually, it could go into the current
+ * run if it is >= the most recently output tuple ... but that
+ * would require keeping around the tuple we last output, and it's
+ * simplest to let writetup free each tuple as soon as it's
+ * written.)
*
* Note there will always be at least one tuple in the heap at
* this point; see dumptuples.
@@ -1262,14 +1263,14 @@ tuplesort_merge_order(long allowedMem)
int mOrder;
/*
- * We need one tape for each merge input, plus another one for the
- * output, and each of these tapes needs buffer space. In addition
- * we want MERGE_BUFFER_SIZE workspace per input tape (but the output
- * tape doesn't count).
+ * We need one tape for each merge input, plus another one for the output,
+ * and each of these tapes needs buffer space. In addition we want
+ * MERGE_BUFFER_SIZE workspace per input tape (but the output tape doesn't
+ * count).
*
* Note: you might be thinking we need to account for the memtuples[]
- * array in this calculation, but we effectively treat that as part of
- * the MERGE_BUFFER_SIZE workspace.
+ * array in this calculation, but we effectively treat that as part of the
+ * MERGE_BUFFER_SIZE workspace.
*/
mOrder = (allowedMem - TAPE_BUFFER_OVERHEAD) /
(MERGE_BUFFER_SIZE + TAPE_BUFFER_OVERHEAD);
@@ -1298,8 +1299,8 @@ inittapes(Tuplesortstate *state)
/*
* We must have at least 2*maxTapes slots in the memtuples[] array, else
- * we'd not have room for merge heap plus preread. It seems unlikely
- * that this case would ever occur, but be safe.
+ * we'd not have room for merge heap plus preread. It seems unlikely that
+ * this case would ever occur, but be safe.
*/
maxTapes = Min(maxTapes, state->memtupsize / 2);
@@ -1314,12 +1315,12 @@ inittapes(Tuplesortstate *state)
/*
* Decrease availMem to reflect the space needed for tape buffers; but
- * don't decrease it to the point that we have no room for tuples.
- * (That case is only likely to occur if sorting pass-by-value Datums;
- * in all other scenarios the memtuples[] array is unlikely to occupy
- * more than half of allowedMem. In the pass-by-value case it's not
- * important to account for tuple space, so we don't care if LACKMEM
- * becomes inaccurate.)
+ * don't decrease it to the point that we have no room for tuples. (That
+ * case is only likely to occur if sorting pass-by-value Datums; in all
+ * other scenarios the memtuples[] array is unlikely to occupy more than
+ * half of allowedMem. In the pass-by-value case it's not important to
+ * account for tuple space, so we don't care if LACKMEM becomes
+ * inaccurate.)
*/
tapeSpace = maxTapes * TAPE_BUFFER_OVERHEAD;
if (tapeSpace + GetMemoryChunkSpace(state->memtuples) < state->allowedMem)
@@ -1435,7 +1436,7 @@ mergeruns(Tuplesortstate *state)
/*
* If we produced only one initial run (quite likely if the total data
* volume is between 1X and 2X workMem), we can just use that tape as the
- * finished output, rather than doing a useless merge. (This obvious
+ * finished output, rather than doing a useless merge. (This obvious
* optimization is not in Knuth's algorithm.)
*/
if (state->currentRun == 1)
@@ -1666,7 +1667,7 @@ beginmerge(Tuplesortstate *state)
memset(state->mergelast, 0,
state->maxTapes * sizeof(*state->mergelast));
state->mergefreelist = 0; /* nothing in the freelist */
- state->mergefirstfree = activeTapes; /* 1st slot avail for preread */
+ state->mergefirstfree = activeTapes; /* 1st slot avail for preread */
/*
* Initialize space allocation to let each active input tape have an equal
@@ -1966,7 +1967,7 @@ tuplesort_restorepos(Tuplesortstate *state)
/*
* Heap manipulation routines, per Knuth's Algorithm 5.2.3H.
*
- * Compare two SortTuples. If checkIndex is true, use the tuple index
+ * Compare two SortTuples. If checkIndex is true, use the tuple index
* as the front of the sort key; otherwise, no.
*/
@@ -1977,7 +1978,7 @@ tuplesort_restorepos(Tuplesortstate *state)
/*
* Insert a new tuple into an empty or existing heap, maintaining the
- * heap invariant. Caller is responsible for ensuring there's room.
+ * heap invariant. Caller is responsible for ensuring there's room.
*
* Note: we assume *tuple is a temporary variable that can be scribbled on.
* For some callers, tuple actually points to a memtuples[] entry above the
@@ -1993,10 +1994,10 @@ tuplesort_heap_insert(Tuplesortstate *state, SortTuple *tuple,
int j;
/*
- * Save the tupleindex --- see notes above about writing on *tuple.
- * It's a historical artifact that tupleindex is passed as a separate
- * argument and not in *tuple, but it's notationally convenient so
- * let's leave it that way.
+ * Save the tupleindex --- see notes above about writing on *tuple. It's a
+ * historical artifact that tupleindex is passed as a separate argument
+ * and not in *tuple, but it's notationally convenient so let's leave it
+ * that way.
*/
tuple->tupindex = tupleindex;
@@ -2432,8 +2433,8 @@ comparetup_index(const SortTuple *a, const SortTuple *b, Tuplesortstate *state)
{
/*
* This is similar to _bt_tuplecompare(), but we have already done the
- * index_getattr calls for the first column, and we need to keep track
- * of whether any null fields are present. Also see the special treatment
+ * index_getattr calls for the first column, and we need to keep track of
+ * whether any null fields are present. Also see the special treatment
* for equal keys at the end.
*/
ScanKey scanKey = state->indexScanKey;
@@ -2686,7 +2687,7 @@ readtup_datum(Tuplesortstate *state, SortTuple *stup,
}
else
{
- void *raddr = palloc(tuplen);
+ void *raddr = palloc(tuplen);
if (LogicalTapeRead(state->tapeset, tapenum, raddr,
tuplen) != tuplen)
diff --git a/src/backend/utils/sort/tuplestore.c b/src/backend/utils/sort/tuplestore.c
index a2ed330ccc..dcf68de335 100644
--- a/src/backend/utils/sort/tuplestore.c
+++ b/src/backend/utils/sort/tuplestore.c
@@ -36,7 +36,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/sort/tuplestore.c,v 1.28 2006/06/27 02:51:39 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/sort/tuplestore.c,v 1.29 2006/10/04 00:30:04 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -347,6 +347,7 @@ tuplestore_puttuple_common(Tuplestorestate *state, void *tuple)
switch (state->status)
{
case TSS_INMEM:
+
/*
* Grow the array as needed. Note that we try to grow the array
* when there is still one free slot remaining --- if we fail,
diff --git a/src/backend/utils/time/tqual.c b/src/backend/utils/time/tqual.c
index a3b52fa7eb..eedc6222be 100644
--- a/src/backend/utils/time/tqual.c
+++ b/src/backend/utils/time/tqual.c
@@ -32,7 +32,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/time/tqual.c,v 1.97 2006/09/15 16:39:32 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/time/tqual.c,v 1.98 2006/10/04 00:30:04 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1326,7 +1326,7 @@ XidInSnapshot(TransactionId xid, Snapshot snapshot)
/*
* Make a quick range check to eliminate most XIDs without looking at the
- * xip arrays. Note that this is OK even if we convert a subxact XID to
+ * xip arrays. Note that this is OK even if we convert a subxact XID to
* its parent below, because a subxact with XID < xmin has surely also got
* a parent with XID < xmin, while one with XID >= xmax must belong to a
* parent that was not yet committed at the time of this snapshot.
@@ -1342,7 +1342,7 @@ XidInSnapshot(TransactionId xid, Snapshot snapshot)
/*
* If the snapshot contains full subxact data, the fastest way to check
* things is just to compare the given XID against both subxact XIDs and
- * top-level XIDs. If the snapshot overflowed, we have to use pg_subtrans
+ * top-level XIDs. If the snapshot overflowed, we have to use pg_subtrans
* to convert a subxact XID to its parent XID, but then we need only look
* at top-level XIDs not subxacts.
*/
@@ -1365,8 +1365,8 @@ XidInSnapshot(TransactionId xid, Snapshot snapshot)
xid = SubTransGetTopmostTransaction(xid);
/*
- * If xid was indeed a subxact, we might now have an xid < xmin,
- * so recheck to avoid an array scan. No point in rechecking xmax.
+ * If xid was indeed a subxact, we might now have an xid < xmin, so
+ * recheck to avoid an array scan. No point in rechecking xmax.
*/
if (TransactionIdPrecedes(xid, snapshot->xmin))
return false;
diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c
index 70f481c372..f001d43b25 100644
--- a/src/bin/initdb/initdb.c
+++ b/src/bin/initdb/initdb.c
@@ -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.123 2006/10/03 21:11:55 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.124 2006/10/04 00:30:04 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -120,7 +120,7 @@ static int output_errno = 0;
/* defaults */
static int n_connections = 10;
static int n_buffers = 50;
-static int n_fsm_pages = 20000;
+static int n_fsm_pages = 20000;
/*
* Warning messages for authentication methods
@@ -191,8 +191,9 @@ static int locale_date_order(const char *locale);
static bool chklocale(const char *locale);
static void setlocales(void);
static void usage(const char *progname);
+
#ifdef WIN32
-static int CreateRestrictedProcess(char *cmd, PROCESS_INFORMATION *processInfo);
+static int CreateRestrictedProcess(char *cmd, PROCESS_INFORMATION * processInfo);
#endif
@@ -1102,21 +1103,21 @@ test_config_settings(void)
{
/*
* These macros define the minimum shared_buffers we want for a given
- * max_connections value, and the max_fsm_pages setting to be used for
- * a given shared_buffers value. The arrays show the settings to try.
+ * max_connections value, and the max_fsm_pages setting to be used for a
+ * given shared_buffers value. The arrays show the settings to try.
*
*/
-#define MIN_BUFS_FOR_CONNS(nconns) ((nconns) * 10 * (BLCKSZ/1024))
-#define FSM_FOR_BUFS(nbuffers) ((nbuffers) > 1000 ? 50 * (nbuffers) : 20000)
+#define MIN_BUFS_FOR_CONNS(nconns) ((nconns) * 10 * (BLCKSZ/1024))
+#define FSM_FOR_BUFS(nbuffers) ((nbuffers) > 1000 ? 50 * (nbuffers) : 20000)
static const int trial_conns[] = {
100, 50, 40, 30, 20, 10
};
/*
- * Candidate values for shared_buffers in kB. When the value is
- * divisible by 1024, we write it in MB-unit to configuration files.
+ * Candidate values for shared_buffers in kB. When the value is divisible
+ * by 1024, we write it in MB-unit to configuration files.
*/
static const int trial_bufs[] = {
32768, 28672, 24576, 20480, 16384, 12288,
@@ -1124,15 +1125,15 @@ test_config_settings(void)
};
char cmd[MAXPGPATH];
- const int connslen = sizeof(trial_conns) / sizeof(int);
- const int bufslen = sizeof(trial_bufs) / sizeof(int);
+ const int connslen = sizeof(trial_conns) / sizeof(int);
+ const int bufslen = sizeof(trial_bufs) / sizeof(int);
int i,
status,
test_conns,
test_buffs,
- test_max_fsm,
- ok_buffers = 0;
-
+ test_max_fsm,
+ ok_buffers = 0;
+
printf(_("selecting default max_connections ... "));
fflush(stdout);
@@ -1195,7 +1196,7 @@ test_config_settings(void)
n_fsm_pages = FSM_FOR_BUFS(n_buffers);
if (n_buffers % 1024 == 0)
- printf("%dMB/%d\n", n_buffers/1024, n_fsm_pages);
+ printf("%dMB/%d\n", n_buffers / 1024, n_fsm_pages);
else
printf("%dkB/%d\n", n_buffers, n_fsm_pages);
}
@@ -1221,7 +1222,7 @@ setup_config(void)
conflines = replace_token(conflines, "#max_connections = 100", repltok);
if (n_buffers % 1024 == 0)
- snprintf(repltok, sizeof(repltok), "shared_buffers = %dMB", n_buffers/1024);
+ snprintf(repltok, sizeof(repltok), "shared_buffers = %dMB", n_buffers / 1024);
else
snprintf(repltok, sizeof(repltok), "shared_buffers = %dkB", n_buffers);
conflines = replace_token(conflines, "#shared_buffers = 32MB", repltok);
@@ -1250,7 +1251,8 @@ setup_config(void)
escape_quotes(lc_time));
conflines = replace_token(conflines, "#lc_time = 'C'", repltok);
- switch (locale_date_order(lc_time)) {
+ switch (locale_date_order(lc_time))
+ {
case DATEORDER_YMD:
strcpy(repltok, "datestyle = 'iso, ymd'");
break;
@@ -2083,7 +2085,7 @@ check_ok(void)
*
* Note: this is used to process both postgresql.conf entries and SQL
* string literals. Since postgresql.conf strings are defined to treat
- * backslashes as escapes, we have to double backslashes here. Hence,
+ * backslashes as escapes, we have to double backslashes here. Hence,
* when using this for a SQL string literal, use E'' syntax.
*
* We do not need to worry about encoding considerations because all
@@ -2245,8 +2247,9 @@ setlocales(void)
}
#ifdef WIN32
-typedef BOOL (WINAPI *__CreateRestrictedToken)(HANDLE, DWORD, DWORD, PSID_AND_ATTRIBUTES, DWORD, PLUID_AND_ATTRIBUTES, DWORD, PSID_AND_ATTRIBUTES, PHANDLE);
-#define DISABLE_MAX_PRIVILEGE 0x1
+typedef BOOL(WINAPI * __CreateRestrictedToken) (HANDLE, DWORD, DWORD, PSID_AND_ATTRIBUTES, DWORD, PLUID_AND_ATTRIBUTES, DWORD, PSID_AND_ATTRIBUTES, PHANDLE);
+
+#define DISABLE_MAX_PRIVILEGE 0x1
/*
* Create a restricted token and execute the specified process with it.
@@ -2256,75 +2259,75 @@ typedef BOOL (WINAPI *__CreateRestrictedToken)(HANDLE, DWORD, DWORD, PSID_AND_AT
* On NT4, or any other system not containing the required functions, will
* NOT execute anything.
*/
-static int
-CreateRestrictedProcess(char *cmd, PROCESS_INFORMATION *processInfo)
+static int
+CreateRestrictedProcess(char *cmd, PROCESS_INFORMATION * processInfo)
{
- BOOL b;
- STARTUPINFO si;
- HANDLE origToken;
- HANDLE restrictedToken;
- SID_IDENTIFIER_AUTHORITY NtAuthority = {SECURITY_NT_AUTHORITY};
- SID_AND_ATTRIBUTES dropSids[2];
- __CreateRestrictedToken _CreateRestrictedToken = NULL;
- 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)
- {
- fprintf(stderr,"WARNING: Unable to create restricted tokens on this platform\n");
- if (Advapi32Handle != NULL)
- FreeLibrary(Advapi32Handle);
- return 0;
- }
-
- /* Open the current token to use as a base for the restricted one */
- if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &origToken))
- {
- fprintf(stderr, "Failed to open process token: %lu\n", GetLastError());
- return 0;
- }
-
- /* 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,"Failed to allocate SIDs: %lu\n", GetLastError());
- return 0;
- }
-
- 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,"Failed to create restricted token: %lu\n", GetLastError());
- return 0;
- }
-
- return CreateProcessAsUser(restrictedToken, NULL, cmd, NULL, NULL, TRUE, 0, NULL, NULL, &si, processInfo);
+ BOOL b;
+ STARTUPINFO si;
+ HANDLE origToken;
+ HANDLE restrictedToken;
+ SID_IDENTIFIER_AUTHORITY NtAuthority = {SECURITY_NT_AUTHORITY};
+ SID_AND_ATTRIBUTES dropSids[2];
+ __CreateRestrictedToken _CreateRestrictedToken = NULL;
+ 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)
+ {
+ fprintf(stderr, "WARNING: Unable to create restricted tokens on this platform\n");
+ if (Advapi32Handle != NULL)
+ FreeLibrary(Advapi32Handle);
+ return 0;
+ }
+
+ /* Open the current token to use as a base for the restricted one */
+ if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &origToken))
+ {
+ fprintf(stderr, "Failed to open process token: %lu\n", GetLastError());
+ return 0;
+ }
+
+ /* 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, "Failed to allocate SIDs: %lu\n", GetLastError());
+ return 0;
+ }
+
+ 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, "Failed to create restricted token: %lu\n", GetLastError());
+ return 0;
+ }
+
+ return CreateProcessAsUser(restrictedToken, NULL, cmd, NULL, NULL, TRUE, 0, NULL, NULL, &si, processInfo);
}
#endif
@@ -2382,7 +2385,7 @@ main(int argc, char *argv[])
{"lc-messages", required_argument, NULL, 7},
{"no-locale", no_argument, NULL, 8},
{"auth", required_argument, NULL, 'A'},
- {"pwprompt", no_argument, NULL, 'W'},
+ {"pwprompt", no_argument, NULL, 'W'},
{"pwfile", required_argument, NULL, 9},
{"username", required_argument, NULL, 'U'},
{"help", no_argument, NULL, '?'},
@@ -2398,13 +2401,14 @@ main(int argc, char *argv[])
ret;
int option_index;
char *short_version;
- char *effective_user;
+ char *effective_user;
char *pgdenv; /* PGDATA value gotten from and sent to
* environment */
char bin_dir[MAXPGPATH];
char *pg_data_native;
+
#ifdef WIN32
- char *restrict_env;
+ char *restrict_env;
#endif
static const char *subdirs[] = {
"global",
@@ -2592,43 +2596,47 @@ main(int argc, char *argv[])
canonicalize_path(pg_data);
#ifdef WIN32
- /*
- * Before we execute another program, make sure that we are running with a
- * restricted token. If not, re-execute ourselves with one.
- */
- if ((restrict_env = getenv("PG_RESTRICT_EXEC")) == NULL
- || strcmp(restrict_env,"1") != 0)
- {
- PROCESS_INFORMATION pi;
- char *cmdline;
-
- ZeroMemory(&pi, sizeof(pi));
+ /*
+ * Before we execute another program, make sure that we are running with a
+ * restricted token. If not, re-execute ourselves with one.
+ */
- cmdline = xstrdup(GetCommandLine());
+ if ((restrict_env = getenv("PG_RESTRICT_EXEC")) == NULL
+ || strcmp(restrict_env, "1") != 0)
+ {
+ PROCESS_INFORMATION pi;
+ char *cmdline;
+
+ ZeroMemory(&pi, sizeof(pi));
+
+ cmdline = xstrdup(GetCommandLine());
putenv("PG_RESTRICT_EXEC=1");
-
- if (!CreateRestrictedProcess(cmdline, &pi))
- {
- fprintf(stderr,"Failed to re-exec with restricted token: %lu.\n", GetLastError());
- }
- else
- {
- /* Successfully re-execed. Now wait for child process to capture exitcode. */
- DWORD x;
-
- CloseHandle(pi.hThread);
- WaitForSingleObject(pi.hProcess, INFINITE);
-
- if (!GetExitCodeProcess(pi.hProcess, &x))
- {
- fprintf(stderr,"Failed to get exit code from subprocess: %lu\n", GetLastError());
- exit(1);
- }
- exit(x);
- }
- }
+
+ if (!CreateRestrictedProcess(cmdline, &pi))
+ {
+ fprintf(stderr, "Failed to re-exec with restricted token: %lu.\n", GetLastError());
+ }
+ else
+ {
+ /*
+ * Successfully re-execed. Now wait for child process to capture
+ * exitcode.
+ */
+ DWORD x;
+
+ CloseHandle(pi.hThread);
+ WaitForSingleObject(pi.hProcess, INFINITE);
+
+ if (!GetExitCodeProcess(pi.hProcess, &x))
+ {
+ fprintf(stderr, "Failed to get exit code from subprocess: %lu\n", GetLastError());
+ exit(1);
+ }
+ exit(x);
+ }
+ }
#endif
/*
diff --git a/src/bin/pg_config/pg_config.c b/src/bin/pg_config/pg_config.c
index edd4a6af36..788ffed786 100644
--- a/src/bin/pg_config/pg_config.c
+++ b/src/bin/pg_config/pg_config.c
@@ -17,7 +17,7 @@
*
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/pg_config/pg_config.c,v 1.21 2006/09/27 16:19:42 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_config/pg_config.c,v 1.22 2006/10/04 00:30:04 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -43,10 +43,10 @@ cleanup_path(char *path)
char *ptr;
/*
- * GetShortPathName() will fail if the path does not exist, or short names
- * are disabled on this file system. In both cases, we just return the
- * original path. This is particularly useful for --sysconfdir, which
- * might not exist.
+ * GetShortPathName() will fail if the path does not exist, or short names
+ * are disabled on this file system. In both cases, we just return the
+ * original path. This is particularly useful for --sysconfdir, which
+ * might not exist.
*/
GetShortPathName(path, path, MAXPGPATH - 1);
diff --git a/src/bin/pg_ctl/pg_ctl.c b/src/bin/pg_ctl/pg_ctl.c
index c94fe04a54..728538b971 100644
--- a/src/bin/pg_ctl/pg_ctl.c
+++ b/src/bin/pg_ctl/pg_ctl.c
@@ -4,7 +4,7 @@
*
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.72 2006/09/24 16:59:45 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.73 2006/10/04 00:30:04 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -119,7 +119,7 @@ static void pgwin32_SetServiceStatus(DWORD);
static void WINAPI pgwin32_ServiceHandler(DWORD);
static void WINAPI pgwin32_ServiceMain(DWORD, LPTSTR *);
static void pgwin32_doRunAsService(void);
-static int CreateRestrictedProcess(char *cmd, PROCESS_INFORMATION *processInfo);
+static int CreateRestrictedProcess(char *cmd, PROCESS_INFORMATION * processInfo);
#endif
static pgpid_t get_pgpid(void);
static char **readfile(const char *path);
@@ -336,7 +336,9 @@ static int
start_postmaster(void)
{
char cmd[MAXPGPATH];
+
#ifndef WIN32
+
/*
* Since there might be quotes to handle here, it is easier simply to pass
* everything to a shell to process them.
@@ -345,36 +347,36 @@ start_postmaster(void)
snprintf(cmd, MAXPGPATH, "%s\"%s\" %s%s < \"%s\" >> \"%s\" 2>&1 &%s",
SYSTEMQUOTE, postgres_path, pgdata_opt, post_opts,
DEVNULL, log_file, SYSTEMQUOTE);
- else
+ else
snprintf(cmd, MAXPGPATH, "%s\"%s\" %s%s < \"%s\" 2>&1 &%s",
SYSTEMQUOTE, postgres_path, pgdata_opt, post_opts,
DEVNULL, SYSTEMQUOTE);
return system(cmd);
-
-#else /* WIN32 */
- /*
- * On win32 we don't use system(). So we don't need to use &
- * (which would be START /B on win32). However, we still call the shell
- * (CMD.EXE) with it to handle redirection etc.
- */
- PROCESS_INFORMATION pi;
-
- if (log_file != NULL)
- snprintf(cmd, MAXPGPATH, "CMD /C %s\"%s\" %s%s < \"%s\" >> \"%s\" 2>&1%s",
+#else /* WIN32 */
+
+ /*
+ * On win32 we don't use system(). So we don't need to use & (which would
+ * be START /B on win32). However, we still call the shell (CMD.EXE) with
+ * it to handle redirection etc.
+ */
+ PROCESS_INFORMATION pi;
+
+ if (log_file != NULL)
+ snprintf(cmd, MAXPGPATH, "CMD /C %s\"%s\" %s%s < \"%s\" >> \"%s\" 2>&1%s",
SYSTEMQUOTE, postgres_path, pgdata_opt, post_opts,
DEVNULL, log_file, SYSTEMQUOTE);
- else
- snprintf(cmd, MAXPGPATH, "CMD /C %s\"%s\" %s%s < \"%s\" 2>&1%s",
+ else
+ snprintf(cmd, MAXPGPATH, "CMD /C %s\"%s\" %s%s < \"%s\" 2>&1%s",
SYSTEMQUOTE, postgres_path, pgdata_opt, post_opts,
DEVNULL, SYSTEMQUOTE);
- if (!CreateRestrictedProcess(cmd, &pi))
- return GetLastError();
- CloseHandle(pi.hProcess);
- CloseHandle(pi.hThread);
- return 0;
-#endif /* WIN32 */
+ if (!CreateRestrictedProcess(cmd, &pi))
+ return GetLastError();
+ CloseHandle(pi.hProcess);
+ CloseHandle(pi.hThread);
+ return 0;
+#endif /* WIN32 */
}
@@ -1162,15 +1164,15 @@ pgwin32_doRunAsService(void)
* also load the couple of functions that *do* exist in minwg headers but not
* on NT4. That way, we don't break on NT4.
*/
-typedef BOOL (WINAPI *__CreateRestrictedToken)(HANDLE, DWORD, DWORD, PSID_AND_ATTRIBUTES, DWORD, PLUID_AND_ATTRIBUTES, DWORD, PSID_AND_ATTRIBUTES, PHANDLE);
-typedef BOOL (WINAPI *__IsProcessInJob)(HANDLE, HANDLE, PBOOL);
-typedef HANDLE (WINAPI *__CreateJobObject)(LPSECURITY_ATTRIBUTES, LPCTSTR);
-typedef BOOL (WINAPI *__SetInformationJobObject)(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD);
-typedef BOOL (WINAPI *__AssignProcessToJobObject)(HANDLE, HANDLE);
-typedef BOOL (WINAPI *__QueryInformationJobObject)(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD, LPDWORD);
+typedef BOOL(WINAPI * __CreateRestrictedToken) (HANDLE, DWORD, DWORD, PSID_AND_ATTRIBUTES, DWORD, PLUID_AND_ATTRIBUTES, DWORD, PSID_AND_ATTRIBUTES, PHANDLE);
+typedef BOOL(WINAPI * __IsProcessInJob) (HANDLE, HANDLE, PBOOL);
+typedef HANDLE(WINAPI * __CreateJobObject) (LPSECURITY_ATTRIBUTES, LPCTSTR);
+typedef BOOL(WINAPI * __SetInformationJobObject) (HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD);
+typedef BOOL(WINAPI * __AssignProcessToJobObject) (HANDLE, HANDLE);
+typedef BOOL(WINAPI * __QueryInformationJobObject) (HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD, LPDWORD);
/* Windows API define missing from MingW headers */
-#define DISABLE_MAX_PRIVILEGE 0x1
+#define DISABLE_MAX_PRIVILEGE 0x1
/*
* Create a restricted token, a job object sandbox, and execute the specified
@@ -1185,165 +1187,178 @@ typedef BOOL (WINAPI *__QueryInformationJobObject)(HANDLE, JOBOBJECTINFOCLASS, L
* automatically destroyed when pg_ctl exits.
*/
static int
-CreateRestrictedProcess(char *cmd, PROCESS_INFORMATION *processInfo)
+CreateRestrictedProcess(char *cmd, PROCESS_INFORMATION * processInfo)
{
- int r;
- BOOL b;
- STARTUPINFO si;
- HANDLE origToken;
- HANDLE restrictedToken;
- SID_IDENTIFIER_AUTHORITY NtAuthority = {SECURITY_NT_AUTHORITY};
- SID_AND_ATTRIBUTES dropSids[2];
-
- /* Functions loaded dynamically */
- __CreateRestrictedToken _CreateRestrictedToken = NULL;
- __IsProcessInJob _IsProcessInJob = NULL;
- __CreateJobObject _CreateJobObject = NULL;
- __SetInformationJobObject _SetInformationJobObject = NULL;
- __AssignProcessToJobObject _AssignProcessToJobObject = NULL;
- __QueryInformationJobObject _QueryInformationJobObject = NULL;
- HANDLE Kernel32Handle;
- 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)
- {
- /* NT4 doesn't have CreateRestrictedToken, so just call ordinary CreateProcess */
- write_stderr("WARNING: Unable to create restricted tokens on this platform\n");
- if (Advapi32Handle != NULL)
- FreeLibrary(Advapi32Handle);
- return CreateProcess(NULL, cmd, NULL, NULL, FALSE, 0, NULL, NULL, &si, processInfo);
- }
-
- /* Open the current token to use as a base for the restricted one */
- if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &origToken))
- {
- write_stderr("Failed to open process token: %lu\n", GetLastError());
- return 0;
- }
-
- /* 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))
- {
- write_stderr("Failed to allocate SIDs: %lu\n", GetLastError());
- return 0;
- }
-
- 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)
- {
- write_stderr("Failed to create restricted token: %lu\n", GetLastError());
- return 0;
- }
-
- r = CreateProcessAsUser(restrictedToken, NULL, cmd, NULL, NULL, TRUE, CREATE_SUSPENDED, NULL, NULL, &si, processInfo);
-
- Kernel32Handle = LoadLibrary("KERNEL32.DLL");
- if (Kernel32Handle != NULL)
- {
- _IsProcessInJob = (__IsProcessInJob) GetProcAddress(Kernel32Handle, "IsProcessInJob");
- _CreateJobObject = (__CreateJobObject) GetProcAddress(Kernel32Handle, "CreateJobObjectA");
- _SetInformationJobObject = (__SetInformationJobObject) GetProcAddress(Kernel32Handle, "SetInformationJobObject");
- _AssignProcessToJobObject = (__AssignProcessToJobObject) GetProcAddress(Kernel32Handle, "AssignProcessToJobObject");
- _QueryInformationJobObject = (__QueryInformationJobObject) GetProcAddress(Kernel32Handle, "QueryInformationJobObject");
- }
-
- /* Verify that we found all functions */
- if (_IsProcessInJob == NULL || _CreateJobObject == NULL || _SetInformationJobObject == NULL || _AssignProcessToJobObject == NULL || _QueryInformationJobObject == NULL)
- {
- /* IsProcessInJob() is not available on < WinXP, so there is no need to log the error every time in that case */
+ int r;
+ BOOL b;
+ STARTUPINFO si;
+ HANDLE origToken;
+ HANDLE restrictedToken;
+ SID_IDENTIFIER_AUTHORITY NtAuthority = {SECURITY_NT_AUTHORITY};
+ SID_AND_ATTRIBUTES dropSids[2];
+
+ /* Functions loaded dynamically */
+ __CreateRestrictedToken _CreateRestrictedToken = NULL;
+ __IsProcessInJob _IsProcessInJob = NULL;
+ __CreateJobObject _CreateJobObject = NULL;
+ __SetInformationJobObject _SetInformationJobObject = NULL;
+ __AssignProcessToJobObject _AssignProcessToJobObject = NULL;
+ __QueryInformationJobObject _QueryInformationJobObject = NULL;
+ HANDLE Kernel32Handle;
+ 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)
+ {
+ /*
+ * NT4 doesn't have CreateRestrictedToken, so just call ordinary
+ * CreateProcess
+ */
+ write_stderr("WARNING: Unable to create restricted tokens on this platform\n");
+ if (Advapi32Handle != NULL)
+ FreeLibrary(Advapi32Handle);
+ return CreateProcess(NULL, cmd, NULL, NULL, FALSE, 0, NULL, NULL, &si, processInfo);
+ }
+
+ /* Open the current token to use as a base for the restricted one */
+ if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &origToken))
+ {
+ write_stderr("Failed to open process token: %lu\n", GetLastError());
+ return 0;
+ }
+
+ /* 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))
+ {
+ write_stderr("Failed to allocate SIDs: %lu\n", GetLastError());
+ return 0;
+ }
+
+ 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)
+ {
+ write_stderr("Failed to create restricted token: %lu\n", GetLastError());
+ return 0;
+ }
+
+ r = CreateProcessAsUser(restrictedToken, NULL, cmd, NULL, NULL, TRUE, CREATE_SUSPENDED, NULL, NULL, &si, processInfo);
+
+ Kernel32Handle = LoadLibrary("KERNEL32.DLL");
+ if (Kernel32Handle != NULL)
+ {
+ _IsProcessInJob = (__IsProcessInJob) GetProcAddress(Kernel32Handle, "IsProcessInJob");
+ _CreateJobObject = (__CreateJobObject) GetProcAddress(Kernel32Handle, "CreateJobObjectA");
+ _SetInformationJobObject = (__SetInformationJobObject) GetProcAddress(Kernel32Handle, "SetInformationJobObject");
+ _AssignProcessToJobObject = (__AssignProcessToJobObject) GetProcAddress(Kernel32Handle, "AssignProcessToJobObject");
+ _QueryInformationJobObject = (__QueryInformationJobObject) GetProcAddress(Kernel32Handle, "QueryInformationJobObject");
+ }
+
+ /* Verify that we found all functions */
+ if (_IsProcessInJob == NULL || _CreateJobObject == NULL || _SetInformationJobObject == NULL || _AssignProcessToJobObject == NULL || _QueryInformationJobObject == NULL)
+ {
+ /*
+ * IsProcessInJob() is not available on < WinXP, so there is no need
+ * to log the error every time in that case
+ */
OSVERSIONINFO osv;
osv.dwOSVersionInfoSize = sizeof(osv);
- if (!GetVersionEx(&osv) || /* could not get version */
- (osv.dwMajorVersion == 5 && osv.dwMinorVersion > 0) || /* 5.1=xp, 5.2=2003, etc */
- osv.dwMajorVersion > 5) /* anything newer should have the API */
- /* Log error if we can't get version, or if we're on WinXP/2003 or newer */
+ if (!GetVersionEx(&osv) || /* could not get version */
+ (osv.dwMajorVersion == 5 && osv.dwMinorVersion > 0) || /* 5.1=xp, 5.2=2003, etc */
+ osv.dwMajorVersion > 5) /* anything newer should have the API */
+
+ /*
+ * Log error if we can't get version, or if we're on WinXP/2003 or
+ * newer
+ */
write_stderr("WARNING: Unable to locate all job object functions in system API!\n");
- }
- else
- {
- BOOL inJob;
- if (_IsProcessInJob(processInfo->hProcess, NULL, &inJob))
- {
- if (!inJob)
- {
- /* Job objects are working, and the new process isn't in one, so we can create one safely.
- If any problems show up when setting it, we're going to ignore them. */
- HANDLE job;
- char jobname[128];
-
- sprintf(jobname,"PostgreSQL_%lu", processInfo->dwProcessId);
-
- job = _CreateJobObject(NULL, jobname);
- if (job)
- {
- JOBOBJECT_BASIC_LIMIT_INFORMATION basicLimit;
- JOBOBJECT_BASIC_UI_RESTRICTIONS uiRestrictions;
- JOBOBJECT_SECURITY_LIMIT_INFORMATION securityLimit;
-
- ZeroMemory(&basicLimit, sizeof(basicLimit));
- ZeroMemory(&uiRestrictions, sizeof(uiRestrictions));
- ZeroMemory(&securityLimit, sizeof(securityLimit));
-
- basicLimit.LimitFlags = JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION | JOB_OBJECT_LIMIT_PRIORITY_CLASS;
- basicLimit.PriorityClass = NORMAL_PRIORITY_CLASS;
- _SetInformationJobObject(job, JobObjectBasicLimitInformation, &basicLimit, sizeof(basicLimit));
-
- uiRestrictions.UIRestrictionsClass = JOB_OBJECT_UILIMIT_DESKTOP | JOB_OBJECT_UILIMIT_DISPLAYSETTINGS |
- JOB_OBJECT_UILIMIT_EXITWINDOWS | JOB_OBJECT_UILIMIT_HANDLES | JOB_OBJECT_UILIMIT_READCLIPBOARD |
- JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS | JOB_OBJECT_UILIMIT_WRITECLIPBOARD;
- _SetInformationJobObject(job, JobObjectBasicUIRestrictions, &uiRestrictions, sizeof(uiRestrictions));
-
- securityLimit.SecurityLimitFlags = JOB_OBJECT_SECURITY_NO_ADMIN | JOB_OBJECT_SECURITY_ONLY_TOKEN;
- securityLimit.JobToken = restrictedToken;
- _SetInformationJobObject(job, JobObjectSecurityLimitInformation, &securityLimit, sizeof(securityLimit));
-
- _AssignProcessToJobObject(job, processInfo->hProcess);
- }
- }
- }
- }
-
- CloseHandle(restrictedToken);
-
- ResumeThread(processInfo->hThread);
-
- FreeLibrary(Kernel32Handle);
-
- /*
+ }
+ else
+ {
+ BOOL inJob;
+
+ if (_IsProcessInJob(processInfo->hProcess, NULL, &inJob))
+ {
+ if (!inJob)
+ {
+ /*
+ * Job objects are working, and the new process isn't in one,
+ * so we can create one safely. If any problems show up when
+ * setting it, we're going to ignore them.
+ */
+ HANDLE job;
+ char jobname[128];
+
+ sprintf(jobname, "PostgreSQL_%lu", processInfo->dwProcessId);
+
+ job = _CreateJobObject(NULL, jobname);
+ if (job)
+ {
+ JOBOBJECT_BASIC_LIMIT_INFORMATION basicLimit;
+ JOBOBJECT_BASIC_UI_RESTRICTIONS uiRestrictions;
+ JOBOBJECT_SECURITY_LIMIT_INFORMATION securityLimit;
+
+ ZeroMemory(&basicLimit, sizeof(basicLimit));
+ ZeroMemory(&uiRestrictions, sizeof(uiRestrictions));
+ ZeroMemory(&securityLimit, sizeof(securityLimit));
+
+ basicLimit.LimitFlags = JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION | JOB_OBJECT_LIMIT_PRIORITY_CLASS;
+ basicLimit.PriorityClass = NORMAL_PRIORITY_CLASS;
+ _SetInformationJobObject(job, JobObjectBasicLimitInformation, &basicLimit, sizeof(basicLimit));
+
+ uiRestrictions.UIRestrictionsClass = JOB_OBJECT_UILIMIT_DESKTOP | JOB_OBJECT_UILIMIT_DISPLAYSETTINGS |
+ JOB_OBJECT_UILIMIT_EXITWINDOWS | JOB_OBJECT_UILIMIT_HANDLES | JOB_OBJECT_UILIMIT_READCLIPBOARD |
+ JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS | JOB_OBJECT_UILIMIT_WRITECLIPBOARD;
+ _SetInformationJobObject(job, JobObjectBasicUIRestrictions, &uiRestrictions, sizeof(uiRestrictions));
+
+ securityLimit.SecurityLimitFlags = JOB_OBJECT_SECURITY_NO_ADMIN | JOB_OBJECT_SECURITY_ONLY_TOKEN;
+ securityLimit.JobToken = restrictedToken;
+ _SetInformationJobObject(job, JobObjectSecurityLimitInformation, &securityLimit, sizeof(securityLimit));
+
+ _AssignProcessToJobObject(job, processInfo->hProcess);
+ }
+ }
+ }
+ }
+
+ CloseHandle(restrictedToken);
+
+ ResumeThread(processInfo->hThread);
+
+ FreeLibrary(Kernel32Handle);
+
+ /*
* We intentionally don't close the job object handle, because we want the
* object to live on until pg_ctl shuts down.
*/
- return r;
+ return r;
}
-
#endif
static void
@@ -1722,13 +1737,13 @@ main(int argc, char **argv)
do_wait = false;
}
- if (pg_data)
- {
- snprintf(def_postopts_file, MAXPGPATH, "%s/postmaster.opts.default", pg_data);
- snprintf(postopts_file, MAXPGPATH, "%s/postmaster.opts", pg_data);
- snprintf(pid_file, MAXPGPATH, "%s/postmaster.pid", pg_data);
- snprintf(conf_file, MAXPGPATH, "%s/postgresql.conf", pg_data);
- }
+ if (pg_data)
+ {
+ snprintf(def_postopts_file, MAXPGPATH, "%s/postmaster.opts.default", pg_data);
+ snprintf(postopts_file, MAXPGPATH, "%s/postmaster.opts", pg_data);
+ snprintf(pid_file, MAXPGPATH, "%s/postmaster.pid", pg_data);
+ snprintf(conf_file, MAXPGPATH, "%s/postgresql.conf", pg_data);
+ }
switch (ctl_command)
{
diff --git a/src/bin/pg_dump/dumputils.c b/src/bin/pg_dump/dumputils.c
index 6f5e2d243e..4023837408 100644
--- a/src/bin/pg_dump/dumputils.c
+++ b/src/bin/pg_dump/dumputils.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/bin/pg_dump/dumputils.c,v 1.31 2006/09/08 18:05:35 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/dumputils.c,v 1.32 2006/10/04 00:30:05 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -104,7 +104,7 @@ fmtId(const char *rawid)
* standard_conforming_strings settings.
*
* This is essentially equivalent to libpq's PQescapeStringInternal,
- * except for the output buffer structure. We need it in situations
+ * except for the output buffer structure. We need it in situations
* where we do not have a PGconn available. Where we do,
* appendStringLiteralConn is a better choice.
*/
@@ -124,9 +124,9 @@ appendStringLiteral(PQExpBuffer buf, const char *str,
while (*source != '\0')
{
- char c = *source;
- int len;
- int i;
+ char c = *source;
+ int len;
+ int i;
/* Fast path for plain ASCII */
if (!IS_HIGHBIT_SET(c))
@@ -153,15 +153,15 @@ appendStringLiteral(PQExpBuffer buf, const char *str,
/*
* If we hit premature end of string (ie, incomplete multibyte
- * character), try to pad out to the correct length with spaces.
- * We may not be able to pad completely, but we will always be able
- * to insert at least one pad space (since we'd not have quoted a
+ * character), try to pad out to the correct length with spaces. We
+ * may not be able to pad completely, but we will always be able to
+ * insert at least one pad space (since we'd not have quoted a
* multibyte character). This should be enough to make a string that
* the server will error out on.
*/
if (i < len)
{
- char *stop = buf->data + buf->maxlen - 2;
+ char *stop = buf->data + buf->maxlen - 2;
for (; i < len; i++)
{
@@ -189,7 +189,7 @@ appendStringLiteral(PQExpBuffer buf, const char *str,
void
appendStringLiteralConn(PQExpBuffer buf, const char *str, PGconn *conn)
{
- size_t length = strlen(str);
+ size_t length = strlen(str);
/*
* XXX This is a kluge to silence escape_string_warning in our utility
@@ -198,7 +198,7 @@ appendStringLiteralConn(PQExpBuffer buf, const char *str, PGconn *conn)
if (strchr(str, '\\') != NULL && PQserverVersion(conn) >= 80100)
{
/* ensure we are not adjacent to an identifier */
- if (buf->len > 0 && buf->data[buf->len-1] != ' ')
+ if (buf->len > 0 && buf->data[buf->len - 1] != ' ')
appendPQExpBufferChar(buf, ' ');
appendPQExpBufferChar(buf, ESCAPE_STRING_SYNTAX);
appendStringLiteral(buf, str, PQclientEncoding(conn), false);
@@ -614,7 +614,7 @@ do { \
if (strcmp(type, "TABLE") == 0 || strcmp(type, "SEQUENCE") == 0)
{
CONVERT_PRIV('r', "SELECT");
-
+
if (strcmp(type, "SEQUENCE") == 0)
/* sequence only */
CONVERT_PRIV('U', "USAGE");
diff --git a/src/bin/pg_dump/dumputils.h b/src/bin/pg_dump/dumputils.h
index 7492d42f7e..b177bb4bc8 100644
--- a/src/bin/pg_dump/dumputils.h
+++ b/src/bin/pg_dump/dumputils.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/bin/pg_dump/dumputils.h,v 1.17 2006/05/28 21:13:54 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/dumputils.h,v 1.18 2006/10/04 00:30:05 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -20,9 +20,9 @@
extern const char *fmtId(const char *identifier);
extern void appendStringLiteral(PQExpBuffer buf, const char *str,
- int encoding, bool std_strings);
+ int encoding, bool std_strings);
extern void appendStringLiteralConn(PQExpBuffer buf, const char *str,
- PGconn *conn);
+ PGconn *conn);
extern void appendStringLiteralDQ(PQExpBuffer buf, const char *str,
const char *dqprefix);
extern int parse_version(const char *versionString);
diff --git a/src/bin/pg_dump/pg_backup.h b/src/bin/pg_dump/pg_backup.h
index 426b5110fb..ae4e295dbd 100644
--- a/src/bin/pg_dump/pg_backup.h
+++ b/src/bin/pg_dump/pg_backup.h
@@ -15,7 +15,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup.h,v 1.42 2006/08/01 18:21:44 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup.h,v 1.43 2006/10/04 00:30:05 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -119,7 +119,7 @@ typedef struct _restoreOptions
int suppressDumpWarnings; /* Suppress output of WARNING entries
* to stderr */
- bool single_txn;
+ bool single_txn;
} RestoreOptions;
diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c
index 6100633d56..32b6490e6e 100644
--- a/src/bin/pg_dump/pg_backup_archiver.c
+++ b/src/bin/pg_dump/pg_backup_archiver.c
@@ -15,7 +15,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.135 2006/08/01 18:21:44 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.136 2006/10/04 00:30:05 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -278,19 +278,25 @@ RestoreArchive(Archive *AHX, RestoreOptions *ropt)
_printTocEntry(AH, te, ropt, false, false);
defnDumped = true;
- /* If we could not create a table, ignore the respective TABLE DATA if
- * -X no-data-for-failed-tables is given */
- if (ropt->noDataForFailedTables && AH->lastErrorTE == te && strcmp (te->desc, "TABLE") == 0) {
- TocEntry *tes, *last;
-
- ahlog (AH, 1, "table %s could not be created, will not restore its data\n", te->tag);
-
- for (last = te, tes = te->next; tes != AH->toc; last = tes, tes = tes->next) {
- if (strcmp (tes->desc, "TABLE DATA") == 0 && strcmp (tes->tag, te->tag) == 0 &&
- strcmp (tes->namespace ? tes->namespace : "", te->namespace ? te->namespace : "") == 0) {
- /* remove this node */
- last->next = tes->next;
- break;
+ /*
+ * If we could not create a table, ignore the respective TABLE
+ * DATA if -X no-data-for-failed-tables is given
+ */
+ if (ropt->noDataForFailedTables && AH->lastErrorTE == te && strcmp(te->desc, "TABLE") == 0)
+ {
+ TocEntry *tes,
+ *last;
+
+ ahlog(AH, 1, "table %s could not be created, will not restore its data\n", te->tag);
+
+ for (last = te, tes = te->next; tes != AH->toc; last = tes, tes = tes->next)
+ {
+ if (strcmp(tes->desc, "TABLE DATA") == 0 && strcmp(tes->tag, te->tag) == 0 &&
+ strcmp(tes->namespace ? tes->namespace : "", te->namespace ? te->namespace : "") == 0)
+ {
+ /* remove this node */
+ last->next = tes->next;
+ break;
}
}
}
diff --git a/src/bin/pg_dump/pg_backup_archiver.h b/src/bin/pg_dump/pg_backup_archiver.h
index 1ed3f281a6..b64b8f3d32 100644
--- a/src/bin/pg_dump/pg_backup_archiver.h
+++ b/src/bin/pg_dump/pg_backup_archiver.h
@@ -17,7 +17,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.h,v 1.72 2006/07/18 17:42:00 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.h,v 1.73 2006/10/04 00:30:05 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -98,29 +98,29 @@ struct _archiveHandle;
struct _tocEntry;
struct _restoreList;
-typedef void (*ClosePtr) (struct _archiveHandle *AH);
-typedef void (*ArchiveEntryPtr) (struct _archiveHandle *AH, struct _tocEntry *te);
-
-typedef void (*StartDataPtr) (struct _archiveHandle *AH, struct _tocEntry *te);
-typedef size_t (*WriteDataPtr) (struct _archiveHandle *AH, const void *data, size_t dLen);
-typedef void (*EndDataPtr) (struct _archiveHandle *AH, struct _tocEntry *te);
-
-typedef void (*StartBlobsPtr) (struct _archiveHandle *AH, struct _tocEntry *te);
-typedef void (*StartBlobPtr) (struct _archiveHandle *AH, struct _tocEntry *te, Oid oid);
-typedef void (*EndBlobPtr) (struct _archiveHandle *AH, struct _tocEntry *te, Oid oid);
-typedef void (*EndBlobsPtr) (struct _archiveHandle *AH, struct _tocEntry *te);
-
-typedef int (*WriteBytePtr) (struct _archiveHandle *AH, const int i);
-typedef int (*ReadBytePtr) (struct _archiveHandle *AH);
-typedef size_t (*WriteBufPtr) (struct _archiveHandle *AH, const void *c, size_t len);
-typedef size_t (*ReadBufPtr) (struct _archiveHandle *AH, void *buf, size_t len);
-typedef void (*SaveArchivePtr) (struct _archiveHandle *AH);
-typedef void (*WriteExtraTocPtr) (struct _archiveHandle *AH, struct _tocEntry *te);
-typedef void (*ReadExtraTocPtr) (struct _archiveHandle *AH, struct _tocEntry *te);
-typedef void (*PrintExtraTocPtr) (struct _archiveHandle *AH, struct _tocEntry *te);
-typedef void (*PrintTocDataPtr) (struct _archiveHandle *AH, struct _tocEntry *te, RestoreOptions *ropt);
-
-typedef size_t (*CustomOutPtr) (struct _archiveHandle *AH, const void *buf, size_t len);
+typedef void (*ClosePtr) (struct _archiveHandle * AH);
+typedef void (*ArchiveEntryPtr) (struct _archiveHandle * AH, struct _tocEntry * te);
+
+typedef void (*StartDataPtr) (struct _archiveHandle * AH, struct _tocEntry * te);
+typedef size_t (*WriteDataPtr) (struct _archiveHandle * AH, const void *data, size_t dLen);
+typedef void (*EndDataPtr) (struct _archiveHandle * AH, struct _tocEntry * te);
+
+typedef void (*StartBlobsPtr) (struct _archiveHandle * AH, struct _tocEntry * te);
+typedef void (*StartBlobPtr) (struct _archiveHandle * AH, struct _tocEntry * te, Oid oid);
+typedef void (*EndBlobPtr) (struct _archiveHandle * AH, struct _tocEntry * te, Oid oid);
+typedef void (*EndBlobsPtr) (struct _archiveHandle * AH, struct _tocEntry * te);
+
+typedef int (*WriteBytePtr) (struct _archiveHandle * AH, const int i);
+typedef int (*ReadBytePtr) (struct _archiveHandle * AH);
+typedef size_t (*WriteBufPtr) (struct _archiveHandle * AH, const void *c, size_t len);
+typedef size_t (*ReadBufPtr) (struct _archiveHandle * AH, void *buf, size_t len);
+typedef void (*SaveArchivePtr) (struct _archiveHandle * AH);
+typedef void (*WriteExtraTocPtr) (struct _archiveHandle * AH, struct _tocEntry * te);
+typedef void (*ReadExtraTocPtr) (struct _archiveHandle * AH, struct _tocEntry * te);
+typedef void (*PrintExtraTocPtr) (struct _archiveHandle * AH, struct _tocEntry * te);
+typedef void (*PrintTocDataPtr) (struct _archiveHandle * AH, struct _tocEntry * te, RestoreOptions *ropt);
+
+typedef size_t (*CustomOutPtr) (struct _archiveHandle * AH, const void *buf, size_t len);
typedef enum _archiveMode
{
diff --git a/src/bin/pg_dump/pg_backup_custom.c b/src/bin/pg_dump/pg_backup_custom.c
index f0b65a2f3f..8d77af19c9 100644
--- a/src/bin/pg_dump/pg_backup_custom.c
+++ b/src/bin/pg_dump/pg_backup_custom.c
@@ -19,7 +19,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_custom.c,v 1.35 2006/07/14 14:52:26 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_custom.c,v 1.36 2006/10/04 00:30:05 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -545,7 +545,7 @@ _PrintData(ArchiveHandle *AH)
"could not read from input file: end of file\n");
else
die_horribly(AH, modulename,
- "could not read from input file: %s\n", strerror(errno));
+ "could not read from input file: %s\n", strerror(errno));
}
ctx->filePos += blkLen;
@@ -673,7 +673,7 @@ _skipData(ArchiveHandle *AH)
"could not read from input file: end of file\n");
else
die_horribly(AH, modulename,
- "could not read from input file: %s\n", strerror(errno));
+ "could not read from input file: %s\n", strerror(errno));
}
ctx->filePos += blkLen;
diff --git a/src/bin/pg_dump/pg_backup_db.c b/src/bin/pg_dump/pg_backup_db.c
index 362e053165..aeb34989e8 100644
--- a/src/bin/pg_dump/pg_backup_db.c
+++ b/src/bin/pg_dump/pg_backup_db.c
@@ -5,7 +5,7 @@
* Implements the basic DB functions used by the archiver.
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_db.c,v 1.74 2006/09/27 15:41:23 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_db.c,v 1.75 2006/10/04 00:30:05 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -378,9 +378,9 @@ _sendCopyLine(ArchiveHandle *AH, char *qry, char *eos)
isEnd = (strcmp(AH->pgCopyBuf->data, "\\.\n") == 0);
/*
- * Note that we drop the data on the floor if libpq has failed to
- * enter COPY mode; this allows us to behave reasonably when trying
- * to continue after an error in a COPY command.
+ * Note that we drop the data on the floor if libpq has failed to enter
+ * COPY mode; this allows us to behave reasonably when trying to continue
+ * after an error in a COPY command.
*/
if (AH->pgCopyIn &&
PQputCopyData(AH->connection, AH->pgCopyBuf->data,
@@ -619,7 +619,7 @@ ExecuteSqlCommandBuf(ArchiveHandle *AH, void *qryv, size_t bufLen)
{
/*
* If libpq is in CopyIn mode *or* if the archive structure shows we
- * are sending COPY data, treat the data as COPY data. The pgCopyIn
+ * are sending COPY data, treat the data as COPY data. The pgCopyIn
* check is only needed for backwards compatibility with ancient
* archive files that might just issue a COPY command without marking
* it properly. Note that in an archive entry that has a copyStmt,
diff --git a/src/bin/pg_dump/pg_backup_tar.c b/src/bin/pg_dump/pg_backup_tar.c
index 9b0606b753..51d783b1a5 100644
--- a/src/bin/pg_dump/pg_backup_tar.c
+++ b/src/bin/pg_dump/pg_backup_tar.c
@@ -16,7 +16,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_tar.c,v 1.54 2006/06/27 02:56:41 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_tar.c,v 1.55 2006/10/04 00:30:05 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -363,16 +363,17 @@ tarOpen(ArchiveHandle *AH, const char *filename, char mode)
#ifndef WIN32
tm->tmpFH = tmpfile();
#else
+
/*
- * On WIN32, tmpfile() generates a filename in the root directory,
- * which requires administrative permissions on certain systems.
- * Loop until we find a unique file name we can create.
+ * On WIN32, tmpfile() generates a filename in the root directory,
+ * which requires administrative permissions on certain systems. Loop
+ * until we find a unique file name we can create.
*/
while (1)
{
- char *name;
- int fd;
-
+ char *name;
+ int fd;
+
name = _tempnam(NULL, "pg_temp_");
if (name == NULL)
break;
@@ -380,7 +381,7 @@ tarOpen(ArchiveHandle *AH, const char *filename, char mode)
O_TEMPORARY, S_IRUSR | S_IWUSR);
free(name);
- if (fd != -1) /* created a file */
+ if (fd != -1) /* created a file */
{
tm->tmpFH = fdopen(fd, "w+b");
break;
@@ -1060,7 +1061,7 @@ _tarAddFile(ArchiveHandle *AH, TAR_MEMBER *th)
res = fwrite(&buf[0], 1, cnt, th->tarFH);
if (res != cnt)
die_horribly(AH, modulename,
- "could not write to output file: %s\n", strerror(errno));
+ "could not write to output file: %s\n", strerror(errno));
len += res;
}
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 8e243d0d41..2b207f382b 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -12,7 +12,7 @@
* by PostgreSQL
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.449 2006/09/27 15:41:23 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.450 2006/10/04 00:30:05 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -91,15 +91,16 @@ static Oid g_last_builtin_oid; /* value of the last builtin oid */
typedef struct objnameArg
{
struct objnameArg *next;
- char *name; /* name of the relation */
- bool is_include; /* include/exclude? */
+ char *name; /* name of the relation */
+ bool is_include; /* include/exclude? */
} objnameArg;
-objnameArg *schemaList = NULL; /* List of schemas to include/exclude */
-objnameArg *tableList = NULL; /* List of tables to include/exclude */
+objnameArg *schemaList = NULL; /* List of schemas to include/exclude */
+objnameArg *tableList = NULL; /* List of tables to include/exclude */
-char *matchingSchemas = NULL; /* Final list of schemas to dump by oid */
-char *matchingTables = NULL; /* Final list of tables to dump by oid */
+char *matchingSchemas = NULL; /* Final list of schemas to dump by
+ * oid */
+char *matchingTables = NULL; /* Final list of tables to dump by oid */
char g_opaque_type[10]; /* name for the opaque type */
@@ -189,7 +190,9 @@ main(int argc, char **argv)
{
PQExpBuffer query = createPQExpBuffer();
PGresult *res;
- objnameArg *this_obj_name, *schemaList_tail = NULL, *tableList_tail = NULL;
+ objnameArg *this_obj_name,
+ *schemaList_tail = NULL,
+ *tableList_tail = NULL;
int c;
const char *filename = NULL;
const char *format = "p";
@@ -345,10 +348,10 @@ main(int argc, char **argv)
ignore_version = true;
break;
- case 'n': /* Include schemas */
- case 'N': /* Exclude schemas */
- case 't': /* Include tables */
- case 'T': /* Exclude tables */
+ case 'n': /* Include schemas */
+ case 'N': /* Exclude schemas */
+ case 't': /* Include tables */
+ case 'T': /* Exclude tables */
if (strlen(optarg) < 1)
{
@@ -359,7 +362,7 @@ main(int argc, char **argv)
{
/* Create a struct for this name */
objnameArg *new_obj_name = (objnameArg *)
- malloc(sizeof(objnameArg));
+ malloc(sizeof(objnameArg));
new_obj_name->next = NULL;
new_obj_name->name = strdup(optarg);
@@ -567,8 +570,8 @@ main(int argc, char **argv)
}
/*
- * Get the active encoding and the standard_conforming_strings setting,
- * so we know how to escape strings.
+ * Get the active encoding and the standard_conforming_strings setting, so
+ * we know how to escape strings.
*/
g_fout->encoding = PQclientEncoding(g_conn);
@@ -629,36 +632,36 @@ main(int argc, char **argv)
/* Special case for when -N is the first argument */
if (this_obj_name == schemaList && !this_obj_name->is_include)
appendPQExpBuffer(query,
- "SELECT oid FROM pg_catalog.pg_namespace "
- "WHERE nspname NOT LIKE 'pg_%%' AND "
- " nspname != 'information_schema' EXCEPT\n");
-
+ "SELECT oid FROM pg_catalog.pg_namespace "
+ "WHERE nspname NOT LIKE 'pg_%%' AND "
+ " nspname != 'information_schema' EXCEPT\n");
+
appendPQExpBuffer(query, "SELECT oid FROM pg_catalog.pg_namespace WHERE");
}
-
+
appendPQExpBuffer(query, "%s nspname %c ", switch_include_exclude ? "" : " OR",
- /* any meta-characters? */
- strpbrk(this_obj_name->name,"([{\\.?+") == NULL ? '=' : '~');
+ /* any meta-characters? */
+ strpbrk(this_obj_name->name, "([{\\.?+") == NULL ? '=' : '~');
appendStringLiteralAH(query, this_obj_name->name, g_fout);
-
+
if (this_obj_name->next && this_obj_name->next->is_include == this_obj_name->is_include)
switch_include_exclude = false;
else
{
switch_include_exclude = true;
-
+
/* Add the joiner if needed */
if (this_obj_name->next)
appendPQExpBuffer(query, "\n%s\n",
- this_obj_name->next->is_include ? "UNION" : "EXCEPT");
+ this_obj_name->next->is_include ? "UNION" : "EXCEPT");
}
}
/* Construct OID list of matching schemas */
if (schemaList)
{
- int len;
-
+ int len;
+
res = PQexec(g_conn, query->data);
check_sql_result(res, g_conn, query->data, PGRES_TUPLES_OK);
if (PQntuples(res) == 0)
@@ -671,8 +674,8 @@ main(int argc, char **argv)
len += strlen(PQgetvalue(res, i, 0)) + 1;
/*
- * Need to use comma separators so it can be used by IN. zero
- * is a dummy placeholder. Format is " oid oid oid ".
+ * Need to use comma separators so it can be used by IN. zero is a
+ * dummy placeholder. Format is " oid oid oid ".
*/
matchingSchemas = malloc(len + 1);
strcpy(matchingSchemas, " ");
@@ -694,27 +697,27 @@ main(int argc, char **argv)
/* Special case for when -T is the first argument */
if (this_obj_name == tableList && !this_obj_name->is_include && !strlen(query->data))
appendPQExpBuffer(query,
- "SELECT pg_class.oid FROM pg_catalog.pg_class, pg_catalog.pg_namespace "
- "WHERE relkind='r' AND "
- " relnamespace = pg_namespace.oid AND "
- " nspname NOT LIKE 'pg_%%' AND "
- " nspname != 'information_schema' EXCEPT\n");
-
+ "SELECT pg_class.oid FROM pg_catalog.pg_class, pg_catalog.pg_namespace "
+ "WHERE relkind='r' AND "
+ " relnamespace = pg_namespace.oid AND "
+ " nspname NOT LIKE 'pg_%%' AND "
+ " nspname != 'information_schema' EXCEPT\n");
+
appendPQExpBuffer(query, "SELECT oid FROM pg_catalog.pg_class WHERE relkind='r' AND (");
}
-
+
appendPQExpBuffer(query, "%srelname %c ", switch_include_exclude ? "" : " OR ",
- /* any meta-characters? */
- strpbrk(this_obj_name->name,"([{\\.?+") == NULL ? '=' : '~');
+ /* any meta-characters? */
+ strpbrk(this_obj_name->name, "([{\\.?+") == NULL ? '=' : '~');
appendStringLiteralAH(query, this_obj_name->name, g_fout);
-
+
if (this_obj_name->next && this_obj_name->next->is_include == this_obj_name->is_include)
switch_include_exclude = false;
else
{
switch_include_exclude = true;
appendPQExpBuffer(query, ")");
-
+
/* Add the joiner if needed */
if (this_obj_name->next)
appendPQExpBuffer(query, "\n%s\n", this_obj_name->next->is_include ?
@@ -725,18 +728,19 @@ main(int argc, char **argv)
/* Construct OID list of matching tables */
if (tableList)
{
- int len;
-
+ int len;
+
/* Restrict by schema? */
if (matchingSchemas != NULL)
{
- char *matchingSchemas_commas = strdup(matchingSchemas), *p;
+ char *matchingSchemas_commas = strdup(matchingSchemas),
+ *p;
/* Construct "IN" SQL string by adding commas, " oid, oid, oid " */
for (p = matchingSchemas_commas; *p; p++)
{
/* No commas for first/last characters */
- if (*p == ' ' && p != matchingSchemas_commas && *(p+1))
+ if (*p == ' ' && p != matchingSchemas_commas && *(p + 1))
*p = ',';
}
@@ -940,16 +944,16 @@ selectDumpableNamespace(NamespaceInfo *nsinfo)
{
/*
* If specific tables are being dumped, do not dump any complete
- * namespaces. If specific namespaces are being dumped, dump just
- * those namespaces. Otherwise, dump all non-system namespaces.
+ * namespaces. If specific namespaces are being dumped, dump just those
+ * namespaces. Otherwise, dump all non-system namespaces.
*/
nsinfo->dobj.dump = false;
if (matchingTables != NULL)
- /* false */;
+ /* false */ ;
else if (matchingSchemas != NULL)
{
- char *search_oid = malloc(20);
+ char *search_oid = malloc(20);
sprintf(search_oid, " %d ", nsinfo->dobj.catId.oid);
if (strstr(matchingSchemas, search_oid) != NULL)
@@ -984,7 +988,7 @@ selectDumpableTable(TableInfo *tbinfo)
}
else
{
- char *search_oid = malloc(20);
+ char *search_oid = malloc(20);
sprintf(search_oid, " %d ", tbinfo->dobj.catId.oid);
if (strstr(matchingTables, search_oid) != NULL)
@@ -1034,8 +1038,8 @@ static void
selectDumpableObject(DumpableObject *dobj)
{
/*
- * Default policy is to dump if parent namespace is dumpable,
- * or always for non-namespace-associated items.
+ * Default policy is to dump if parent namespace is dumpable, or always
+ * for non-namespace-associated items.
*/
if (dobj->namespace)
dobj->dump = dobj->namespace->dobj.dump;
@@ -1451,7 +1455,7 @@ dumpDatabase(Archive *AH)
"(%s datdba) as dba, "
"pg_encoding_to_char(encoding) as encoding, "
"(SELECT spcname FROM pg_tablespace t WHERE t.oid = dattablespace) as tablespace, "
- "shobj_description(oid, 'pg_database') as description "
+ "shobj_description(oid, 'pg_database') as description "
"FROM pg_database "
"WHERE datname = ",
@@ -1562,25 +1566,30 @@ dumpDatabase(Archive *AH)
/* Dump DB comment if any */
if (g_fout->remoteVersion >= 80200)
{
- /* 8.2 keeps comments on shared objects in a shared table, so
- * we cannot use the dumpComment used for other database objects.
+ /*
+ * 8.2 keeps comments on shared objects in a shared table, so we
+ * cannot use the dumpComment used for other database objects.
*/
- char *comment = PQgetvalue(res, 0, PQfnumber(res, "description"));
- if (comment && strlen(comment)) {
+ char *comment = PQgetvalue(res, 0, PQfnumber(res, "description"));
+
+ if (comment && strlen(comment))
+ {
resetPQExpBuffer(dbQry);
appendPQExpBuffer(dbQry, "COMMENT ON DATABASE %s IS ", fmtId(datname));
appendStringLiteralAH(dbQry, comment, AH);
appendPQExpBuffer(dbQry, ";\n");
ArchiveEntry(AH, dbCatId, createDumpId(), datname, NULL, NULL,
- dba, false, "COMMENT", dbQry->data, "", NULL,
- &dbDumpId, 1, NULL, NULL);
+ dba, false, "COMMENT", dbQry->data, "", NULL,
+ &dbDumpId, 1, NULL, NULL);
}
- } else {
+ }
+ else
+ {
resetPQExpBuffer(dbQry);
appendPQExpBuffer(dbQry, "DATABASE %s", fmtId(datname));
dumpComment(AH, dbQry->data, NULL, "",
- dbCatId, 0, dbDumpId);
+ dbCatId, 0, dbDumpId);
}
PQclear(res);
@@ -2138,12 +2147,12 @@ getTypes(int *numTypes)
/*
* If it's a base type, make a DumpableObject representing a shell
- * definition of the type. We will need to dump that ahead of the
- * I/O functions for the type.
+ * definition of the type. We will need to dump that ahead of the I/O
+ * functions for the type.
*
* Note: the shell type doesn't have a catId. You might think it
- * should copy the base type's catId, but then it might capture
- * the pg_depend entries for the type, which we don't want.
+ * should copy the base type's catId, but then it might capture the
+ * pg_depend entries for the type, which we don't want.
*/
if (tinfo[i].dobj.dump && tinfo[i].typtype == 'b')
{
@@ -2157,9 +2166,9 @@ getTypes(int *numTypes)
tinfo[i].shellType = stinfo;
/*
- * Initially mark the shell type as not to be dumped. We'll
- * only dump it if the I/O functions need to be dumped; this
- * is taken care of while sorting dependencies.
+ * Initially mark the shell type as not to be dumped. We'll only
+ * dump it if the I/O functions need to be dumped; this is taken
+ * care of while sorting dependencies.
*/
stinfo->dobj.dump = false;
@@ -2557,7 +2566,7 @@ getAggregates(int *numAggs)
{
appendPQExpBuffer(query, "SELECT tableoid, oid, aggname, "
"0::oid as aggnamespace, "
- "CASE WHEN aggbasetype = 0 THEN 0 ELSE 1 END as pronargs, "
+ "CASE WHEN aggbasetype = 0 THEN 0 ELSE 1 END as pronargs, "
"aggbasetype as proargtypes, "
"(%s aggowner) as rolname, "
"'{=X}' as aggacl "
@@ -2572,7 +2581,7 @@ getAggregates(int *numAggs)
"(SELECT oid FROM pg_class WHERE relname = 'pg_aggregate') AS tableoid, "
"oid, aggname, "
"0::oid as aggnamespace, "
- "CASE WHEN aggbasetype = 0 THEN 0 ELSE 1 END as pronargs, "
+ "CASE WHEN aggbasetype = 0 THEN 0 ELSE 1 END as pronargs, "
"aggbasetype as proargtypes, "
"(%s aggowner) as rolname, "
"'{=X}' as aggacl "
@@ -2625,7 +2634,8 @@ getAggregates(int *numAggs)
parseOidArray(PQgetvalue(res, i, i_proargtypes),
agginfo[i].aggfn.argtypes,
agginfo[i].aggfn.nargs);
- else /* it's just aggbasetype */
+ else
+ /* it's just aggbasetype */
agginfo[i].aggfn.argtypes[0] = atooid(PQgetvalue(res, i, i_proargtypes));
}
@@ -3095,13 +3105,13 @@ getTables(int *numTables)
PQclear(res);
/*
- * Force sequences that are "owned" by table columns to be dumped
- * whenever their owning table is being dumped.
+ * Force sequences that are "owned" by table columns to be dumped whenever
+ * their owning table is being dumped.
*/
for (i = 0; i < ntups; i++)
{
TableInfo *seqinfo = &tblinfo[i];
- int j;
+ int j;
if (!OidIsValid(seqinfo->owning_tab))
continue; /* not an owned sequence */
@@ -3250,7 +3260,7 @@ getIndexes(TableInfo tblinfo[], int numTables)
"c.tableoid as contableoid, "
"c.oid as conoid, "
"(SELECT spcname FROM pg_catalog.pg_tablespace s WHERE s.oid = t.reltablespace) as tablespace, "
- "array_to_string(t.reloptions, ', ') as options "
+ "array_to_string(t.reloptions, ', ') as options "
"FROM pg_catalog.pg_index i "
"JOIN pg_catalog.pg_class t ON (t.oid = i.indexrelid) "
"LEFT JOIN pg_catalog.pg_depend d "
@@ -3276,7 +3286,7 @@ getIndexes(TableInfo tblinfo[], int numTables)
"c.tableoid as contableoid, "
"c.oid as conoid, "
"(SELECT spcname FROM pg_catalog.pg_tablespace s WHERE s.oid = t.reltablespace) as tablespace, "
- "null as options "
+ "null as options "
"FROM pg_catalog.pg_index i "
"JOIN pg_catalog.pg_class t ON (t.oid = i.indexrelid) "
"LEFT JOIN pg_catalog.pg_depend d "
@@ -3302,7 +3312,7 @@ getIndexes(TableInfo tblinfo[], int numTables)
"c.tableoid as contableoid, "
"c.oid as conoid, "
"NULL as tablespace, "
- "null as options "
+ "null as options "
"FROM pg_catalog.pg_index i "
"JOIN pg_catalog.pg_class t ON (t.oid = i.indexrelid) "
"LEFT JOIN pg_catalog.pg_depend d "
@@ -3330,7 +3340,7 @@ getIndexes(TableInfo tblinfo[], int numTables)
"0::oid as contableoid, "
"t.oid as conoid, "
"NULL as tablespace, "
- "null as options "
+ "null as options "
"FROM pg_index i, pg_class t "
"WHERE t.oid = i.indexrelid "
"AND i.indrelid = '%u'::oid "
@@ -3353,7 +3363,7 @@ getIndexes(TableInfo tblinfo[], int numTables)
"0::oid as contableoid, "
"t.oid as conoid, "
"NULL as tablespace, "
- "null as options "
+ "null as options "
"FROM pg_index i, pg_class t "
"WHERE t.oid = i.indexrelid "
"AND i.indrelid = '%u'::oid "
@@ -5211,7 +5221,7 @@ dumpBaseType(Archive *fout, TypeInfo *tinfo)
else if (!PQgetisnull(res, 0, PQfnumber(res, "typdefault")))
{
typdefault = PQgetvalue(res, 0, PQfnumber(res, "typdefault"));
- typdefault_is_literal = true; /* it needs quotes */
+ typdefault_is_literal = true; /* it needs quotes */
}
else
typdefault = NULL;
@@ -5219,8 +5229,8 @@ dumpBaseType(Archive *fout, TypeInfo *tinfo)
/*
* DROP must be fully qualified in case same name appears in pg_catalog.
* The reason we include CASCADE is that the circular dependency between
- * the type and its I/O functions makes it impossible to drop the type
- * any other way.
+ * the type and its I/O functions makes it impossible to drop the type any
+ * other way.
*/
appendPQExpBuffer(delq, "DROP TYPE %s.",
fmtId(tinfo->dobj.namespace->dobj.name));
@@ -5375,7 +5385,7 @@ dumpDomain(Archive *fout, TypeInfo *tinfo)
else if (!PQgetisnull(res, 0, PQfnumber(res, "typdefault")))
{
typdefault = PQgetvalue(res, 0, PQfnumber(res, "typdefault"));
- typdefault_is_literal = true; /* it needs quotes */
+ typdefault_is_literal = true; /* it needs quotes */
}
else
typdefault = NULL;
@@ -5557,11 +5567,11 @@ dumpShellType(Archive *fout, ShellTypeInfo *stinfo)
/*
* Note the lack of a DROP command for the shell type; any required DROP
- * is driven off the base type entry, instead. This interacts with
+ * is driven off the base type entry, instead. This interacts with
* _printTocEntry()'s use of the presence of a DROP command to decide
- * whether an entry needs an ALTER OWNER command. We don't want to
- * alter the shell type's owner immediately on creation; that should
- * happen only after it's filled in, otherwise the backend complains.
+ * whether an entry needs an ALTER OWNER command. We don't want to alter
+ * the shell type's owner immediately on creation; that should happen only
+ * after it's filled in, otherwise the backend complains.
*/
appendPQExpBuffer(q, "CREATE TYPE %s;\n",
@@ -5972,7 +5982,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
* contains quote or backslash; else use regular quoting.
*/
if (disable_dollar_quoting ||
- (strchr(prosrc, '\'') == NULL && strchr(prosrc, '\\') == NULL))
+ (strchr(prosrc, '\'') == NULL && strchr(prosrc, '\\') == NULL))
appendStringLiteralAH(asPart, prosrc, fout);
else
appendStringLiteralDQ(asPart, prosrc, NULL);
@@ -6158,7 +6168,7 @@ dumpCast(Archive *fout, CastInfo *cast)
* Skip this cast if all objects are from pg_
*/
if ((funcInfo == NULL ||
- strncmp(funcInfo->dobj.namespace->dobj.name, "pg_", 3) == 0) &&
+ strncmp(funcInfo->dobj.namespace->dobj.name, "pg_", 3) == 0) &&
strncmp(sourceInfo->dobj.namespace->dobj.name, "pg_", 3) == 0 &&
strncmp(targetInfo->dobj.namespace->dobj.name, "pg_", 3) == 0)
return;
@@ -7396,8 +7406,8 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
}
/*
- * Default value --- suppress if inherited or to be
- * printed separately.
+ * Default value --- suppress if inherited or to be printed
+ * separately.
*/
if (tbinfo->attrdefs[j] != NULL &&
!tbinfo->inhAttrDef[j] &&
@@ -8077,10 +8087,10 @@ dumpSequence(Archive *fout, TableInfo *tbinfo)
/*
* The logic we use for restoring sequences is as follows:
*
- * 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 SET OWNED command for it.
+ * 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 SET
+ * OWNED command for it.
*
* Add a 'SETVAL(seq, last_val, iscalled)' as part of a "data" dump.
*/
@@ -8137,9 +8147,9 @@ dumpSequence(Archive *fout, TableInfo *tbinfo)
* as a separate TOC entry immediately following the sequence's own
* entry. It's OK to do this rather than using full sorting logic,
* because the dependency that tells us it's owned will have forced
- * the table to be created first. We can't just include the ALTER
- * in the TOC entry because it will fail if we haven't reassigned
- * the sequence owner to match the table's owner.
+ * the table to be created first. We can't just include the ALTER in
+ * the TOC entry because it will fail if we haven't reassigned the
+ * sequence owner to match the table's owner.
*
* We need not schema-qualify the table reference because both
* sequence and table must be in the same schema.
@@ -8156,14 +8166,14 @@ dumpSequence(Archive *fout, TableInfo *tbinfo)
appendPQExpBuffer(query, " OWNED BY %s",
fmtId(owning_tab->dobj.name));
appendPQExpBuffer(query, ".%s;\n",
- fmtId(owning_tab->attnames[tbinfo->owning_col - 1]));
+ fmtId(owning_tab->attnames[tbinfo->owning_col - 1]));
ArchiveEntry(fout, nilCatalogId, createDumpId(),
tbinfo->dobj.name,
tbinfo->dobj.namespace->dobj.name,
NULL,
tbinfo->rolname,
- false, "SEQUENCE OWNED BY", query->data, "", NULL,
+ false, "SEQUENCE OWNED BY", query->data, "", NULL,
&(tbinfo->dobj.dumpId), 1,
NULL, NULL);
}
@@ -8334,9 +8344,10 @@ dumpTrigger(Archive *fout, TriggerInfo *tginfo)
{
if (*s == '\'')
appendPQExpBufferChar(query, '\'');
+
/*
- * bytea unconditionally doubles backslashes, so we suppress
- * the doubling for standard_conforming_strings.
+ * bytea unconditionally doubles backslashes, so we suppress the
+ * doubling for standard_conforming_strings.
*/
if (fout->std_strings && *s == '\\' && s[1] == '\\')
s++;
diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c
index 2a18d2cfe2..1df5ee10fa 100644
--- a/src/bin/pg_dump/pg_dumpall.c
+++ b/src/bin/pg_dump/pg_dumpall.c
@@ -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.82 2006/09/27 15:41:23 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.83 2006/10/04 00:30:05 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -46,7 +46,7 @@ static void dumpCreateDB(PGconn *conn);
static void dumpDatabaseConfig(PGconn *conn, const char *dbname);
static void dumpUserConfig(PGconn *conn, const char *username);
static void makeAlterConfigCommand(PGconn *conn, const char *arrayitem,
- const char *type, const char *name);
+ const char *type, const char *name);
static void dumpDatabases(PGconn *conn);
static void dumpTimestamp(char *msg);
@@ -309,8 +309,8 @@ main(int argc, char *argv[])
force_password, true);
/*
- * Get the active encoding and the standard_conforming_strings setting,
- * so we know how to escape strings.
+ * Get the active encoding and the standard_conforming_strings setting, so
+ * we know how to escape strings.
*/
encoding = PQclientEncoding(conn);
std_strings = PQparameterStatus(conn, "standard_conforming_strings");
@@ -436,7 +436,7 @@ dumpRoles(PGconn *conn)
"rolcreaterole, rolcreatedb, rolcatupdate, "
"rolcanlogin, rolconnlimit, rolpassword, "
"rolvaliduntil, "
- "pg_catalog.shobj_description(oid, 'pg_authid') as rolcomment "
+ "pg_catalog.shobj_description(oid, 'pg_authid') as rolcomment "
"FROM pg_authid "
"ORDER BY 1");
else if (server_version >= 80100)
@@ -556,7 +556,8 @@ dumpRoles(PGconn *conn)
appendPQExpBuffer(buf, ";\n");
- if (!PQgetisnull(res, i, i_rolcomment)) {
+ if (!PQgetisnull(res, i, i_rolcomment))
+ {
appendPQExpBuffer(buf, "COMMENT ON ROLE %s IS ", fmtId(rolename));
appendStringLiteralConn(buf, PQgetvalue(res, i, i_rolcomment), conn);
appendPQExpBuffer(buf, ";\n");
@@ -704,15 +705,15 @@ dumpTablespaces(PGconn *conn)
*/
if (server_version >= 80200)
res = executeQuery(conn, "SELECT spcname, "
- "pg_catalog.pg_get_userbyid(spcowner) AS spcowner, "
+ "pg_catalog.pg_get_userbyid(spcowner) AS spcowner, "
"spclocation, spcacl, "
- "pg_catalog.shobj_description(oid, 'pg_tablespace') "
+ "pg_catalog.shobj_description(oid, 'pg_tablespace') "
"FROM pg_catalog.pg_tablespace "
"WHERE spcname !~ '^pg_' "
"ORDER BY 1");
- else
+ else
res = executeQuery(conn, "SELECT spcname, "
- "pg_catalog.pg_get_userbyid(spcowner) AS spcowner, "
+ "pg_catalog.pg_get_userbyid(spcowner) AS spcowner, "
"spclocation, spcacl, "
"null "
"FROM pg_catalog.pg_tablespace "
@@ -755,7 +756,8 @@ dumpTablespaces(PGconn *conn)
exit(1);
}
- if (spccomment && strlen(spccomment)) {
+ if (spccomment && strlen(spccomment))
+ {
appendPQExpBuffer(buf, "COMMENT ON TABLESPACE %s IS ", fspcname);
appendStringLiteralConn(buf, spccomment, conn);
appendPQExpBuffer(buf, ";\n");
@@ -883,13 +885,12 @@ dumpCreateDB(PGconn *conn)
appendStringLiteralConn(buf, dbencoding, conn);
/*
- * Output tablespace if it isn't the default. For default, it
- * uses the default from the template database. If tablespace
- * is specified and tablespace creation failed earlier,
- * (e.g. no such directory), the database creation will fail
- * too. One solution would be to use 'SET default_tablespace'
- * like we do in pg_dump for setting non-default database
- * locations.
+ * Output tablespace if it isn't the default. For default, it
+ * uses the default from the template database. If tablespace is
+ * specified and tablespace creation failed earlier, (e.g. no such
+ * directory), the database creation will fail too. One solution
+ * would be to use 'SET default_tablespace' like we do in pg_dump
+ * for setting non-default database locations.
*/
if (strcmp(dbtablespace, "pg_default") != 0)
appendPQExpBuffer(buf, " TABLESPACE = %s",
diff --git a/src/bin/pg_resetxlog/pg_resetxlog.c b/src/bin/pg_resetxlog/pg_resetxlog.c
index a8308388e8..1561383279 100644
--- a/src/bin/pg_resetxlog/pg_resetxlog.c
+++ b/src/bin/pg_resetxlog/pg_resetxlog.c
@@ -23,7 +23,7 @@
* Portions Copyright (c) 1996-2006, 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.52 2006/08/21 16:16:31 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_resetxlog/pg_resetxlog.c,v 1.53 2006/10/04 00:30:05 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -587,7 +587,7 @@ static void
RewriteControlFile(void)
{
int fd;
- char buffer[PG_CONTROL_SIZE]; /* need not be aligned */
+ char buffer[PG_CONTROL_SIZE]; /* need not be aligned */
/*
* Adjust fields as needed to force an empty XLOG starting at the next
diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c
index 28d5cef053..5bc849750b 100644
--- a/src/bin/psql/command.c
+++ b/src/bin/psql/command.c
@@ -3,12 +3,12 @@
*
* Copyright (c) 2000-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/psql/command.c,v 1.172 2006/08/29 15:19:50 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/command.c,v 1.173 2006/10/04 00:30:05 momjian Exp $
*/
#include "postgres_fe.h"
#include "command.h"
-#ifdef __BORLANDC__ /* needed for BCC */
+#ifdef __BORLANDC__ /* needed for BCC */
#undef mkdir
#endif
@@ -157,17 +157,17 @@ HandleSlashCmds(PsqlScanState scan_state,
static char *
read_connect_arg(PsqlScanState scan_state)
{
- char *result;
- char quote;
+ char *result;
+ char quote;
/*
- * Ideally we should treat the arguments as SQL identifiers. But
- * for backwards compatibility with 7.2 and older pg_dump files,
- * we have to take unquoted arguments verbatim (don't downcase
- * them). For now, double-quoted arguments may be stripped of
- * double quotes (as if SQL identifiers). By 7.4 or so, pg_dump
- * files can be expected to double-quote all mixed-case \connect
- * arguments, and then we can get rid of OT_SQLIDHACK.
+ * Ideally we should treat the arguments as SQL identifiers. But for
+ * backwards compatibility with 7.2 and older pg_dump files, we have to
+ * take unquoted arguments verbatim (don't downcase them). For now,
+ * double-quoted arguments may be stripped of double quotes (as if SQL
+ * identifiers). By 7.4 or so, pg_dump files can be expected to
+ * double-quote all mixed-case \connect arguments, and then we can get rid
+ * of OT_SQLIDHACK.
*/
result = psql_scan_slash_option(scan_state, OT_SQLIDHACK, &quote, true);
@@ -182,7 +182,7 @@ read_connect_arg(PsqlScanState scan_state)
return result;
}
-
+
/*
* Subroutine to actually try to execute a backslash command.
@@ -223,17 +223,15 @@ exec_command(const char *cmd,
*
* \c dbname user host port
*
- * If any of these parameters are omitted or specified as '-', the
- * current value of the parameter will be used instead. If the
- * parameter has no current value, the default value for that
- * parameter will be used. Some examples:
+ * If any of these parameters are omitted or specified as '-', the current
+ * value of the parameter will be used instead. If the parameter has no
+ * current value, the default value for that parameter will be used. Some
+ * examples:
*
- * \c - - hst Connect to current database on current port of
- * host "hst" as current user.
- * \c - usr - prt Connect to current database on "prt" port of current
- * host as user "usr".
- * \c dbs Connect to "dbs" database on current port of current
- * host as current user.
+ * \c - - hst Connect to current database on current port of host
+ * "hst" as current user. \c - usr - prt Connect to current database on
+ * "prt" port of current host as user "usr". \c dbs Connect to
+ * "dbs" database on current port of current host as current user.
*/
else if (strcmp(cmd, "c") == 0 || strcmp(cmd, "connect") == 0)
{
@@ -970,13 +968,13 @@ exec_command(const char *cmd,
static char *
prompt_for_password(const char *username)
{
- char *result;
+ char *result;
if (username == NULL)
result = simple_prompt("Password: ", 100, false);
else
{
- char *prompt_text;
+ char *prompt_text;
prompt_text = malloc(strlen(username) + 32);
sprintf(prompt_text, "Password for user \"%s\": ", username);
@@ -1013,9 +1011,9 @@ param_is_newly_set(const char *old_val, const char *new_val)
static bool
do_connect(char *dbname, char *user, char *host, char *port)
{
- PGconn *o_conn = pset.db,
- *n_conn;
- char *password = NULL;
+ PGconn *o_conn = pset.db,
+ *n_conn;
+ char *password = NULL;
if (!dbname)
dbname = PQdb(o_conn);
@@ -1027,15 +1025,14 @@ do_connect(char *dbname, char *user, char *host, char *port)
port = PQport(o_conn);
/*
- * If the user asked to be prompted for a password, ask for one
- * now. If not, use the password from the old connection, provided
- * the username has not changed. Otherwise, try to connect without
- * a password first, and then ask for a password if we got the
- * appropriate error message.
+ * If the user asked to be prompted for a password, ask for one now. If
+ * not, use the password from the old connection, provided the username
+ * has not changed. Otherwise, try to connect without a password first,
+ * and then ask for a password if we got the appropriate error message.
*
- * XXX: this behavior is broken. It leads to spurious connection
- * attempts in the postmaster's log, and doing a string comparison
- * against the returned error message is pretty fragile.
+ * XXX: this behavior is broken. It leads to spurious connection attempts
+ * in the postmaster's log, and doing a string comparison against the
+ * returned error message is pretty fragile.
*/
if (pset.getPassword)
{
@@ -1059,8 +1056,8 @@ do_connect(char *dbname, char *user, char *host, char *port)
break;
/*
- * Connection attempt failed; either retry the connection
- * attempt with a new password, or give up.
+ * Connection attempt failed; either retry the connection attempt with
+ * a new password, or give up.
*/
if (strcmp(PQerrorMessage(n_conn), PQnoPasswordSupplied) == 0)
{
@@ -1070,9 +1067,9 @@ do_connect(char *dbname, char *user, char *host, char *port)
}
/*
- * Failed to connect to the database. In interactive mode,
- * keep the previous connection to the DB; in scripting mode,
- * close our previous connection as well.
+ * Failed to connect to the database. In interactive mode, keep the
+ * previous connection to the DB; in scripting mode, close our
+ * previous connection as well.
*/
if (pset.cur_cmd_interactive)
{
@@ -1375,7 +1372,7 @@ process_file(char *filename, bool single_txn)
FILE *fd;
int result;
char *oldfilename;
- PGresult *res;
+ PGresult *res;
if (!filename)
return EXIT_FAILURE;
@@ -1392,11 +1389,11 @@ process_file(char *filename, bool single_txn)
oldfilename = pset.inputfile;
pset.inputfile = filename;
- if (single_txn)
- res = PSQLexec("BEGIN", false);
+ if (single_txn)
+ res = PSQLexec("BEGIN", false);
result = MainLoop(fd);
- if (single_txn)
- res = PSQLexec("COMMIT", false);
+ if (single_txn)
+ res = PSQLexec("COMMIT", false);
fclose(fd);
pset.inputfile = oldfilename;
diff --git a/src/bin/psql/command.h b/src/bin/psql/command.h
index 2abbe499d1..cd791b1d45 100644
--- a/src/bin/psql/command.h
+++ b/src/bin/psql/command.h
@@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/psql/command.h,v 1.27 2006/07/18 17:42:01 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/command.h,v 1.28 2006/10/04 00:30:05 momjian Exp $
*/
#ifndef COMMAND_H
#define COMMAND_H
@@ -14,12 +14,12 @@
typedef enum _backslashResult
{
- PSQL_CMD_UNKNOWN = 0, /* not done parsing yet (internal only) */
- PSQL_CMD_SEND, /* query complete; send off */
- PSQL_CMD_SKIP_LINE, /* keep building query */
- PSQL_CMD_TERMINATE, /* quit program */
- PSQL_CMD_NEWEDIT, /* query buffer was changed (e.g., via \e) */
- PSQL_CMD_ERROR /* the execution of the backslash command
+ PSQL_CMD_UNKNOWN = 0, /* not done parsing yet (internal only) */
+ PSQL_CMD_SEND, /* query complete; send off */
+ PSQL_CMD_SKIP_LINE, /* keep building query */
+ PSQL_CMD_TERMINATE, /* quit program */
+ PSQL_CMD_NEWEDIT, /* query buffer was changed (e.g., via \e) */
+ PSQL_CMD_ERROR /* the execution of the backslash command
* resulted in an error */
} backslashResult;
diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c
index ded8ecf2b1..2e30c4e9a2 100644
--- a/src/bin/psql/common.c
+++ b/src/bin/psql/common.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/psql/common.c,v 1.129 2006/09/27 15:41:23 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/common.c,v 1.130 2006/10/04 00:30:05 momjian Exp $
*/
#include "postgres_fe.h"
#include "common.h"
@@ -236,7 +236,7 @@ volatile bool sigint_interrupt_enabled = false;
sigjmp_buf sigint_interrupt_jmp;
-static PGcancel * volatile cancelConn = NULL;
+static PGcancel *volatile cancelConn = NULL;
#ifdef WIN32
static CRITICAL_SECTION cancelConnLock;
@@ -283,7 +283,6 @@ setup_cancel_handler(void)
{
pqsignal(SIGINT, handle_sigint);
}
-
#else /* WIN32 */
static BOOL WINAPI
@@ -329,7 +328,6 @@ setup_cancel_handler(void)
SetConsoleCtrlHandler(consoleHandler, TRUE);
}
-
#endif /* WIN32 */
@@ -397,7 +395,7 @@ CheckConnection(void)
void
SetCancelConn(void)
{
- PGcancel *oldCancelConn;
+ PGcancel *oldCancelConn;
#ifdef WIN32
EnterCriticalSection(&cancelConnLock);
@@ -427,7 +425,7 @@ SetCancelConn(void)
void
ResetCancelConn(void)
{
- PGcancel *oldCancelConn;
+ PGcancel *oldCancelConn;
#ifdef WIN32
EnterCriticalSection(&cancelConnLock);
@@ -872,7 +870,7 @@ SendQuery(const char *query)
{
/* Default fetch-it-all-and-print mode */
TimevalStruct before,
- after;
+ after;
if (pset.timing)
GETTIMEOFDAY(&before);
@@ -979,17 +977,17 @@ static bool
ExecQueryUsingCursor(const char *query, double *elapsed_msec)
{
bool OK = true;
- PGresult *results;
- PQExpBufferData buf;
+ PGresult *results;
+ PQExpBufferData buf;
printQueryOpt my_popt = pset.popt;
FILE *queryFout_copy = pset.queryFout;
bool queryFoutPipe_copy = pset.queryFoutPipe;
- bool started_txn = false;
- bool did_pager = false;
- int ntuples;
- char fetch_cmd[64];
+ bool started_txn = false;
+ bool did_pager = false;
+ int ntuples;
+ char fetch_cmd[64];
TimevalStruct before,
- after;
+ after;
*elapsed_msec = 0;
@@ -1040,7 +1038,7 @@ ExecQueryUsingCursor(const char *query, double *elapsed_msec)
if (pset.gfname)
{
/* keep this code in sync with PrintQueryTuples */
- pset.queryFout = stdout; /* so it doesn't get closed */
+ pset.queryFout = stdout; /* so it doesn't get closed */
/* open file/pipe */
if (!setQFout(pset.gfname))
@@ -1136,9 +1134,9 @@ cleanup:
GETTIMEOFDAY(&before);
/*
- * We try to close the cursor on either success or failure, but on
- * failure ignore the result (it's probably just a bleat about
- * being in an aborted transaction)
+ * We try to close the cursor on either success or failure, but on failure
+ * ignore the result (it's probably just a bleat about being in an aborted
+ * transaction)
*/
results = PQexec(pset.db, "CLOSE _psql_cursor");
if (OK)
@@ -1350,9 +1348,9 @@ command_no_begin(const char *query)
}
/*
- * Note: these tests will match DROP SYSTEM and REINDEX TABLESPACE,
- * which aren't really valid commands so we don't care much.
- * The other four possible matches are correct.
+ * Note: these tests will match DROP SYSTEM and REINDEX TABLESPACE, which
+ * aren't really valid commands so we don't care much. The other four
+ * possible matches are correct.
*/
if ((wordlen == 4 && pg_strncasecmp(query, "drop", 4) == 0) ||
(wordlen == 7 && pg_strncasecmp(query, "reindex", 7) == 0))
@@ -1406,7 +1404,7 @@ is_select_command(const char *query)
if (wordlen == 6 && pg_strncasecmp(query, "select", 6) == 0)
return true;
-
+
if (wordlen == 6 && pg_strncasecmp(query, "values", 6) == 0)
return true;
diff --git a/src/bin/psql/common.h b/src/bin/psql/common.h
index 6045b7587d..3b6d566b33 100644
--- a/src/bin/psql/common.h
+++ b/src/bin/psql/common.h
@@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/psql/common.h,v 1.50 2006/06/14 16:49:02 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/common.h,v 1.51 2006/10/04 00:30:05 momjian Exp $
*/
#ifndef COMMON_H
#define COMMON_H
@@ -45,6 +45,7 @@ extern volatile bool sigint_interrupt_enabled;
extern sigjmp_buf sigint_interrupt_jmp;
extern volatile bool cancel_pressed;
+
/* Note: cancel_pressed is defined in print.c, see that file for reasons */
extern void setup_cancel_handler(void);
diff --git a/src/bin/psql/copy.c b/src/bin/psql/copy.c
index 6e514c1c06..82d92724e2 100644
--- a/src/bin/psql/copy.c
+++ b/src/bin/psql/copy.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/psql/copy.c,v 1.68 2006/08/30 23:34:22 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/copy.c,v 1.69 2006/10/04 00:30:05 momjian Exp $
*/
#include "postgres_fe.h"
#include "copy.h"
@@ -148,7 +148,7 @@ parse_slash_copy(const char *args)
/* Handle COPY (SELECT) case */
if (token[0] == '(')
{
- int parens = 1;
+ int parens = 1;
while (parens > 0)
{
@@ -318,7 +318,7 @@ parse_slash_copy(const char *args)
nonstd_backslash, true, false, pset.encoding);
if (token && pg_strcasecmp(token, "as") == 0)
token = strtokx(NULL, whitespace, NULL, "'",
- nonstd_backslash, true, false, pset.encoding);
+ nonstd_backslash, true, false, pset.encoding);
if (token)
result->delim = pg_strdup(token);
else
@@ -330,7 +330,7 @@ parse_slash_copy(const char *args)
nonstd_backslash, true, false, pset.encoding);
if (token && pg_strcasecmp(token, "as") == 0)
token = strtokx(NULL, whitespace, NULL, "'",
- nonstd_backslash, true, false, pset.encoding);
+ nonstd_backslash, true, false, pset.encoding);
if (token)
result->null = pg_strdup(token);
else
@@ -342,7 +342,7 @@ parse_slash_copy(const char *args)
nonstd_backslash, true, false, pset.encoding);
if (token && pg_strcasecmp(token, "as") == 0)
token = strtokx(NULL, whitespace, NULL, "'",
- nonstd_backslash, true, false, pset.encoding);
+ nonstd_backslash, true, false, pset.encoding);
if (token)
result->quote = pg_strdup(token);
else
@@ -354,7 +354,7 @@ parse_slash_copy(const char *args)
nonstd_backslash, true, false, pset.encoding);
if (token && pg_strcasecmp(token, "as") == 0)
token = strtokx(NULL, whitespace, NULL, "'",
- nonstd_backslash, true, false, pset.encoding);
+ nonstd_backslash, true, false, pset.encoding);
if (token)
result->escape = pg_strdup(token);
else
@@ -439,7 +439,7 @@ error:
/*
- * Handle one of the "string" options of COPY. If the user gave a quoted
+ * Handle one of the "string" options of COPY. If the user gave a quoted
* string, pass it to the backend as-is; if it wasn't quoted then quote
* and escape it.
*/
@@ -631,10 +631,10 @@ do_copy(const char *args)
bool
handleCopyOut(PGconn *conn, FILE *copystream)
{
- bool OK = true;
- char *buf;
- int ret;
- PGresult *res;
+ bool OK = true;
+ char *buf;
+ int ret;
+ PGresult *res;
for (;;)
{
@@ -677,7 +677,7 @@ handleCopyOut(PGconn *conn, FILE *copystream)
OK = false;
}
PQclear(res);
-
+
return OK;
}
@@ -702,11 +702,11 @@ handleCopyIn(PGconn *conn, FILE *copystream, bool isbinary)
bool OK;
const char *prompt;
char buf[COPYBUFSIZ];
- PGresult *res;
+ PGresult *res;
/*
- * Establish longjmp destination for exiting from wait-for-input.
- * (This is only effective while sigint_interrupt_enabled is TRUE.)
+ * Establish longjmp destination for exiting from wait-for-input. (This is
+ * only effective while sigint_interrupt_enabled is TRUE.)
*/
if (sigsetjmp(sigint_interrupt_jmp, 1) != 0)
{
@@ -748,7 +748,7 @@ handleCopyIn(PGconn *conn, FILE *copystream, bool isbinary)
for (;;)
{
- int buflen;
+ int buflen;
/* enable longjmp while waiting for input */
sigint_interrupt_enabled = true;
@@ -772,7 +772,7 @@ handleCopyIn(PGconn *conn, FILE *copystream, bool isbinary)
bool copydone = false;
while (!copydone)
- { /* for each input line ... */
+ { /* for each input line ... */
bool firstload;
bool linedone;
@@ -781,14 +781,14 @@ handleCopyIn(PGconn *conn, FILE *copystream, bool isbinary)
fputs(prompt, stdout);
fflush(stdout);
}
-
+
firstload = true;
linedone = false;
while (!linedone)
- { /* for each bufferload in line ... */
- int linelen;
- char *fgresult;
+ { /* for each bufferload in line ... */
+ int linelen;
+ char *fgresult;
/* enable longjmp while waiting for input */
sigint_interrupt_enabled = true;
@@ -806,7 +806,7 @@ handleCopyIn(PGconn *conn, FILE *copystream, bool isbinary)
linelen = strlen(buf);
/* current line is done? */
- if (linelen > 0 && buf[linelen-1] == '\n')
+ if (linelen > 0 && buf[linelen - 1] == '\n')
linedone = true;
/* check for EOF marker, but not on a partial line */
@@ -818,10 +818,10 @@ handleCopyIn(PGconn *conn, FILE *copystream, bool isbinary)
copydone = true;
break;
}
-
+
firstload = false;
}
-
+
if (PQputCopyData(conn, buf, linelen) <= 0)
{
OK = false;
@@ -829,7 +829,7 @@ handleCopyIn(PGconn *conn, FILE *copystream, bool isbinary)
break;
}
}
-
+
pset.lineno++;
}
}
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index b6fbc13580..0adc99091d 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.144 2006/08/29 15:19:51 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.145 2006/10/04 00:30:05 momjian Exp $
*/
#include "postgres_fe.h"
#include "describe.h"
@@ -72,7 +72,7 @@ describeAggregates(const char *pattern, bool verbose)
" 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"
@@ -132,7 +132,7 @@ describeTablespaces(const char *pattern, bool verbose)
if (verbose)
appendPQExpBuffer(&buf,
",\n spcacl as \"%s\""
- ",\n pg_catalog.shobj_description(oid, 'pg_tablespace') AS \"%s\"",
+ ",\n pg_catalog.shobj_description(oid, 'pg_tablespace') AS \"%s\"",
_("Access privileges"), _("Description"));
appendPQExpBuffer(&buf,
@@ -175,20 +175,20 @@ describeFunctions(const char *pattern, bool verbose)
"SELECT n.nspname as \"%s\",\n"
" p.proname as \"%s\",\n"
" CASE WHEN p.proretset THEN 'setof ' ELSE '' END ||\n"
- " pg_catalog.format_type(p.prorettype, NULL) as \"%s\",\n"
+ " pg_catalog.format_type(p.prorettype, NULL) as \"%s\",\n"
" CASE WHEN proallargtypes IS NOT NULL THEN\n"
" pg_catalog.array_to_string(ARRAY(\n"
" SELECT\n"
" CASE\n"
" WHEN p.proargmodes[s.i] = 'i' THEN ''\n"
" WHEN p.proargmodes[s.i] = 'o' THEN 'OUT '\n"
- " WHEN p.proargmodes[s.i] = 'b' THEN 'INOUT '\n"
+ " WHEN p.proargmodes[s.i] = 'b' THEN 'INOUT '\n"
" END ||\n"
" CASE\n"
- " WHEN COALESCE(p.proargnames[s.i], '') = '' THEN ''\n"
+ " WHEN COALESCE(p.proargnames[s.i], '') = '' THEN ''\n"
" ELSE p.proargnames[s.i] || ' ' \n"
" END ||\n"
- " pg_catalog.format_type(p.proallargtypes[s.i], NULL)\n"
+ " pg_catalog.format_type(p.proallargtypes[s.i], NULL)\n"
" FROM\n"
" pg_catalog.generate_series(1, pg_catalog.array_upper(p.proallargtypes, 1)) AS s(i)\n"
" ), ', ')\n"
@@ -196,10 +196,10 @@ describeFunctions(const char *pattern, bool verbose)
" pg_catalog.array_to_string(ARRAY(\n"
" SELECT\n"
" CASE\n"
- " WHEN COALESCE(p.proargnames[s.i+1], '') = '' THEN ''\n"
+ " WHEN COALESCE(p.proargnames[s.i+1], '') = '' THEN ''\n"
" ELSE p.proargnames[s.i+1] || ' '\n"
" END ||\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"
@@ -225,7 +225,7 @@ describeFunctions(const char *pattern, bool verbose)
"\nFROM pg_catalog.pg_proc p"
"\n LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace"
"\n LEFT JOIN pg_catalog.pg_language l ON l.oid = p.prolang"
- "\n JOIN pg_catalog.pg_roles r ON r.oid = p.proowner\n");
+ "\n JOIN pg_catalog.pg_roles r ON r.oid = p.proowner\n");
/*
* we skip in/out funcs by excluding functions that take or return cstring
@@ -403,11 +403,11 @@ listAllDbs(bool verbose)
}
appendPQExpBuffer(&buf,
"\nFROM pg_catalog.pg_database d"
- "\n JOIN pg_catalog.pg_roles r ON d.datdba = r.oid\n");
+ "\n JOIN pg_catalog.pg_roles r ON d.datdba = r.oid\n");
if (verbose)
appendPQExpBuffer(&buf,
- " JOIN pg_catalog.pg_tablespace t on d.dattablespace = t.oid\n");
- appendPQExpBuffer(&buf,"ORDER BY 1;");
+ " JOIN pg_catalog.pg_tablespace t on d.dattablespace = t.oid\n");
+ appendPQExpBuffer(&buf, "ORDER BY 1;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
if (!res)
@@ -1460,7 +1460,7 @@ describeRoles(const char *pattern, bool verbose)
if (verbose)
appendPQExpBuffer(&buf, "\n, pg_catalog.shobj_description(r.oid, 'pg_authid') AS \"%s\"",
- _("Description"));
+ _("Description"));
appendPQExpBuffer(&buf, "\nFROM pg_catalog.pg_roles r\n");
@@ -1540,7 +1540,7 @@ listTables(const char *tabtypes, const char *pattern, bool verbose)
appendPQExpBuffer(&buf,
"\nFROM pg_catalog.pg_class c"
- "\n JOIN pg_catalog.pg_roles r ON r.oid = c.relowner"
+ "\n JOIN pg_catalog.pg_roles r ON r.oid = c.relowner"
"\n LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace");
if (showIndexes)
appendPQExpBuffer(&buf,
@@ -1782,7 +1782,7 @@ listSchemas(const char *pattern, bool verbose)
_("Access privileges"), _("Description"));
appendPQExpBuffer(&buf,
- "\nFROM pg_catalog.pg_namespace n JOIN pg_catalog.pg_roles r\n"
+ "\nFROM pg_catalog.pg_namespace n JOIN pg_catalog.pg_roles r\n"
" ON n.nspowner=r.oid\n"
"WHERE (n.nspname !~ '^pg_temp_' OR\n"
" n.nspname = (pg_catalog.current_schemas(true))[1])\n"); /* temp schema is first */
@@ -1859,8 +1859,8 @@ processNamePattern(PQExpBuffer buf, const char *pattern,
* we assume this was NOT done by scan_option. Also, adjust shell-style
* wildcard characters into regexp notation.
*
- * Note: the result of this pass is the actual regexp pattern we want
- * to execute. Quoting/escaping it into a SQL literal will be done below.
+ * Note: the result of this pass is the actual regexp pattern we want to
+ * execute. Quoting/escaping it into a SQL literal will be done below.
*/
appendPQExpBufferChar(&namebuf, '^');
@@ -1929,8 +1929,8 @@ processNamePattern(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 > 1)
{
diff --git a/src/bin/psql/input.c b/src/bin/psql/input.c
index 323ef573b4..befee86357 100644
--- a/src/bin/psql/input.c
+++ b/src/bin/psql/input.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/psql/input.c,v 1.59 2006/08/29 15:19:51 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/input.c,v 1.60 2006/10/04 00:30:06 momjian Exp $
*/
#include "postgres_fe.h"
@@ -29,7 +29,7 @@ char *psql_history;
* Preserve newlines in saved queries by mapping '\n' to NL_IN_HISTORY
*
* It is assumed NL_IN_HISTORY will never be entered by the user
- * nor appear inside a multi-byte string. 0x00 is not properly
+ * nor appear inside a multi-byte string. 0x00 is not properly
* handled by the readline routines so it can not be used
* for this purpose.
*/
@@ -58,7 +58,7 @@ gets_interactive(const char *prompt)
#ifdef USE_READLINE
if (useReadline)
{
- char *result;
+ char *result;
/* Enable SIGINT to longjmp to sigint_interrupt_jmp */
sigint_interrupt_enabled = true;
@@ -91,8 +91,8 @@ pg_append_history(const char *s, PQExpBuffer history_buf)
appendPQExpBufferStr(history_buf, s);
if (s[strlen(s) - 1] != '\n')
appendPQExpBufferChar(history_buf, '\n');
- }
-#endif
+ }
+#endif
}
@@ -110,7 +110,7 @@ pg_send_history(PQExpBuffer history_buf)
#ifdef USE_READLINE
static char *prev_hist = NULL;
- char *s = history_buf->data;
+ char *s = history_buf->data;
if (useHistory && s[0])
{
@@ -123,10 +123,10 @@ pg_send_history(PQExpBuffer history_buf)
}
else
{
- int i;
+ int i;
/* Trim any trailing \n's (OK to scribble on history_buf) */
- for (i = strlen(s)-1; i >= 0 && s[i] == '\n'; i--)
+ for (i = strlen(s) - 1; i >= 0 && s[i] == '\n'; i--)
;
s[i + 1] = '\0';
/* Save each previous line for ignoredups processing */
@@ -151,7 +151,7 @@ pg_send_history(PQExpBuffer history_buf)
*
* Caller *must* have set up sigint_interrupt_jmp before calling.
*
- * Note: we re-use a static PQExpBuffer for each call. This is to avoid
+ * Note: we re-use a static PQExpBuffer for each call. This is to avoid
* leaking memory if interrupted by SIGINT.
*/
char *
@@ -168,7 +168,7 @@ gets_fromFile(FILE *source)
for (;;)
{
- char *result;
+ char *result;
/* Enable SIGINT to longjmp to sigint_interrupt_jmp */
sigint_interrupt_enabled = true;
@@ -209,7 +209,7 @@ static void
encode_history(void)
{
HIST_ENTRY *cur_hist;
- char *cur_ptr;
+ char *cur_ptr;
history_set_pos(0);
for (cur_hist = current_history(); cur_hist; cur_hist = next_history())
@@ -228,7 +228,7 @@ static void
decode_history(void)
{
HIST_ENTRY *cur_hist;
- char *cur_ptr;
+ char *cur_ptr;
history_set_pos(0);
for (cur_hist = current_history(); cur_hist; cur_hist = next_history())
@@ -239,7 +239,7 @@ decode_history(void)
*cur_ptr = '\n';
}
}
-#endif /* USE_READLINE */
+#endif /* USE_READLINE */
/*
@@ -296,8 +296,8 @@ initializeInput(int flags)
/*
- * This function is for saving the readline history when user
- * runs \s command or when psql finishes.
+ * This function is for saving the readline history when user
+ * runs \s command or when psql finishes.
*
* We have an argument named encodeFlag to handle the cases differently.
* In case of call via \s we don't really need to encode \n as \x01,
@@ -307,11 +307,12 @@ bool
saveHistory(char *fname, bool encodeFlag)
{
#ifdef USE_READLINE
+
/*
- * Suppressing the write attempt when HISTFILE is set to /dev/null
- * may look like a negligible optimization, but it's necessary on e.g.
- * Darwin, where write_history will fail because it tries to chmod
- * the target file.
+ * Suppressing the write attempt when HISTFILE is set to /dev/null may
+ * look like a negligible optimization, but it's necessary on e.g. Darwin,
+ * where write_history will fail because it tries to chmod the target
+ * file.
*/
if (useHistory && fname &&
strcmp(fname, DEVNULL) != 0)
@@ -321,8 +322,8 @@ saveHistory(char *fname, bool encodeFlag)
/*
* return value of write_history is not standardized across GNU
- * readline and libedit. Therefore, check for errno becoming set
- * to see if the write failed.
+ * readline and libedit. Therefore, check for errno becoming set to
+ * see if the write failed.
*/
errno = 0;
(void) write_history(fname);
diff --git a/src/bin/psql/mainloop.c b/src/bin/psql/mainloop.c
index 519230b28a..d597cb3d75 100644
--- a/src/bin/psql/mainloop.c
+++ b/src/bin/psql/mainloop.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/psql/mainloop.c,v 1.83 2006/08/29 15:19:51 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/mainloop.c,v 1.84 2006/10/04 00:30:06 momjian Exp $
*/
#include "postgres_fe.h"
#include "mainloop.h"
@@ -29,8 +29,8 @@ MainLoop(FILE *source)
PQExpBuffer query_buf; /* buffer for query being accumulated */
PQExpBuffer previous_buf; /* if there isn't anything in the new buffer
* yet, use this one for \e, etc. */
- PQExpBuffer history_buf; /* earlier lines of a multi-line command,
- * not yet saved to readline history */
+ PQExpBuffer history_buf; /* earlier lines of a multi-line command, not
+ * yet saved to readline history */
char *line; /* current line of input */
int added_nl_pos;
bool success;
@@ -89,9 +89,9 @@ MainLoop(FILE *source)
}
/*
- * Establish longjmp destination for exiting from wait-for-input.
- * We must re-do this each time through the loop for safety, since
- * the jmpbuf might get changed during command execution.
+ * Establish longjmp destination for exiting from wait-for-input. We
+ * must re-do this each time through the loop for safety, since the
+ * jmpbuf might get changed during command execution.
*/
if (sigsetjmp(sigint_interrupt_jmp, 1) != 0)
{
@@ -235,7 +235,7 @@ MainLoop(FILE *source)
* If we added a newline to query_buf, and nothing else has
* been inserted in query_buf by the lexer, then strip off the
* newline again. This avoids any change to query_buf when a
- * line contains only a backslash command. Also, in this
+ * line contains only a backslash command. Also, in this
* situation we force out any previous lines as a separate
* history entry; we don't want SQL and backslash commands
* intermixed in history if at all possible.
diff --git a/src/bin/psql/mbprint.c b/src/bin/psql/mbprint.c
index f0e0fa13b8..8a25955b5c 100644
--- a/src/bin/psql/mbprint.c
+++ b/src/bin/psql/mbprint.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/psql/mbprint.c,v 1.22 2006/07/14 14:52:26 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/mbprint.c,v 1.23 2006/10/04 00:30:06 momjian Exp $
*/
#include "postgres_fe.h"
@@ -151,18 +151,19 @@ mb_utf_validate(unsigned char *pwcs)
int
pg_wcswidth(const unsigned char *pwcs, size_t len, int encoding)
{
- int width = 0;
+ int width = 0;
while (len > 0)
{
- int chlen, chwidth;
+ int chlen,
+ chwidth;
- chlen = PQmblen((const char*) pwcs, encoding);
+ chlen = PQmblen((const char *) pwcs, encoding);
if (chlen > len)
- break; /* Invalid string */
-
+ break; /* Invalid string */
+
chwidth = PQdsplen((const char *) pwcs, encoding);
-
+
if (chwidth > 0)
width += chwidth;
pwcs += chlen;
@@ -173,60 +174,62 @@ pg_wcswidth(const unsigned char *pwcs, size_t len, int encoding)
/*
* pg_wcssize takes the given string in the given encoding and returns three
* values:
- * result_width: Width in display character of longest line in string
- * result_hieght: Number of lines in display output
- * result_format_size: Number of bytes required to store formatted representation of string
+ * result_width: Width in display character of longest line in string
+ * result_hieght: Number of lines in display output
+ * result_format_size: Number of bytes required to store formatted representation of string
*/
int
pg_wcssize(unsigned char *pwcs, size_t len, int encoding, int *result_width,
- int *result_height, int *result_format_size)
+ int *result_height, int *result_format_size)
{
- int w,
- chlen = 0,
- linewidth = 0;
- int width = 0;
- int height = 1;
- int format_size = 0;
+ int w,
+ chlen = 0,
+ linewidth = 0;
+ int width = 0;
+ int height = 1;
+ int format_size = 0;
for (; *pwcs && len > 0; pwcs += chlen)
{
chlen = PQmblen((char *) pwcs, encoding);
- if (len < (size_t)chlen)
+ if (len < (size_t) chlen)
break;
w = PQdsplen((char *) pwcs, encoding);
- if (chlen == 1) /* ASCII char */
+ if (chlen == 1) /* ASCII char */
{
- if (*pwcs == '\n') /* Newline */
+ if (*pwcs == '\n') /* Newline */
{
if (linewidth > width)
width = linewidth;
linewidth = 0;
height += 1;
- format_size += 1; /* For NUL char */
+ format_size += 1; /* For NUL char */
}
- else if (*pwcs == '\r') /* Linefeed */
+ else if (*pwcs == '\r') /* Linefeed */
{
linewidth += 2;
format_size += 2;
}
- else if (w <= 0) /* Other control char */
+ else if (w <= 0) /* Other control char */
{
linewidth += 4;
format_size += 4;
}
- else /* Output itself */
+ else
+ /* Output itself */
{
linewidth++;
format_size += 1;
}
}
- else if (w <= 0) /* Non-ascii control char */
+ else if (w <= 0) /* Non-ascii control char */
{
- linewidth += 6; /* \u0000 */
+ linewidth += 6; /* \u0000 */
format_size += 6;
}
- else /* All other chars */
+ else
+ /* All other chars */
{
linewidth += w;
format_size += chlen;
@@ -236,7 +239,7 @@ pg_wcssize(unsigned char *pwcs, size_t len, int encoding, int *result_width,
if (linewidth > width)
width = linewidth;
format_size += 1;
-
+
/* Set results */
if (result_width)
*result_width = width;
@@ -244,76 +247,81 @@ pg_wcssize(unsigned char *pwcs, size_t len, int encoding, int *result_width,
*result_height = height;
if (result_format_size)
*result_format_size = format_size;
-
+
return width;
}
void
pg_wcsformat(unsigned char *pwcs, size_t len, int encoding,
- struct lineptr *lines, int count)
+ struct lineptr * lines, int count)
{
int w,
chlen = 0;
- int linewidth = 0;
- unsigned char *ptr = lines->ptr; /* Pointer to data area */
+ int linewidth = 0;
+ unsigned char *ptr = lines->ptr; /* Pointer to data area */
for (; *pwcs && len > 0; pwcs += chlen)
{
- chlen = PQmblen((char *) pwcs,encoding);
- if (len < (size_t)chlen)
+ chlen = PQmblen((char *) pwcs, encoding);
+ if (len < (size_t) chlen)
break;
- w = PQdsplen((char *) pwcs,encoding);
+ w = PQdsplen((char *) pwcs, encoding);
- if (chlen == 1) /* single byte char char */
+ if (chlen == 1) /* single byte char char */
{
- if (*pwcs == '\n') /* Newline */
+ if (*pwcs == '\n') /* Newline */
{
- *ptr++ = 0; /* NULL char */
+ *ptr++ = 0; /* NULL char */
lines->width = linewidth;
linewidth = 0;
lines++;
count--;
if (count == 0)
- exit(1); /* Screwup */
-
+ exit(1); /* Screwup */
+
lines->ptr = ptr;
}
- else if (*pwcs == '\r') /* Linefeed */
+ else if (*pwcs == '\r') /* Linefeed */
{
strcpy((char *) ptr, "\\r");
linewidth += 2;
ptr += 2;
}
- else if (w <= 0) /* Other control char */
+ else if (w <= 0) /* Other control char */
{
sprintf((char *) ptr, "\\x%02X", *pwcs);
linewidth += 4;
ptr += 4;
}
- else /* Output itself */
+ else
+ /* Output itself */
{
linewidth++;
*ptr++ = *pwcs;
}
}
- else if (w <= 0) /* Non-ascii control char */
+ else if (w <= 0) /* Non-ascii control char */
{
if (encoding == PG_UTF8)
sprintf((char *) ptr, "\\u%04X", utf2ucs(pwcs));
else
- /* This case cannot happen in the current
- * code because only UTF-8 signals multibyte
- * control characters. But we may need to
- * support it at some stage */
+
+ /*
+ * This case cannot happen in the current code because only
+ * UTF-8 signals multibyte control characters. But we may need
+ * to support it at some stage
+ */
sprintf((char *) ptr, "\\u????");
-
+
ptr += 6;
linewidth += 6;
}
- else /* All other chars */
+ else
+ /* All other chars */
{
- int i;
- for (i=0; i < chlen; i++)
+ int i;
+
+ for (i = 0; i < chlen; i++)
*ptr++ = pwcs[i];
linewidth += w;
}
diff --git a/src/bin/psql/mbprint.h b/src/bin/psql/mbprint.h
index 3941ce1580..61e723cbae 100644
--- a/src/bin/psql/mbprint.h
+++ b/src/bin/psql/mbprint.h
@@ -1,17 +1,18 @@
-/* $PostgreSQL: pgsql/src/bin/psql/mbprint.h,v 1.10 2006/07/14 14:52:26 momjian Exp $ */
+/* $PostgreSQL: pgsql/src/bin/psql/mbprint.h,v 1.11 2006/10/04 00:30:06 momjian Exp $ */
#ifndef MBPRINT_H
#define MBPRINT_H
-struct lineptr {
+struct lineptr
+{
unsigned char *ptr;
- int width;
+ int width;
};
extern unsigned char *mbvalidate(unsigned char *pwcs, int encoding);
extern int pg_wcswidth(const unsigned char *pwcs, size_t len, int encoding);
-extern void pg_wcsformat(unsigned char *pwcs, size_t len, int encoding, struct lineptr *lines, int count);
+extern void pg_wcsformat(unsigned char *pwcs, size_t len, int encoding, struct lineptr * lines, int count);
extern int pg_wcssize(unsigned char *pwcs, size_t len, int encoding, int *width, int *height, int *format_size);
#endif /* MBPRINT_H */
diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c
index 01f47e43b4..f256212ec5 100644
--- a/src/bin/psql/print.c
+++ b/src/bin/psql/print.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.89 2006/08/29 22:25:07 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.90 2006/10/04 00:30:06 momjian Exp $
*
* Note: we include postgres.h not postgres_fe.h so that we can include
* catalog/pg_type.h, and thereby have access to INT4OID and similar macros.
@@ -180,8 +180,8 @@ print_unaligned_text(const char *title, const char *const * headers,
{
const char *opt_fieldsep = opt->fieldSep;
const char *opt_recordsep = opt->recordSep;
- bool opt_tuples_only = opt->tuples_only;
- bool opt_numeric_locale = opt->numericLocale;
+ bool opt_tuples_only = opt->tuples_only;
+ bool opt_numeric_locale = opt->numericLocale;
unsigned int col_count = 0;
unsigned int i;
const char *const * ptr;
@@ -217,7 +217,8 @@ print_unaligned_text(const char *title, const char *const * headers,
need_recordsep = true;
}
}
- else /* assume continuing printout */
+ else
+ /* assume continuing printout */
need_recordsep = true;
/* print cells */
@@ -276,8 +277,8 @@ print_unaligned_vertical(const char *title, const char *const * headers,
{
const char *opt_fieldsep = opt->fieldSep;
const char *opt_recordsep = opt->recordSep;
- bool opt_tuples_only = opt->tuples_only;
- bool opt_numeric_locale = opt->numericLocale;
+ bool opt_tuples_only = opt->tuples_only;
+ bool opt_numeric_locale = opt->numericLocale;
unsigned int col_count = 0;
unsigned int i;
const char *const * ptr;
@@ -304,7 +305,8 @@ print_unaligned_vertical(const char *title, const char *const * headers,
need_recordsep = true;
}
}
- else /* assume continuing printout */
+ else
+ /* assume continuing printout */
need_recordsep = true;
/* print records */
@@ -402,26 +404,28 @@ print_aligned_text(const char *title, const char *const * headers,
const char *opt_align, const printTableOpt *opt,
FILE *fout)
{
- bool opt_tuples_only = opt->tuples_only;
- bool opt_numeric_locale = opt->numericLocale;
+ bool opt_tuples_only = opt->tuples_only;
+ bool opt_numeric_locale = opt->numericLocale;
unsigned short int opt_border = opt->border;
- int encoding = opt->encoding;
+ int encoding = opt->encoding;
unsigned int col_count = 0;
unsigned int cell_count = 0;
unsigned int i;
- int tmp;
+ int tmp;
unsigned int *widths,
total_w;
unsigned int *heights;
unsigned int *format_space;
unsigned char **format_buf;
-
- const char *const *ptr;
-
- struct lineptr **col_lineptrs; /* pointers to line pointer for each column */
- struct lineptr *lineptr_list; /* complete list of linepointers */
-
- int *complete; /* Array remembering which columns have completed output */
+
+ const char *const * ptr;
+
+ struct lineptr **col_lineptrs; /* pointers to line pointer for each
+ * column */
+ struct lineptr *lineptr_list; /* complete list of linepointers */
+
+ int *complete; /* Array remembering which columns have
+ * completed output */
if (cancel_pressed)
return;
@@ -451,7 +455,7 @@ print_aligned_text(const char *title, const char *const * headers,
format_buf = NULL;
complete = NULL;
}
-
+
/* count cells (rows * cols) */
for (ptr = cells; *ptr; ptr++)
cell_count++;
@@ -460,7 +464,9 @@ print_aligned_text(const char *title, const char *const * headers,
for (i = 0; i < col_count; i++)
{
/* Get width & height */
- int height, space;
+ int height,
+ space;
+
pg_wcssize((unsigned char *) headers[i], strlen(headers[i]), encoding, &tmp, &height, &space);
if (tmp > widths[i])
widths[i] = tmp;
@@ -472,14 +478,15 @@ print_aligned_text(const char *title, const char *const * headers,
for (i = 0, ptr = cells; *ptr; ptr++, i++)
{
- int numeric_locale_len;
- int height, space;
+ int numeric_locale_len;
+ int height,
+ space;
if (opt_align[i % col_count] == 'r' && opt_numeric_locale)
numeric_locale_len = additional_numeric_locale_len(*ptr);
- else
+ else
numeric_locale_len = 0;
-
+
/* Get width, ignore height */
pg_wcssize((unsigned char *) *ptr, strlen(*ptr), encoding, &tmp, &height, &space);
tmp += numeric_locale_len;
@@ -501,29 +508,29 @@ print_aligned_text(const char *title, const char *const * headers,
for (i = 0; i < col_count; i++)
total_w += widths[i];
- /* At this point:
- * widths contains the max width of each column
- * heights contains the max height of a cell of each column
- * format_space contains maximum space required to store formatted string
- * so we prepare the formatting structures
+ /*
+ * At this point: widths contains the max width of each column heights
+ * contains the max height of a cell of each column format_space contains
+ * maximum space required to store formatted string so we prepare the
+ * formatting structures
*/
if (col_count > 0)
{
- int heights_total = 0;
+ int heights_total = 0;
struct lineptr *lineptr;
-
+
for (i = 0; i < col_count; i++)
heights_total += heights[i];
-
+
lineptr = lineptr_list = pg_local_calloc(heights_total, sizeof(*lineptr_list));
-
+
for (i = 0; i < col_count; i++)
{
col_lineptrs[i] = lineptr;
lineptr += heights[i];
-
+
format_buf[i] = pg_local_malloc(format_space[i]);
-
+
col_lineptrs[i]->ptr = format_buf[i];
}
}
@@ -536,8 +543,9 @@ print_aligned_text(const char *title, const char *const * headers,
if (title && !opt_tuples_only)
{
/* Get width & height */
- int height;
- pg_wcssize((unsigned char *)title, strlen(title), encoding, &tmp, &height, NULL);
+ int height;
+
+ pg_wcssize((unsigned char *) title, strlen(title), encoding, &tmp, &height, NULL);
if (tmp >= total_w)
fprintf(fout, "%s\n", title);
else
@@ -547,18 +555,18 @@ print_aligned_text(const char *title, const char *const * headers,
/* print headers */
if (!opt_tuples_only)
{
- int cols_todo;
- int line_count;
-
+ int cols_todo;
+ int line_count;
+
if (opt_border == 2)
_print_horizontal_line(col_count, widths, opt_border, fout);
for (i = 0; i < col_count; i++)
- pg_wcsformat((unsigned char *)headers[i], strlen(headers[i]), encoding, col_lineptrs[i], heights[i]);
-
+ pg_wcsformat((unsigned char *) headers[i], strlen(headers[i]), encoding, col_lineptrs[i], heights[i]);
+
cols_todo = col_count;
line_count = 0;
- memset(complete, 0, col_count*sizeof(int));
+ memset(complete, 0, col_count * sizeof(int));
while (cols_todo)
{
if (opt_border == 2)
@@ -571,6 +579,7 @@ print_aligned_text(const char *title, const char *const * headers,
unsigned int nbspace;
struct lineptr *this_line = col_lineptrs[i] + line_count;
+
if (!complete[i])
{
nbspace = widths[i] - this_line->width;
@@ -579,7 +588,7 @@ print_aligned_text(const char *title, const char *const * headers,
fprintf(fout, "%-*s%s%-*s",
nbspace / 2, "", this_line->ptr, (nbspace + 1) / 2, "");
- if (line_count == (heights[i]-1) || !(this_line+1)->ptr)
+ if (line_count == (heights[i] - 1) || !(this_line + 1)->ptr)
{
cols_todo--;
complete[i] = 1;
@@ -609,20 +618,20 @@ print_aligned_text(const char *title, const char *const * headers,
}
/* print cells */
- for (i = 0, ptr = cells; *ptr; i+=col_count, ptr+=col_count)
+ for (i = 0, ptr = cells; *ptr; i += col_count, ptr += col_count)
{
- int j;
- int cols_todo = col_count;
- int line_count; /* Number of lines output so far in row */
+ int j;
+ int cols_todo = col_count;
+ int line_count; /* Number of lines output so far in row */
if (cancel_pressed)
break;
for (j = 0; j < col_count; j++)
- pg_wcsformat((unsigned char*)ptr[j], strlen(ptr[j]), encoding, col_lineptrs[j], heights[j]);
-
+ pg_wcsformat((unsigned char *) ptr[j], strlen(ptr[j]), encoding, col_lineptrs[j], heights[j]);
+
line_count = 0;
- memset(complete, 0, col_count*sizeof(int));
+ memset(complete, 0, col_count * sizeof(int));
while (cols_todo)
{
/* beginning of line */
@@ -634,9 +643,9 @@ print_aligned_text(const char *title, const char *const * headers,
for (j = 0; j < col_count; j++)
{
struct lineptr *this_line = col_lineptrs[j] + line_count;
- bool finalspaces = (opt_border == 2 || j != col_count-1);
+ bool finalspaces = (opt_border == 2 || j != col_count - 1);
- if (complete[j]) /* Just print spaces... */
+ if (complete[j]) /* Just print spaces... */
{
if (finalspaces)
fprintf(fout, "%*s", widths[j], "");
@@ -651,10 +660,11 @@ print_aligned_text(const char *title, const char *const * headers,
/*
* Assumption: This code used only on strings
* without multibyte characters, otherwise
- * this_line->width < strlen(this_ptr) and we
- * get an overflow
+ * this_line->width < strlen(this_ptr) and we get
+ * an overflow
*/
- char *my_cell = format_numeric_locale((char *) this_line->ptr);
+ char *my_cell = format_numeric_locale((char *) this_line->ptr);
+
fprintf(fout, "%*s%s",
(int) (widths[i % col_count] - strlen(my_cell)), "",
my_cell);
@@ -667,15 +677,15 @@ print_aligned_text(const char *title, const char *const * headers,
}
else
fprintf(fout, "%-s%*s", this_line->ptr,
- finalspaces ? (widths[j] - this_line->width) : 0, "");
+ finalspaces ? (widths[j] - this_line->width) : 0, "");
/* If at the right height, done this col */
- if (line_count == heights[j]-1 || !this_line[1].ptr)
+ if (line_count == heights[j] - 1 || !this_line[1].ptr)
{
complete[j] = 1;
cols_todo--;
}
}
-
+
/* divider */
if ((j + 1) % col_count)
{
@@ -684,7 +694,7 @@ print_aligned_text(const char *title, const char *const * headers,
else if (line_count == 0)
fputs(" | ", fout);
else
- fprintf(fout, " %c ", complete[j+1] ? ' ' : ':');
+ fprintf(fout, " %c ", complete[j + 1] ? ' ' : ':');
}
}
if (opt_border == 2)
@@ -705,8 +715,8 @@ print_aligned_text(const char *title, const char *const * headers,
fprintf(fout, "%s\n", *ptr);
/*
- * for some reason MinGW (and MSVC) outputs an extra newline,
- * so this suppresses it
+ * for some reason MinGW (and MSVC) outputs an extra newline, so this
+ * suppresses it
*/
#ifndef WIN32
fputc('\n', fout);
@@ -720,7 +730,7 @@ print_aligned_text(const char *title, const char *const * headers,
free(format_space);
free(complete);
free(lineptr_list);
- for (i= 0; i < col_count; i++)
+ for (i = 0; i < col_count; i++)
free(format_buf[i]);
free(format_buf);
}
@@ -732,10 +742,10 @@ print_aligned_vertical(const char *title, const char *const * headers,
const char *opt_align, const printTableOpt *opt,
FILE *fout)
{
- bool opt_tuples_only = opt->tuples_only;
- bool opt_numeric_locale = opt->numericLocale;
+ bool opt_tuples_only = opt->tuples_only;
+ bool opt_numeric_locale = opt->numericLocale;
unsigned short int opt_border = opt->border;
- int encoding = opt->encoding;
+ int encoding = opt->encoding;
unsigned int col_count = 0;
unsigned long record = opt->prior_records + 1;
const char *const * ptr;
@@ -746,17 +756,18 @@ print_aligned_vertical(const char *title, const char *const * headers,
dheight = 1,
hformatsize = 0,
dformatsize = 0;
- int tmp = 0;
+ int tmp = 0;
char *divider;
unsigned int cell_count = 0;
- struct lineptr *hlineptr, *dlineptr;
+ struct lineptr *hlineptr,
+ *dlineptr;
if (cancel_pressed)
return;
if (opt_border > 2)
opt_border = 2;
-
+
if (cells[0] == NULL && opt->start_table && opt->stop_table)
{
fprintf(fout, _("(No rows)\n"));
@@ -770,7 +781,9 @@ print_aligned_vertical(const char *title, const char *const * headers,
/* Find the maximum dimensions for the headers */
for (i = 0; i < col_count; i++)
{
- int height, fs;
+ int height,
+ fs;
+
pg_wcssize((unsigned char *) headers[i], strlen(headers[i]), encoding, &tmp, &height, &fs);
if (tmp > hwidth)
hwidth = tmp;
@@ -787,12 +800,13 @@ print_aligned_vertical(const char *title, const char *const * headers,
/* find longest data cell */
for (i = 0, ptr = cells; *ptr; ptr++, i++)
{
- int numeric_locale_len;
- int height, fs;
+ int numeric_locale_len;
+ int height,
+ fs;
if (opt_align[i % col_count] == 'r' && opt_numeric_locale)
numeric_locale_len = additional_numeric_locale_len(*ptr);
- else
+ else
numeric_locale_len = 0;
pg_wcssize((unsigned char *) *ptr, strlen(*ptr), encoding, &tmp, &height, &fs);
@@ -804,11 +818,14 @@ print_aligned_vertical(const char *title, const char *const * headers,
if (fs > dformatsize)
dformatsize = fs;
}
-
- /* We now have all the information we need to setup the formatting structures */
+
+ /*
+ * We now have all the information we need to setup the formatting
+ * structures
+ */
dlineptr = pg_local_malloc(sizeof(*dlineptr) * dheight);
hlineptr = pg_local_malloc(sizeof(*hlineptr) * hheight);
-
+
dlineptr->ptr = pg_local_malloc(dformatsize);
hlineptr->ptr = pg_local_malloc(hformatsize);
@@ -838,8 +855,10 @@ print_aligned_vertical(const char *title, const char *const * headers,
/* print records */
for (i = 0, ptr = cells; *ptr; i++, ptr++)
{
- int line_count, dcomplete, hcomplete;
-
+ int line_count,
+ dcomplete,
+ hcomplete;
+
if (i % col_count == 0)
{
if (cancel_pressed)
@@ -877,11 +896,11 @@ print_aligned_vertical(const char *title, const char *const * headers,
}
/* Format the header */
- pg_wcsformat((unsigned char*)headers[i % col_count],
- strlen(headers[i % col_count]), encoding, hlineptr, hheight);
+ pg_wcsformat((unsigned char *) headers[i % col_count],
+ strlen(headers[i % col_count]), encoding, hlineptr, hheight);
/* Format the data */
- pg_wcsformat((unsigned char*)*ptr, strlen(*ptr), encoding, dlineptr, dheight);
-
+ pg_wcsformat((unsigned char *) *ptr, strlen(*ptr), encoding, dlineptr, dheight);
+
line_count = 0;
dcomplete = hcomplete = 0;
while (!dcomplete || !hcomplete)
@@ -892,51 +911,52 @@ print_aligned_vertical(const char *title, const char *const * headers,
{
fprintf(fout, "%-s%*s", hlineptr[line_count].ptr,
hwidth - hlineptr[line_count].width, "");
-
- if (line_count == (hheight-1) || !hlineptr[line_count+1].ptr)
+
+ if (line_count == (hheight - 1) || !hlineptr[line_count + 1].ptr)
hcomplete = 1;
}
else
fprintf(fout, "%*s", hwidth, "");
-
+
if (opt_border > 0)
- fprintf(fout, " %c ", (line_count==0)?'|':':');
+ fprintf(fout, " %c ", (line_count == 0) ? '|' : ':');
else
fputs(" ", fout);
if (!dcomplete)
{
- if (opt_align[i % col_count] == 'r' && opt_numeric_locale)
- {
- char *my_cell = format_numeric_locale((char *) dlineptr[line_count].ptr);
- if (opt_border < 2)
- fprintf(fout, "%s\n", my_cell);
- else
- fprintf(fout, "%-s%*s |\n", my_cell,
+ if (opt_align[i % col_count] == 'r' && opt_numeric_locale)
+ {
+ char *my_cell = format_numeric_locale((char *) dlineptr[line_count].ptr);
+
+ if (opt_border < 2)
+ fprintf(fout, "%s\n", my_cell);
+ else
+ fprintf(fout, "%-s%*s |\n", my_cell,
(int) (dwidth - strlen(my_cell)), "");
- free(my_cell);
- }
- else
- {
- if (opt_border < 2)
- fprintf(fout, "%s\n", dlineptr[line_count].ptr);
- else
- fprintf(fout, "%-s%*s |\n", dlineptr[line_count].ptr,
+ free(my_cell);
+ }
+ else
+ {
+ if (opt_border < 2)
+ fprintf(fout, "%s\n", dlineptr[line_count].ptr);
+ else
+ fprintf(fout, "%-s%*s |\n", dlineptr[line_count].ptr,
dwidth - dlineptr[line_count].width, "");
- }
-
- if (line_count == dheight - 1 || !dlineptr[line_count+1].ptr)
- dcomplete = 1;
- }
- else
- {
- if (opt_border < 2)
- fputc('\n', fout);
- else
- fprintf(fout, "%*s |\n", dwidth, "");
- }
- line_count++;
- }
+ }
+
+ if (line_count == dheight - 1 || !dlineptr[line_count + 1].ptr)
+ dcomplete = 1;
+ }
+ else
+ {
+ if (opt_border < 2)
+ fputc('\n', fout);
+ else
+ fprintf(fout, "%*s |\n", dwidth, "");
+ }
+ line_count++;
+ }
}
if (opt->stop_table)
@@ -1016,8 +1036,8 @@ print_html_text(const char *title, const char *const * headers,
const char *opt_align, const printTableOpt *opt,
FILE *fout)
{
- bool opt_tuples_only = opt->tuples_only;
- bool opt_numeric_locale = opt->numericLocale;
+ bool opt_tuples_only = opt->tuples_only;
+ bool opt_numeric_locale = opt->numericLocale;
unsigned short int opt_border = opt->border;
const char *opt_table_attr = opt->tableAttr;
unsigned int col_count = 0;
@@ -1117,8 +1137,8 @@ print_html_vertical(const char *title, const char *const * headers,
const char *opt_align, const printTableOpt *opt,
FILE *fout)
{
- bool opt_tuples_only = opt->tuples_only;
- bool opt_numeric_locale = opt->numericLocale;
+ bool opt_tuples_only = opt->tuples_only;
+ bool opt_numeric_locale = opt->numericLocale;
unsigned short int opt_border = opt->border;
const char *opt_table_attr = opt->tableAttr;
unsigned int col_count = 0;
@@ -1255,8 +1275,8 @@ print_latex_text(const char *title, const char *const * headers,
const char *opt_align, const printTableOpt *opt,
FILE *fout)
{
- bool opt_tuples_only = opt->tuples_only;
- bool opt_numeric_locale = opt->numericLocale;
+ bool opt_tuples_only = opt->tuples_only;
+ bool opt_numeric_locale = opt->numericLocale;
unsigned short int opt_border = opt->border;
unsigned int col_count = 0;
unsigned int i;
@@ -1368,8 +1388,8 @@ print_latex_vertical(const char *title, const char *const * headers,
const char *opt_align, const printTableOpt *opt,
FILE *fout)
{
- bool opt_tuples_only = opt->tuples_only;
- bool opt_numeric_locale = opt->numericLocale;
+ bool opt_tuples_only = opt->tuples_only;
+ bool opt_numeric_locale = opt->numericLocale;
unsigned short int opt_border = opt->border;
unsigned int col_count = 0;
unsigned long record = opt->prior_records + 1;
@@ -1495,8 +1515,8 @@ print_troff_ms_text(const char *title, const char *const * headers,
const char *opt_align, const printTableOpt *opt,
FILE *fout)
{
- bool opt_tuples_only = opt->tuples_only;
- bool opt_numeric_locale = opt->numericLocale;
+ bool opt_tuples_only = opt->tuples_only;
+ bool opt_numeric_locale = opt->numericLocale;
unsigned short int opt_border = opt->border;
unsigned int col_count = 0;
unsigned int i;
@@ -1594,12 +1614,12 @@ print_troff_ms_text(const char *title, const char *const * headers,
static void
print_troff_ms_vertical(const char *title, const char *const * headers,
- const char *const * cells, const char *const * footers,
+ const char *const * cells, const char *const * footers,
const char *opt_align, const printTableOpt *opt,
FILE *fout)
{
- bool opt_tuples_only = opt->tuples_only;
- bool opt_numeric_locale = opt->numericLocale;
+ bool opt_tuples_only = opt->tuples_only;
+ bool opt_numeric_locale = opt->numericLocale;
unsigned short int opt_border = opt->border;
unsigned int col_count = 0;
unsigned long record = opt->prior_records + 1;
@@ -1737,7 +1757,7 @@ PageOutput(int lines, unsigned short int pager)
)
{
const char *pagerprog;
- FILE *pagerpipe;
+ FILE *pagerpipe;
#ifdef TIOCGWINSZ
int result;
@@ -1779,10 +1799,10 @@ ClosePager(FILE *pagerpipe)
/*
* If printing was canceled midstream, warn about it.
*
- * Some pagers like less use Ctrl-C as part of their command
- * set. Even so, we abort our processing and warn the user
- * what we did. If the pager quit as a result of the
- * SIGINT, this message won't go anywhere ...
+ * Some pagers like less use Ctrl-C as part of their command set. Even
+ * so, we abort our processing and warn the user what we did. If the
+ * pager quit as a result of the SIGINT, this message won't go
+ * anywhere ...
*/
if (cancel_pressed)
fprintf(pagerpipe, _("Interrupted\n"));
@@ -1923,8 +1943,8 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout, FILE *f
headers = pg_local_calloc(nfields + 1, sizeof(*headers));
for (i = 0; i < nfields; i++)
- headers[i] = (char*) mbvalidate((unsigned char *) PQfname(result, i),
- opt->topt.encoding);
+ headers[i] = (char *) mbvalidate((unsigned char *) PQfname(result, i),
+ opt->topt.encoding);
/* set cells */
ncells = PQntuples(result) * nfields;
@@ -1935,8 +1955,8 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout, FILE *f
if (PQgetisnull(result, i / nfields, i % nfields))
cells[i] = opt->nullPrint ? opt->nullPrint : "";
else
- cells[i] = (char*)
- mbvalidate((unsigned char*) PQgetvalue(result, i / nfields, i % nfields),
+ cells[i] = (char *)
+ mbvalidate((unsigned char *) PQgetvalue(result, i / nfields, i % nfields),
opt->topt.encoding);
}
diff --git a/src/bin/psql/settings.h b/src/bin/psql/settings.h
index 3e34f93b95..c294c4be2d 100644
--- a/src/bin/psql/settings.h
+++ b/src/bin/psql/settings.h
@@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/psql/settings.h,v 1.30 2006/08/29 22:25:07 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/settings.h,v 1.31 2006/10/04 00:30:06 momjian Exp $
*/
#ifndef SETTINGS_H
#define SETTINGS_H
@@ -87,9 +87,9 @@ typedef struct _psqlSettings
VariableSpace vars; /* "shell variable" repository */
/*
- * The remaining fields are set by assign hooks associated with
- * entries in "vars". They should not be set directly except by
- * those hook functions.
+ * The remaining fields are set by assign hooks associated with entries in
+ * "vars". They should not be set directly except by those hook
+ * functions.
*/
bool autocommit;
bool on_error_stop;
diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c
index 6cbd95da9e..5c79002092 100644
--- a/src/bin/psql/startup.c
+++ b/src/bin/psql/startup.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.137 2006/08/29 22:25:08 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.138 2006/10/04 00:30:06 momjian Exp $
*/
#include "postgres_fe.h"
@@ -75,7 +75,7 @@ struct adhoc_opts
char *action_string;
bool no_readline;
bool no_psqlrc;
- bool single_txn;
+ bool single_txn;
};
static int parse_version(const char *versionString);
@@ -760,7 +760,6 @@ checkWin32Codepage(void)
concp, wincp);
}
}
-
#endif
diff --git a/src/bin/psql/stringutils.c b/src/bin/psql/stringutils.c
index 9b089d84f8..f8060002db 100644
--- a/src/bin/psql/stringutils.c
+++ b/src/bin/psql/stringutils.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/psql/stringutils.c,v 1.44 2006/07/14 14:52:27 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/stringutils.c,v 1.45 2006/10/04 00:30:06 momjian Exp $
*/
#include "postgres_fe.h"
@@ -31,7 +31,7 @@ static void strip_quotes(char *source, char quote, char escape, int encoding);
* quote - set of characters that can quote a token (NULL if none)
* escape - character that can quote quotes (0 if none)
* e_strings - if TRUE, treat E'...' syntax as a valid token
- * del_quotes - if TRUE, strip quotes from the returned token, else return
+ * del_quotes - if TRUE, strip quotes from the returned token, else return
* it exactly as found in the string
* encoding - the active character-set encoding
*
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index 64b9576a66..b04f2846aa 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/psql/tab-complete.c,v 1.155 2006/09/22 21:39:57 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/tab-complete.c,v 1.156 2006/10/04 00:30:06 momjian Exp $
*/
/*----------------------------------------------------------------------
@@ -480,7 +480,7 @@ static PGresult *exec_query(const char *query);
static char *previous_word(int point, int skip);
-static int find_open_parenthesis(int end);
+static int find_open_parenthesis(int end);
#if 0
static char *quote_file_name(char *text, int match_type, char *quote_pointer);
@@ -767,13 +767,16 @@ psql_completion(char *text, int start, int end)
pg_strcasecmp(prev_wd, "RENAME") == 0))
COMPLETE_WITH_ATTR(prev2_wd, " UNION SELECT 'COLUMN'");
- /* If we have TABLE <sth> ALTER COLUMN|RENAME COLUMN, provide list of columns */
+ /*
+ * If we have TABLE <sth> ALTER COLUMN|RENAME COLUMN, provide list of
+ * columns
+ */
else if (pg_strcasecmp(prev4_wd, "TABLE") == 0 &&
(pg_strcasecmp(prev2_wd, "ALTER") == 0 ||
pg_strcasecmp(prev2_wd, "RENAME") == 0) &&
pg_strcasecmp(prev_wd, "COLUMN") == 0)
COMPLETE_WITH_ATTR(prev3_wd, "");
-
+
/* ALTER TABLE xxx RENAME yyy */
else if (pg_strcasecmp(prev4_wd, "TABLE") == 0 &&
pg_strcasecmp(prev2_wd, "RENAME") == 0 &&
@@ -951,7 +954,7 @@ psql_completion(char *text, int start, int end)
{"CAST", "CONVERSION", "DATABASE", "INDEX", "LANGUAGE", "RULE", "SCHEMA",
"SEQUENCE", "TABLE", "TYPE", "VIEW", "COLUMN", "AGGREGATE", "FUNCTION",
"OPERATOR", "TRIGGER", "CONSTRAINT", "DOMAIN", "LARGE OBJECT",
- "TABLESPACE", "ROLE", NULL};
+ "TABLESPACE", "ROLE", NULL};
COMPLETE_WITH_LIST(list_COMMENT);
}
@@ -1048,11 +1051,11 @@ psql_completion(char *text, int start, int end)
if (find_open_parenthesis(end))
COMPLETE_WITH_ATTR(prev_wd, "");
else
- COMPLETE_WITH_CONST("(");
+ COMPLETE_WITH_CONST("(");
}
else if (pg_strcasecmp(prev5_wd, "INDEX") == 0 &&
- pg_strcasecmp(prev3_wd, "ON") == 0 &&
- pg_strcasecmp(prev_wd, "(") == 0)
+ pg_strcasecmp(prev3_wd, "ON") == 0 &&
+ pg_strcasecmp(prev_wd, "(") == 0)
COMPLETE_WITH_ATTR(prev2_wd, "");
/* same if you put in USING */
else if (pg_strcasecmp(prev4_wd, "ON") == 0 &&
@@ -1264,7 +1267,8 @@ psql_completion(char *text, int start, int end)
if (find_open_parenthesis(end))
{
static const char func_args_query[] = "select pg_catalog.oidvectortypes(proargtypes)||')' from pg_proc where proname='%s'";
- char *tmp_buf = malloc(strlen(func_args_query) + strlen(prev_wd));
+ char *tmp_buf = malloc(strlen(func_args_query) + strlen(prev_wd));
+
sprintf(tmp_buf, func_args_query, prev_wd);
COMPLETE_WITH_QUERY(tmp_buf);
free(tmp_buf);
@@ -1278,16 +1282,17 @@ psql_completion(char *text, int start, int end)
{
static const char *const list_DROPCR[] =
{"CASCADE", "RESTRICT", NULL};
-
+
COMPLETE_WITH_LIST(list_DROPCR);
}
}
else if (pg_strcasecmp(prev4_wd, "DROP") == 0 &&
- pg_strcasecmp(prev3_wd, "FUNCTION") == 0 &&
- pg_strcasecmp(prev_wd, "(") == 0)
+ pg_strcasecmp(prev3_wd, "FUNCTION") == 0 &&
+ pg_strcasecmp(prev_wd, "(") == 0)
{
static const char func_args_query[] = "select pg_catalog.oidvectortypes(proargtypes)||')' from pg_proc where proname='%s'";
- char *tmp_buf = malloc(strlen(func_args_query) + strlen(prev2_wd));
+ char *tmp_buf = malloc(strlen(func_args_query) + strlen(prev2_wd));
+
sprintf(tmp_buf, func_args_query, prev2_wd);
COMPLETE_WITH_QUERY(tmp_buf);
free(tmp_buf);
@@ -1376,8 +1381,8 @@ psql_completion(char *text, int start, int end)
{
static const char *const list_privileg[] =
{"SELECT", "INSERT", "UPDATE", "DELETE", "RULE", "REFERENCES",
- "TRIGGER", "CREATE", "CONNECT", "TEMPORARY", "EXECUTE", "USAGE",
- "ALL", NULL};
+ "TRIGGER", "CREATE", "CONNECT", "TEMPORARY", "EXECUTE", "USAGE",
+ "ALL", NULL};
COMPLETE_WITH_LIST(list_privileg);
}
@@ -2394,22 +2399,24 @@ previous_word(int point, int skip)
/* Find the parenthesis after the last word */
-static int find_open_parenthesis(int end)
+static int
+find_open_parenthesis(int end)
{
- int i = end-1;
-
- while((rl_line_buffer[i]!=' ')&&(i>=0))
+ int i = end - 1;
+
+ while ((rl_line_buffer[i] != ' ') && (i >= 0))
{
- if (rl_line_buffer[i]=='(') return 1;
+ if (rl_line_buffer[i] == '(')
+ return 1;
i--;
}
- while((rl_line_buffer[i]==' ')&&(i>=0))
+ while ((rl_line_buffer[i] == ' ') && (i >= 0))
{
i--;
}
- if (rl_line_buffer[i]=='(')
+ if (rl_line_buffer[i] == '(')
{
- return 1;
+ return 1;
}
return 0;
diff --git a/src/bin/psql/variables.h b/src/bin/psql/variables.h
index e4dce97a0a..348b3a0e49 100644
--- a/src/bin/psql/variables.h
+++ b/src/bin/psql/variables.h
@@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/psql/variables.h,v 1.19 2006/08/29 15:19:51 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/variables.h,v 1.20 2006/10/04 00:30:06 momjian Exp $
*/
#ifndef VARIABLES_H
#define VARIABLES_H
@@ -39,7 +39,7 @@ typedef struct _variable *VariableSpace;
VariableSpace CreateVariableSpace(void);
const char *GetVariable(VariableSpace space, const char *name);
-bool ParseVariableBool(const char *val);
+bool ParseVariableBool(const char *val);
int ParseVariableNum(const char *val,
int defaultval,
int faultval,
diff --git a/src/bin/scripts/common.c b/src/bin/scripts/common.c
index d5f0262054..5190534268 100644
--- a/src/bin/scripts/common.c
+++ b/src/bin/scripts/common.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/bin/scripts/common.c,v 1.23 2006/10/03 21:45:20 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/common.c,v 1.24 2006/10/04 00:30:06 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -206,15 +206,18 @@ executeCommand(PGconn *conn, const char *query,
bool
yesno_prompt(const char *question)
{
- char prompt[256];
+ char prompt[256];
- /* translator: This is a question followed by the translated options for "yes" and "no". */
+ /*
+ * translator: This is a question followed by the translated options for
+ * "yes" and "no".
+ */
snprintf(prompt, sizeof(prompt), _("%s (%s/%s) "),
_(question), _(PG_YESLETTER), _(PG_NOLETTER));
for (;;)
{
- char *resp;
+ char *resp;
resp = simple_prompt(prompt, 1, true);
diff --git a/src/bin/scripts/createuser.c b/src/bin/scripts/createuser.c
index a3f5747004..b1351c7693 100644
--- a/src/bin/scripts/createuser.c
+++ b/src/bin/scripts/createuser.c
@@ -5,7 +5,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/bin/scripts/createuser.c,v 1.33 2006/09/22 18:50:41 petere Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/createuser.c,v 1.34 2006/10/04 00:30:06 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -17,7 +17,8 @@
static void help(const char *progname);
-enum trivalue {
+enum trivalue
+{
TRI_DEFAULT,
TRI_NO,
TRI_YES
@@ -66,13 +67,14 @@ main(int argc, char *argv[])
char *conn_limit = NULL;
bool pwprompt = false;
char *newpassword = NULL;
- /* Tri-valued variables. */
- enum trivalue createdb = TRI_DEFAULT,
- superuser = TRI_DEFAULT,
- createrole = TRI_DEFAULT,
- inherit = TRI_DEFAULT,
- login = TRI_DEFAULT,
- encrypted = TRI_DEFAULT;
+
+ /* Tri-valued variables. */
+ enum trivalue createdb = TRI_DEFAULT,
+ superuser = TRI_DEFAULT,
+ createrole = TRI_DEFAULT,
+ inherit = TRI_DEFAULT,
+ login = TRI_DEFAULT,
+ encrypted = TRI_DEFAULT;
PQExpBufferData sql;
diff --git a/src/include/access/gin.h b/src/include/access/gin.h
index 8bdb030c20..7035635e68 100644
--- a/src/include/access/gin.h
+++ b/src/include/access/gin.h
@@ -1,9 +1,9 @@
/*--------------------------------------------------------------------------
* gin.h
- * header file for postgres inverted index access method implementation.
+ * header file for postgres inverted index access method implementation.
*
- * Copyright (c) 2006, PostgreSQL Global Development Group
- * $PostgreSQL: pgsql/src/include/access/gin.h,v 1.7 2006/09/10 20:14:20 tgl Exp $
+ * Copyright (c) 2006, PostgreSQL Global Development Group
+ * $PostgreSQL: pgsql/src/include/access/gin.h,v 1.8 2006/10/04 00:30:06 momjian Exp $
*--------------------------------------------------------------------------
*/
@@ -25,51 +25,53 @@
/*
* amproc indexes for inverted indexes.
*/
-#define GIN_COMPARE_PROC 1
-#define GIN_EXTRACTVALUE_PROC 2
-#define GIN_EXTRACTQUERY_PROC 3
-#define GIN_CONSISTENT_PROC 4
-#define GINNProcs 4
+#define GIN_COMPARE_PROC 1
+#define GIN_EXTRACTVALUE_PROC 2
+#define GIN_EXTRACTQUERY_PROC 3
+#define GIN_CONSISTENT_PROC 4
+#define GINNProcs 4
typedef XLogRecPtr GinNSN;
/*
* Page opaque data in a inverted index page.
*/
-typedef struct GinPageOpaqueData {
- uint16 flags;
- OffsetNumber maxoff; /* number entries on GIN_DATA page:
- number of heap ItemPointer on GIN_DATA|GIN_LEAF page
- and number of records on GIN_DATA & ~GIN_LEAF page
- */
- BlockNumber rightlink;
+typedef struct GinPageOpaqueData
+{
+ uint16 flags;
+ OffsetNumber maxoff; /* number entries on GIN_DATA page: number of
+ * heap ItemPointer on GIN_DATA|GIN_LEAF page
+ * and number of records on GIN_DATA &
+ * ~GIN_LEAF page */
+ BlockNumber rightlink;
} GinPageOpaqueData;
typedef GinPageOpaqueData *GinPageOpaque;
#define GIN_ROOT_BLKNO (0)
-typedef struct {
- BlockIdData child_blkno; /* use it instead of BlockNumber to
- save space on page */
- ItemPointerData key;
+typedef struct
+{
+ BlockIdData child_blkno; /* use it instead of BlockNumber to save space
+ * on page */
+ ItemPointerData key;
} PostingItem;
-#define PostingItemGetBlockNumber(pointer) \
+#define PostingItemGetBlockNumber(pointer) \
BlockIdGetBlockNumber(&(pointer)->child_blkno)
-#define PostingItemSetBlockNumber(pointer, blockNumber) \
+#define PostingItemSetBlockNumber(pointer, blockNumber) \
BlockIdSet(&((pointer)->child_blkno), (blockNumber))
/*
* Page opaque data in a inverted index page.
*/
-#define GIN_DATA (1 << 0)
-#define GIN_LEAF (1 << 1)
-#define GIN_DELETED (1 << 2)
+#define GIN_DATA (1 << 0)
+#define GIN_LEAF (1 << 1)
+#define GIN_DELETED (1 << 2)
/*
- * Works on page
+ * Works on page
*/
#define GinPageGetOpaque(page) ( (GinPageOpaque) PageGetSpecialPointer(page) )
@@ -103,15 +105,15 @@ typedef struct {
#define GinSetNPosting(itup,n) ItemPointerSetOffsetNumber(&(itup)->t_tid,(n))
#define GIN_TREE_POSTING ((OffsetNumber)0xffff)
#define GinIsPostingTree(itup) ( GinGetNPosting(itup)==GIN_TREE_POSTING )
-#define GinSetPostingTree(itup, blkno) ( GinSetNPosting((itup),GIN_TREE_POSTING ), ItemPointerSetBlockNumber(&(itup)->t_tid, blkno) )
-#define GinGetPostingTree(itup) GinItemPointerGetBlockNumber(&(itup)->t_tid)
+#define GinSetPostingTree(itup, blkno) ( GinSetNPosting((itup),GIN_TREE_POSTING ), ItemPointerSetBlockNumber(&(itup)->t_tid, blkno) )
+#define GinGetPostingTree(itup) GinItemPointerGetBlockNumber(&(itup)->t_tid)
-#define GinGetOrigSizePosting(itup) GinItemPointerGetBlockNumber(&(itup)->t_tid)
+#define GinGetOrigSizePosting(itup) GinItemPointerGetBlockNumber(&(itup)->t_tid)
#define GinSetOrigSizePosting(itup,n) ItemPointerSetBlockNumber(&(itup)->t_tid,(n))
#define GinGetPosting(itup) ( (ItemPointer)(( ((char*)(itup)) + SHORTALIGN(GinGetOrigSizePosting(itup)) )) )
#define GinMaxItemSize \
- ((BLCKSZ - SizeOfPageHeaderData - \
+ ((BLCKSZ - SizeOfPageHeaderData - \
MAXALIGN(sizeof(GinPageOpaqueData))) / 3 - sizeof(ItemIdData))
@@ -121,8 +123,8 @@ typedef struct {
#define GinDataPageGetData(page) \
(PageGetContents(page)+MAXALIGN(sizeof(ItemPointerData)))
#define GinDataPageGetRightBound(page) ((ItemPointer)PageGetContents(page))
-#define GinSizeOfItem(page) ( (GinPageIsLeaf(page)) ? sizeof(ItemPointerData) : sizeof(PostingItem) )
-#define GinDataPageGetItem(page,i) ( GinDataPageGetData(page) + ((i)-1) * GinSizeOfItem(page) )
+#define GinSizeOfItem(page) ( (GinPageIsLeaf(page)) ? sizeof(ItemPointerData) : sizeof(PostingItem) )
+#define GinDataPageGetItem(page,i) ( GinDataPageGetData(page) + ((i)-1) * GinSizeOfItem(page) )
#define GinDataPageGetFreeSpace(page) \
( BLCKSZ - SizeOfPageHeaderData - MAXALIGN(sizeof(GinPageOpaqueData)) - \
@@ -131,11 +133,12 @@ typedef struct {
-#define GIN_UNLOCK BUFFER_LOCK_UNLOCK
-#define GIN_SHARE BUFFER_LOCK_SHARE
+#define GIN_UNLOCK BUFFER_LOCK_UNLOCK
+#define GIN_SHARE BUFFER_LOCK_SHARE
#define GIN_EXCLUSIVE BUFFER_LOCK_EXCLUSIVE
-typedef struct GinState {
+typedef struct GinState
+{
FmgrInfo compareFn;
FmgrInfo extractValueFn;
FmgrInfo extractQueryFn;
@@ -150,80 +153,88 @@ typedef struct GinState {
#define XLOG_GIN_CREATE_PTREE 0x10
-typedef struct ginxlogCreatePostingTree {
- RelFileNode node;
- BlockNumber blkno;
- uint32 nitem;
+typedef struct ginxlogCreatePostingTree
+{
+ RelFileNode node;
+ BlockNumber blkno;
+ uint32 nitem;
/* follows list of heap's ItemPointer */
} ginxlogCreatePostingTree;
#define XLOG_GIN_INSERT 0x20
-typedef struct ginxlogInsert {
- RelFileNode node;
- BlockNumber blkno;
- BlockNumber updateBlkno;
- OffsetNumber offset;
- bool isDelete;
- bool isData;
- bool isLeaf;
- OffsetNumber nitem;
-
- /* follows: tuples or ItemPointerData or PostingItem or list of ItemPointerData*/
+typedef struct ginxlogInsert
+{
+ RelFileNode node;
+ BlockNumber blkno;
+ BlockNumber updateBlkno;
+ OffsetNumber offset;
+ bool isDelete;
+ bool isData;
+ bool isLeaf;
+ OffsetNumber nitem;
+
+ /*
+ * follows: tuples or ItemPointerData or PostingItem or list of
+ * ItemPointerData
+ */
} ginxlogInsert;
-#define XLOG_GIN_SPLIT 0x30
+#define XLOG_GIN_SPLIT 0x30
-typedef struct ginxlogSplit {
- RelFileNode node;
- BlockNumber lblkno;
- BlockNumber rootBlkno;
- BlockNumber rblkno;
- BlockNumber rrlink;
- OffsetNumber separator;
- OffsetNumber nitem;
+typedef struct ginxlogSplit
+{
+ RelFileNode node;
+ BlockNumber lblkno;
+ BlockNumber rootBlkno;
+ BlockNumber rblkno;
+ BlockNumber rrlink;
+ OffsetNumber separator;
+ OffsetNumber nitem;
- bool isData;
- bool isLeaf;
- bool isRootSplit;
+ bool isData;
+ bool isLeaf;
+ bool isRootSplit;
- BlockNumber leftChildBlkno;
- BlockNumber updateBlkno;
+ BlockNumber leftChildBlkno;
+ BlockNumber updateBlkno;
- ItemPointerData rightbound; /* used only in posting tree */
+ ItemPointerData rightbound; /* used only in posting tree */
/* follows: list of tuple or ItemPointerData or PostingItem */
} ginxlogSplit;
-#define XLOG_GIN_VACUUM_PAGE 0x40
+#define XLOG_GIN_VACUUM_PAGE 0x40
-typedef struct ginxlogVacuumPage {
- RelFileNode node;
- BlockNumber blkno;
- OffsetNumber nitem;
+typedef struct ginxlogVacuumPage
+{
+ RelFileNode node;
+ BlockNumber blkno;
+ OffsetNumber nitem;
/* follows content of page */
} ginxlogVacuumPage;
-#define XLOG_GIN_DELETE_PAGE 0x50
+#define XLOG_GIN_DELETE_PAGE 0x50
-typedef struct ginxlogDeletePage {
- RelFileNode node;
- BlockNumber blkno;
- BlockNumber parentBlkno;
- OffsetNumber parentOffset;
- BlockNumber leftBlkno;
- BlockNumber rightLink;
+typedef struct ginxlogDeletePage
+{
+ RelFileNode node;
+ BlockNumber blkno;
+ BlockNumber parentBlkno;
+ OffsetNumber parentOffset;
+ BlockNumber leftBlkno;
+ BlockNumber rightLink;
} ginxlogDeletePage;
/* ginutil.c */
extern Datum ginoptions(PG_FUNCTION_ARGS);
-extern void initGinState( GinState *state, Relation index );
+extern void initGinState(GinState *state, Relation index);
extern Buffer GinNewBuffer(Relation index);
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, uint32 *nentries);
-extern Datum* extractEntriesSU(GinState *ginstate, Datum value, uint32 *nentries);
-extern Page GinPageGetCopyPage( Page page );
+extern int compareEntries(GinState *ginstate, Datum a, Datum b);
+extern Datum *extractEntriesS(GinState *ginstate, Datum value, uint32 *nentries);
+extern Datum *extractEntriesSU(GinState *ginstate, Datum value, uint32 *nentries);
+extern Page GinPageGetCopyPage(Page page);
/* gininsert.c */
extern Datum ginbuild(PG_FUNCTION_ARGS);
@@ -238,147 +249,157 @@ extern bool gin_safe_restartpoint(void);
/* ginbtree.c */
-typedef struct GinBtreeStack {
- BlockNumber blkno;
- Buffer buffer;
- OffsetNumber off;
- /* predictNumber contains prediction number of pages on current level */
- uint32 predictNumber;
+typedef struct GinBtreeStack
+{
+ BlockNumber blkno;
+ Buffer buffer;
+ OffsetNumber off;
+ /* predictNumber contains prediction number of pages on current level */
+ uint32 predictNumber;
struct GinBtreeStack *parent;
} GinBtreeStack;
typedef struct GinBtreeData *GinBtree;
-typedef struct GinBtreeData {
+typedef struct GinBtreeData
+{
/* search methods */
- BlockNumber (*findChildPage)(GinBtree, GinBtreeStack *);
- bool (*isMoveRight)(GinBtree, Page);
- bool (*findItem)(GinBtree, GinBtreeStack *);
+ BlockNumber (*findChildPage) (GinBtree, GinBtreeStack *);
+ bool (*isMoveRight) (GinBtree, Page);
+ bool (*findItem) (GinBtree, GinBtreeStack *);
/* insert methods */
- OffsetNumber (*findChildPtr)(GinBtree, Page, BlockNumber, OffsetNumber);
- BlockNumber (*getLeftMostPage)(GinBtree, Page);
- bool (*isEnoughSpace)(GinBtree, Buffer, OffsetNumber);
- void (*placeToPage)(GinBtree, Buffer, OffsetNumber, XLogRecData**);
- Page (*splitPage)(GinBtree, Buffer, Buffer, OffsetNumber, XLogRecData**);
- void (*fillRoot)(GinBtree, Buffer, Buffer, Buffer);
+ OffsetNumber (*findChildPtr) (GinBtree, Page, BlockNumber, OffsetNumber);
+ BlockNumber (*getLeftMostPage) (GinBtree, Page);
+ bool (*isEnoughSpace) (GinBtree, Buffer, OffsetNumber);
+ void (*placeToPage) (GinBtree, Buffer, OffsetNumber, XLogRecData **);
+ Page (*splitPage) (GinBtree, Buffer, Buffer, OffsetNumber, XLogRecData **);
+ void (*fillRoot) (GinBtree, Buffer, Buffer, Buffer);
- bool searchMode;
+ bool searchMode;
- Relation index;
- GinState *ginstate;
- bool fullScan;
- bool isBuild;
+ Relation index;
+ GinState *ginstate;
+ bool fullScan;
+ bool isBuild;
- BlockNumber rightblkno;
+ BlockNumber rightblkno;
/* Entry options */
- Datum entryValue;
- IndexTuple entry;
- bool isDelete;
+ Datum entryValue;
+ IndexTuple entry;
+ bool isDelete;
/* Data (posting tree) option */
- ItemPointerData *items;
- uint32 nitem;
- uint32 curitem;
+ ItemPointerData *items;
+ uint32 nitem;
+ uint32 curitem;
- PostingItem pitem;
+ PostingItem pitem;
} GinBtreeData;
-extern GinBtreeStack* ginPrepareFindLeafPage(GinBtree btree, BlockNumber blkno);
-extern GinBtreeStack* ginFindLeafPage(GinBtree btree, GinBtreeStack *stack );
-extern void freeGinBtreeStack( GinBtreeStack *stack );
+extern GinBtreeStack *ginPrepareFindLeafPage(GinBtree btree, BlockNumber blkno);
+extern GinBtreeStack *ginFindLeafPage(GinBtree btree, GinBtreeStack *stack);
+extern void freeGinBtreeStack(GinBtreeStack *stack);
extern void ginInsertValue(GinBtree btree, GinBtreeStack *stack);
-extern void findParents( GinBtree btree, GinBtreeStack *stack, BlockNumber rootBlkno);
+extern void findParents(GinBtree btree, GinBtreeStack *stack, BlockNumber rootBlkno);
/* ginentrypage.c */
extern IndexTuple GinFormTuple(GinState *ginstate, Datum key, ItemPointerData *ipd, uint32 nipd);
extern Datum ginGetHighKey(GinState *ginstate, Page page);
-extern void prepareEntryScan( GinBtree btree, Relation index, Datum value, GinState *ginstate);
+extern void prepareEntryScan(GinBtree btree, Relation index, Datum value, GinState *ginstate);
extern void entryFillRoot(GinBtree btree, Buffer root, Buffer lbuf, Buffer rbuf);
extern IndexTuple ginPageGetLinkItup(Buffer buf);
/* gindatapage.c */
-extern int compareItemPointers( ItemPointer a, ItemPointer b );
-extern void MergeItemPointers(
- ItemPointerData *dst,
- ItemPointerData *a, uint32 na,
- ItemPointerData *b, uint32 nb
- );
-
-extern void GinDataPageAddItem( Page page, void *data, OffsetNumber offset );
+extern int compareItemPointers(ItemPointer a, ItemPointer b);
+extern void
+MergeItemPointers(
+ ItemPointerData *dst,
+ ItemPointerData *a, uint32 na,
+ ItemPointerData *b, uint32 nb
+);
+
+extern void GinDataPageAddItem(Page page, void *data, OffsetNumber offset);
extern void PageDeletePostingItem(Page page, OffsetNumber offset);
-typedef struct {
- GinBtreeData btree;
- GinBtreeStack *stack;
+typedef struct
+{
+ GinBtreeData btree;
+ GinBtreeStack *stack;
} GinPostingTreeScan;
-extern GinPostingTreeScan* prepareScanPostingTree( Relation index,
- BlockNumber rootBlkno, bool searchMode);
-extern void insertItemPointer(GinPostingTreeScan *gdi,
- ItemPointerData *items, uint32 nitem);
-extern Buffer scanBeginPostingTree( GinPostingTreeScan *gdi );
+extern GinPostingTreeScan *prepareScanPostingTree(Relation index,
+ BlockNumber rootBlkno, bool searchMode);
+extern void insertItemPointer(GinPostingTreeScan *gdi,
+ ItemPointerData *items, uint32 nitem);
+extern Buffer scanBeginPostingTree(GinPostingTreeScan *gdi);
extern void dataFillRoot(GinBtree btree, Buffer root, Buffer lbuf, Buffer rbuf);
-extern void prepareDataScan( GinBtree btree, Relation index);
+extern void prepareDataScan(GinBtree btree, Relation index);
+
/* ginscan.c */
typedef struct GinScanEntryData *GinScanEntry;
-typedef struct GinScanEntryData {
+typedef struct GinScanEntryData
+{
/* link to the equals entry in current scan key */
- GinScanEntry master;
+ GinScanEntry master;
- /* link to values reported to consistentFn,
- points to GinScanKey->entryRes[i]*/
- bool *pval;
+ /*
+ * link to values reported to consistentFn, points to
+ * GinScanKey->entryRes[i]
+ */
+ bool *pval;
- /* entry, got from extractQueryFn */
- Datum entry;
+ /* entry, got from extractQueryFn */
+ Datum entry;
/* current ItemPointer to heap, its offset in buffer and buffer */
- ItemPointerData curItem;
- OffsetNumber offset;
- Buffer buffer;
+ ItemPointerData curItem;
+ OffsetNumber offset;
+ Buffer buffer;
/* in case of Posing list */
- ItemPointerData *list;
- uint32 nlist;
+ ItemPointerData *list;
+ uint32 nlist;
- bool isFinished;
- bool reduceResult;
- uint32 predictNumberResult;
+ bool isFinished;
+ bool reduceResult;
+ uint32 predictNumberResult;
} GinScanEntryData;
-typedef struct GinScanKeyData {
- /* Number of entries in query (got by extractQueryFn) */
- uint32 nentries;
+typedef struct GinScanKeyData
+{
+ /* Number of entries in query (got by extractQueryFn) */
+ uint32 nentries;
/* array of ItemPointer result, reported to consistentFn */
- bool *entryRes;
+ bool *entryRes;
- /* array of scans per entry */
- GinScanEntry scanEntry;
+ /* array of scans per entry */
+ GinScanEntry scanEntry;
/* for calling consistentFn(GinScanKey->entryRes, strategy, query) */
- StrategyNumber strategy;
- Datum query;
+ StrategyNumber strategy;
+ Datum query;
- ItemPointerData curItem;
- bool firstCall;
- bool isFinished;
+ ItemPointerData curItem;
+ bool firstCall;
+ bool isFinished;
} GinScanKeyData;
-typedef GinScanKeyData *GinScanKey;
+typedef GinScanKeyData *GinScanKey;
-typedef struct GinScanOpaqueData {
- MemoryContext tempCtx;
- GinState ginstate;
+typedef struct GinScanOpaqueData
+{
+ MemoryContext tempCtx;
+ GinState ginstate;
- GinScanKey keys;
- uint32 nkeys;
+ GinScanKey keys;
+ uint32 nkeys;
- GinScanKey markPos;
+ GinScanKey markPos;
} GinScanOpaqueData;
typedef GinScanOpaqueData *GinScanOpaque;
@@ -391,12 +412,12 @@ extern Datum ginrestrpos(PG_FUNCTION_ARGS);
extern void newScanKey(IndexScanDesc scan);
/* ginget.c */
-extern DLLIMPORT int GinFuzzySearchLimit;
+extern DLLIMPORT int GinFuzzySearchLimit;
-#define ItemPointerSetMax(p) ItemPointerSet( (p), (BlockNumber)0xffffffff, (OffsetNumber)0xffff )
-#define ItemPointerIsMax(p) ( ItemPointerGetBlockNumber(p) == (BlockNumber)0xffffffff && ItemPointerGetOffsetNumber(p) == (OffsetNumber)0xffff )
-#define ItemPointerSetMin(p) ItemPointerSet( (p), (BlockNumber)0, (OffsetNumber)0)
-#define ItemPointerIsMin(p) ( ItemPointerGetBlockNumber(p) == (BlockNumber)0 && ItemPointerGetOffsetNumber(p) == (OffsetNumber)0 )
+#define ItemPointerSetMax(p) ItemPointerSet( (p), (BlockNumber)0xffffffff, (OffsetNumber)0xffff )
+#define ItemPointerIsMax(p) ( ItemPointerGetBlockNumber(p) == (BlockNumber)0xffffffff && ItemPointerGetOffsetNumber(p) == (OffsetNumber)0xffff )
+#define ItemPointerSetMin(p) ItemPointerSet( (p), (BlockNumber)0, (OffsetNumber)0)
+#define ItemPointerIsMin(p) ( ItemPointerGetBlockNumber(p) == (BlockNumber)0 && ItemPointerGetOffsetNumber(p) == (OffsetNumber)0 )
extern Datum gingetmulti(PG_FUNCTION_ARGS);
extern Datum gingettuple(PG_FUNCTION_ARGS);
@@ -410,31 +431,33 @@ extern Datum ginarrayextract(PG_FUNCTION_ARGS);
extern Datum ginarrayconsistent(PG_FUNCTION_ARGS);
/* ginbulk.c */
-typedef struct EntryAccumulator {
- Datum value;
- uint32 length;
- uint32 number;
+typedef struct EntryAccumulator
+{
+ Datum value;
+ uint32 length;
+ uint32 number;
ItemPointerData *list;
bool shouldSort;
- struct EntryAccumulator *left;
- struct EntryAccumulator *right;
+ struct EntryAccumulator *left;
+ struct EntryAccumulator *right;
} EntryAccumulator;
-typedef struct {
- GinState *ginstate;
- EntryAccumulator *entries;
+typedef struct
+{
+ GinState *ginstate;
+ EntryAccumulator *entries;
uint32 maxdepth;
- EntryAccumulator **stack;
- uint32 stackpos;
- uint32 allocatedMemory;
+ EntryAccumulator **stack;
+ uint32 stackpos;
+ uint32 allocatedMemory;
- uint32 length;
- EntryAccumulator *entryallocator;
+ uint32 length;
+ EntryAccumulator *entryallocator;
} BuildAccumulator;
extern void ginInitBA(BuildAccumulator *accum);
-extern void ginInsertRecordBA( BuildAccumulator *accum,
- ItemPointer heapptr, Datum *entries, uint32 nentry );
-extern ItemPointerData* ginGetEntry(BuildAccumulator *accum, Datum *entry, uint32 *n);
+extern void ginInsertRecordBA(BuildAccumulator *accum,
+ ItemPointer heapptr, Datum *entries, uint32 nentry);
+extern ItemPointerData *ginGetEntry(BuildAccumulator *accum, Datum *entry, uint32 *n);
#endif
diff --git a/src/include/access/gist.h b/src/include/access/gist.h
index 1b3c042e95..1502af67ec 100644
--- a/src/include/access/gist.h
+++ b/src/include/access/gist.h
@@ -9,7 +9,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/access/gist.h,v 1.55 2006/09/10 00:29:34 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/gist.h,v 1.56 2006/10/04 00:30:06 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -80,7 +80,7 @@ typedef GISTPageOpaqueData *GISTPageOpaque;
* PickSplit should check spl_(r|l)datum_exists. If it is 'true',
* that corresponding spl_(r|l)datum already defined and
* PickSplit should use that value. PickSplit should always set
- * spl_(r|l)datum_exists to false: GiST will check value to
+ * spl_(r|l)datum_exists to false: GiST will check value to
* control supportng this feature by PickSplit...
*/
typedef struct GIST_SPLITVEC
@@ -88,12 +88,12 @@ typedef struct GIST_SPLITVEC
OffsetNumber *spl_left; /* array of entries that go left */
int spl_nleft; /* size of this array */
Datum spl_ldatum; /* Union of keys in spl_left */
- bool spl_ldatum_exists; /* true, if spl_ldatum already exists. */
+ bool spl_ldatum_exists; /* true, if spl_ldatum already exists. */
OffsetNumber *spl_right; /* array of entries that go right */
int spl_nright; /* size of the array */
Datum spl_rdatum; /* Union of keys in spl_right */
- bool spl_rdatum_exists; /* true, if spl_rdatum already exists. */
+ bool spl_rdatum_exists; /* true, if spl_rdatum already exists. */
} GIST_SPLITVEC;
/*
diff --git a/src/include/access/gist_private.h b/src/include/access/gist_private.h
index de917c8b83..0c17fd4211 100644
--- a/src/include/access/gist_private.h
+++ b/src/include/access/gist_private.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/access/gist_private.h,v 1.23 2006/08/07 16:57:57 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/gist_private.h,v 1.24 2006/10/04 00:30:07 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -144,7 +144,7 @@ typedef struct SplitedPageLayout
gistxlogPage block;
IndexTupleData *list;
int lenlist;
- IndexTuple itup; /* union key for page */
+ IndexTuple itup; /* union key for page */
Page page; /* to operate */
Buffer buffer; /* to write after all proceed */
@@ -180,19 +180,22 @@ typedef struct GISTInsertStack
struct GISTInsertStack *next;
} GISTInsertStack;
-typedef struct GistSplitVector {
- GIST_SPLITVEC splitVector; /* to/from PickSplit method */
+typedef struct GistSplitVector
+{
+ GIST_SPLITVEC splitVector; /* to/from PickSplit method */
- Datum spl_lattr[INDEX_MAX_KEYS]; /* Union of subkeys in spl_left */
- bool spl_lisnull[INDEX_MAX_KEYS];
- bool spl_leftvalid;
+ Datum spl_lattr[INDEX_MAX_KEYS]; /* Union of subkeys in
+ * spl_left */
+ bool spl_lisnull[INDEX_MAX_KEYS];
+ bool spl_leftvalid;
- Datum spl_rattr[INDEX_MAX_KEYS]; /* Union of subkeys in spl_right */
- bool spl_risnull[INDEX_MAX_KEYS];
- bool spl_rightvalid;
+ Datum spl_rattr[INDEX_MAX_KEYS]; /* Union of subkeys in
+ * spl_right */
+ bool spl_risnull[INDEX_MAX_KEYS];
+ bool spl_rightvalid;
- bool *spl_equiv; /* equivalent tuples which can be freely
- * distributed between left and right pages */
+ bool *spl_equiv; /* equivalent tuples which can be freely
+ * distributed between left and right pages */
} GistSplitVector;
#define XLogRecPtrIsInvalid( r ) ( (r).xlogid == 0 && (r).xrecoff == 0 )
@@ -255,7 +258,7 @@ extern bool gist_safe_restartpoint(void);
extern IndexTuple gist_form_invalid_tuple(BlockNumber blkno);
extern XLogRecData *formUpdateRdata(RelFileNode node, Buffer buffer,
- OffsetNumber *todelete, int ntodelete,
+ OffsetNumber *todelete, int ntodelete,
IndexTuple *itup, int ituplen, ItemPointer key);
extern XLogRecData *formSplitRdata(RelFileNode node,
@@ -271,7 +274,7 @@ extern Datum gistgetmulti(PG_FUNCTION_ARGS);
/* gistutil.c */
#define GiSTPageSize \
- ( BLCKSZ - SizeOfPageHeaderData - MAXALIGN(sizeof(GISTPageOpaqueData)) )
+ ( BLCKSZ - SizeOfPageHeaderData - MAXALIGN(sizeof(GISTPageOpaqueData)) )
#define GIST_MIN_FILLFACTOR 10
#define GIST_DEFAULT_FILLFACTOR 90
@@ -287,7 +290,7 @@ extern IndexTuple *gistextractpage(Page page, int *len /* out */ );
extern IndexTuple *gistjoinvector(
IndexTuple *itvec, int *len,
IndexTuple *additvec, int addlen);
-extern IndexTupleData* gistfillitupvec(IndexTuple *vec, int veclen, int *memlen);
+extern IndexTupleData *gistfillitupvec(IndexTuple *vec, int veclen, int *memlen);
extern IndexTuple gistunion(Relation r, IndexTuple *itvec,
int len, GISTSTATE *giststate);
@@ -312,27 +315,27 @@ extern void gistdentryinit(GISTSTATE *giststate, int nkey, GISTENTRY *e,
bool l, bool isNull);
extern float gistpenalty(GISTSTATE *giststate, int attno,
- GISTENTRY *key1, bool isNull1,
- GISTENTRY *key2, bool isNull2);
+ GISTENTRY *key1, bool isNull1,
+ GISTENTRY *key2, bool isNull2);
extern bool gistMakeUnionItVec(GISTSTATE *giststate, IndexTuple *itvec, int len, int startkey,
- Datum *attr, bool *isnull );
+ Datum *attr, bool *isnull);
extern bool gistKeyIsEQ(GISTSTATE *giststate, int attno, Datum a, Datum b);
extern void gistDeCompressAtt(GISTSTATE *giststate, Relation r, IndexTuple tuple, Page p,
- OffsetNumber o, GISTENTRY *attdata, bool *isnull);
+ OffsetNumber o, GISTENTRY *attdata, bool *isnull);
-extern void gistMakeUnionKey( GISTSTATE *giststate, int attno,
- GISTENTRY *entry1, bool isnull1,
- GISTENTRY *entry2, bool isnull2,
- Datum *dst, bool *dstisnull );
+extern void gistMakeUnionKey(GISTSTATE *giststate, int attno,
+ GISTENTRY *entry1, bool isnull1,
+ GISTENTRY *entry2, bool isnull2,
+ Datum *dst, bool *dstisnull);
/* gistvacuum.c */
extern Datum gistbulkdelete(PG_FUNCTION_ARGS);
extern Datum gistvacuumcleanup(PG_FUNCTION_ARGS);
/* gistsplit.c */
-extern void gistSplitByKey(Relation r, Page page, IndexTuple *itup,
- int len, GISTSTATE *giststate,
- GistSplitVector *v, GistEntryVector *entryvec,
- int attno);
+extern void gistSplitByKey(Relation r, Page page, IndexTuple *itup,
+ int len, GISTSTATE *giststate,
+ GistSplitVector *v, GistEntryVector *entryvec,
+ int attno);
#endif /* GIST_PRIVATE_H */
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h
index 772a6588fa..b2dd0f3390 100644
--- a/src/include/access/heapam.h
+++ b/src/include/access/heapam.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/access/heapam.h,v 1.115 2006/08/18 16:09:10 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/heapam.h,v 1.116 2006/10/04 00:30:07 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -220,7 +220,7 @@ extern void heap_deformtuple(HeapTuple tuple, TupleDesc tupleDesc,
Datum *values, char *nulls);
extern void heap_freetuple(HeapTuple htup);
extern MinimalTuple heap_form_minimal_tuple(TupleDesc tupleDescriptor,
- Datum *values, bool *isnull);
+ Datum *values, bool *isnull);
extern void heap_free_minimal_tuple(MinimalTuple mtup);
extern MinimalTuple heap_copy_minimal_tuple(MinimalTuple mtup);
extern HeapTuple heap_tuple_from_minimal_tuple(MinimalTuple mtup);
diff --git a/src/include/access/hio.h b/src/include/access/hio.h
index 8cb8f8925f..d93c27a26d 100644
--- a/src/include/access/hio.h
+++ b/src/include/access/hio.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/access/hio.h,v 1.32 2006/07/13 17:47:01 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/access/hio.h,v 1.33 2006/10/04 00:30:07 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -21,6 +21,6 @@
extern void RelationPutHeapTuple(Relation relation, Buffer buffer,
HeapTuple tuple);
extern Buffer RelationGetBufferForTuple(Relation relation, Size len,
- Buffer otherBuffer, bool use_fsm);
+ Buffer otherBuffer, bool use_fsm);
#endif /* HIO_H */
diff --git a/src/include/access/htup.h b/src/include/access/htup.h
index caac3229f3..edfce82bc0 100644
--- a/src/include/access/htup.h
+++ b/src/include/access/htup.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/access/htup.h,v 1.85 2006/07/13 17:47:01 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/access/htup.h,v 1.86 2006/10/04 00:30:07 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -356,7 +356,7 @@ do { \
* MinimalTuple is an alternate representation that is used for transient
* tuples inside the executor, in places where transaction status information
* is not required, the tuple rowtype is known, and shaving off a few bytes
- * is worthwhile because we need to store many tuples. The representation
+ * is worthwhile because we need to store many tuples. The representation
* is chosen so that tuple access routines can work with either full or
* minimal tuples via a HeapTupleData pointer structure. The access routines
* see no difference, except that they must not access the transaction status
@@ -367,7 +367,7 @@ do { \
* and thereby prevent accidental use of the nonexistent fields.
*
* MinimalTupleData contains a length word, some padding, and fields matching
- * HeapTupleHeaderData beginning with t_natts. The padding is chosen so that
+ * HeapTupleHeaderData beginning with t_natts. The padding is chosen so that
* offsetof(t_natts) is the same modulo MAXIMUM_ALIGNOF in both structs.
* This makes data alignment rules equivalent in both cases.
*
@@ -431,7 +431,7 @@ typedef MinimalTupleData *MinimalTuple;
* limited contexts where the code knows that case #1 will never apply.)
*
* * Separately allocated minimal tuple: t_data points MINIMAL_TUPLE_OFFSET
- * bytes before the start of a MinimalTuple. As with the previous case,
+ * bytes before the start of a MinimalTuple. As with the previous case,
* this can't be told apart from case #1 by inspection; code setting up
* or destroying this representation has to know what it's doing.
*
diff --git a/src/include/access/nbtree.h b/src/include/access/nbtree.h
index 33d295a71b..3350a057b2 100644
--- a/src/include/access/nbtree.h
+++ b/src/include/access/nbtree.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/access/nbtree.h,v 1.104 2006/08/24 01:18:34 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/nbtree.h,v 1.105 2006/10/04 00:30:07 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -35,10 +35,10 @@ typedef uint16 BTCycleId;
* and status. If the page is deleted, we replace the level with the
* next-transaction-ID value indicating when it is safe to reclaim the page.
*
- * We also store a "vacuum cycle ID". When a page is split while VACUUM is
+ * We also store a "vacuum cycle ID". When a page is split while VACUUM is
* processing the index, a nonzero value associated with the VACUUM run is
- * stored into both halves of the split page. (If VACUUM is not running,
- * both pages receive zero cycleids.) This allows VACUUM to detect whether
+ * stored into both halves of the split page. (If VACUUM is not running,
+ * both pages receive zero cycleids.) This allows VACUUM to detect whether
* a page was split since it started, with a small probability of false match
* if the page was last split some exact multiple of 65536 VACUUMs ago.
* Also, during a split, the BTP_SPLIT_END flag is cleared in the left
@@ -71,7 +71,7 @@ typedef BTPageOpaqueData *BTPageOpaque;
#define BTP_META (1 << 3) /* meta-page */
#define BTP_HALF_DEAD (1 << 4) /* empty, but still in tree */
#define BTP_SPLIT_END (1 << 5) /* rightmost page of split group */
-#define BTP_HAS_GARBAGE (1 << 6) /* page has LP_DELETEd tuples */
+#define BTP_HAS_GARBAGE (1 << 6) /* page has LP_DELETEd tuples */
/*
@@ -140,7 +140,7 @@ typedef struct BTMetaPageData
( (i1).ip_blkid.bi_hi == (i2).ip_blkid.bi_hi && \
(i1).ip_blkid.bi_lo == (i2).ip_blkid.bi_lo && \
(i1).ip_posid == (i2).ip_posid )
-#define BTEntrySame(i1, i2) \
+#define BTEntrySame(i1, i2) \
BTTidSame((i1)->t_tid, (i2)->t_tid)
@@ -203,7 +203,7 @@ typedef struct BTMetaPageData
#define XLOG_BTREE_SPLIT_R_ROOT 0x60 /* as above, new item on right */
#define XLOG_BTREE_DELETE 0x70 /* delete leaf index tuple */
#define XLOG_BTREE_DELETE_PAGE 0x80 /* delete an entire page */
-#define XLOG_BTREE_DELETE_PAGE_META 0x90 /* same, plus update metapage */
+#define XLOG_BTREE_DELETE_PAGE_META 0x90 /* same, plus update metapage */
#define XLOG_BTREE_NEWROOT 0xA0 /* new root page */
/*
@@ -368,17 +368,17 @@ typedef BTStackData *BTStack;
* BTScanOpaqueData is the btree-private state needed for an indexscan.
* This consists of preprocessed scan keys (see _bt_preprocess_keys() for
* details of the preprocessing), information about the current location
- * of the scan, and information about the marked location, if any. (We use
+ * of the scan, and information about the marked location, if any. (We use
* BTScanPosData to represent the data needed for each of current and marked
- * locations.) In addition we can remember some known-killed index entries
+ * locations.) In addition we can remember some known-killed index entries
* that must be marked before we can move off the current page.
*
* Index scans work a page at a time: we pin and read-lock the page, identify
* all the matching items on the page and save them in BTScanPosData, then
* release the read-lock while returning the items to the caller for
- * processing. This approach minimizes lock/unlock traffic. Note that we
+ * processing. This approach minimizes lock/unlock traffic. Note that we
* keep the pin on the index page until the caller is done with all the items
- * (this is needed for VACUUM synchronization, see nbtree/README). When we
+ * (this is needed for VACUUM synchronization, see nbtree/README). When we
* are ready to step to the next page, if the caller has told us any of the
* items were killed, we re-lock the page to mark them killed, then unlock.
* Finally we drop the pin and step to the next page in the appropriate
@@ -420,7 +420,7 @@ typedef struct BTScanPosData
int lastItem; /* last valid index in items[] */
int itemIndex; /* current index in items[] */
- BTScanPosItem items[MaxIndexTuplesPerPage]; /* MUST BE LAST */
+ BTScanPosItem items[MaxIndexTuplesPerPage]; /* MUST BE LAST */
} BTScanPosData;
typedef BTScanPosData *BTScanPos;
@@ -439,11 +439,11 @@ typedef struct BTScanOpaqueData
int numKilled; /* number of currently stored items */
/*
- * If the marked position is on the same page as current position,
- * we don't use markPos, but just keep the marked itemIndex in
- * markItemIndex (all the rest of currPos is valid for the mark position).
- * Hence, to determine if there is a mark, first look at markItemIndex,
- * then at markPos.
+ * If the marked position is on the same page as current position, we
+ * don't use markPos, but just keep the marked itemIndex in markItemIndex
+ * (all the rest of currPos is valid for the mark position). Hence, to
+ * determine if there is a mark, first look at markItemIndex, then at
+ * markPos.
*/
int markItemIndex; /* itemIndex, or -1 if not valid */
@@ -457,8 +457,8 @@ typedef BTScanOpaqueData *BTScanOpaque;
/*
* We use these private sk_flags bits in preprocessed scan keys
*/
-#define SK_BT_REQFWD 0x00010000 /* required to continue forward scan */
-#define SK_BT_REQBKWD 0x00020000 /* required to continue backward scan */
+#define SK_BT_REQFWD 0x00010000 /* required to continue forward scan */
+#define SK_BT_REQBKWD 0x00020000 /* required to continue backward scan */
/*
@@ -528,8 +528,8 @@ extern void _bt_freeskey(ScanKey skey);
extern void _bt_freestack(BTStack stack);
extern void _bt_preprocess_keys(IndexScanDesc scan);
extern bool _bt_checkkeys(IndexScanDesc scan,
- Page page, OffsetNumber offnum,
- ScanDirection dir, bool *continuescan);
+ Page page, OffsetNumber offnum,
+ ScanDirection dir, bool *continuescan);
extern void _bt_killitems(IndexScanDesc scan, bool haveLock);
extern BTCycleId _bt_vacuum_cycleid(Relation rel);
extern BTCycleId _bt_start_vacuum(Relation rel);
diff --git a/src/include/access/reloptions.h b/src/include/access/reloptions.h
index 82474f4707..2664069767 100644
--- a/src/include/access/reloptions.h
+++ b/src/include/access/reloptions.h
@@ -11,7 +11,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/access/reloptions.h,v 1.1 2006/07/03 22:45:40 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/reloptions.h,v 1.2 2006/10/04 00:30:07 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -21,18 +21,18 @@
#include "nodes/pg_list.h"
extern Datum transformRelOptions(Datum oldOptions, List *defList,
- bool ignoreOids, bool isReset);
+ bool ignoreOids, bool isReset);
extern void parseRelOptions(Datum options, int numkeywords,
- const char * const *keywords,
- char **values, bool validate);
+ const char *const * keywords,
+ char **values, bool validate);
extern bytea *default_reloptions(Datum reloptions, bool validate,
- int minFillfactor, int defaultFillfactor);
+ int minFillfactor, int defaultFillfactor);
extern bytea *heap_reloptions(char relkind, Datum reloptions, bool validate);
extern bytea *index_reloptions(RegProcedure amoptions, Datum reloptions,
- bool validate);
+ bool validate);
#endif /* RELOPTIONS_H */
diff --git a/src/include/access/relscan.h b/src/include/access/relscan.h
index d32ab6d524..45ac9b8265 100644
--- a/src/include/access/relscan.h
+++ b/src/include/access/relscan.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/access/relscan.h,v 1.49 2006/07/31 20:09:05 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/relscan.h,v 1.50 2006/10/04 00:30:07 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -27,12 +27,12 @@ typedef struct HeapScanDescData
int rs_nkeys; /* number of scan keys */
ScanKey rs_key; /* array of scan key descriptors */
BlockNumber rs_nblocks; /* number of blocks to scan */
- bool rs_pageatatime; /* verify visibility page-at-a-time? */
+ bool rs_pageatatime; /* verify visibility page-at-a-time? */
/* scan current state */
bool rs_inited; /* false = scan not init'd yet */
HeapTupleData rs_ctup; /* current tuple in scan, if any */
- BlockNumber rs_cblock; /* current block # in scan, if any */
+ BlockNumber rs_cblock; /* current block # in scan, if any */
Buffer rs_cbuf; /* current buffer in scan, if any */
/* NB: if rs_cbuf is not InvalidBuffer, we hold a pin on that buffer */
ItemPointerData rs_mctid; /* marked scan position, if any */
diff --git a/src/include/access/skey.h b/src/include/access/skey.h
index 7a846723df..d81b6fd9a9 100644
--- a/src/include/access/skey.h
+++ b/src/include/access/skey.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/access/skey.h,v 1.32 2006/03/05 15:58:53 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/access/skey.h,v 1.33 2006/10/04 00:30:07 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -89,7 +89,7 @@ typedef ScanKeyData *ScanKey;
* must be sorted according to the leading column number.
*
* The subsidiary ScanKey array appears in logical column order of the row
- * comparison, which may be different from index column order. The array
+ * comparison, which may be different from index column order. The array
* elements are like a normal ScanKey array except that:
* sk_flags must include SK_ROW_MEMBER, plus SK_ROW_END in the last
* element (needed since row header does not include a count)
diff --git a/src/include/access/slru.h b/src/include/access/slru.h
index 7836224db4..48576c2b41 100644
--- a/src/include/access/slru.h
+++ b/src/include/access/slru.h
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/access/slru.h,v 1.18 2006/03/05 15:58:53 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/access/slru.h,v 1.19 2006/10/04 00:30:07 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -111,8 +111,8 @@ extern void SimpleLruInit(SlruCtl ctl, const char *name, int nslots,
LWLockId ctllock, const char *subdir);
extern int SimpleLruZeroPage(SlruCtl ctl, int pageno);
extern int SimpleLruReadPage(SlruCtl ctl, int pageno, TransactionId xid);
-extern int SimpleLruReadPage_ReadOnly(SlruCtl ctl, int pageno,
- TransactionId xid);
+extern int SimpleLruReadPage_ReadOnly(SlruCtl ctl, int pageno,
+ TransactionId xid);
extern void SimpleLruWritePage(SlruCtl ctl, int slotno, SlruFlush fdata);
extern void SimpleLruFlush(SlruCtl ctl, bool checkpoint);
extern void SimpleLruTruncate(SlruCtl ctl, int cutoffPage);
diff --git a/src/include/access/tupdesc.h b/src/include/access/tupdesc.h
index 035a0a85e5..cb1c375cff 100644
--- a/src/include/access/tupdesc.h
+++ b/src/include/access/tupdesc.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/access/tupdesc.h,v 1.50 2006/06/16 18:42:23 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/tupdesc.h,v 1.51 2006/10/04 00:30:07 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -104,7 +104,7 @@ extern void DecrTupleDescRefCount(TupleDesc tupdesc);
if ((tupdesc)->tdrefcount >= 0) \
DecrTupleDescRefCount(tupdesc); \
} while (0)
-
+
extern bool equalTupleDescs(TupleDesc tupdesc1, TupleDesc tupdesc2);
extern void TupleDescInitEntry(TupleDesc desc,
diff --git a/src/include/access/xlog_internal.h b/src/include/access/xlog_internal.h
index 773e85fbcd..83feb38ad7 100644
--- a/src/include/access/xlog_internal.h
+++ b/src/include/access/xlog_internal.h
@@ -11,7 +11,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/access/xlog_internal.h,v 1.16 2006/08/17 23:04:08 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/xlog_internal.h,v 1.17 2006/10/04 00:30:07 momjian Exp $
*/
#ifndef XLOG_INTERNAL_H
#define XLOG_INTERNAL_H
@@ -239,7 +239,7 @@ typedef struct RmgrData
extern const RmgrData RmgrTable[];
-/*
+/*
* Exported to support xlog switching from bgwriter
*/
extern time_t GetLastSegSwitchTime(void);
diff --git a/src/include/bootstrap/bootstrap.h b/src/include/bootstrap/bootstrap.h
index 6713b6df67..8e3378d9a0 100644
--- a/src/include/bootstrap/bootstrap.h
+++ b/src/include/bootstrap/bootstrap.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/bootstrap/bootstrap.h,v 1.43 2006/08/15 22:36:17 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/bootstrap/bootstrap.h,v 1.44 2006/10/04 00:30:07 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -51,13 +51,13 @@ extern int EnterString(char *str);
extern void build_indices(void);
extern void boot_get_type_io_data(Oid typid,
- int16 *typlen,
- bool *typbyval,
- char *typalign,
- char *typdelim,
- Oid *typioparam,
- Oid *typinput,
- Oid *typoutput);
+ int16 *typlen,
+ bool *typbyval,
+ char *typalign,
+ char *typdelim,
+ Oid *typioparam,
+ Oid *typinput,
+ Oid *typoutput);
extern int boot_yyparse(void);
diff --git a/src/include/c.h b/src/include/c.h
index db9983b462..a7281dab82 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -12,7 +12,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/c.h,v 1.213 2006/10/03 20:33:20 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/c.h,v 1.214 2006/10/04 00:30:06 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -52,7 +52,8 @@
#include "pg_config.h"
#include "pg_config_manual.h" /* must be after pg_config.h */
-#if !defined(WIN32) && !defined(__CYGWIN__) /* win32 will include further down */
+#if !defined(WIN32) && !defined(__CYGWIN__) /* win32 will include further
+ * down */
#include "pg_config_os.h" /* must be before any system header files */
#endif
#include "postgres_ext.h"
@@ -470,7 +471,7 @@ typedef NameData *Name;
/*
* Support macros for escaping strings. escape_backslash should be TRUE
- * if generating a non-standard-conforming string. Prefixing a string
+ * if generating a non-standard-conforming string. Prefixing a string
* with ESCAPE_STRING_SYNTAX guarantees it is non-standard-conforming.
* Beware of multiple evaluation of the "ch" argument!
*/
diff --git a/src/include/catalog/pg_aggregate.h b/src/include/catalog/pg_aggregate.h
index 243648b4aa..5e154aecc3 100644
--- a/src/include/catalog/pg_aggregate.h
+++ b/src/include/catalog/pg_aggregate.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_aggregate.h,v 1.57 2006/07/28 18:33:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_aggregate.h,v 1.58 2006/10/04 00:30:07 momjian Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -145,9 +145,9 @@ DATA(insert ( 2147 int8inc_any - 0 20 "0" ));
DATA(insert ( 2803 int8inc - 0 20 "0" ));
/* var_pop */
-DATA(insert ( 2718 int8_accum numeric_var_pop 0 1231 "{0,0,0}" ));
-DATA(insert ( 2719 int4_accum numeric_var_pop 0 1231 "{0,0,0}" ));
-DATA(insert ( 2720 int2_accum numeric_var_pop 0 1231 "{0,0,0}" ));
+DATA(insert ( 2718 int8_accum numeric_var_pop 0 1231 "{0,0,0}" ));
+DATA(insert ( 2719 int4_accum numeric_var_pop 0 1231 "{0,0,0}" ));
+DATA(insert ( 2720 int2_accum numeric_var_pop 0 1231 "{0,0,0}" ));
DATA(insert ( 2721 float4_accum float8_var_pop 0 1022 "{0,0,0}" ));
DATA(insert ( 2722 float8_accum float8_var_pop 0 1022 "{0,0,0}" ));
DATA(insert ( 2723 numeric_accum numeric_var_pop 0 1231 "{0,0,0}" ));
@@ -182,7 +182,7 @@ DATA(insert ( 2713 int4_accum numeric_stddev_samp 0 1231 "{0,0,0}" ));
DATA(insert ( 2714 int2_accum numeric_stddev_samp 0 1231 "{0,0,0}" ));
DATA(insert ( 2715 float4_accum float8_stddev_samp 0 1022 "{0,0,0}" ));
DATA(insert ( 2716 float8_accum float8_stddev_samp 0 1022 "{0,0,0}" ));
-DATA(insert ( 2717 numeric_accum numeric_stddev_samp 0 1231 "{0,0,0}" ));
+DATA(insert ( 2717 numeric_accum numeric_stddev_samp 0 1231 "{0,0,0}" ));
/* stddev: historical Postgres syntax for stddev_samp */
DATA(insert ( 2154 int8_accum numeric_stddev_samp 0 1231 "{0,0,0}" ));
@@ -190,7 +190,7 @@ DATA(insert ( 2155 int4_accum numeric_stddev_samp 0 1231 "{0,0,0}" ));
DATA(insert ( 2156 int2_accum numeric_stddev_samp 0 1231 "{0,0,0}" ));
DATA(insert ( 2157 float4_accum float8_stddev_samp 0 1022 "{0,0,0}" ));
DATA(insert ( 2158 float8_accum float8_stddev_samp 0 1022 "{0,0,0}" ));
-DATA(insert ( 2159 numeric_accum numeric_stddev_samp 0 1231 "{0,0,0}" ));
+DATA(insert ( 2159 numeric_accum numeric_stddev_samp 0 1231 "{0,0,0}" ));
/* SQL2003 binary regression aggregates */
DATA(insert ( 2818 int8inc_float8_float8 - 0 20 "0" ));
diff --git a/src/include/catalog/pg_amop.h b/src/include/catalog/pg_amop.h
index b0da3c0382..1203434727 100644
--- a/src/include/catalog/pg_amop.h
+++ b/src/include/catalog/pg_amop.h
@@ -23,7 +23,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_amop.h,v 1.74 2006/09/10 00:29:34 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_amop.h,v 1.75 2006/10/04 00:30:07 momjian Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -671,225 +671,225 @@ DATA(insert ( 2746 0 4 t 1070 ));
/*
* gin _abstime_ops
*/
-DATA(insert ( 2753 0 1 f 2750 ));
-DATA(insert ( 2753 0 2 f 2751 ));
-DATA(insert ( 2753 0 3 t 2752 ));
+DATA(insert ( 2753 0 1 f 2750 ));
+DATA(insert ( 2753 0 2 f 2751 ));
+DATA(insert ( 2753 0 3 t 2752 ));
DATA(insert ( 2753 0 4 t 1070 ));
/*
* gin _bit_ops
*/
-DATA(insert ( 2754 0 1 f 2750 ));
-DATA(insert ( 2754 0 2 f 2751 ));
-DATA(insert ( 2754 0 3 t 2752 ));
+DATA(insert ( 2754 0 1 f 2750 ));
+DATA(insert ( 2754 0 2 f 2751 ));
+DATA(insert ( 2754 0 3 t 2752 ));
DATA(insert ( 2754 0 4 t 1070 ));
/*
* gin _bool_ops
*/
-DATA(insert ( 2755 0 1 f 2750 ));
-DATA(insert ( 2755 0 2 f 2751 ));
-DATA(insert ( 2755 0 3 t 2752 ));
+DATA(insert ( 2755 0 1 f 2750 ));
+DATA(insert ( 2755 0 2 f 2751 ));
+DATA(insert ( 2755 0 3 t 2752 ));
DATA(insert ( 2755 0 4 t 1070 ));
/*
* gin _bpchar_ops
*/
-DATA(insert ( 2756 0 1 f 2750 ));
-DATA(insert ( 2756 0 2 f 2751 ));
-DATA(insert ( 2756 0 3 t 2752 ));
+DATA(insert ( 2756 0 1 f 2750 ));
+DATA(insert ( 2756 0 2 f 2751 ));
+DATA(insert ( 2756 0 3 t 2752 ));
DATA(insert ( 2756 0 4 t 1070 ));
/*
* gin _bytea_ops
*/
-DATA(insert ( 2757 0 1 f 2750 ));
-DATA(insert ( 2757 0 2 f 2751 ));
-DATA(insert ( 2757 0 3 t 2752 ));
+DATA(insert ( 2757 0 1 f 2750 ));
+DATA(insert ( 2757 0 2 f 2751 ));
+DATA(insert ( 2757 0 3 t 2752 ));
DATA(insert ( 2757 0 4 t 1070 ));
/*
* gin _char_ops
*/
-DATA(insert ( 2758 0 1 f 2750 ));
-DATA(insert ( 2758 0 2 f 2751 ));
-DATA(insert ( 2758 0 3 t 2752 ));
+DATA(insert ( 2758 0 1 f 2750 ));
+DATA(insert ( 2758 0 2 f 2751 ));
+DATA(insert ( 2758 0 3 t 2752 ));
DATA(insert ( 2758 0 4 t 1070 ));
/*
* gin _cidr_ops
*/
-DATA(insert ( 2759 0 1 f 2750 ));
-DATA(insert ( 2759 0 2 f 2751 ));
-DATA(insert ( 2759 0 3 t 2752 ));
+DATA(insert ( 2759 0 1 f 2750 ));
+DATA(insert ( 2759 0 2 f 2751 ));
+DATA(insert ( 2759 0 3 t 2752 ));
DATA(insert ( 2759 0 4 t 1070 ));
/*
* gin _date_ops
*/
-DATA(insert ( 2760 0 1 f 2750 ));
-DATA(insert ( 2760 0 2 f 2751 ));
-DATA(insert ( 2760 0 3 t 2752 ));
+DATA(insert ( 2760 0 1 f 2750 ));
+DATA(insert ( 2760 0 2 f 2751 ));
+DATA(insert ( 2760 0 3 t 2752 ));
DATA(insert ( 2760 0 4 t 1070 ));
/*
* gin _float4_ops
*/
-DATA(insert ( 2761 0 1 f 2750 ));
-DATA(insert ( 2761 0 2 f 2751 ));
-DATA(insert ( 2761 0 3 t 2752 ));
+DATA(insert ( 2761 0 1 f 2750 ));
+DATA(insert ( 2761 0 2 f 2751 ));
+DATA(insert ( 2761 0 3 t 2752 ));
DATA(insert ( 2761 0 4 t 1070 ));
/*
* gin _float8_ops
*/
-DATA(insert ( 2762 0 1 f 2750 ));
-DATA(insert ( 2762 0 2 f 2751 ));
-DATA(insert ( 2762 0 3 t 2752 ));
+DATA(insert ( 2762 0 1 f 2750 ));
+DATA(insert ( 2762 0 2 f 2751 ));
+DATA(insert ( 2762 0 3 t 2752 ));
DATA(insert ( 2762 0 4 t 1070 ));
/*
* gin _inet_ops
*/
-DATA(insert ( 2763 0 1 f 2750 ));
-DATA(insert ( 2763 0 2 f 2751 ));
-DATA(insert ( 2763 0 3 t 2752 ));
+DATA(insert ( 2763 0 1 f 2750 ));
+DATA(insert ( 2763 0 2 f 2751 ));
+DATA(insert ( 2763 0 3 t 2752 ));
DATA(insert ( 2763 0 4 t 1070 ));
/*
* gin _int2_ops
*/
-DATA(insert ( 2764 0 1 f 2750 ));
-DATA(insert ( 2764 0 2 f 2751 ));
-DATA(insert ( 2764 0 3 t 2752 ));
+DATA(insert ( 2764 0 1 f 2750 ));
+DATA(insert ( 2764 0 2 f 2751 ));
+DATA(insert ( 2764 0 3 t 2752 ));
DATA(insert ( 2764 0 4 t 1070 ));
/*
* gin _int8_ops
*/
-DATA(insert ( 2765 0 1 f 2750 ));
-DATA(insert ( 2765 0 2 f 2751 ));
-DATA(insert ( 2765 0 3 t 2752 ));
+DATA(insert ( 2765 0 1 f 2750 ));
+DATA(insert ( 2765 0 2 f 2751 ));
+DATA(insert ( 2765 0 3 t 2752 ));
DATA(insert ( 2765 0 4 t 1070 ));
/*
* gin _interval_ops
*/
-DATA(insert ( 2766 0 1 f 2750 ));
-DATA(insert ( 2766 0 2 f 2751 ));
-DATA(insert ( 2766 0 3 t 2752 ));
+DATA(insert ( 2766 0 1 f 2750 ));
+DATA(insert ( 2766 0 2 f 2751 ));
+DATA(insert ( 2766 0 3 t 2752 ));
DATA(insert ( 2766 0 4 t 1070 ));
/*
* gin _macaddr_ops
*/
-DATA(insert ( 2767 0 1 f 2750 ));
-DATA(insert ( 2767 0 2 f 2751 ));
-DATA(insert ( 2767 0 3 t 2752 ));
+DATA(insert ( 2767 0 1 f 2750 ));
+DATA(insert ( 2767 0 2 f 2751 ));
+DATA(insert ( 2767 0 3 t 2752 ));
DATA(insert ( 2767 0 4 t 1070 ));
/*
* gin _name_ops
*/
-DATA(insert ( 2768 0 1 f 2750 ));
-DATA(insert ( 2768 0 2 f 2751 ));
-DATA(insert ( 2768 0 3 t 2752 ));
+DATA(insert ( 2768 0 1 f 2750 ));
+DATA(insert ( 2768 0 2 f 2751 ));
+DATA(insert ( 2768 0 3 t 2752 ));
DATA(insert ( 2768 0 4 t 1070 ));
/*
* gin _numeric_ops
*/
-DATA(insert ( 2769 0 1 f 2750 ));
-DATA(insert ( 2769 0 2 f 2751 ));
-DATA(insert ( 2769 0 3 t 2752 ));
+DATA(insert ( 2769 0 1 f 2750 ));
+DATA(insert ( 2769 0 2 f 2751 ));
+DATA(insert ( 2769 0 3 t 2752 ));
DATA(insert ( 2769 0 4 t 1070 ));
/*
* gin _oid_ops
*/
-DATA(insert ( 2770 0 1 f 2750 ));
-DATA(insert ( 2770 0 2 f 2751 ));
-DATA(insert ( 2770 0 3 t 2752 ));
+DATA(insert ( 2770 0 1 f 2750 ));
+DATA(insert ( 2770 0 2 f 2751 ));
+DATA(insert ( 2770 0 3 t 2752 ));
DATA(insert ( 2770 0 4 t 1070 ));
/*
* gin _oidvector_ops
*/
-DATA(insert ( 2771 0 1 f 2750 ));
-DATA(insert ( 2771 0 2 f 2751 ));
-DATA(insert ( 2771 0 3 t 2752 ));
+DATA(insert ( 2771 0 1 f 2750 ));
+DATA(insert ( 2771 0 2 f 2751 ));
+DATA(insert ( 2771 0 3 t 2752 ));
DATA(insert ( 2771 0 4 t 1070 ));
/*
* gin _time_ops
*/
-DATA(insert ( 2772 0 1 f 2750 ));
-DATA(insert ( 2772 0 2 f 2751 ));
-DATA(insert ( 2772 0 3 t 2752 ));
+DATA(insert ( 2772 0 1 f 2750 ));
+DATA(insert ( 2772 0 2 f 2751 ));
+DATA(insert ( 2772 0 3 t 2752 ));
DATA(insert ( 2772 0 4 t 1070 ));
/*
* gin _timestamptz_ops
*/
-DATA(insert ( 2773 0 1 f 2750 ));
-DATA(insert ( 2773 0 2 f 2751 ));
-DATA(insert ( 2773 0 3 t 2752 ));
+DATA(insert ( 2773 0 1 f 2750 ));
+DATA(insert ( 2773 0 2 f 2751 ));
+DATA(insert ( 2773 0 3 t 2752 ));
DATA(insert ( 2773 0 4 t 1070 ));
/*
* gin _timetz_ops
*/
-DATA(insert ( 2774 0 1 f 2750 ));
-DATA(insert ( 2774 0 2 f 2751 ));
-DATA(insert ( 2774 0 3 t 2752 ));
+DATA(insert ( 2774 0 1 f 2750 ));
+DATA(insert ( 2774 0 2 f 2751 ));
+DATA(insert ( 2774 0 3 t 2752 ));
DATA(insert ( 2774 0 4 t 1070 ));
/*
* gin _varbit_ops
*/
-DATA(insert ( 2775 0 1 f 2750 ));
-DATA(insert ( 2775 0 2 f 2751 ));
-DATA(insert ( 2775 0 3 t 2752 ));
+DATA(insert ( 2775 0 1 f 2750 ));
+DATA(insert ( 2775 0 2 f 2751 ));
+DATA(insert ( 2775 0 3 t 2752 ));
DATA(insert ( 2775 0 4 t 1070 ));
/*
* gin _varchar_ops
*/
-DATA(insert ( 2776 0 1 f 2750 ));
-DATA(insert ( 2776 0 2 f 2751 ));
-DATA(insert ( 2776 0 3 t 2752 ));
+DATA(insert ( 2776 0 1 f 2750 ));
+DATA(insert ( 2776 0 2 f 2751 ));
+DATA(insert ( 2776 0 3 t 2752 ));
DATA(insert ( 2776 0 4 t 1070 ));
/*
* gin _timestamp_ops
*/
-DATA(insert ( 2777 0 1 f 2750 ));
-DATA(insert ( 2777 0 2 f 2751 ));
-DATA(insert ( 2777 0 3 t 2752 ));
+DATA(insert ( 2777 0 1 f 2750 ));
+DATA(insert ( 2777 0 2 f 2751 ));
+DATA(insert ( 2777 0 3 t 2752 ));
DATA(insert ( 2777 0 4 t 1070 ));
/*
* gin _money_ops
*/
-DATA(insert ( 2778 0 1 f 2750 ));
-DATA(insert ( 2778 0 2 f 2751 ));
-DATA(insert ( 2778 0 3 t 2752 ));
+DATA(insert ( 2778 0 1 f 2750 ));
+DATA(insert ( 2778 0 2 f 2751 ));
+DATA(insert ( 2778 0 3 t 2752 ));
DATA(insert ( 2778 0 4 t 1070 ));
/*
* gin _reltime_ops
*/
-DATA(insert ( 2779 0 1 f 2750 ));
-DATA(insert ( 2779 0 2 f 2751 ));
-DATA(insert ( 2779 0 3 t 2752 ));
+DATA(insert ( 2779 0 1 f 2750 ));
+DATA(insert ( 2779 0 2 f 2751 ));
+DATA(insert ( 2779 0 3 t 2752 ));
DATA(insert ( 2779 0 4 t 1070 ));
/*
* gin _tinterval_ops
*/
-DATA(insert ( 2780 0 1 f 2750 ));
-DATA(insert ( 2780 0 2 f 2751 ));
-DATA(insert ( 2780 0 3 t 2752 ));
+DATA(insert ( 2780 0 1 f 2750 ));
+DATA(insert ( 2780 0 2 f 2751 ));
+DATA(insert ( 2780 0 3 t 2752 ));
DATA(insert ( 2780 0 4 t 1070 ));
#endif /* PG_AMOP_H */
diff --git a/src/include/catalog/pg_amproc.h b/src/include/catalog/pg_amproc.h
index 17884fa419..291931b707 100644
--- a/src/include/catalog/pg_amproc.h
+++ b/src/include/catalog/pg_amproc.h
@@ -19,7 +19,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_amproc.h,v 1.59 2006/07/21 20:51:33 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_amproc.h,v 1.60 2006/10/04 00:30:07 momjian Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -124,7 +124,7 @@ DATA(insert ( 2098 0 1 2187 ));
DATA(insert ( 2099 0 1 377 ));
DATA(insert ( 2233 0 1 380 ));
DATA(insert ( 2234 0 1 381 ));
-DATA(insert ( 2789 0 1 2794 ));
+DATA(insert ( 2789 0 1 2794 ));
/* hash */
diff --git a/src/include/catalog/pg_attribute.h b/src/include/catalog/pg_attribute.h
index 68d7eae7ab..b96a5b8340 100644
--- a/src/include/catalog/pg_attribute.h
+++ b/src/include/catalog/pg_attribute.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_attribute.h,v 1.124 2006/08/25 04:06:55 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_attribute.h,v 1.125 2006/10/04 00:30:07 momjian Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -404,7 +404,7 @@ DATA(insert ( 1249 tableoid 26 0 4 -7 0 -1 -1 t p i t f f t 0));
{ 1259, {"relhaspkey"}, 16, -1, 1, 22, 0, -1, -1, true, 'p', 'c', true, false, false, true, 0 }, \
{ 1259, {"relhasrules"}, 16, -1, 1, 23, 0, -1, -1, true, 'p', 'c', true, false, false, true, 0 }, \
{ 1259, {"relhassubclass"},16, -1, 1, 24, 0, -1, -1, true, 'p', 'c', true, false, false, true, 0 }, \
-{ 1259, {"relminxid"}, 28, -1, 4, 25, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
+{ 1259, {"relminxid"}, 28, -1, 4, 25, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ 1259, {"relvacuumxid"}, 28, -1, 4, 26, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ 1259, {"relacl"}, 1034, -1, -1, 27, 1, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \
{ 1259, {"reloptions"}, 1009, -1, -1, 28, 1, -1, -1, false, 'x', 'i', false, false, false, true, 0 }
diff --git a/src/include/catalog/pg_class.h b/src/include/catalog/pg_class.h
index 931875a4c5..aa0c02ca1d 100644
--- a/src/include/catalog/pg_class.h
+++ b/src/include/catalog/pg_class.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_class.h,v 1.95 2006/07/10 16:20:51 alvherre Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_class.h,v 1.96 2006/10/04 00:30:07 momjian Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -66,7 +66,7 @@ CATALOG(pg_class,1259) BKI_BOOTSTRAP
bool relhasrules; /* has associated rules */
bool relhassubclass; /* has derived classes */
TransactionId relminxid; /* minimum Xid present in table */
- TransactionId relvacuumxid; /* Xid used as last vacuum OldestXmin */
+ TransactionId relvacuumxid; /* Xid used as last vacuum OldestXmin */
/*
* VARIABLE LENGTH FIELDS start here. These fields may be NULL, too.
diff --git a/src/include/catalog/pg_control.h b/src/include/catalog/pg_control.h
index 2b109f2d5a..0e1132052e 100644
--- a/src/include/catalog/pg_control.h
+++ b/src/include/catalog/pg_control.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_control.h,v 1.32 2006/08/21 16:16:31 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_control.h,v 1.33 2006/10/04 00:30:07 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -109,7 +109,7 @@ typedef struct ControlFileData
CheckPoint checkPointCopy; /* copy of last check point record */
- XLogRecPtr minRecoveryPoint; /* must replay xlog to here */
+ XLogRecPtr minRecoveryPoint; /* must replay xlog to here */
/*
* This data is used to check for hardware-architecture compatibility of
diff --git a/src/include/catalog/pg_index.h b/src/include/catalog/pg_index.h
index 506fbc293d..8891b9521b 100644
--- a/src/include/catalog/pg_index.h
+++ b/src/include/catalog/pg_index.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_index.h,v 1.40 2006/08/25 04:06:55 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_index.h,v 1.41 2006/10/04 00:30:07 momjian Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -41,7 +41,7 @@ CATALOG(pg_index,2610) BKI_WITHOUT_OIDS
bool indisunique; /* is this a unique index? */
bool indisprimary; /* is this index for primary key? */
bool indisclustered; /* is this the index last clustered by? */
- bool indisvalid; /* is this index valid for use by queries? */
+ bool indisvalid; /* is this index valid for use by queries? */
/* VARIABLE LENGTH FIELDS: */
int2vector indkey; /* column numbers of indexed cols, or 0 */
diff --git a/src/include/catalog/pg_operator.h b/src/include/catalog/pg_operator.h
index 9072380e0e..b64b3c5136 100644
--- a/src/include/catalog/pg_operator.h
+++ b/src/include/catalog/pg_operator.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_operator.h,v 1.145 2006/09/10 00:29:34 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_operator.h,v 1.146 2006/10/04 00:30:07 momjian Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -132,11 +132,11 @@ DATA(insert OID = 386 ( "=" PGNSP PGUID b t 22 22 16 386 0 0 0 0 0 int2
DATA(insert OID = 387 ( "=" PGNSP PGUID b f 27 27 16 387 402 2799 2799 2799 2800 tideq eqsel eqjoinsel ));
#define TIDEqualOperator 387
DATA(insert OID = 402 ( "<>" PGNSP PGUID b f 27 27 16 402 387 0 0 0 0 tidne neqsel neqjoinsel ));
-DATA(insert OID = 2799 ( "<" PGNSP PGUID b f 27 27 16 2800 2802 0 0 0 0 tidlt scalarltsel scalarltjoinsel ));
+DATA(insert OID = 2799 ( "<" PGNSP PGUID b f 27 27 16 2800 2802 0 0 0 0 tidlt scalarltsel scalarltjoinsel ));
#define TIDLessOperator 2799
-DATA(insert OID = 2800 ( ">" PGNSP PGUID b f 27 27 16 2799 2801 0 0 0 0 tidgt scalargtsel scalargtjoinsel ));
-DATA(insert OID = 2801 ( "<=" PGNSP PGUID b f 27 27 16 2802 2800 0 0 0 0 tidle scalarltsel scalarltjoinsel ));
-DATA(insert OID = 2802 ( ">=" PGNSP PGUID b f 27 27 16 2801 2799 0 0 0 0 tidge scalargtsel scalargtjoinsel ));
+DATA(insert OID = 2800 ( ">" PGNSP PGUID b f 27 27 16 2799 2801 0 0 0 0 tidgt scalargtsel scalargtjoinsel ));
+DATA(insert OID = 2801 ( "<=" PGNSP PGUID b f 27 27 16 2802 2800 0 0 0 0 tidle scalarltsel scalarltjoinsel ));
+DATA(insert OID = 2802 ( ">=" PGNSP PGUID b f 27 27 16 2801 2799 0 0 0 0 tidge scalargtsel scalargtjoinsel ));
DATA(insert OID = 410 ( "=" PGNSP PGUID b t 20 20 16 410 411 412 412 412 413 int8eq eqsel eqjoinsel ));
DATA(insert OID = 411 ( "<>" PGNSP PGUID b f 20 20 16 411 410 0 0 0 0 int8ne neqsel neqjoinsel ));
@@ -879,19 +879,19 @@ DATA(insert OID = 2589 ( "&<|" PGNSP PGUID b f 718 718 16 0 0 0 0 0 0
DATA(insert OID = 2590 ( "|&>" PGNSP PGUID b f 718 718 16 0 0 0 0 0 0 circle_overabove positionsel positionjoinsel ));
/* overlap/contains/contained for arrays */
-DATA(insert OID = 2750 ( "&&" PGNSP PGUID b f 2277 2277 16 2750 0 0 0 0 0 arrayoverlap areasel areajoinsel ));
-DATA(insert OID = 2751 ( "@>" PGNSP PGUID b f 2277 2277 16 2752 0 0 0 0 0 arraycontains contsel contjoinsel ));
-DATA(insert OID = 2752 ( "<@" PGNSP PGUID b f 2277 2277 16 2751 0 0 0 0 0 arraycontained contsel contjoinsel ));
+DATA(insert OID = 2750 ( "&&" PGNSP PGUID b f 2277 2277 16 2750 0 0 0 0 0 arrayoverlap areasel areajoinsel ));
+DATA(insert OID = 2751 ( "@>" PGNSP PGUID b f 2277 2277 16 2752 0 0 0 0 0 arraycontains contsel contjoinsel ));
+DATA(insert OID = 2752 ( "<@" PGNSP PGUID b f 2277 2277 16 2751 0 0 0 0 0 arraycontained contsel contjoinsel ));
/* obsolete names for contains/contained-by operators; remove these someday */
-DATA(insert OID = 2860 ( "@" PGNSP PGUID b f 604 604 16 2861 0 0 0 0 0 poly_contained contsel contjoinsel ));
-DATA(insert OID = 2861 ( "~" PGNSP PGUID b f 604 604 16 2860 0 0 0 0 0 poly_contain contsel contjoinsel ));
-DATA(insert OID = 2862 ( "@" PGNSP PGUID b f 603 603 16 2863 0 0 0 0 0 box_contained contsel contjoinsel ));
-DATA(insert OID = 2863 ( "~" PGNSP PGUID b f 603 603 16 2862 0 0 0 0 0 box_contain contsel contjoinsel ));
+DATA(insert OID = 2860 ( "@" PGNSP PGUID b f 604 604 16 2861 0 0 0 0 0 poly_contained contsel contjoinsel ));
+DATA(insert OID = 2861 ( "~" PGNSP PGUID b f 604 604 16 2860 0 0 0 0 0 poly_contain contsel contjoinsel ));
+DATA(insert OID = 2862 ( "@" PGNSP PGUID b f 603 603 16 2863 0 0 0 0 0 box_contained contsel contjoinsel ));
+DATA(insert OID = 2863 ( "~" PGNSP PGUID b f 603 603 16 2862 0 0 0 0 0 box_contain contsel contjoinsel ));
DATA(insert OID = 2864 ( "@" PGNSP PGUID b f 718 718 16 2865 0 0 0 0 0 circle_contained contsel contjoinsel ));
DATA(insert OID = 2865 ( "~" PGNSP PGUID b f 718 718 16 2864 0 0 0 0 0 circle_contain contsel contjoinsel ));
DATA(insert OID = 2866 ( "@" PGNSP PGUID b f 600 603 16 0 0 0 0 0 0 on_pb - - ));
-DATA(insert OID = 2867 ( "@" PGNSP PGUID b f 600 602 16 2868 0 0 0 0 0 on_ppath - - ));
+DATA(insert OID = 2867 ( "@" PGNSP PGUID b f 600 602 16 2868 0 0 0 0 0 on_ppath - - ));
DATA(insert OID = 2868 ( "~" PGNSP PGUID b f 602 600 16 2867 0 0 0 0 0 path_contain_pt - - ));
DATA(insert OID = 2869 ( "@" PGNSP PGUID b f 600 604 16 2870 0 0 0 0 0 pt_contained_poly - - ));
DATA(insert OID = 2870 ( "~" PGNSP PGUID b f 604 600 16 2869 0 0 0 0 0 poly_contain_pt - - ));
diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h
index 1e0dc4b13f..9299d63ab8 100644
--- a/src/include/catalog/pg_proc.h
+++ b/src/include/catalog/pg_proc.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.426 2006/09/18 22:40:38 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.427 2006/10/04 00:30:07 momjian Exp $
*
* NOTES
* The script catalog/genbki.sh reads this file and generates .bki
@@ -1534,7 +1534,7 @@ DESCR("truncate interval to specified units");
DATA(insert OID = 1219 ( int8inc PGNSP PGUID 12 f f t f i 1 20 "20" _null_ _null_ _null_ int8inc - _null_ ));
DESCR("increment");
-DATA(insert OID = 2804 ( int8inc_any PGNSP PGUID 12 f f t f i 2 20 "20 2276" _null_ _null_ _null_ int8inc_any - _null_ ));
+DATA(insert OID = 2804 ( int8inc_any PGNSP PGUID 12 f f t f i 2 20 "20 2276" _null_ _null_ _null_ int8inc_any - _null_ ));
DESCR("increment, ignores second argument");
DATA(insert OID = 1230 ( int8abs PGNSP PGUID 12 f f t f i 1 20 "20" _null_ _null_ _null_ int8abs - _null_ ));
DESCR("absolute value");
@@ -1628,11 +1628,11 @@ DATA(insert OID = 1298 ( timetzdate_pl PGNSP PGUID 14 f f t f i 2 1184 "1266
DESCR("convert time with time zone and date to timestamp with time zone");
DATA(insert OID = 1299 ( now PGNSP PGUID 12 f f t f s 0 1184 "" _null_ _null_ _null_ now - _null_ ));
DESCR("current transaction time");
-DATA(insert OID = 2647 ( transaction_timestamp PGNSP PGUID 12 f f t f s 0 1184 "" _null_ _null_ _null_ now - _null_ ));
+DATA(insert OID = 2647 ( transaction_timestamp PGNSP PGUID 12 f f t f s 0 1184 "" _null_ _null_ _null_ now - _null_ ));
DESCR("current transaction time");
-DATA(insert OID = 2648 ( statement_timestamp PGNSP PGUID 12 f f t f s 0 1184 "" _null_ _null_ _null_ statement_timestamp - _null_ ));
+DATA(insert OID = 2648 ( statement_timestamp PGNSP PGUID 12 f f t f s 0 1184 "" _null_ _null_ _null_ statement_timestamp - _null_ ));
DESCR("current statement time");
-DATA(insert OID = 2649 ( clock_timestamp PGNSP PGUID 12 f f t f v 0 1184 "" _null_ _null_ _null_ clock_timestamp - _null_ ));
+DATA(insert OID = 2649 ( clock_timestamp PGNSP PGUID 12 f f t f v 0 1184 "" _null_ _null_ _null_ clock_timestamp - _null_ ));
DESCR("current clock time");
/* OIDS 1300 - 1399 */
@@ -2694,7 +2694,7 @@ DATA(insert OID = 1831 ( float8_var_samp PGNSP PGUID 12 f f t f i 1 701 "1022"
DESCR("VAR_SAMP aggregate final function");
DATA(insert OID = 2513 ( float8_stddev_pop PGNSP PGUID 12 f f t f i 1 701 "1022" _null_ _null_ _null_ float8_stddev_pop - _null_ ));
DESCR("STDDEV_POP aggregate final function");
-DATA(insert OID = 1832 ( float8_stddev_samp PGNSP PGUID 12 f f t f i 1 701 "1022" _null_ _null_ _null_ float8_stddev_samp - _null_ ));
+DATA(insert OID = 1832 ( float8_stddev_samp PGNSP PGUID 12 f f t f i 1 701 "1022" _null_ _null_ _null_ float8_stddev_samp - _null_ ));
DESCR("STDDEV_SAMP aggregate final function");
DATA(insert OID = 1833 ( numeric_accum PGNSP PGUID 12 f f t f i 2 1231 "1231 1700" _null_ _null_ _null_ numeric_accum - _null_ ));
DESCR("aggregate transition function");
@@ -2712,7 +2712,7 @@ DATA(insert OID = 1838 ( numeric_var_samp PGNSP PGUID 12 f f t f i 1 1700 "1231
DESCR("VAR_SAMP aggregate final function");
DATA(insert OID = 2596 ( numeric_stddev_pop PGNSP PGUID 12 f f t f i 1 1700 "1231" _null_ _null_ _null_ numeric_stddev_pop - _null_ ));
DESCR("STDDEV_POP aggregate final function");
-DATA(insert OID = 1839 ( numeric_stddev_samp PGNSP PGUID 12 f f t f i 1 1700 "1231" _null_ _null_ _null_ numeric_stddev_samp - _null_ ));
+DATA(insert OID = 1839 ( numeric_stddev_samp PGNSP PGUID 12 f f t f i 1 1700 "1231" _null_ _null_ _null_ numeric_stddev_samp - _null_ ));
DESCR("STDDEV_SAMP aggregate final function");
DATA(insert OID = 1840 ( int2_sum PGNSP PGUID 12 f f f f i 2 20 "20 21" _null_ _null_ _null_ int2_sum - _null_ ));
DESCR("SUM(int2) transition function");
@@ -3933,7 +3933,7 @@ DATA(insert OID = 2788 ( ginoptions PGNSP PGUID 12 f f t f s 2 17 "1009 16"
DESCR("gin(internal)");
/* GIN array support */
-DATA(insert OID = 2743 ( ginarrayextract PGNSP PGUID 12 f f t f i 2 2281 "2277 2281" _null_ _null_ _null_ ginarrayextract - _null_ ));
+DATA(insert OID = 2743 ( ginarrayextract PGNSP PGUID 12 f f t f i 2 2281 "2277 2281" _null_ _null_ _null_ ginarrayextract - _null_ ));
DESCR("GIN array support");
DATA(insert OID = 2744 ( ginarrayconsistent PGNSP PGUID 12 f f t f i 3 16 "2281 21 2281" _null_ _null_ _null_ ginarrayconsistent - _null_ ));
DESCR("GIN array support");
diff --git a/src/include/catalog/pg_shdescription.h b/src/include/catalog/pg_shdescription.h
index 0879fa68f5..6738da1fda 100644
--- a/src/include/catalog/pg_shdescription.h
+++ b/src/include/catalog/pg_shdescription.h
@@ -7,7 +7,7 @@
* NOTE: an object is identified by the OID of the row that primarily
* defines the object, plus the OID of the table that that row appears in.
* For example, a database is identified by the OID of its pg_database row
- * plus the pg_class OID of table pg_database. This allows unique
+ * plus the pg_class OID of table pg_database. This allows unique
* identification of objects without assuming that OIDs are unique
* across tables.
*
@@ -15,7 +15,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_shdescription.h,v 1.2 2006/03/05 15:58:55 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_shdescription.h,v 1.3 2006/10/04 00:30:08 momjian Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -61,7 +61,7 @@ typedef FormData_pg_shdescription *Form_pg_shdescription;
* compiler constants for pg_shdescription
* ----------------
*/
-#define Natts_pg_shdescription 3
+#define Natts_pg_shdescription 3
#define Anum_pg_shdescription_objoid 1
#define Anum_pg_shdescription_classoid 2
#define Anum_pg_shdescription_description 3
diff --git a/src/include/catalog/pg_type.h b/src/include/catalog/pg_type.h
index b9aeec1e3c..488ff66bed 100644
--- a/src/include/catalog/pg_type.h
+++ b/src/include/catalog/pg_type.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_type.h,v 1.171 2006/04/05 22:11:57 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_type.h,v 1.172 2006/10/04 00:30:08 momjian Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -516,7 +516,7 @@ DATA(insert OID = 2208 ( _regoper PGNSP PGUID -1 f b t \054 0 2203 array_in a
DATA(insert OID = 2209 ( _regoperator PGNSP PGUID -1 f b t \054 0 2204 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
DATA(insert OID = 2210 ( _regclass PGNSP PGUID -1 f b t \054 0 2205 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
DATA(insert OID = 2211 ( _regtype PGNSP PGUID -1 f b t \054 0 2206 array_in array_out array_recv array_send - i x f 0 -1 0 _null_ _null_ ));
-#define REGTYPEARRAYOID 2211
+#define REGTYPEARRAYOID 2211
/*
* pseudo-types
diff --git a/src/include/catalog/toasting.h b/src/include/catalog/toasting.h
index 25a84b3f88..f5d54af112 100644
--- a/src/include/catalog/toasting.h
+++ b/src/include/catalog/toasting.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/toasting.h,v 1.1 2006/07/31 01:16:37 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/toasting.h,v 1.2 2006/10/04 00:30:08 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -19,7 +19,7 @@
*/
extern void AlterTableCreateToastTable(Oid relOid);
extern void BootstrapToastTable(char *relName,
- Oid toastOid, Oid toastIndexOid);
+ Oid toastOid, Oid toastIndexOid);
/*
@@ -40,21 +40,21 @@ extern void BootstrapToastTable(char *relName,
*/
/* normal catalogs */
-DECLARE_TOAST(pg_attrdef,2830,2831);
-DECLARE_TOAST(pg_constraint,2832,2833);
-DECLARE_TOAST(pg_description,2834,2835);
-DECLARE_TOAST(pg_proc,2836,2837);
-DECLARE_TOAST(pg_rewrite,2838,2839);
-DECLARE_TOAST(pg_statistic,2840,2841);
+DECLARE_TOAST(pg_attrdef, 2830, 2831);
+DECLARE_TOAST(pg_constraint, 2832, 2833);
+DECLARE_TOAST(pg_description, 2834, 2835);
+DECLARE_TOAST(pg_proc, 2836, 2837);
+DECLARE_TOAST(pg_rewrite, 2838, 2839);
+DECLARE_TOAST(pg_statistic, 2840, 2841);
/* shared catalogs */
-DECLARE_TOAST(pg_authid,2842,2843);
+DECLARE_TOAST(pg_authid, 2842, 2843);
#define PgAuthidToastTable 2842
#define PgAuthidToastIndex 2843
-DECLARE_TOAST(pg_database,2844,2845);
+DECLARE_TOAST(pg_database, 2844, 2845);
#define PgDatabaseToastTable 2844
#define PgDatabaseToastIndex 2845
-DECLARE_TOAST(pg_shdescription,2846,2847);
+DECLARE_TOAST(pg_shdescription, 2846, 2847);
#define PgShdescriptionToastTable 2846
#define PgShdescriptionToastIndex 2847
diff --git a/src/include/commands/comment.h b/src/include/commands/comment.h
index 525a2b9c38..da9fc1c7f1 100644
--- a/src/include/commands/comment.h
+++ b/src/include/commands/comment.h
@@ -21,7 +21,7 @@
* related routines. CommentObject() implements the SQL "COMMENT ON"
* command. DeleteComments() deletes all comments for an object.
* CreateComments creates (or deletes, if comment is NULL) a comment
- * for a specific key. There are versions of these two methods for
+ * for a specific key. There are versions of these two methods for
* both normal and shared objects.
*------------------------------------------------------------------
*/
diff --git a/src/include/commands/defrem.h b/src/include/commands/defrem.h
index 26983fc198..7b45ea5735 100644
--- a/src/include/commands/defrem.h
+++ b/src/include/commands/defrem.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/commands/defrem.h,v 1.76 2006/08/25 04:06:55 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/commands/defrem.h,v 1.77 2006/10/04 00:30:08 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -72,7 +72,7 @@ extern void AlterOperatorOwner_oid(Oid operOid, Oid newOwnerId);
/* commands/aggregatecmds.c */
extern void DefineAggregate(List *name, List *args, bool oldstyle,
- List *parameters);
+ List *parameters);
extern void RemoveAggregate(RemoveFuncStmt *stmt);
extern void RenameAggregate(List *name, List *args, const char *newname);
extern void AlterAggregateOwner(List *name, List *args, Oid newOwnerId);
diff --git a/src/include/commands/explain.h b/src/include/commands/explain.h
index 8814102bfc..7417e8cfdd 100644
--- a/src/include/commands/explain.h
+++ b/src/include/commands/explain.h
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994-5, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/commands/explain.h,v 1.27 2006/07/13 16:49:19 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/commands/explain.h,v 1.28 2006/10/04 00:30:08 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -17,7 +17,7 @@
extern void ExplainQuery(ExplainStmt *stmt, ParamListInfo params,
- DestReceiver *dest);
+ DestReceiver *dest);
extern TupleDesc ExplainResultDesc(ExplainStmt *stmt);
diff --git a/src/include/commands/prepare.h b/src/include/commands/prepare.h
index bd831c2e60..2a7d2b2c8d 100644
--- a/src/include/commands/prepare.h
+++ b/src/include/commands/prepare.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 2002-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/include/commands/prepare.h,v 1.21 2006/07/13 16:49:19 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/commands/prepare.h,v 1.22 2006/10/04 00:30:08 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -28,26 +28,25 @@
typedef struct
{
/* dynahash.c requires key to be first field */
- char stmt_name[NAMEDATALEN];
- char *query_string; /* text of query, or NULL */
- const char *commandTag; /* command tag (a constant!), or NULL */
- List *query_list; /* list of queries, rewritten */
- List *plan_list; /* list of plans */
- List *argtype_list; /* list of parameter type OIDs */
- TimestampTz prepare_time; /* the time when the stmt was prepared */
- bool from_sql; /* stmt prepared via SQL, not
- * FE/BE protocol? */
- MemoryContext context; /* context containing this query */
+ char stmt_name[NAMEDATALEN];
+ char *query_string; /* text of query, or NULL */
+ const char *commandTag; /* command tag (a constant!), or NULL */
+ List *query_list; /* list of queries, rewritten */
+ List *plan_list; /* list of plans */
+ List *argtype_list; /* list of parameter type OIDs */
+ TimestampTz prepare_time; /* the time when the stmt was prepared */
+ bool from_sql; /* stmt prepared via SQL, not FE/BE protocol? */
+ MemoryContext context; /* context containing this query */
} PreparedStatement;
/* Utility statements PREPARE, EXECUTE, DEALLOCATE, EXPLAIN EXECUTE */
extern void PrepareQuery(PrepareStmt *stmt);
extern void ExecuteQuery(ExecuteStmt *stmt, ParamListInfo params,
- DestReceiver *dest, char *completionTag);
+ DestReceiver *dest, char *completionTag);
extern void DeallocateQuery(DeallocateStmt *stmt);
extern void ExplainExecuteQuery(ExplainStmt *stmt, ParamListInfo params,
- TupOutputState *tstate);
+ TupOutputState *tstate);
/* Low-level access to stored prepared statements */
extern void StorePreparedStatement(const char *stmt_name,
diff --git a/src/include/commands/tablecmds.h b/src/include/commands/tablecmds.h
index 4c9063f13c..3a9aad7375 100644
--- a/src/include/commands/tablecmds.h
+++ b/src/include/commands/tablecmds.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/commands/tablecmds.h,v 1.30 2006/07/31 01:16:38 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/commands/tablecmds.h,v 1.31 2006/10/04 00:30:08 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -45,8 +45,8 @@ extern void renameatt(Oid myrelid,
extern void renamerel(Oid myrelid,
const char *newrelname);
-extern AttrNumber * varattnos_map(TupleDesc old, TupleDesc new);
-extern AttrNumber * varattnos_map_schema(TupleDesc old, List *schema);
+extern AttrNumber *varattnos_map(TupleDesc old, TupleDesc new);
+extern AttrNumber *varattnos_map_schema(TupleDesc old, List *schema);
extern void change_varattnos_of_a_node(Node *node, const AttrNumber *newattno);
extern void register_on_commit_action(Oid relid, OnCommitAction action);
diff --git a/src/include/commands/user.h b/src/include/commands/user.h
index 86199669bd..01fb92c354 100644
--- a/src/include/commands/user.h
+++ b/src/include/commands/user.h
@@ -4,7 +4,7 @@
* Commands for manipulating roles (formerly called users).
*
*
- * $PostgreSQL: pgsql/src/include/commands/user.h,v 1.29 2005/11/22 18:17:30 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/commands/user.h,v 1.30 2006/10/04 00:30:08 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -20,7 +20,7 @@ extern void AlterRoleSet(AlterRoleSetStmt *stmt);
extern void DropRole(DropRoleStmt *stmt);
extern void GrantRole(GrantRoleStmt *stmt);
extern void RenameRole(const char *oldname, const char *newname);
-extern void DropOwnedObjects(DropOwnedStmt * stmt);
-extern void ReassignOwnedObjects(ReassignOwnedStmt * stmt);
+extern void DropOwnedObjects(DropOwnedStmt *stmt);
+extern void ReassignOwnedObjects(ReassignOwnedStmt *stmt);
#endif /* USER_H */
diff --git a/src/include/executor/executor.h b/src/include/executor/executor.h
index d5b6213a35..d030b4deea 100644
--- a/src/include/executor/executor.h
+++ b/src/include/executor/executor.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/executor/executor.h,v 1.129 2006/08/12 02:52:06 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/executor/executor.h,v 1.130 2006/10/04 00:30:08 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -35,7 +35,7 @@
* REWIND indicates that the plan node should try to efficiently support
* rescans without parameter changes. (Nodes must support ExecReScan calls
* in any case, but if this flag was not given, they are at liberty to do it
- * through complete recalculation. Note that a parameter change forces a
+ * through complete recalculation. Note that a parameter change forces a
* full recalculation in any case.)
*
* BACKWARD indicates that the plan node must respect the es_direction flag.
@@ -44,10 +44,10 @@
* MARK indicates that the plan node must support Mark/Restore calls.
* When this is not passed, no Mark/Restore will occur.
*/
-#define EXEC_FLAG_EXPLAIN_ONLY 0x0001 /* EXPLAIN, no ANALYZE */
-#define EXEC_FLAG_REWIND 0x0002 /* need efficient rescan */
-#define EXEC_FLAG_BACKWARD 0x0004 /* need backward scan */
-#define EXEC_FLAG_MARK 0x0008 /* need mark/restore */
+#define EXEC_FLAG_EXPLAIN_ONLY 0x0001 /* EXPLAIN, no ANALYZE */
+#define EXEC_FLAG_REWIND 0x0002 /* need efficient rescan */
+#define EXEC_FLAG_BACKWARD 0x0004 /* need backward scan */
+#define EXEC_FLAG_MARK 0x0008 /* need mark/restore */
/*
diff --git a/src/include/executor/nodeIndexscan.h b/src/include/executor/nodeIndexscan.h
index db25839b20..f5f0cc6c22 100644
--- a/src/include/executor/nodeIndexscan.h
+++ b/src/include/executor/nodeIndexscan.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/executor/nodeIndexscan.h,v 1.28 2006/03/05 15:58:56 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/executor/nodeIndexscan.h,v 1.29 2006/10/04 00:30:08 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -31,9 +31,9 @@ extern void ExecIndexBuildScanKeys(PlanState *planstate, Relation index,
IndexRuntimeKeyInfo **runtimeKeys, int *numRuntimeKeys,
IndexArrayKeyInfo **arrayKeys, int *numArrayKeys);
extern void ExecIndexEvalRuntimeKeys(ExprContext *econtext,
- IndexRuntimeKeyInfo *runtimeKeys, int numRuntimeKeys);
+ IndexRuntimeKeyInfo *runtimeKeys, int numRuntimeKeys);
extern bool ExecIndexEvalArrayKeys(ExprContext *econtext,
- IndexArrayKeyInfo *arrayKeys, int numArrayKeys);
+ IndexArrayKeyInfo *arrayKeys, int numArrayKeys);
extern bool ExecIndexAdvanceArrayKeys(IndexArrayKeyInfo *arrayKeys, int numArrayKeys);
#endif /* NODEINDEXSCAN_H */
diff --git a/src/include/executor/nodeValuesscan.h b/src/include/executor/nodeValuesscan.h
index 5a952bdd32..d8a8b5a7cb 100644
--- a/src/include/executor/nodeValuesscan.h
+++ b/src/include/executor/nodeValuesscan.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/executor/nodeValuesscan.h,v 1.1 2006/08/02 01:59:47 joe Exp $
+ * $PostgreSQL: pgsql/src/include/executor/nodeValuesscan.h,v 1.2 2006/10/04 00:30:08 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -16,7 +16,7 @@
#include "nodes/execnodes.h"
-extern int ExecCountSlotsValuesScan(ValuesScan *node);
+extern int ExecCountSlotsValuesScan(ValuesScan *node);
extern ValuesScanState *ExecInitValuesScan(ValuesScan *node, EState *estate, int eflags);
extern TupleTableSlot *ExecValuesScan(ValuesScanState *node);
extern void ExecEndValuesScan(ValuesScanState *node);
diff --git a/src/include/executor/spi.h b/src/include/executor/spi.h
index 361fe7c8d1..9cbbc035dc 100644
--- a/src/include/executor/spi.h
+++ b/src/include/executor/spi.h
@@ -2,7 +2,7 @@
*
* spi.h
*
- * $PostgreSQL: pgsql/src/include/executor/spi.h,v 1.57 2006/09/03 03:19:45 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/executor/spi.h,v 1.58 2006/10/04 00:30:08 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -71,9 +71,9 @@ typedef struct
#define SPI_OK_DELETE 8
#define SPI_OK_UPDATE 9
#define SPI_OK_CURSOR 10
-#define SPI_OK_INSERT_RETURNING 11
-#define SPI_OK_DELETE_RETURNING 12
-#define SPI_OK_UPDATE_RETURNING 13
+#define SPI_OK_INSERT_RETURNING 11
+#define SPI_OK_DELETE_RETURNING 12
+#define SPI_OK_UPDATE_RETURNING 13
extern DLLIMPORT uint32 SPI_processed;
extern DLLIMPORT Oid SPI_lastoid;
diff --git a/src/include/executor/tuptable.h b/src/include/executor/tuptable.h
index 32f34e6fb7..c34234c836 100644
--- a/src/include/executor/tuptable.h
+++ b/src/include/executor/tuptable.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/executor/tuptable.h,v 1.35 2006/07/13 17:47:02 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/executor/tuptable.h,v 1.36 2006/10/04 00:30:08 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -34,7 +34,7 @@
*
* A "minimal" tuple is handled similarly to a palloc'd regular tuple.
* At present, minimal tuples never are stored in buffers, so there is no
- * parallel to case 1. Note that a minimal tuple has no "system columns".
+ * parallel to case 1. Note that a minimal tuple has no "system columns".
* (Actually, it could have an OID, but we have no need to access the OID.)
*
* A "virtual" tuple is an optimization used to minimize physical data
@@ -94,7 +94,7 @@
* object (the thing to be pfree'd if tts_shouldFree is true). In this case
* tts_tuple points at tts_minhdr and the fields of that are set correctly
* for access to the minimal tuple; in particular, tts_minhdr.t_data points
- * MINIMAL_TUPLE_OFFSET bytes before tts_mintuple. (tts_mintuple is therefore
+ * MINIMAL_TUPLE_OFFSET bytes before tts_mintuple. (tts_mintuple is therefore
* redundant, but for code simplicity we store it explicitly anyway.) This
* case otherwise behaves identically to the regular-physical-tuple case.
*
@@ -151,8 +151,8 @@ extern TupleTableSlot *ExecStoreTuple(HeapTuple tuple,
Buffer buffer,
bool shouldFree);
extern TupleTableSlot *ExecStoreMinimalTuple(MinimalTuple mtup,
- TupleTableSlot *slot,
- bool shouldFree);
+ TupleTableSlot *slot,
+ bool shouldFree);
extern TupleTableSlot *ExecClearTuple(TupleTableSlot *slot);
extern TupleTableSlot *ExecStoreVirtualTuple(TupleTableSlot *slot);
extern TupleTableSlot *ExecStoreAllNullTuple(TupleTableSlot *slot);
diff --git a/src/include/fmgr.h b/src/include/fmgr.h
index 4055fe715b..b9164f06d7 100644
--- a/src/include/fmgr.h
+++ b/src/include/fmgr.h
@@ -11,7 +11,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/fmgr.h,v 1.47 2006/08/16 04:32:49 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/fmgr.h,v 1.48 2006/10/04 00:30:06 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -20,6 +20,7 @@
/* We don't want to include primnodes.h here, so make a stub reference */
typedef struct Node *fmNodePtr;
+
/* Likewise, avoid including stringinfo.h here */
typedef struct StringInfoData *fmStringInfo;
@@ -322,7 +323,7 @@ extern int no_such_variable
* To compile with versions of PostgreSQL that do not support this,
* you may put an #ifdef/#endif test around it. Note that in a multiple-
* source-file module, the macro call should only appear once.
- *
+ *
* The specific items included in the magic block are intended to be ones that
* are custom-configurable and especially likely to break dynamically loaded
* modules if they were compiled with other values. Also, the length field
@@ -333,11 +334,11 @@ extern int no_such_variable
/* Definition of the magic block structure */
typedef struct
{
- int len; /* sizeof(this struct) */
- int version; /* PostgreSQL major version */
- int funcmaxargs; /* FUNC_MAX_ARGS */
- int indexmaxkeys; /* INDEX_MAX_KEYS */
- int namedatalen; /* NAMEDATALEN */
+ int len; /* sizeof(this struct) */
+ int version; /* PostgreSQL major version */
+ int funcmaxargs; /* FUNC_MAX_ARGS */
+ int indexmaxkeys; /* INDEX_MAX_KEYS */
+ int namedatalen; /* NAMEDATALEN */
} Pg_magic_struct;
/* The actual data block contents */
@@ -457,15 +458,15 @@ extern Datum OidFunctionCall9(Oid functionId, Datum arg1, Datum arg2,
/* Special cases for convenient invocation of datatype I/O functions. */
extern Datum InputFunctionCall(FmgrInfo *flinfo, char *str,
- Oid typioparam, int32 typmod);
+ Oid typioparam, int32 typmod);
extern Datum OidInputFunctionCall(Oid functionId, char *str,
- Oid typioparam, int32 typmod);
+ Oid typioparam, int32 typmod);
extern char *OutputFunctionCall(FmgrInfo *flinfo, Datum val);
extern char *OidOutputFunctionCall(Oid functionId, Datum val);
extern Datum ReceiveFunctionCall(FmgrInfo *flinfo, fmStringInfo buf,
- Oid typioparam, int32 typmod);
+ Oid typioparam, int32 typmod);
extern Datum OidReceiveFunctionCall(Oid functionId, fmStringInfo buf,
- Oid typioparam, int32 typmod);
+ Oid typioparam, int32 typmod);
extern bytea *SendFunctionCall(FmgrInfo *flinfo, Datum val);
extern bytea *OidSendFunctionCall(Oid functionId, Datum val);
diff --git a/src/include/funcapi.h b/src/include/funcapi.h
index 91130117b1..1698b1de86 100644
--- a/src/include/funcapi.h
+++ b/src/include/funcapi.h
@@ -9,7 +9,7 @@
*
* Copyright (c) 2002-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/include/funcapi.h,v 1.23 2006/03/05 15:58:52 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/funcapi.h,v 1.24 2006/10/04 00:30:06 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -169,9 +169,9 @@ extern bool resolve_polymorphic_argtypes(int numargs, Oid *argtypes,
char *argmodes,
Node *call_expr);
-extern int get_func_arg_info(HeapTuple procTup,
- Oid **p_argtypes, char ***p_argnames,
- char **p_argmodes);
+extern int get_func_arg_info(HeapTuple procTup,
+ Oid **p_argtypes, char ***p_argnames,
+ char **p_argmodes);
extern char *get_func_result_name(Oid functionId);
diff --git a/src/include/getaddrinfo.h b/src/include/getaddrinfo.h
index ee60b71d84..dbd411412e 100644
--- a/src/include/getaddrinfo.h
+++ b/src/include/getaddrinfo.h
@@ -15,7 +15,7 @@
*
* Copyright (c) 2003-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/include/getaddrinfo.h,v 1.21 2006/07/06 02:12:32 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/getaddrinfo.h,v 1.22 2006/10/04 00:30:06 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -42,9 +42,9 @@
#else /* WIN32 */
#ifdef WIN32_ONLY_COMPILER
#ifndef WSA_NOT_ENOUGH_MEMORY
-#define WSA_NOT_ENOUGH_MEMORY (WSAENOBUFS)
+#define WSA_NOT_ENOUGH_MEMORY (WSAENOBUFS)
#endif
-#define WSATYPE_NOT_FOUND (WSABASEERR+109)
+#define WSATYPE_NOT_FOUND (WSABASEERR+109)
#endif
#define EAI_AGAIN WSATRY_AGAIN
#define EAI_BADFLAGS WSAEINVAL
diff --git a/src/include/libpq/hba.h b/src/include/libpq/hba.h
index a50b3ca0a9..eb8539f139 100644
--- a/src/include/libpq/hba.h
+++ b/src/include/libpq/hba.h
@@ -4,7 +4,7 @@
* Interface to hba.c
*
*
- * $PostgreSQL: pgsql/src/include/libpq/hba.h,v 1.43 2006/07/10 16:20:52 alvherre Exp $
+ * $PostgreSQL: pgsql/src/include/libpq/hba.h,v 1.44 2006/10/04 00:30:08 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -27,7 +27,7 @@ typedef enum UserAuth
,uaPAM
#endif /* USE_PAM */
#ifdef USE_LDAP
- ,uaLDAP
+ ,uaLDAP
#endif
} UserAuth;
diff --git a/src/include/libpq/libpq-be.h b/src/include/libpq/libpq-be.h
index de85ce10d6..dd39731cbd 100644
--- a/src/include/libpq/libpq-be.h
+++ b/src/include/libpq/libpq-be.h
@@ -11,7 +11,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/libpq/libpq-be.h,v 1.56 2006/06/20 22:52:00 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/libpq/libpq-be.h,v 1.57 2006/10/04 00:30:08 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -81,8 +81,8 @@ typedef struct Port
* but since it gets used by elog.c in the same way as database_name and
* other members of this struct, we may as well keep it here.
*/
- TimestampTz SessionStartTime; /* backend start time */
- time_t session_start; /* same, in time_t format */
+ TimestampTz SessionStartTime; /* backend start time */
+ time_t session_start; /* same, in time_t format */
/*
* TCP keepalive settings.
diff --git a/src/include/mb/pg_wchar.h b/src/include/mb/pg_wchar.h
index 1bb8042344..2d465a1b38 100644
--- a/src/include/mb/pg_wchar.h
+++ b/src/include/mb/pg_wchar.h
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/include/mb/pg_wchar.h,v 1.68 2006/05/21 20:05:21 tgl Exp $ */
+/* $PostgreSQL: pgsql/src/include/mb/pg_wchar.h,v 1.69 2006/10/04 00:30:09 momjian Exp $ */
#ifndef PG_WCHAR_H
#define PG_WCHAR_H
@@ -92,32 +92,32 @@ typedef unsigned int pg_wchar;
#define LC_JISX0208_1978 0x90 /* Japanese Kanji, old JIS (not supported) */
/* #define FREE 0x90 free (unused) */
#define LC_GB2312_80 0x91 /* Chinese */
-#define LC_JISX0208 0x92 /* Japanese Kanji (JIS X 0208) */
-#define LC_KS5601 0x93 /* Korean */
-#define LC_JISX0212 0x94 /* Japanese Kanji (JIS X 0212) */
+#define LC_JISX0208 0x92 /* Japanese Kanji (JIS X 0208) */
+#define LC_KS5601 0x93 /* Korean */
+#define LC_JISX0212 0x94 /* Japanese Kanji (JIS X 0212) */
#define LC_CNS11643_1 0x95 /* CNS 11643-1992 Plane 1 */
#define LC_CNS11643_2 0x96 /* CNS 11643-1992 Plane 2 */
/* #define FREE 0x97 free (unused) */
-#define LC_BIG5_1 0x98 /* Plane 1 Chinese traditional (not supported) */
-#define LC_BIG5_2 0x99 /* Plane 1 Chinese traditional (not supported) */
+#define LC_BIG5_1 0x98 /* Plane 1 Chinese traditional (not supported) */
+#define LC_BIG5_2 0x99 /* Plane 1 Chinese traditional (not supported) */
/*
* Private single byte encodings (0xa0-0xef)
*/
-#define LC_SISHENG 0xa0 /* Chinese SiSheng characters for
+#define LC_SISHENG 0xa0/* Chinese SiSheng characters for
* PinYin/ZhuYin (not supported) */
-#define LC_IPA 0xa1 /* IPA (International Phonetic Association)
+#define LC_IPA 0xa1/* IPA (International Phonetic Association)
* (not supported) */
-#define LC_VISCII_LOWER 0xa2 /* Vietnamese VISCII1.1 lower-case (not
+#define LC_VISCII_LOWER 0xa2/* Vietnamese VISCII1.1 lower-case (not
* supported) */
-#define LC_VISCII_UPPER 0xa3 /* Vietnamese VISCII1.1 upper-case (not
+#define LC_VISCII_UPPER 0xa3/* Vietnamese VISCII1.1 upper-case (not
* supported) */
-#define LC_ARABIC_DIGIT 0xa4 /* Arabic digit (not supported) */
+#define LC_ARABIC_DIGIT 0xa4 /* Arabic digit (not supported) */
#define LC_ARABIC_1_COLUMN 0xa5 /* Arabic 1-column (not supported) */
#define LC_ASCII_RIGHT_TO_LEFT 0xa6 /* ASCII (left half of ISO8859-1) with
* right-to-left direction (not
* supported) */
-#define LC_LAO 0xa7 /* Lao characters (ISO10646 0E80..0EDF) (not
+#define LC_LAO 0xa7/* Lao characters (ISO10646 0E80..0EDF) (not
* supported) */
#define LC_ARABIC_2_COLUMN 0xa8 /* Arabic 1-column (not supported) */
@@ -127,7 +127,7 @@ typedef unsigned int pg_wchar;
#define LC_INDIAN_1_COLUMN 0xf0/* Indian charset for 1-column width glypps
* (not supported) */
#define LC_TIBETAN_1_COLUMN 0xf1 /* Tibetan 1 column glyph (not supported) */
-#define LC_ETHIOPIC 0xf5 /* Ethiopic characters (not supported) */
+#define LC_ETHIOPIC 0xf5 /* Ethiopic characters (not supported) */
#define LC_CNS11643_3 0xf6 /* CNS 11643-1992 Plane 3 */
#define LC_CNS11643_4 0xf7 /* CNS 11643-1992 Plane 4 */
#define LC_CNS11643_5 0xf8 /* CNS 11643-1992 Plane 5 */
@@ -135,7 +135,7 @@ typedef unsigned int pg_wchar;
#define LC_CNS11643_7 0xfa /* CNS 11643-1992 Plane 7 */
#define LC_INDIAN_2_COLUMN 0xfb/* Indian charset for 2-column width glypps
* (not supported) */
-#define LC_TIBETAN 0xfc /* Tibetan (not supported) */
+#define LC_TIBETAN 0xfc /* Tibetan (not supported) */
/* #define FREE 0xfd free (unused) */
/* #define FREE 0xfe free (unused) */
/* #define FREE 0xff free (unused) */
@@ -188,7 +188,7 @@ typedef enum pg_enc
PG_WIN1255, /* windows-1255 */
PG_WIN1257, /* windows-1257 */
/* PG_ENCODING_BE_LAST points to the above entry */
-
+
/* followings are for client encoding only */
PG_SJIS, /* Shift JIS (Winindows-932) */
PG_BIG5, /* Big5 (Windows-950) */
@@ -343,24 +343,24 @@ extern void UtfToLocal(const unsigned char *utf, unsigned char *iso,
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);
+ 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,
- const char *mbstr, int len);
+ const char *mbstr, int len);
extern void pg_ascii2mic(const unsigned char *l, unsigned char *p, int len);
extern void pg_mic2ascii(const unsigned char *mic, unsigned char *p, int len);
extern void latin2mic(const unsigned char *l, unsigned char *p, int len,
- int lc, int encoding);
+ int lc, int encoding);
extern void mic2latin(const unsigned char *mic, unsigned char *p, int len,
- int lc, int encoding);
+ int lc, int encoding);
extern void latin2mic_with_table(const unsigned char *l, unsigned char *p,
- int len, int lc, int encoding,
- const unsigned char *tab);
+ int len, int lc, int encoding,
+ const unsigned char *tab);
extern void mic2latin_with_table(const unsigned char *mic, unsigned char *p,
- int len, int lc, int encoding,
- const unsigned char *tab);
+ int len, int lc, int encoding,
+ const unsigned char *tab);
extern bool pg_utf8_islegal(const unsigned char *source, int length);
diff --git a/src/include/nodes/params.h b/src/include/nodes/params.h
index 3a93d75f30..48ac42ef3a 100644
--- a/src/include/nodes/params.h
+++ b/src/include/nodes/params.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/nodes/params.h,v 1.32 2006/09/06 20:40:48 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/nodes/params.h,v 1.33 2006/10/04 00:30:09 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -35,7 +35,7 @@
* ----------------
*/
-#define PARAM_FLAG_CONST 0x0001 /* parameter is constant */
+#define PARAM_FLAG_CONST 0x0001 /* parameter is constant */
typedef struct ParamExternData
{
diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h
index 0b9de4905d..29f68f7fff 100644
--- a/src/include/nodes/parsenodes.h
+++ b/src/include/nodes/parsenodes.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/nodes/parsenodes.h,v 1.330 2006/09/05 21:08:36 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/nodes/parsenodes.h,v 1.331 2006/10/04 00:30:09 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -57,7 +57,7 @@ typedef uint32 AclMode; /* a bitmask of privilege bits */
#define ACL_USAGE (1<<8) /* for languages and namespaces */
#define ACL_CREATE (1<<9) /* for namespaces and databases */
#define ACL_CREATE_TEMP (1<<10) /* for databases */
-#define ACL_CONNECT (1<<11) /* for databases */
+#define ACL_CONNECT (1<<11) /* for databases */
#define N_ACL_RIGHTS 12 /* 1 plus the last 1<<x */
#define ACL_NO_RIGHTS 0
/* Currently, SELECT ... FOR UPDATE/FOR SHARE requires UPDATE privileges */
@@ -93,9 +93,9 @@ typedef struct Query
* INSERT/UPDATE/DELETE; 0 for SELECT */
RangeVar *into; /* target relation for SELECT INTO */
- List *intoOptions; /* options from WITH clause */
+ List *intoOptions; /* options from WITH clause */
OnCommitAction intoOnCommit; /* what do we do at COMMIT? */
- char *intoTableSpaceName; /* table space to use, or NULL */
+ char *intoTableSpaceName; /* table space to use, or NULL */
bool hasAggs; /* has aggregates in tlist or havingQual */
bool hasSubLinks; /* has subquery SubLink */
@@ -134,17 +134,17 @@ typedef struct Query
List *resultRelations; /* integer list of RT indexes, or NIL */
/*
- * If the query has a returningList then the planner will store a list
- * of processed targetlists (one per result relation) here. We must
- * have a separate RETURNING targetlist for each result rel because
- * column numbers may vary within an inheritance tree. In the targetlists,
- * Vars referencing the result relation will have their original varno
- * and varattno, while Vars referencing other rels will be converted
- * to have varno OUTER and varattno referencing a resjunk entry in the
- * top plan node's targetlist. XXX This field ought to go in some sort of
- * TopPlan plan node, not in the Query.
+ * If the query has a returningList then the planner will store a list of
+ * processed targetlists (one per result relation) here. We must have a
+ * separate RETURNING targetlist for each result rel because column
+ * numbers may vary within an inheritance tree. In the targetlists, Vars
+ * referencing the result relation will have their original varno and
+ * varattno, while Vars referencing other rels will be converted to have
+ * varno OUTER and varattno referencing a resjunk entry in the top plan
+ * node's targetlist. XXX This field ought to go in some sort of TopPlan
+ * plan node, not in the Query.
*/
- List *returningLists; /* list of lists of TargetEntry, or NIL */
+ List *returningLists; /* list of lists of TargetEntry, or NIL */
} Query;
@@ -375,8 +375,8 @@ typedef struct RangeFunction
NodeTag type;
Node *funccallnode; /* untransformed function call tree */
Alias *alias; /* table alias & optional column aliases */
- List *coldeflist; /* list of ColumnDef nodes to describe
- * result of function returning RECORD */
+ List *coldeflist; /* list of ColumnDef nodes to describe result
+ * of function returning RECORD */
} RangeFunction;
/*
@@ -414,7 +414,7 @@ typedef struct InhRelation
{
NodeTag type;
RangeVar *relation;
- List *options;
+ List *options;
} InhRelation;
/*
@@ -563,7 +563,7 @@ typedef struct RangeTblEntry
*/
Node *funcexpr; /* expression tree for func call */
List *funccoltypes; /* OID list of column type OIDs */
- List *funccoltypmods; /* integer list of column typmods */
+ List *funccoltypmods; /* integer list of column typmods */
/*
* Fields valid for a values RTE (else NIL):
@@ -717,15 +717,15 @@ typedef struct SelectStmt
/*
* These fields are used only in "leaf" SelectStmts.
*
- * into, intoColNames, intoOptions, intoOnCommit, and
- * intoTableSpaceName are a kluge; they belong somewhere else...
+ * into, intoColNames, intoOptions, intoOnCommit, and intoTableSpaceName
+ * are a kluge; they belong somewhere else...
*/
List *distinctClause; /* NULL, list of DISTINCT ON exprs, or
* lcons(NIL,NIL) for all (SELECT DISTINCT) */
RangeVar *into; /* target table (for select into table) */
List *intoColNames; /* column names for into table */
List *intoOptions; /* options from WITH clause */
- OnCommitAction intoOnCommit; /* what do we do at COMMIT? */
+ OnCommitAction intoOnCommit; /* what do we do at COMMIT? */
char *intoTableSpaceName; /* table space to use, or NULL */
List *targetList; /* the target list (of ResTarget) */
List *fromClause; /* the FROM clause */
@@ -735,11 +735,11 @@ typedef struct SelectStmt
/*
* In a "leaf" node representing a VALUES list, the above fields are all
- * null, and instead this field is set. Note that the elements of
- * the sublists are just expressions, without ResTarget decoration.
- * Also note that a list element can be DEFAULT (represented as a
- * SetToDefault node), regardless of the context of the VALUES list.
- * It's up to parse analysis to reject that where not valid.
+ * null, and instead this field is set. Note that the elements of the
+ * sublists are just expressions, without ResTarget decoration. Also note
+ * that a list element can be DEFAULT (represented as a SetToDefault
+ * node), regardless of the context of the VALUES list. It's up to parse
+ * analysis to reject that where not valid.
*/
List *valuesLists; /* untransformed list of expression lists */
@@ -1014,7 +1014,7 @@ typedef struct GrantRoleStmt
* Copy Statement
*
* We support "COPY relation FROM file", "COPY relation TO file", and
- * "COPY (query) TO file". In any given CopyStmt, exactly one of "relation"
+ * "COPY (query) TO file". In any given CopyStmt, exactly one of "relation"
* and "query" must be non-NULL. Note: "query" is a SelectStmt before
* parse analysis, and a Query afterwards.
* ----------------------
@@ -1055,7 +1055,8 @@ typedef struct CreateStmt
char *tablespacename; /* table space to use, or NULL */
} CreateStmt;
-typedef enum CreateStmtLikeOption {
+typedef enum CreateStmtLikeOption
+{
CREATE_TABLE_LIKE_INCLUDING_DEFAULTS,
CREATE_TABLE_LIKE_EXCLUDING_DEFAULTS,
CREATE_TABLE_LIKE_INCLUDING_CONSTRAINTS,
@@ -1917,13 +1918,13 @@ typedef struct PrepareStmt
typedef struct ExecuteStmt
{
- NodeTag type;
- char *name; /* The name of the plan to execute */
- RangeVar *into; /* Optional table to store results in */
- List *intoOptions; /* Options from WITH clause */
- OnCommitAction into_on_commit; /* What do we do at COMMIT? */
- char *into_tbl_space; /* Tablespace to use, or NULL */
- List *params; /* Values to assign to parameters */
+ NodeTag type;
+ char *name; /* The name of the plan to execute */
+ RangeVar *into; /* Optional table to store results in */
+ List *intoOptions; /* Options from WITH clause */
+ OnCommitAction into_on_commit; /* What do we do at COMMIT? */
+ char *into_tbl_space; /* Tablespace to use, or NULL */
+ List *params; /* Values to assign to parameters */
} ExecuteStmt;
diff --git a/src/include/nodes/primnodes.h b/src/include/nodes/primnodes.h
index c84bab9287..841d85336e 100644
--- a/src/include/nodes/primnodes.h
+++ b/src/include/nodes/primnodes.h
@@ -10,7 +10,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/nodes/primnodes.h,v 1.116 2006/09/28 20:51:42 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/nodes/primnodes.h,v 1.117 2006/10/04 00:30:09 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -155,7 +155,7 @@ typedef struct Const
* For historical reasons, such parameters are numbered from 0.
* These numbers are independent of PARAM_EXTERN numbers.
*
- * PARAM_SUBLINK: The parameter represents an output column of a SubLink
+ * PARAM_SUBLINK: The parameter represents an output column of a SubLink
* node's sub-select. The column number is contained in the
* `paramid' field. (This type of Param is converted to
* PARAM_EXEC during planning.)
@@ -366,7 +366,7 @@ typedef struct BoolExpr
*
* NOTE: in the raw output of gram.y, testexpr contains just the raw form
* of the lefthand expression (if any), and operName is the String name of
- * the combining operator. Also, subselect is a raw parsetree. During parse
+ * the combining operator. Also, subselect is a raw parsetree. During parse
* analysis, the parser transforms testexpr into a complete boolean expression
* that compares the lefthand value(s) to PARAM_SUBLINK nodes representing the
* output columns of the subselect. And subselect is transformed to a Query.
diff --git a/src/include/nodes/relation.h b/src/include/nodes/relation.h
index 471d8e209e..d39e924227 100644
--- a/src/include/nodes/relation.h
+++ b/src/include/nodes/relation.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/nodes/relation.h,v 1.127 2006/09/19 22:49:53 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/nodes/relation.h,v 1.128 2006/10/04 00:30:09 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -52,7 +52,7 @@ typedef struct QualCost
*
* This struct is conventionally called "root" in all the planner routines.
* It holds links to all of the planner's working state, in addition to the
- * original Query. Note that at present the planner extensively modifies
+ * original Query. Note that at present the planner extensively modifies
* the passed-in Query data structure; someday that should stop.
*----------
*/
@@ -69,8 +69,8 @@ typedef struct PlannerInfo
* does not correspond to a base relation, such as a join RTE or an
* unreferenced view RTE; or if the RelOptInfo hasn't been made yet.
*/
- struct RelOptInfo **simple_rel_array; /* All 1-relation RelOptInfos */
- int simple_rel_array_size; /* allocated size of array */
+ struct RelOptInfo **simple_rel_array; /* All 1-relation RelOptInfos */
+ int simple_rel_array_size; /* allocated size of array */
/*
* join_rel_list is a list of all join-relation RelOptInfos we have
@@ -101,7 +101,7 @@ typedef struct PlannerInfo
List *in_info_list; /* list of InClauseInfos */
- List *append_rel_list; /* list of AppendRelInfos */
+ List *append_rel_list; /* list of AppendRelInfos */
List *query_pathkeys; /* desired pathkeys for query_planner(), and
* actual pathkeys afterwards */
@@ -109,14 +109,14 @@ typedef struct PlannerInfo
List *group_pathkeys; /* groupClause pathkeys, if any */
List *sort_pathkeys; /* sortClause pathkeys, if any */
- double total_table_pages; /* # of pages in all tables of query */
+ double total_table_pages; /* # of pages in all tables of query */
double tuple_fraction; /* tuple_fraction passed to query_planner */
bool hasJoinRTEs; /* true if any RTEs are RTE_JOIN kind */
bool hasOuterJoins; /* true if any RTEs are outer joins */
bool hasHavingQual; /* true if havingQual was non-null */
- bool hasPseudoConstantQuals; /* true if any RestrictInfo has
+ bool hasPseudoConstantQuals; /* true if any RestrictInfo has
* pseudoconstant = true */
} PlannerInfo;
@@ -144,7 +144,7 @@ typedef struct PlannerInfo
* Currently the only kind of otherrels are those made for member relations
* of an "append relation", that is an inheritance set or UNION ALL subquery.
* An append relation has a parent RTE that is a base rel, which represents
- * the entire append relation. The member RTEs are otherrels. The parent
+ * the entire append relation. The member RTEs are otherrels. The parent
* is present in the query join tree but the members are not. The member
* RTEs and otherrels are used to plan the scans of the individual tables or
* subqueries of the append set; then the parent baserel is given an Append
@@ -736,7 +736,7 @@ typedef struct HashPath
*
* The pseudoconstant flag is set true if the clause contains no Vars of
* the current query level and no volatile functions. Such a clause can be
- * pulled out and used as a one-time qual in a gating Result node. We keep
+ * pulled out and used as a one-time qual in a gating Result node. We keep
* pseudoconstant clauses in the same lists as other RestrictInfos so that
* the regular clause-pushing machinery can assign them to the correct join
* level, but they need to be treated specially for cost and selectivity
@@ -757,7 +757,7 @@ typedef struct RestrictInfo
bool can_join; /* see comment above */
- bool pseudoconstant; /* see comment above */
+ bool pseudoconstant; /* see comment above */
/* The set of relids (varnos) actually referenced in the clause: */
Relids clause_relids;
@@ -836,7 +836,7 @@ typedef struct InnerIndexscanInfo
* Outer join info.
*
* One-sided outer joins constrain the order of joining partially but not
- * completely. We flatten such joins into the planner's top-level list of
+ * completely. We flatten such joins into the planner's top-level list of
* relations to join, but record information about each outer join in an
* OuterJoinInfo struct. These structs are kept in the PlannerInfo node's
* oj_info_list.
@@ -925,57 +925,60 @@ typedef struct InClauseInfo
typedef struct AppendRelInfo
{
NodeTag type;
+
/*
- * These fields uniquely identify this append relationship. There
- * can be (in fact, always should be) multiple AppendRelInfos for the
- * same parent_relid, but never more than one per child_relid, since
- * a given RTE cannot be a child of more than one append parent.
+ * These fields uniquely identify this append relationship. There can be
+ * (in fact, always should be) multiple AppendRelInfos for the same
+ * parent_relid, but never more than one per child_relid, since a given
+ * RTE cannot be a child of more than one append parent.
*/
Index parent_relid; /* RT index of append parent rel */
Index child_relid; /* RT index of append child rel */
+
/*
* For an inheritance appendrel, the parent and child are both regular
* relations, and we store their rowtype OIDs here for use in translating
- * whole-row Vars. For a UNION-ALL appendrel, the parent and child are
+ * whole-row Vars. For a UNION-ALL appendrel, the parent and child are
* both subqueries with no named rowtype, and we store InvalidOid here.
*/
- Oid parent_reltype; /* OID of parent's composite type */
+ Oid parent_reltype; /* OID of parent's composite type */
Oid child_reltype; /* OID of child's composite type */
/*
- * The N'th element of this list is the integer column number of
- * the child column corresponding to the N'th column of the parent.
- * A list element is zero if it corresponds to a dropped column of the
- * parent (this is only possible for inheritance cases, not UNION ALL).
+ * The N'th element of this list is the integer column number of the child
+ * column corresponding to the N'th column of the parent. A list element
+ * is zero if it corresponds to a dropped column of the parent (this is
+ * only possible for inheritance cases, not UNION ALL).
*/
List *col_mappings; /* list of child attribute numbers */
/*
- * The N'th element of this list is a Var or expression representing
- * the child column corresponding to the N'th column of the parent.
- * This is used to translate Vars referencing the parent rel into
- * references to the child. A list element is NULL if it corresponds
- * to a dropped column of the parent (this is only possible for
- * inheritance cases, not UNION ALL).
+ * The N'th element of this list is a Var or expression representing the
+ * child column corresponding to the N'th column of the parent. This is
+ * used to translate Vars referencing the parent rel into references to
+ * the child. A list element is NULL if it corresponds to a dropped
+ * column of the parent (this is only possible for inheritance cases, not
+ * UNION ALL).
*
* This might seem redundant with the col_mappings data, but it is handy
- * because flattening of sub-SELECTs that are members of a UNION ALL
- * will cause changes in the expressions that need to be substituted
- * for a parent Var. Adjusting this data structure lets us track what
- * really needs to be substituted.
+ * because flattening of sub-SELECTs that are members of a UNION ALL will
+ * cause changes in the expressions that need to be substituted for a
+ * parent Var. Adjusting this data structure lets us track what really
+ * needs to be substituted.
*
* Notice we only store entries for user columns (attno > 0). Whole-row
- * Vars are special-cased, and system columns (attno < 0) need no
- * special translation since their attnos are the same for all tables.
+ * Vars are special-cased, and system columns (attno < 0) need no special
+ * translation since their attnos are the same for all tables.
*
- * Caution: the Vars have varlevelsup = 0. Be careful to adjust
- * as needed when copying into a subquery.
+ * Caution: the Vars have varlevelsup = 0. Be careful to adjust as needed
+ * when copying into a subquery.
*/
- List *translated_vars; /* Expressions in the child's Vars */
+ List *translated_vars; /* Expressions in the child's Vars */
+
/*
- * We store the parent table's OID here for inheritance, or InvalidOid
- * for UNION ALL. This is only needed to help in generating error
- * messages if an attempt is made to reference a dropped parent column.
+ * We store the parent table's OID here for inheritance, or InvalidOid for
+ * UNION ALL. This is only needed to help in generating error messages if
+ * an attempt is made to reference a dropped parent column.
*/
Oid parent_reloid; /* OID of parent relation */
} AppendRelInfo;
diff --git a/src/include/optimizer/cost.h b/src/include/optimizer/cost.h
index ce61e261a9..63acf6b088 100644
--- a/src/include/optimizer/cost.h
+++ b/src/include/optimizer/cost.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/optimizer/cost.h,v 1.81 2006/09/25 22:12:24 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/optimizer/cost.h,v 1.82 2006/10/04 00:30:09 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -27,7 +27,7 @@
#define DEFAULT_CPU_INDEX_TUPLE_COST 0.005
#define DEFAULT_CPU_OPERATOR_COST 0.0025
-#define DEFAULT_EFFECTIVE_CACHE_SIZE 16384 /* measured in pages */
+#define DEFAULT_EFFECTIVE_CACHE_SIZE 16384 /* measured in pages */
/*
@@ -56,7 +56,7 @@ extern bool constraint_exclusion;
extern double clamp_row_est(double nrows);
extern double index_pages_fetched(double tuples_fetched, BlockNumber pages,
- double index_pages, PlannerInfo *root);
+ double index_pages, PlannerInfo *root);
extern void cost_seqscan(Path *path, PlannerInfo *root, RelOptInfo *baserel);
extern void cost_index(IndexPath *path, PlannerInfo *root, IndexOptInfo *index,
List *indexQuals, RelOptInfo *outer_rel);
@@ -71,7 +71,7 @@ extern void cost_subqueryscan(Path *path, RelOptInfo *baserel);
extern void cost_functionscan(Path *path, PlannerInfo *root,
RelOptInfo *baserel);
extern void cost_valuesscan(Path *path, PlannerInfo *root,
- RelOptInfo *baserel);
+ RelOptInfo *baserel);
extern void cost_sort(Path *path, PlannerInfo *root,
List *pathkeys, Cost input_cost, double tuples, int width);
extern void cost_material(Path *path,
diff --git a/src/include/optimizer/pathnode.h b/src/include/optimizer/pathnode.h
index e6005094b7..f8aebd6a53 100644
--- a/src/include/optimizer/pathnode.h
+++ b/src/include/optimizer/pathnode.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/optimizer/pathnode.h,v 1.71 2006/08/02 01:59:48 joe Exp $
+ * $PostgreSQL: pgsql/src/include/optimizer/pathnode.h,v 1.72 2006/10/04 00:30:09 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -86,7 +86,7 @@ extern HashPath *create_hashjoin_path(PlannerInfo *root,
* prototypes for relnode.c
*/
extern RelOptInfo *build_simple_rel(PlannerInfo *root, int relid,
- RelOptKind reloptkind);
+ RelOptKind reloptkind);
extern RelOptInfo *find_base_rel(PlannerInfo *root, int relid);
extern RelOptInfo *find_join_rel(PlannerInfo *root, Relids relids);
extern RelOptInfo *build_join_rel(PlannerInfo *root,
diff --git a/src/include/optimizer/plancat.h b/src/include/optimizer/plancat.h
index 173c7f846b..50ff6ac286 100644
--- a/src/include/optimizer/plancat.h
+++ b/src/include/optimizer/plancat.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/optimizer/plancat.h,v 1.41 2006/09/19 22:49:53 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/optimizer/plancat.h,v 1.42 2006/10/04 00:30:09 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -18,10 +18,10 @@
extern void get_relation_info(PlannerInfo *root, Oid relationObjectId,
- bool inhparent, RelOptInfo *rel);
+ bool inhparent, RelOptInfo *rel);
extern bool relation_excluded_by_constraints(RelOptInfo *rel,
- RangeTblEntry *rte);
+ RangeTblEntry *rte);
extern List *build_physical_tlist(PlannerInfo *root, RelOptInfo *rel);
diff --git a/src/include/optimizer/prep.h b/src/include/optimizer/prep.h
index 88e4aa56a7..544dc766e8 100644
--- a/src/include/optimizer/prep.h
+++ b/src/include/optimizer/prep.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/optimizer/prep.h,v 1.56 2006/03/05 15:58:57 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/optimizer/prep.h,v 1.57 2006/10/04 00:30:09 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -51,8 +51,8 @@ extern void expand_inherited_tables(PlannerInfo *root);
extern Node *adjust_appendrel_attrs(Node *node, AppendRelInfo *appinfo);
extern Relids *adjust_appendrel_attr_needed(RelOptInfo *oldrel,
- AppendRelInfo *appinfo,
- AttrNumber new_min_attr,
- AttrNumber new_max_attr);
+ AppendRelInfo *appinfo,
+ AttrNumber new_min_attr,
+ AttrNumber new_max_attr);
#endif /* PREP_H */
diff --git a/src/include/optimizer/restrictinfo.h b/src/include/optimizer/restrictinfo.h
index 86add79160..db24c4989d 100644
--- a/src/include/optimizer/restrictinfo.h
+++ b/src/include/optimizer/restrictinfo.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/optimizer/restrictinfo.h,v 1.37 2006/07/01 18:38:33 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/optimizer/restrictinfo.h,v 1.38 2006/10/04 00:30:09 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -28,7 +28,7 @@ extern List *make_restrictinfo_from_bitmapqual(Path *bitmapqual,
extern bool restriction_is_or_clause(RestrictInfo *restrictinfo);
extern List *get_actual_clauses(List *restrictinfo_list);
extern List *extract_actual_clauses(List *restrictinfo_list,
- bool pseudoconstant);
+ bool pseudoconstant);
extern void extract_actual_join_clauses(List *restrictinfo_list,
List **joinquals,
List **otherquals);
diff --git a/src/include/parser/analyze.h b/src/include/parser/analyze.h
index 0b245c77e8..7866472f79 100644
--- a/src/include/parser/analyze.h
+++ b/src/include/parser/analyze.h
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/parser/analyze.h,v 1.33 2006/04/30 18:30:40 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/parser/analyze.h,v 1.34 2006/10/04 00:30:09 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -17,13 +17,13 @@
extern List *parse_analyze(Node *parseTree, const char *sourceText,
- Oid *paramTypes, int numParams);
+ Oid *paramTypes, int numParams);
extern List *parse_analyze_varparams(Node *parseTree, const char *sourceText,
- Oid **paramTypes, int *numParams);
+ Oid **paramTypes, int *numParams);
extern List *parse_sub_analyze(Node *parseTree, ParseState *parentParseState);
extern List *analyzeCreateSchemaStmt(CreateSchemaStmt *stmt);
extern void CheckSelectLocking(Query *qry);
extern void applyLockingClause(Query *qry, Index rtindex,
- bool forUpdate, bool noWait);
+ bool forUpdate, bool noWait);
#endif /* ANALYZE_H */
diff --git a/src/include/parser/parse_coerce.h b/src/include/parser/parse_coerce.h
index 84d119df76..e29a64d48f 100644
--- a/src/include/parser/parse_coerce.h
+++ b/src/include/parser/parse_coerce.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/parser/parse_coerce.h,v 1.65 2006/07/26 19:31:51 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/parser/parse_coerce.h,v 1.66 2006/10/04 00:30:09 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -58,7 +58,7 @@ extern Node *coerce_to_boolean(ParseState *pstate, Node *node,
extern Node *coerce_to_integer(ParseState *pstate, Node *node,
const char *constructName);
extern Node *coerce_to_bigint(ParseState *pstate, Node *node,
- const char *constructName);
+ const char *constructName);
extern Oid select_common_type(List *typeids, const char *context);
extern Node *coerce_to_common_type(ParseState *pstate, Node *node,
diff --git a/src/include/parser/parse_func.h b/src/include/parser/parse_func.h
index 486e5ea44d..a27c1249ff 100644
--- a/src/include/parser/parse_func.h
+++ b/src/include/parser/parse_func.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/parser/parse_func.h,v 1.56 2006/04/15 17:45:41 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/parser/parse_func.h,v 1.57 2006/10/04 00:30:09 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -77,6 +77,6 @@ extern Oid LookupFuncName(List *funcname, int nargs, const Oid *argtypes,
extern Oid LookupFuncNameTypeNames(List *funcname, List *argtypes,
bool noError);
extern Oid LookupAggNameTypeNames(List *aggname, List *argtypes,
- bool noError);
+ bool noError);
#endif /* PARSE_FUNC_H */
diff --git a/src/include/parser/parse_node.h b/src/include/parser/parse_node.h
index 1a28d09954..2425022be6 100644
--- a/src/include/parser/parse_node.h
+++ b/src/include/parser/parse_node.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/parser/parse_node.h,v 1.49 2006/04/30 18:30:40 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/parser/parse_node.h,v 1.50 2006/10/04 00:30:09 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -24,7 +24,7 @@
* links to current parse state of outer query.
*
* p_sourcetext: source string that generated the raw parsetree being
- * analyzed, or NULL if not available. (The string is used only to
+ * analyzed, or NULL if not available. (The string is used only to
* generate cursor positions in error messages: we need it to convert
* byte-wise locations in parse structures to character-wise cursor
* positions.)
@@ -71,8 +71,8 @@ typedef struct ParseState
Oid *p_paramtypes; /* OIDs of types for $n parameter symbols */
int p_numparams; /* allocated size of p_paramtypes[] */
int p_next_resno; /* next targetlist resno to assign */
- List *p_locking_clause; /* raw FOR UPDATE/FOR SHARE info */
- Node *p_value_substitute; /* what to replace VALUE with, if any */
+ List *p_locking_clause; /* raw FOR UPDATE/FOR SHARE info */
+ Node *p_value_substitute; /* what to replace VALUE with, if any */
bool p_variableparams;
bool p_hasAggs;
bool p_hasSubLinks;
diff --git a/src/include/parser/parse_oper.h b/src/include/parser/parse_oper.h
index 33e54ef01e..1141b07c1b 100644
--- a/src/include/parser/parse_oper.h
+++ b/src/include/parser/parse_oper.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/parser/parse_oper.h,v 1.39 2006/03/14 22:48:22 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/parser/parse_oper.h,v 1.40 2006/10/04 00:30:09 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -22,26 +22,26 @@ typedef HeapTuple Operator;
/* Routines to look up an operator given name and exact input type(s) */
extern Oid LookupOperName(ParseState *pstate, List *opername,
- Oid oprleft, Oid oprright,
- bool noError, int location);
+ Oid oprleft, Oid oprright,
+ bool noError, int location);
extern Oid LookupOperNameTypeNames(ParseState *pstate, List *opername,
- TypeName *oprleft, TypeName *oprright,
- bool noError, int location);
+ TypeName *oprleft, TypeName *oprright,
+ bool noError, int location);
/* Routines to find operators matching a name and given input types */
/* NB: the selected operator may require coercion of the input types! */
extern Operator oper(ParseState *pstate, List *op, Oid arg1, Oid arg2,
- bool noError, int location);
+ bool noError, int location);
extern Operator right_oper(ParseState *pstate, List *op, Oid arg,
- bool noError, int location);
+ bool noError, int location);
extern Operator left_oper(ParseState *pstate, List *op, Oid arg,
- bool noError, int location);
+ bool noError, int location);
/* Routines to find operators that DO NOT require coercion --- ie, their */
/* input types are either exactly as given, or binary-compatible */
extern Operator compatible_oper(ParseState *pstate, List *op,
- Oid arg1, Oid arg2,
- bool noError, int location);
+ Oid arg1, Oid arg2,
+ bool noError, int location);
/* currently no need for compatible_left_oper/compatible_right_oper */
diff --git a/src/include/parser/parse_relation.h b/src/include/parser/parse_relation.h
index 9e2df63c54..fdd4cf5fe1 100644
--- a/src/include/parser/parse_relation.h
+++ b/src/include/parser/parse_relation.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/parser/parse_relation.h,v 1.54 2006/08/02 01:59:48 joe Exp $
+ * $PostgreSQL: pgsql/src/include/parser/parse_relation.h,v 1.55 2006/10/04 00:30:09 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -33,7 +33,7 @@ extern RangeTblEntry *GetRTEByRangeTablePosn(ParseState *pstate,
extern Node *scanRTEForColumn(ParseState *pstate, RangeTblEntry *rte,
char *colname, int location);
extern Node *colNameToVar(ParseState *pstate, char *colname, bool localonly,
- int location);
+ int location);
extern Node *qualifiedNameToVar(ParseState *pstate,
char *schemaname,
char *refname,
@@ -73,7 +73,7 @@ extern void addRTEtoQuery(ParseState *pstate, RangeTblEntry *rte,
bool addToJoinList,
bool addToRelNameSpace, bool addToVarNameSpace);
extern RangeTblEntry *addImplicitRTE(ParseState *pstate, RangeVar *relation,
- int location);
+ int location);
extern void expandRTE(RangeTblEntry *rte, int rtindex, int sublevels_up,
bool include_dropped,
List **colnames, List **colvars);
diff --git a/src/include/pg_trace.h b/src/include/pg_trace.h
index 6c35cb2e8d..77862ff0e3 100644
--- a/src/include/pg_trace.h
+++ b/src/include/pg_trace.h
@@ -5,7 +5,7 @@
*
* Copyright (c) 2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/include/pg_trace.h,v 1.1 2006/07/24 16:32:45 petere Exp $
+ * $PostgreSQL: pgsql/src/include/pg_trace.h,v 1.2 2006/10/04 00:30:06 momjian Exp $
* ----------
*/
@@ -21,7 +21,7 @@
*
* Only one DTrace provider called "postgresql" will be used for PostgreSQL,
* so the name is hard-coded here to avoid having to specify it in the
- * source code.
+ * source code.
*/
#define PG_TRACE(name) \
@@ -36,8 +36,7 @@
DTRACE_PROBE4(postgresql, name, arg1, arg2, arg3, arg4)
#define PG_TRACE5(name, arg1, arg2, arg3, arg4, arg5) \
DTRACE_PROBE5(postgresql, name, arg1, arg2, arg3, arg4, arg5)
-
-#else /* not ENABLE_DTRACE */
+#else /* not ENABLE_DTRACE */
/*
* Unless DTrace is explicitly enabled with --enable-dtrace, the PG_TRACE
@@ -50,7 +49,6 @@
#define PG_TRACE3(name, arg1, arg2, arg3)
#define PG_TRACE4(name, arg1, arg2, arg3, arg4)
#define PG_TRACE5(name, arg1, arg2, arg3, arg4, arg5)
+#endif /* not ENABLE_DTRACE */
-#endif /* not ENABLE_DTRACE */
-
-#endif /* PG_TRACE_H */
+#endif /* PG_TRACE_H */
diff --git a/src/include/pgstat.h b/src/include/pgstat.h
index 35614eaa2d..8f5db77079 100644
--- a/src/include/pgstat.h
+++ b/src/include/pgstat.h
@@ -5,7 +5,7 @@
*
* Copyright (c) 2001-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/include/pgstat.h,v 1.49 2006/08/19 01:36:34 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/pgstat.h,v 1.50 2006/10/04 00:30:06 momjian Exp $
* ----------
*/
#ifndef PGSTAT_H
@@ -205,8 +205,8 @@ typedef struct PgStat_MsgAnalyze
PgStat_MsgHdr m_hdr;
Oid m_databaseid;
Oid m_tableoid;
- bool m_autovacuum;
- TimestampTz m_analyzetime;
+ bool m_autovacuum;
+ TimestampTz m_analyzetime;
PgStat_Counter m_live_tuples;
PgStat_Counter m_dead_tuples;
} PgStat_MsgAnalyze;
@@ -285,10 +285,10 @@ typedef struct PgStat_StatTabEntry
PgStat_Counter blocks_fetched;
PgStat_Counter blocks_hit;
- TimestampTz vacuum_timestamp; /* user initiated vacuum */
- TimestampTz autovac_vacuum_timestamp; /* autovacuum initiated */
- TimestampTz analyze_timestamp; /* user initiated */
- TimestampTz autovac_analyze_timestamp; /* autovacuum initiated */
+ TimestampTz vacuum_timestamp; /* user initiated vacuum */
+ TimestampTz autovac_vacuum_timestamp; /* autovacuum initiated */
+ TimestampTz analyze_timestamp; /* user initiated */
+ TimestampTz autovac_analyze_timestamp; /* autovacuum initiated */
} PgStat_StatTabEntry;
@@ -314,8 +314,8 @@ typedef struct PgBackendStatus
/*
* To avoid locking overhead, we use the following protocol: a backend
* increments st_changecount before modifying its entry, and again after
- * finishing a modification. A would-be reader should note the value
- * of st_changecount, copy the entry into private memory, then check
+ * finishing a modification. A would-be reader should note the value of
+ * st_changecount, copy the entry into private memory, then check
* st_changecount again. If the value hasn't changed, and if it's even,
* the copy is valid; otherwise start over. This makes updates cheap
* while reads are potentially expensive, but that's the tradeoff we want.
diff --git a/src/include/port.h b/src/include/port.h
index cf3694f4f5..c320418476 100644
--- a/src/include/port.h
+++ b/src/include/port.h
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/port.h,v 1.103 2006/10/03 22:18:23 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/port.h,v 1.104 2006/10/04 00:30:06 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -97,22 +97,22 @@ extern int find_other_exec(const char *argv0, const char *target,
*
* Generated using Win32 "CMD /?":
*
- * 1. If all of the following conditions are met, then quote characters
- * on the command line are preserved:
+ * 1. If all of the following conditions are met, then quote characters
+ * on the command line are preserved:
*
- * - no /S switch
- * - exactly two quote characters
- * - no special characters between the two quote characters, where special
- * is one of: &<>()@^|
- * - there are one or more whitespace characters between the the two quote
- * characters
- * - the string between the two quote characters is the name of an
- * executable file.
+ * - no /S switch
+ * - exactly two quote characters
+ * - no special characters between the two quote characters, where special
+ * is one of: &<>()@^|
+ * - there are one or more whitespace characters between the the two quote
+ * characters
+ * - the string between the two quote characters is the name of an
+ * executable file.
*
- * 2. Otherwise, old behavior is to see if the first character is a quote
- * character and if so, strip the leading character and remove the last
- * quote character on the command line, preserving any text after the last
- * quote character.
+ * 2. Otherwise, old behavior is to see if the first character is a quote
+ * character and if so, strip the leading character and remove the last
+ * quote character on the command line, preserving any text after the last
+ * quote character.
*/
#if defined(WIN32) && !defined(__CYGWIN__)
#define SYSTEMQUOTE "\""
@@ -133,7 +133,7 @@ extern unsigned char pg_tolower(unsigned char ch);
/*
* Versions of libintl >= 0.13 try to replace printf() and friends with
- * macros to their own versions that understand the %$ format. We do the
+ * macros to their own versions that understand the %$ format. We do the
* same, so disable their macros, if they exist.
*/
#ifdef vsnprintf
@@ -188,8 +188,7 @@ __attribute__((format(printf, 1, 2)));
#define fprintf pg_fprintf
#define printf pg_printf
#endif
-
-#endif /* USE_REPL_SNPRINTF */
+#endif /* USE_REPL_SNPRINTF */
/* Portable prompt handling */
extern char *simple_prompt(const char *prompt, int maxlen, bool echo);
@@ -272,7 +271,7 @@ extern int pgwin32_open(const char *, int,...);
extern FILE *pgwin32_fopen(const char *, const char *);
#ifndef FRONTEND
-#define open(a,b,c) pgwin32_open(a,b,c)
+#define open(a,b,c) pgwin32_open(a,b,c)
#define fopen(a,b) pgwin32_fopen(a,b)
#endif
@@ -367,6 +366,6 @@ extern int pqGethostbyname(const char *name,
typedef int (*qsort_arg_comparator) (const void *a, const void *b, void *arg);
extern void qsort_arg(void *base, size_t nel, size_t elsize,
- qsort_arg_comparator cmp, void *arg);
+ qsort_arg_comparator cmp, void *arg);
-#endif /* PG_PORT_H */
+#endif /* PG_PORT_H */
diff --git a/src/include/port/darwin.h b/src/include/port/darwin.h
index e52a872681..ff3e219323 100644
--- a/src/include/port/darwin.h
+++ b/src/include/port/darwin.h
@@ -1,7 +1,8 @@
-/* $PostgreSQL: pgsql/src/include/port/darwin.h,v 1.10 2006/03/11 04:38:38 momjian Exp $ */
+/* $PostgreSQL: pgsql/src/include/port/darwin.h,v 1.11 2006/10/04 00:30:09 momjian Exp $ */
#define __darwin__ 1
#if HAVE_DECL_F_FULLFSYNC /* not present before OS X 10.3 */
#define HAVE_FSYNC_WRITETHROUGH
+
#endif
diff --git a/src/include/port/linux.h b/src/include/port/linux.h
index a4d8f247bc..05cba063a9 100644
--- a/src/include/port/linux.h
+++ b/src/include/port/linux.h
@@ -1,2 +1 @@
-/* $PostgreSQL: pgsql/src/include/port/linux.h,v 1.41 2006/03/11 04:38:38 momjian Exp $ */
-
+/* $PostgreSQL: pgsql/src/include/port/linux.h,v 1.42 2006/10/04 00:30:09 momjian Exp $ */
diff --git a/src/include/port/netbsd.h b/src/include/port/netbsd.h
index 59b78cccd3..9f1666b71a 100644
--- a/src/include/port/netbsd.h
+++ b/src/include/port/netbsd.h
@@ -1,2 +1 @@
-/* $PostgreSQL: pgsql/src/include/port/netbsd.h,v 1.15 2006/03/11 04:38:38 momjian Exp $ */
-
+/* $PostgreSQL: pgsql/src/include/port/netbsd.h,v 1.16 2006/10/04 00:30:10 momjian Exp $ */
diff --git a/src/include/port/win32.h b/src/include/port/win32.h
index f5e17aae3e..e3bc767689 100644
--- a/src/include/port/win32.h
+++ b/src/include/port/win32.h
@@ -1,7 +1,7 @@
-/* $PostgreSQL: pgsql/src/include/port/win32.h,v 1.61 2006/10/03 20:33:20 tgl Exp $ */
+/* $PostgreSQL: pgsql/src/include/port/win32.h,v 1.62 2006/10/04 00:30:10 momjian Exp $ */
#if defined(_MSC_VER) || defined(__BORLANDC__)
-#define WIN32_ONLY_COMPILER
+#define WIN32_ONLY_COMPILER
#endif
/* undefine and redefine after #include */
@@ -17,7 +17,7 @@
#include <signal.h>
#include <errno.h>
#include <direct.h>
-#include <sys/utime.h> /* for non-unicode version */
+#include <sys/utime.h> /* for non-unicode version */
#undef near
/* Must be here to avoid conflicting with prototype in windows.h */
@@ -46,7 +46,6 @@
#else /* not BUILDING_DLL */
#define DLLIMPORT __declspec (dllimport)
#endif
-
#else /* not CYGWIN, not MSVC, not MingW */
#define DLLIMPORT
@@ -166,7 +165,7 @@ struct itimerval
struct timeval it_interval;
struct timeval it_value;
};
-int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue);
+int setitimer(int which, const struct itimerval * value, struct itimerval * ovalue);
/*
@@ -293,4 +292,5 @@ typedef unsigned short mode_t;
/* Pulled from Makefile.port in mingw */
#define DLSUFFIX ".dll"
+
#endif
diff --git a/src/include/port/win32/dlfcn.h b/src/include/port/win32/dlfcn.h
index 55a59c202b..e508867a6f 100644
--- a/src/include/port/win32/dlfcn.h
+++ b/src/include/port/win32/dlfcn.h
@@ -1,3 +1 @@
-/* $PostgreSQL: pgsql/src/include/port/win32/dlfcn.h,v 1.3 2006/03/11 04:38:38 momjian Exp $ */
-
-
+/* $PostgreSQL: pgsql/src/include/port/win32/dlfcn.h,v 1.4 2006/10/04 00:30:10 momjian Exp $ */
diff --git a/src/include/port/win32/grp.h b/src/include/port/win32/grp.h
index 162734f440..c9bc172547 100644
--- a/src/include/port/win32/grp.h
+++ b/src/include/port/win32/grp.h
@@ -1,3 +1 @@
-/* $PostgreSQL: pgsql/src/include/port/win32/grp.h,v 1.3 2006/03/11 04:38:38 momjian Exp $ */
-
-
+/* $PostgreSQL: pgsql/src/include/port/win32/grp.h,v 1.4 2006/10/04 00:30:10 momjian Exp $ */
diff --git a/src/include/port/win32/netdb.h b/src/include/port/win32/netdb.h
index 0243e3eefb..e88e30f8e6 100644
--- a/src/include/port/win32/netdb.h
+++ b/src/include/port/win32/netdb.h
@@ -1,2 +1 @@
-/* $PostgreSQL: pgsql/src/include/port/win32/netdb.h,v 1.3 2006/03/11 04:38:38 momjian Exp $ */
-
+/* $PostgreSQL: pgsql/src/include/port/win32/netdb.h,v 1.4 2006/10/04 00:30:10 momjian Exp $ */
diff --git a/src/include/port/win32/sys/socket.h b/src/include/port/win32/sys/socket.h
index beec4e2f86..97a5041799 100644
--- a/src/include/port/win32/sys/socket.h
+++ b/src/include/port/win32/sys/socket.h
@@ -1,5 +1,5 @@
/*
- * $PostgreSQL: pgsql/src/include/port/win32/sys/socket.h,v 1.6 2006/07/16 01:35:28 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/port/win32/sys/socket.h,v 1.7 2006/10/04 00:30:10 momjian Exp $
*/
#ifndef WIN32_SYS_SOCKET_H
#define WIN32_SYS_SOCKET_H
@@ -29,4 +29,4 @@
*/
#undef gai_strerror
-#endif /* WIN32_SYS_SOCKET_H */
+#endif /* WIN32_SYS_SOCKET_H */
diff --git a/src/include/port/win32_msvc/dirent.h b/src/include/port/win32_msvc/dirent.h
index e44a602c3b..422691aca2 100644
--- a/src/include/port/win32_msvc/dirent.h
+++ b/src/include/port/win32_msvc/dirent.h
@@ -1,21 +1,23 @@
/*
* Headers for port/dirent.c, win32 native implementation of dirent functions
*
- * $PostgreSQL: pgsql/src/include/port/win32_msvc/dirent.h,v 1.2 2006/06/26 12:59:44 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/port/win32_msvc/dirent.h,v 1.3 2006/10/04 00:30:10 momjian Exp $
*/
#ifndef _WIN32VC_DIRENT_H
#define _WIN32VC_DIRENT_H
-struct dirent {
- long d_ino;
+struct dirent
+{
+ long d_ino;
unsigned short d_reclen;
unsigned short d_namlen;
- char d_name[MAX_PATH];
+ char d_name[MAX_PATH];
};
typedef struct DIR DIR;
-DIR* opendir(const char *);
-struct dirent* readdir(DIR *);
-int closedir(DIR*);
+DIR *opendir(const char *);
+struct dirent *readdir(DIR *);
+int closedir(DIR *);
+
#endif
diff --git a/src/include/port/win32_msvc/sys/file.h b/src/include/port/win32_msvc/sys/file.h
index 8adc35c6e0..c9c080f958 100644
--- a/src/include/port/win32_msvc/sys/file.h
+++ b/src/include/port/win32_msvc/sys/file.h
@@ -1 +1 @@
-/* $PostgreSQL: pgsql/src/include/port/win32_msvc/sys/file.h,v 1.2 2006/06/26 12:52:12 momjian Exp $ */
+/* $PostgreSQL: pgsql/src/include/port/win32_msvc/sys/file.h,v 1.3 2006/10/04 00:30:10 momjian Exp $ */
diff --git a/src/include/port/win32_msvc/sys/param.h b/src/include/port/win32_msvc/sys/param.h
index 0228228880..a09b35a169 100644
--- a/src/include/port/win32_msvc/sys/param.h
+++ b/src/include/port/win32_msvc/sys/param.h
@@ -1 +1 @@
-/* $PostgreSQL: pgsql/src/include/port/win32_msvc/sys/param.h,v 1.2 2006/06/26 12:52:12 momjian Exp $ */
+/* $PostgreSQL: pgsql/src/include/port/win32_msvc/sys/param.h,v 1.3 2006/10/04 00:30:10 momjian Exp $ */
diff --git a/src/include/port/win32_msvc/sys/time.h b/src/include/port/win32_msvc/sys/time.h
index cb1a65a979..6fc2ab7f53 100644
--- a/src/include/port/win32_msvc/sys/time.h
+++ b/src/include/port/win32_msvc/sys/time.h
@@ -1 +1 @@
-/* $PostgreSQL: pgsql/src/include/port/win32_msvc/sys/time.h,v 1.2 2006/06/26 12:52:12 momjian Exp $ */
+/* $PostgreSQL: pgsql/src/include/port/win32_msvc/sys/time.h,v 1.3 2006/10/04 00:30:10 momjian Exp $ */
diff --git a/src/include/port/win32_msvc/unistd.h b/src/include/port/win32_msvc/unistd.h
index d3214b57ee..f5290aeafa 100644
--- a/src/include/port/win32_msvc/unistd.h
+++ b/src/include/port/win32_msvc/unistd.h
@@ -1 +1 @@
-/* $PostgreSQL: pgsql/src/include/port/win32_msvc/unistd.h,v 1.2 2006/06/26 12:52:12 momjian Exp $ */
+/* $PostgreSQL: pgsql/src/include/port/win32_msvc/unistd.h,v 1.3 2006/10/04 00:30:10 momjian Exp $ */
diff --git a/src/include/port/win32_msvc/utime.h b/src/include/port/win32_msvc/utime.h
index b13c26023b..006c6a8396 100644
--- a/src/include/port/win32_msvc/utime.h
+++ b/src/include/port/win32_msvc/utime.h
@@ -1 +1 @@
-/* $PostgreSQL: pgsql/src/include/port/win32_msvc/utime.h,v 1.2 2006/06/26 12:52:12 momjian Exp $ */
+/* $PostgreSQL: pgsql/src/include/port/win32_msvc/utime.h,v 1.3 2006/10/04 00:30:10 momjian Exp $ */
diff --git a/src/include/storage/freespace.h b/src/include/storage/freespace.h
index ff0e0bb710..404fb2f955 100644
--- a/src/include/storage/freespace.h
+++ b/src/include/storage/freespace.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/storage/freespace.h,v 1.22 2006/09/21 20:31:22 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/storage/freespace.h,v 1.23 2006/10/04 00:30:10 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -115,7 +115,7 @@ struct FSMRelation
FSMRelation *priorPhysical; /* prior rel in arena-storage order */
bool isIndex; /* if true, we store only page numbers */
Size avgRequest; /* moving average of space requests */
- BlockNumber interestingPages; /* # of pages with useful free space */
+ BlockNumber interestingPages; /* # of pages with useful free space */
int firstChunk; /* chunk # of my first chunk in arena */
int storedPages; /* # of pages stored in arena */
int nextPage; /* index (from 0) to start next search at */
@@ -142,15 +142,15 @@ extern BlockNumber RecordAndGetPageWithFreeSpace(RelFileNode *rel,
Size spaceNeeded);
extern Size GetAvgFSMRequestSize(RelFileNode *rel);
extern void RecordRelationFreeSpace(RelFileNode *rel,
- BlockNumber interestingPages,
- int nPages,
- PageFreeSpaceInfo *pageSpaces);
+ BlockNumber interestingPages,
+ int nPages,
+ PageFreeSpaceInfo *pageSpaces);
extern BlockNumber GetFreeIndexPage(RelFileNode *rel);
extern void RecordIndexFreeSpace(RelFileNode *rel,
- BlockNumber interestingPages,
- int nPages,
- BlockNumber *pages);
+ BlockNumber interestingPages,
+ int nPages,
+ BlockNumber *pages);
extern void FreeSpaceMapTruncateRel(RelFileNode *rel, BlockNumber nblocks);
extern void FreeSpaceMapForgetRel(RelFileNode *rel);
diff --git a/src/include/storage/lock.h b/src/include/storage/lock.h
index 9717c3f255..6b91acc3ea 100644
--- a/src/include/storage/lock.h
+++ b/src/include/storage/lock.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/storage/lock.h,v 1.100 2006/09/22 23:20:14 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/storage/lock.h,v 1.101 2006/10/04 00:30:10 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -82,7 +82,7 @@ typedef struct LockMethodData
int numLockModes;
bool transactional;
const LOCKMASK *conflictTab;
- const char * const *lockModeNames;
+ const char *const * lockModeNames;
const bool *trace_flag;
} LockMethodData;
diff --git a/src/include/storage/pg_sema.h b/src/include/storage/pg_sema.h
index 65a482468d..91f6cf78ed 100644
--- a/src/include/storage/pg_sema.h
+++ b/src/include/storage/pg_sema.h
@@ -13,7 +13,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/storage/pg_sema.h,v 1.9 2006/04/29 16:34:41 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/storage/pg_sema.h,v 1.10 2006/10/04 00:30:10 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -56,7 +56,7 @@ typedef struct PGSemaphoreData
#ifdef USE_WIN32_SEMAPHORES
-typedef HANDLE PGSemaphoreData;
+typedef HANDLE PGSemaphoreData;
#endif
typedef PGSemaphoreData *PGSemaphore;
diff --git a/src/include/storage/pg_shmem.h b/src/include/storage/pg_shmem.h
index 47f6709a67..52de6a9404 100644
--- a/src/include/storage/pg_shmem.h
+++ b/src/include/storage/pg_shmem.h
@@ -17,7 +17,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/storage/pg_shmem.h,v 1.19 2006/08/01 19:03:11 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/storage/pg_shmem.h,v 1.20 2006/10/04 00:30:10 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -54,7 +54,7 @@ extern void PGSharedMemoryDetach(void);
extern void RegisterAddinContext(const char *name, Size size);
extern Size AddinShmemSize(void);
-extern void InitAddinContexts(void * start);
+extern void InitAddinContexts(void *start);
extern void *ShmemAllocFromContext(Size size, const char *name);
extern void ShmemResetContext(const char *name);
diff --git a/src/include/storage/proc.h b/src/include/storage/proc.h
index 0345b42f97..005716dc09 100644
--- a/src/include/storage/proc.h
+++ b/src/include/storage/proc.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/storage/proc.h,v 1.90 2006/07/30 02:07:18 alvherre Exp $
+ * $PostgreSQL: pgsql/src/include/storage/proc.h,v 1.91 2006/10/04 00:30:10 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -75,7 +75,7 @@ struct PGPROC
Oid roleId; /* OID of role using this backend */
bool inVacuum; /* true if current xact is a LAZY VACUUM */
-
+
/* Info about LWLock the process is currently waiting for, if any. */
bool lwWaiting; /* true if waiting for an LW lock */
bool lwExclusive; /* true if waiting for exclusive access */
diff --git a/src/include/tcop/tcopprot.h b/src/include/tcop/tcopprot.h
index a2913e95a1..e6637edeb7 100644
--- a/src/include/tcop/tcopprot.h
+++ b/src/include/tcop/tcopprot.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/tcop/tcopprot.h,v 1.83 2006/09/08 15:55:53 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/tcop/tcopprot.h,v 1.84 2006/10/04 00:30:10 momjian Exp $
*
* OLD COMMENTS
* This file was created so that other c files could get the two
@@ -68,7 +68,7 @@ extern int check_log_duration(char *msec_str, bool was_logged);
extern void set_debug_options(int debug_flag,
GucContext context, GucSource source);
extern bool set_plan_disabling_options(const char *arg,
- GucContext context, GucSource source);
+ GucContext context, GucSource source);
extern const char *get_stats_option_name(const char *arg);
#endif /* TCOPPROT_H */
diff --git a/src/include/utils/acl.h b/src/include/utils/acl.h
index 56226b4216..5232b2b40a 100644
--- a/src/include/utils/acl.h
+++ b/src/include/utils/acl.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/acl.h,v 1.97 2006/09/05 21:08:36 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/acl.h,v 1.98 2006/10/04 00:30:10 momjian Exp $
*
* NOTES
* An ACL array is simply an array of AclItems, representing the union
@@ -193,13 +193,13 @@ typedef enum AclObjectKind
*/
typedef struct
{
- bool is_grant;
+ bool is_grant;
GrantObjectType objtype;
- List *objects;
- bool all_privs;
- AclMode privileges;
- List *grantees;
- bool grant_option;
+ List *objects;
+ bool all_privs;
+ AclMode privileges;
+ List *grantees;
+ bool grant_option;
DropBehavior behavior;
} InternalGrant;
diff --git a/src/include/utils/catcache.h b/src/include/utils/catcache.h
index 6c1ad164e3..cbd6d9945a 100644
--- a/src/include/utils/catcache.h
+++ b/src/include/utils/catcache.h
@@ -13,7 +13,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/catcache.h,v 1.61 2006/07/13 18:01:02 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/utils/catcache.h,v 1.62 2006/10/04 00:30:10 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -76,7 +76,7 @@ typedef struct catctup
/*
* Each tuple in a cache is a member of a Dllist that stores the elements
- * of its hash bucket. We keep each Dllist in LRU order to speed repeated
+ * of its hash bucket. We keep each Dllist in LRU order to speed repeated
* lookups.
*/
Dlelem cache_elem; /* list member of per-bucket list */
diff --git a/src/include/utils/hsearch.h b/src/include/utils/hsearch.h
index c682cf0329..5582b88ee6 100644
--- a/src/include/utils/hsearch.h
+++ b/src/include/utils/hsearch.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/hsearch.h,v 1.44 2006/07/22 23:04:39 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/hsearch.h,v 1.45 2006/10/04 00:30:10 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -64,7 +64,7 @@ typedef struct HTAB HTAB;
/* Only those fields indicated by hash_flags need be set */
typedef struct HASHCTL
{
- long num_partitions; /* # partitions (must be power of 2) */
+ long num_partitions; /* # partitions (must be power of 2) */
long ssize; /* segment size */
long dsize; /* (initial) directory size */
long max_dsize; /* limit to dsize if dir size is limited */
@@ -125,8 +125,8 @@ extern void *hash_search(HTAB *hashp, const void *keyPtr, HASHACTION action,
bool *foundPtr);
extern uint32 get_hash_value(HTAB *hashp, const void *keyPtr);
extern void *hash_search_with_hash_value(HTAB *hashp, const void *keyPtr,
- uint32 hashvalue, HASHACTION action,
- bool *foundPtr);
+ uint32 hashvalue, HASHACTION action,
+ bool *foundPtr);
extern long hash_get_num_entries(HTAB *hashp);
extern void hash_seq_init(HASH_SEQ_STATUS *status, HTAB *hashp);
extern void *hash_seq_search(HASH_SEQ_STATUS *status);
diff --git a/src/include/utils/lsyscache.h b/src/include/utils/lsyscache.h
index 208cba3047..69eb31bcc5 100644
--- a/src/include/utils/lsyscache.h
+++ b/src/include/utils/lsyscache.h
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/lsyscache.h,v 1.106 2006/09/28 20:51:43 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/lsyscache.h,v 1.107 2006/10/04 00:30:10 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -34,7 +34,7 @@ extern void get_op_opclass_properties(Oid opno, Oid opclass,
extern Oid get_opclass_member(Oid opclass, Oid subtype, int16 strategy);
extern Oid get_op_hash_function(Oid opno);
extern void get_op_btree_interpretation(Oid opno,
- List **opclasses, List **opstrats);
+ List **opclasses, List **opstrats);
extern Oid get_opclass_proc(Oid opclass, Oid subtype, int16 procnum);
extern char *get_attname(Oid relid, AttrNumber attnum);
extern char *get_relid_attribute_name(Oid relid, AttrNumber attnum);
diff --git a/src/include/utils/portal.h b/src/include/utils/portal.h
index a377b0ca21..3a4e9f4e47 100644
--- a/src/include/utils/portal.h
+++ b/src/include/utils/portal.h
@@ -39,7 +39,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/portal.h,v 1.70 2006/09/07 22:52:01 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/portal.h,v 1.71 2006/10/04 00:30:10 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -176,7 +176,7 @@ typedef struct PortalData
long portalPos;
/* Presentation data, primarily used by the pg_cursors system view */
- TimestampTz creation_time; /* time at which this portal was defined */
+ TimestampTz creation_time; /* time at which this portal was defined */
bool visible; /* include this portal in pg_cursors? */
} PortalData;
diff --git a/src/include/utils/rel.h b/src/include/utils/rel.h
index 7bb1b270a4..1f7347c9cd 100644
--- a/src/include/utils/rel.h
+++ b/src/include/utils/rel.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/rel.h,v 1.91 2006/07/03 22:45:41 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/rel.h,v 1.92 2006/10/04 00:30:10 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -156,8 +156,8 @@ typedef struct RelationData
/*
* rd_options is set whenever rd_rel is loaded into the relcache entry.
- * Note that you can NOT look into rd_rel for this data. NULL means
- * "use defaults".
+ * Note that you can NOT look into rd_rel for this data. NULL means "use
+ * defaults".
*/
bytea *rd_options; /* parsed pg_class.reloptions */
@@ -179,7 +179,7 @@ typedef struct RelationData
* 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
* (in particular, it will get reset by a relcache inval message for the
- * index). If used, it must point to a single memory chunk palloc'd in
+ * index). If used, it must point to a single memory chunk palloc'd in
* rd_indexcxt. A relcache reset will include freeing that chunk and
* setting rd_amcache = NULL.
*/
@@ -218,8 +218,8 @@ typedef Relation *RelationPtr;
*/
typedef struct StdRdOptions
{
- int32 vl_len; /* required to be a bytea */
- int fillfactor; /* page fill factor in percent (0..100) */
+ int32 vl_len; /* required to be a bytea */
+ int fillfactor; /* page fill factor in percent (0..100) */
} StdRdOptions;
#define HEAP_MIN_FILLFACTOR 10
diff --git a/src/include/utils/resowner.h b/src/include/utils/resowner.h
index 83e17e4184..fd88be9969 100644
--- a/src/include/utils/resowner.h
+++ b/src/include/utils/resowner.h
@@ -12,7 +12,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/resowner.h,v 1.8 2006/07/13 18:01:02 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/utils/resowner.h,v 1.9 2006/10/04 00:30:11 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -109,8 +109,8 @@ extern void ResourceOwnerForgetRelationRef(ResourceOwner owner,
/* support for tupledesc refcount management */
extern void ResourceOwnerEnlargeTupleDescs(ResourceOwner owner);
extern void ResourceOwnerRememberTupleDesc(ResourceOwner owner,
- TupleDesc tupdesc);
+ TupleDesc tupdesc);
extern void ResourceOwnerForgetTupleDesc(ResourceOwner owner,
- TupleDesc tupdesc);
+ TupleDesc tupdesc);
#endif /* RESOWNER_H */
diff --git a/src/include/utils/selfuncs.h b/src/include/utils/selfuncs.h
index aea2501ca3..69a22b37b5 100644
--- a/src/include/utils/selfuncs.h
+++ b/src/include/utils/selfuncs.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/selfuncs.h,v 1.35 2006/09/20 19:50:21 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/selfuncs.h,v 1.36 2006/10/04 00:30:11 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -98,21 +98,21 @@ typedef enum
/* selfuncs.c */
extern void examine_variable(PlannerInfo *root, Node *node, int varRelid,
- VariableStatData *vardata);
+ VariableStatData *vardata);
extern bool get_restriction_variable(PlannerInfo *root, List *args,
- int varRelid,
- VariableStatData *vardata, Node **other,
- bool *varonleft);
+ int varRelid,
+ VariableStatData *vardata, Node **other,
+ bool *varonleft);
extern void get_join_variables(PlannerInfo *root, List *args,
- VariableStatData *vardata1,
- VariableStatData *vardata2);
+ VariableStatData *vardata1,
+ VariableStatData *vardata2);
extern double get_variable_numdistinct(VariableStatData *vardata);
extern double mcv_selectivity(VariableStatData *vardata, FmgrInfo *opproc,
- Datum constval, bool varonleft,
- double *sumcommonp);
+ Datum constval, bool varonleft,
+ double *sumcommonp);
extern double histogram_selectivity(VariableStatData *vardata, FmgrInfo *opproc,
- Datum constval, bool varonleft,
- int min_hist_size, int n_skip);
+ Datum constval, bool varonleft,
+ int min_hist_size, int n_skip);
extern Pattern_Prefix_Status pattern_fixed_prefix(Const *patt,
Pattern_Type ptype,
@@ -151,13 +151,13 @@ extern Selectivity booltestsel(PlannerInfo *root, BoolTestType booltesttype,
extern Selectivity nulltestsel(PlannerInfo *root, NullTestType nulltesttype,
Node *arg, int varRelid);
extern Selectivity scalararraysel(PlannerInfo *root,
- ScalarArrayOpExpr *clause,
- bool is_join_clause,
- int varRelid, JoinType jointype);
+ ScalarArrayOpExpr *clause,
+ bool is_join_clause,
+ int varRelid, JoinType jointype);
extern int estimate_array_length(Node *arrayexpr);
extern Selectivity rowcomparesel(PlannerInfo *root,
- RowCompareExpr *clause,
- int varRelid, JoinType jointype);
+ RowCompareExpr *clause,
+ int varRelid, JoinType jointype);
extern void mergejoinscansel(PlannerInfo *root, Node *clause,
Selectivity *leftscan,
diff --git a/src/include/utils/timestamp.h b/src/include/utils/timestamp.h
index 45a7420751..0c6e59cc92 100644
--- a/src/include/utils/timestamp.h
+++ b/src/include/utils/timestamp.h
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/timestamp.h,v 1.63 2006/09/05 01:13:40 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/utils/timestamp.h,v 1.64 2006/10/04 00:30:11 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -160,7 +160,6 @@ typedef int32 fsec_t;
#else
typedef double fsec_t;
-
#endif
/*
@@ -305,7 +304,7 @@ extern Datum pgsql_postmaster_start_time(PG_FUNCTION_ARGS);
extern TimestampTz GetCurrentTimestamp(void);
extern void TimestampDifference(TimestampTz start_time, TimestampTz stop_time,
- long *secs, int *microsecs);
+ long *secs, int *microsecs);
extern TimestampTz time_t_to_timestamptz(time_t tm);
extern time_t timestamptz_to_time_t(TimestampTz t);
diff --git a/src/include/utils/tqual.h b/src/include/utils/tqual.h
index 394895d601..5f1fbc925c 100644
--- a/src/include/utils/tqual.h
+++ b/src/include/utils/tqual.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/tqual.h,v 1.63 2006/09/03 15:59:39 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/tqual.h,v 1.64 2006/10/04 00:30:11 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -42,6 +42,7 @@ typedef struct SnapshotData
/* note: all ids in xip[] satisfy xmin <= xip[i] < xmax */
int32 subxcnt; /* # of xact ids in subxip[], -1 if overflow */
TransactionId *subxip; /* array of subxact IDs in progress */
+
/*
* note: all ids in subxip[] are >= xmin, but we don't bother filtering
* out any that are >= xmax
diff --git a/src/include/utils/tuplesort.h b/src/include/utils/tuplesort.h
index ef33237318..de70401d98 100644
--- a/src/include/utils/tuplesort.h
+++ b/src/include/utils/tuplesort.h
@@ -13,7 +13,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/tuplesort.h,v 1.22 2006/07/13 16:49:20 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/utils/tuplesort.h,v 1.23 2006/10/04 00:30:11 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -56,7 +56,7 @@ extern Tuplesortstate *tuplesort_begin_datum(Oid datumType,
int workMem, bool randomAccess);
extern void tuplesort_puttupleslot(Tuplesortstate *state,
- TupleTableSlot *slot);
+ TupleTableSlot *slot);
extern void tuplesort_putindextuple(Tuplesortstate *state, IndexTuple tuple);
extern void tuplesort_putdatum(Tuplesortstate *state, Datum val,
bool isNull);
@@ -64,9 +64,9 @@ extern void tuplesort_putdatum(Tuplesortstate *state, Datum val,
extern void tuplesort_performsort(Tuplesortstate *state);
extern bool tuplesort_gettupleslot(Tuplesortstate *state, bool forward,
- TupleTableSlot *slot);
+ TupleTableSlot *slot);
extern IndexTuple tuplesort_getindextuple(Tuplesortstate *state, bool forward,
- bool *should_free);
+ bool *should_free);
extern bool tuplesort_getdatum(Tuplesortstate *state, bool forward,
Datum *val, bool *isNull);
diff --git a/src/include/utils/tuplestore.h b/src/include/utils/tuplestore.h
index 6227934414..5aeaa4d11e 100644
--- a/src/include/utils/tuplestore.h
+++ b/src/include/utils/tuplestore.h
@@ -22,7 +22,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/tuplestore.h,v 1.18 2006/06/27 02:51:40 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/tuplestore.h,v 1.19 2006/10/04 00:30:11 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -47,7 +47,7 @@ extern Tuplestorestate *tuplestore_begin_heap(bool randomAccess,
int maxKBytes);
extern void tuplestore_puttupleslot(Tuplestorestate *state,
- TupleTableSlot *slot);
+ TupleTableSlot *slot);
extern void tuplestore_puttuple(Tuplestorestate *state, HeapTuple tuple);
/* tuplestore_donestoring() used to be required, but is no longer used */
@@ -55,7 +55,7 @@ extern void tuplestore_puttuple(Tuplestorestate *state, HeapTuple tuple);
/* backwards scan is only allowed if randomAccess was specified 'true' */
extern bool tuplestore_gettupleslot(Tuplestorestate *state, bool forward,
- TupleTableSlot *slot);
+ TupleTableSlot *slot);
extern bool tuplestore_advance(Tuplestorestate *state, bool forward);
extern void tuplestore_end(Tuplestorestate *state);
diff --git a/src/include/utils/typcache.h b/src/include/utils/typcache.h
index 7d3e284871..673bf176ad 100644
--- a/src/include/utils/typcache.h
+++ b/src/include/utils/typcache.h
@@ -9,7 +9,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/typcache.h,v 1.11 2006/06/16 18:42:23 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/typcache.h,v 1.12 2006/10/04 00:30:11 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -57,8 +57,8 @@ typedef struct TypeCacheEntry
/*
* Tuple descriptor if it's a composite type (row type). NULL if not
- * composite or information hasn't yet been requested. (NOTE: this is
- * a reference-counted tupledesc.)
+ * composite or information hasn't yet been requested. (NOTE: this is a
+ * reference-counted tupledesc.)
*/
TupleDesc tupDesc;
} TypeCacheEntry;
diff --git a/src/include/utils/tzparser.h b/src/include/utils/tzparser.h
index 4b7226eb44..2aef189bee 100644
--- a/src/include/utils/tzparser.h
+++ b/src/include/utils/tzparser.h
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/tzparser.h,v 1.1 2006/07/25 03:51:22 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/tzparser.h,v 1.2 2006/10/04 00:30:11 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -21,15 +21,15 @@
typedef struct tzEntry
{
/* the actual data: TZ abbrev (downcased), offset, DST flag */
- char *abbrev;
- int offset; /* in seconds from UTC */
- bool is_dst;
+ char *abbrev;
+ int offset; /* in seconds from UTC */
+ bool is_dst;
/* source information (for error messages) */
- int lineno;
+ int lineno;
const char *filename;
} tzEntry;
extern bool load_tzoffsets(const char *filename, bool doit, int elevel);
-#endif /* TZPARSER_H */
+#endif /* TZPARSER_H */
diff --git a/src/interfaces/ecpg/compatlib/informix.c b/src/interfaces/ecpg/compatlib/informix.c
index a8a95f4e43..cfde8be5aa 100644
--- a/src/interfaces/ecpg/compatlib/informix.c
+++ b/src/interfaces/ecpg/compatlib/informix.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/compatlib/informix.c,v 1.47 2006/08/15 06:40:19 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/compatlib/informix.c,v 1.48 2006/10/04 00:30:11 momjian Exp $ */
#include <stdlib.h>
#include <string.h>
@@ -169,15 +169,16 @@ ecpg_strndup(const char *str, size_t len)
int
deccvasc(char *cp, int len, decimal *np)
{
- char *str;
- int ret = 0;
- numeric *result;
+ char *str;
+ int ret = 0;
+ numeric *result;
rsetnull(CDECIMALTYPE, (char *) np);
if (risnull(CSTRINGTYPE, cp))
return 0;
- str = ecpg_strndup(cp, len); /* decimal_in always converts the complete string */
+ str = ecpg_strndup(cp, len);/* decimal_in always converts the complete
+ * string */
if (!str)
ret = ECPG_INFORMIX_NUM_UNDERFLOW;
else
@@ -378,8 +379,8 @@ dectoasc(decimal *np, char *cp, int len, int right)
return -1;
/*
- * TODO: have to take care of len here and create exponential notation
- * if necessary
+ * TODO: have to take care of len here and create exponential notation if
+ * necessary
*/
if ((int) (strlen(str) + 1) > len)
{
@@ -647,7 +648,7 @@ intoasc(interval * i, char *str)
}
/*
- * rfmt.c - description
+ * rfmt.c - description
* by Carsten Wolff <carsten.wolff@credativ.de>, Wed Apr 2 2003
*/
@@ -936,7 +937,8 @@ byleng(char *str, int len)
void
ldchar(char *src, int len, char *dest)
{
- int dlen = byleng(src, len);
+ int dlen = byleng(src, len);
+
memmove(dest, src, dlen);
dest[dlen] = '\0';
}
diff --git a/src/interfaces/ecpg/ecpglib/connect.c b/src/interfaces/ecpg/ecpglib/connect.c
index b07a8bbeb6..9636c91a36 100644
--- a/src/interfaces/ecpg/ecpglib/connect.c
+++ b/src/interfaces/ecpg/ecpglib/connect.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/connect.c,v 1.35 2006/08/29 12:24:51 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/connect.c,v 1.36 2006/10/04 00:30:11 momjian Exp $ */
#define POSTGRES_ECPG_INTERNAL
#include "postgres_fe.h"
@@ -27,7 +27,8 @@ ecpg_actual_connection_init(void)
pthread_key_create(&actual_connection_key, NULL);
}
-void ecpg_pthreads_init(void)
+void
+ecpg_pthreads_init(void)
{
pthread_once(&actual_connection_key_once, ecpg_actual_connection_init);
}
@@ -226,7 +227,7 @@ ECPGnoticeReceiver(void *arg, const PGresult *result)
if (sqlstate == NULL)
sqlstate = ECPG_SQLSTATE_ECPG_INTERNAL_ERROR;
- if (message == NULL) /* Shouldn't happen, but need to be sure */
+ if (message == NULL) /* Shouldn't happen, but need to be sure */
message = "No message received";
/* these are not warnings */
@@ -369,9 +370,10 @@ ECPGconnect(int lineno, int c, const char *name, const char *user, const char *p
ECPGraise(lineno, ECPG_CONNECT, ECPG_SQLSTATE_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION, realname ? realname : "<DEFAULT>");
if (host)
ECPGfree(host);
- /* port not set yet
- * if (port)
- * ECPGfree(port); */
+
+ /*
+ * port not set yet if (port) ECPGfree(port);
+ */
if (options)
ECPGfree(options);
if (realname)
diff --git a/src/interfaces/ecpg/ecpglib/data.c b/src/interfaces/ecpg/ecpglib/data.c
index 4f474d3bcf..ab1f2554ce 100644
--- a/src/interfaces/ecpg/ecpglib/data.c
+++ b/src/interfaces/ecpg/ecpglib/data.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.34 2006/08/24 10:35:58 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.35 2006/10/04 00:30:11 momjian Exp $ */
#define POSTGRES_ECPG_INTERNAL
#include "postgres_fe.h"
@@ -16,7 +16,10 @@
#include "pgtypes_timestamp.h"
#include "pgtypes_interval.h"
-static enum { NOT_CHECKED, REGRESS, NORMAL } ECPG_regression_mode = NOT_CHECKED;
+static enum
+{
+ NOT_CHECKED, REGRESS, NORMAL
+} ECPG_regression_mode = NOT_CHECKED;
static bool
garbage_left(enum ARRAY_TYPE isarray, char *scan_length, enum COMPAT_MODE compat)
@@ -47,11 +50,11 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
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);
- int binary = PQfformat(results, act_field);
- int size = PQgetlength(results, act_tuple, act_field);
- int value_for_indicator = 0;
- long log_offset;
+ char *pval = (char *) PQgetvalue(results, act_tuple, act_field);
+ int binary = PQfformat(results, act_field);
+ int size = PQgetlength(results, act_tuple, act_field);
+ int value_for_indicator = 0;
+ long log_offset;
/*
* use a global variable to see if the environment variable
@@ -62,13 +65,13 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
{
if (getenv("ECPG_REGRESSION"))
ECPG_regression_mode = REGRESS;
- else
+ else
ECPG_regression_mode = NORMAL;
}
/*
- * If we are running in a regression test, do not log the offset
- * variable, it depends on the machine's alignment.
+ * If we are running in a regression test, do not log the offset variable,
+ * it depends on the machine's alignment.
*/
if (ECPG_regression_mode == REGRESS)
log_offset = -1;
@@ -167,15 +170,15 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
{
if (pval)
{
- if (varcharsize == 0 || varcharsize*offset >= size)
+ if (varcharsize == 0 || varcharsize * offset >= size)
memcpy((char *) ((long) var + offset * act_tuple),
pval, size);
else
{
memcpy((char *) ((long) var + offset * act_tuple),
- pval, varcharsize*offset);
+ pval, varcharsize * offset);
- if (varcharsize*offset < size)
+ if (varcharsize * offset < size)
{
/* truncation */
switch (ind_type)
@@ -206,533 +209,533 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
}
pval += size;
}
- }
+ }
else
{
- switch (type)
- {
- long res;
- unsigned long ures;
- double dres;
- char *scan_length;
- numeric *nres;
- date ddres;
- timestamp tres;
- interval *ires;
-
- case ECPGt_short:
- case ECPGt_int:
- case ECPGt_long:
- if (pval)
- {
- res = strtol(pval, &scan_length, 10);
- if (garbage_left(isarray, scan_length, compat))
+ switch (type)
+ {
+ long res;
+ unsigned long ures;
+ double dres;
+ char *scan_length;
+ numeric *nres;
+ date ddres;
+ timestamp tres;
+ interval *ires;
+
+ case ECPGt_short:
+ case ECPGt_int:
+ case ECPGt_long:
+ if (pval)
{
- ECPGraise(lineno, ECPG_INT_FORMAT,
- ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
- return (false);
+ res = strtol(pval, &scan_length, 10);
+ if (garbage_left(isarray, scan_length, compat))
+ {
+ ECPGraise(lineno, ECPG_INT_FORMAT,
+ ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
+ return (false);
+ }
+ pval = scan_length;
}
- pval = scan_length;
- }
- else
- res = 0L;
+ else
+ res = 0L;
- switch (type)
- {
- case ECPGt_short:
- *((short *) (var + offset * act_tuple)) = (short) res;
- break;
- case ECPGt_int:
- *((int *) (var + offset * act_tuple)) = (int) res;
- break;
- case ECPGt_long:
- *((long *) (var + offset * act_tuple)) = (long) res;
- break;
- default:
- /* Cannot happen */
- break;
- }
- break;
+ switch (type)
+ {
+ case ECPGt_short:
+ *((short *) (var + offset * act_tuple)) = (short) res;
+ break;
+ case ECPGt_int:
+ *((int *) (var + offset * act_tuple)) = (int) res;
+ break;
+ case ECPGt_long:
+ *((long *) (var + offset * act_tuple)) = (long) res;
+ break;
+ default:
+ /* Cannot happen */
+ break;
+ }
+ break;
- case ECPGt_unsigned_short:
- case ECPGt_unsigned_int:
- case ECPGt_unsigned_long:
- if (pval)
- {
- ures = strtoul(pval, &scan_length, 10);
- if (garbage_left(isarray, scan_length, compat))
+ case ECPGt_unsigned_short:
+ case ECPGt_unsigned_int:
+ case ECPGt_unsigned_long:
+ if (pval)
{
- ECPGraise(lineno, ECPG_UINT_FORMAT,
- ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
- return (false);
+ ures = strtoul(pval, &scan_length, 10);
+ if (garbage_left(isarray, scan_length, compat))
+ {
+ ECPGraise(lineno, ECPG_UINT_FORMAT,
+ ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
+ return (false);
+ }
+ pval = scan_length;
}
- pval = scan_length;
- }
- else
- ures = 0L;
+ else
+ ures = 0L;
- switch (type)
- {
- case ECPGt_unsigned_short:
- *((unsigned short *) (var + offset * act_tuple)) = (unsigned short) ures;
- break;
- case ECPGt_unsigned_int:
- *((unsigned int *) (var + offset * act_tuple)) = (unsigned int) ures;
- break;
- case ECPGt_unsigned_long:
- *((unsigned long *) (var + offset * act_tuple)) = (unsigned long) ures;
- break;
- default:
- /* Cannot happen */
- break;
- }
- break;
+ switch (type)
+ {
+ case ECPGt_unsigned_short:
+ *((unsigned short *) (var + offset * act_tuple)) = (unsigned short) ures;
+ break;
+ case ECPGt_unsigned_int:
+ *((unsigned int *) (var + offset * act_tuple)) = (unsigned int) ures;
+ break;
+ case ECPGt_unsigned_long:
+ *((unsigned long *) (var + offset * act_tuple)) = (unsigned long) ures;
+ break;
+ default:
+ /* Cannot happen */
+ break;
+ }
+ break;
#ifdef HAVE_LONG_LONG_INT_64
#ifdef HAVE_STRTOLL
- case ECPGt_long_long:
- if (pval)
- {
- *((long long int *) (var + offset * act_tuple)) = strtoll(pval, &scan_length, 10);
- if (garbage_left(isarray, scan_length, compat))
+ case ECPGt_long_long:
+ if (pval)
{
- ECPGraise(lineno, ECPG_INT_FORMAT, ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
- return (false);
+ *((long long int *) (var + offset * act_tuple)) = strtoll(pval, &scan_length, 10);
+ if (garbage_left(isarray, scan_length, compat))
+ {
+ ECPGraise(lineno, ECPG_INT_FORMAT, ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
+ return (false);
+ }
+ pval = scan_length;
}
- pval = scan_length;
- }
- else
- *((long long int *) (var + offset * act_tuple)) = (long long) 0;
+ else
+ *((long long int *) (var + offset * act_tuple)) = (long long) 0;
- break;
+ break;
#endif /* HAVE_STRTOLL */
#ifdef HAVE_STRTOULL
- case ECPGt_unsigned_long_long:
- if (pval)
- {
- *((unsigned long long int *) (var + offset * act_tuple)) = strtoull(pval, &scan_length, 10);
- if ((isarray && *scan_length != ',' && *scan_length != '}')
- || (!isarray && !(INFORMIX_MODE(compat) && *scan_length == '.') && *scan_length != '\0' && *scan_length != ' ')) /* Garbage left */
+ case ECPGt_unsigned_long_long:
+ if (pval)
{
- ECPGraise(lineno, ECPG_UINT_FORMAT, ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
- return (false);
+ *((unsigned long long int *) (var + offset * act_tuple)) = strtoull(pval, &scan_length, 10);
+ if ((isarray && *scan_length != ',' && *scan_length != '}')
+ || (!isarray && !(INFORMIX_MODE(compat) && *scan_length == '.') && *scan_length != '\0' && *scan_length != ' ')) /* Garbage left */
+ {
+ ECPGraise(lineno, ECPG_UINT_FORMAT, ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
+ return (false);
+ }
+ pval = scan_length;
}
- pval = scan_length;
- }
- else
- *((unsigned long long int *) (var + offset * act_tuple)) = (long long) 0;
+ else
+ *((unsigned long long int *) (var + offset * act_tuple)) = (long long) 0;
- break;
+ break;
#endif /* HAVE_STRTOULL */
#endif /* HAVE_LONG_LONG_INT_64 */
- case ECPGt_float:
- case ECPGt_double:
- if (pval)
- {
- if (isarray && *pval == '"')
- dres = strtod(pval + 1, &scan_length);
- else
- dres = strtod(pval, &scan_length);
-
- if (isarray && *scan_length == '"')
- scan_length++;
-
- if (garbage_left(isarray, scan_length, compat))
+ case ECPGt_float:
+ case ECPGt_double:
+ if (pval)
{
- ECPGraise(lineno, ECPG_FLOAT_FORMAT,
- ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
- return (false);
- }
- pval = scan_length;
- }
- else
- dres = 0.0;
+ if (isarray && *pval == '"')
+ dres = strtod(pval + 1, &scan_length);
+ else
+ dres = strtod(pval, &scan_length);
- switch (type)
- {
- case ECPGt_float:
- *((float *) (var + offset * act_tuple)) = dres;
- break;
- case ECPGt_double:
- *((double *) (var + offset * act_tuple)) = dres;
- break;
- default:
- /* Cannot happen */
- break;
- }
- break;
+ if (isarray && *scan_length == '"')
+ scan_length++;
- case ECPGt_bool:
- if (pval)
- {
- if (pval[0] == 'f' && pval[1] == '\0')
- {
- if (offset == sizeof(char))
- *((char *) (var + offset * act_tuple)) = false;
- else if (offset == sizeof(int))
- *((int *) (var + offset * act_tuple)) = false;
- else
- ECPGraise(lineno, ECPG_CONVERT_BOOL,
- ECPG_SQLSTATE_DATATYPE_MISMATCH,
- "different size");
- break;
+ if (garbage_left(isarray, scan_length, compat))
+ {
+ ECPGraise(lineno, ECPG_FLOAT_FORMAT,
+ ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
+ return (false);
+ }
+ pval = scan_length;
}
- else if (pval[0] == 't' && pval[1] == '\0')
+ else
+ dres = 0.0;
+
+ switch (type)
{
- if (offset == sizeof(char))
- *((char *) (var + offset * act_tuple)) = true;
- else if (offset == sizeof(int))
- *((int *) (var + offset * act_tuple)) = true;
- else
- ECPGraise(lineno, ECPG_CONVERT_BOOL,
- ECPG_SQLSTATE_DATATYPE_MISMATCH,
- "different size");
- break;
+ case ECPGt_float:
+ *((float *) (var + offset * act_tuple)) = dres;
+ break;
+ case ECPGt_double:
+ *((double *) (var + offset * act_tuple)) = dres;
+ break;
+ default:
+ /* Cannot happen */
+ break;
}
- else if (pval[0] == '\0' && PQgetisnull(results, act_tuple, act_field))
+ break;
+
+ case ECPGt_bool:
+ if (pval)
{
- /* NULL is valid */
- break;
+ if (pval[0] == 'f' && pval[1] == '\0')
+ {
+ if (offset == sizeof(char))
+ *((char *) (var + offset * act_tuple)) = false;
+ else if (offset == sizeof(int))
+ *((int *) (var + offset * act_tuple)) = false;
+ else
+ ECPGraise(lineno, ECPG_CONVERT_BOOL,
+ ECPG_SQLSTATE_DATATYPE_MISMATCH,
+ "different size");
+ break;
+ }
+ else if (pval[0] == 't' && pval[1] == '\0')
+ {
+ if (offset == sizeof(char))
+ *((char *) (var + offset * act_tuple)) = true;
+ else if (offset == sizeof(int))
+ *((int *) (var + offset * act_tuple)) = true;
+ else
+ ECPGraise(lineno, ECPG_CONVERT_BOOL,
+ ECPG_SQLSTATE_DATATYPE_MISMATCH,
+ "different size");
+ break;
+ }
+ else if (pval[0] == '\0' && PQgetisnull(results, act_tuple, act_field))
+ {
+ /* NULL is valid */
+ break;
+ }
}
- }
- ECPGraise(lineno, ECPG_CONVERT_BOOL,
- ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
- return (false);
- break;
+ ECPGraise(lineno, ECPG_CONVERT_BOOL,
+ ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
+ return (false);
+ break;
- case ECPGt_char:
- case ECPGt_unsigned_char:
- if (pval)
- {
- if (varcharsize == 0 || varcharsize > size)
- strncpy((char *) ((long) var + offset * act_tuple), pval, size + 1);
- else
+ case ECPGt_char:
+ case ECPGt_unsigned_char:
+ if (pval)
{
- strncpy((char *) ((long) var + offset * act_tuple), pval, varcharsize);
-
- if (varcharsize < size)
+ if (varcharsize == 0 || varcharsize > size)
+ strncpy((char *) ((long) var + offset * act_tuple), pval, size + 1);
+ else
{
- /* truncation */
- switch (ind_type)
+ strncpy((char *) ((long) var + offset * act_tuple), pval, varcharsize);
+
+ if (varcharsize < size)
{
- case ECPGt_short:
- case ECPGt_unsigned_short:
- *((short *) (ind + ind_offset * act_tuple)) = size;
- break;
- case ECPGt_int:
- case ECPGt_unsigned_int:
- *((int *) (ind + ind_offset * act_tuple)) = size;
- break;
- case ECPGt_long:
- case ECPGt_unsigned_long:
- *((long *) (ind + ind_offset * act_tuple)) = size;
- break;
+ /* truncation */
+ switch (ind_type)
+ {
+ case ECPGt_short:
+ case ECPGt_unsigned_short:
+ *((short *) (ind + ind_offset * act_tuple)) = size;
+ break;
+ case ECPGt_int:
+ case ECPGt_unsigned_int:
+ *((int *) (ind + ind_offset * act_tuple)) = size;
+ break;
+ case ECPGt_long:
+ case ECPGt_unsigned_long:
+ *((long *) (ind + ind_offset * act_tuple)) = size;
+ break;
#ifdef HAVE_LONG_LONG_INT_64
- case ECPGt_long_long:
- case ECPGt_unsigned_long_long:
- *((long long int *) (ind + ind_offset * act_tuple)) = size;
- break;
+ case ECPGt_long_long:
+ case ECPGt_unsigned_long_long:
+ *((long long int *) (ind + ind_offset * act_tuple)) = size;
+ break;
#endif /* HAVE_LONG_LONG_INT_64 */
- default:
- break;
+ default:
+ break;
+ }
+ sqlca->sqlwarn[0] = sqlca->sqlwarn[1] = 'W';
}
- sqlca->sqlwarn[0] = sqlca->sqlwarn[1] = 'W';
}
+ pval += size;
}
- pval += size;
- }
- break;
+ break;
- case ECPGt_varchar:
- if (pval)
- {
- struct ECPGgeneric_varchar *variable =
- (struct ECPGgeneric_varchar *) ((long) var + offset * act_tuple);
-
- variable->len = size;
- if (varcharsize == 0)
- strncpy(variable->arr, pval, variable->len);
- else
+ case ECPGt_varchar:
+ if (pval)
{
- strncpy(variable->arr, pval, varcharsize);
+ struct ECPGgeneric_varchar *variable =
+ (struct ECPGgeneric_varchar *) ((long) var + offset * act_tuple);
- if (variable->len > varcharsize)
+ variable->len = size;
+ if (varcharsize == 0)
+ strncpy(variable->arr, pval, variable->len);
+ else
{
- /* truncation */
- switch (ind_type)
+ strncpy(variable->arr, pval, varcharsize);
+
+ if (variable->len > varcharsize)
{
- case ECPGt_short:
- case ECPGt_unsigned_short:
- *((short *) (ind + offset * act_tuple)) = variable->len;
- break;
- case ECPGt_int:
- case ECPGt_unsigned_int:
- *((int *) (ind + offset * act_tuple)) = variable->len;
- break;
- case ECPGt_long:
- case ECPGt_unsigned_long:
- *((long *) (ind + offset * act_tuple)) = variable->len;
- break;
+ /* truncation */
+ switch (ind_type)
+ {
+ case ECPGt_short:
+ case ECPGt_unsigned_short:
+ *((short *) (ind + offset * act_tuple)) = variable->len;
+ break;
+ case ECPGt_int:
+ case ECPGt_unsigned_int:
+ *((int *) (ind + offset * act_tuple)) = variable->len;
+ break;
+ case ECPGt_long:
+ case ECPGt_unsigned_long:
+ *((long *) (ind + offset * act_tuple)) = variable->len;
+ break;
#ifdef HAVE_LONG_LONG_INT_64
- case ECPGt_long_long:
- case ECPGt_unsigned_long_long:
- *((long long int *) (ind + ind_offset * act_tuple)) = variable->len;
- break;
+ case ECPGt_long_long:
+ case ECPGt_unsigned_long_long:
+ *((long long int *) (ind + ind_offset * act_tuple)) = variable->len;
+ break;
#endif /* HAVE_LONG_LONG_INT_64 */
- default:
- break;
- }
- sqlca->sqlwarn[0] = sqlca->sqlwarn[1] = 'W';
+ default:
+ break;
+ }
+ sqlca->sqlwarn[0] = sqlca->sqlwarn[1] = 'W';
- variable->len = varcharsize;
+ variable->len = varcharsize;
+ }
}
+ pval += size;
}
- pval += size;
- }
- break;
+ break;
- case ECPGt_decimal:
- case ECPGt_numeric:
- if (pval)
- {
- if (isarray && *pval == '"')
- nres = PGTYPESnumeric_from_asc(pval + 1, &scan_length);
- else
- nres = PGTYPESnumeric_from_asc(pval, &scan_length);
-
- /* did we get an error? */
- if (nres == NULL)
+ case ECPGt_decimal:
+ case ECPGt_numeric:
+ if (pval)
{
- ECPGlog("ECPGget_data line %d: RESULT: %s errno %d\n",
- lineno, pval ? pval : "", errno);
+ if (isarray && *pval == '"')
+ nres = PGTYPESnumeric_from_asc(pval + 1, &scan_length);
+ else
+ nres = PGTYPESnumeric_from_asc(pval, &scan_length);
- if (INFORMIX_MODE(compat))
+ /* did we get an error? */
+ if (nres == NULL)
{
- /*
- * Informix wants its own NULL value here instead
- * of an error
- */
- nres = PGTYPESnumeric_new();
- if (nres)
- ECPGset_noind_null(ECPGt_numeric, nres);
+ ECPGlog("ECPGget_data line %d: RESULT: %s errno %d\n",
+ lineno, pval ? pval : "", errno);
+
+ if (INFORMIX_MODE(compat))
+ {
+ /*
+ * Informix wants its own NULL value here
+ * instead of an error
+ */
+ nres = PGTYPESnumeric_new();
+ if (nres)
+ ECPGset_noind_null(ECPGt_numeric, nres);
+ else
+ {
+ ECPGraise(lineno, ECPG_OUT_OF_MEMORY,
+ ECPG_SQLSTATE_ECPG_OUT_OF_MEMORY, NULL);
+ return (false);
+ }
+ }
else
{
- ECPGraise(lineno, ECPG_OUT_OF_MEMORY,
- ECPG_SQLSTATE_ECPG_OUT_OF_MEMORY, NULL);
+ ECPGraise(lineno, ECPG_NUMERIC_FORMAT,
+ ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
return (false);
}
}
else
{
- ECPGraise(lineno, ECPG_NUMERIC_FORMAT,
- ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
- return (false);
- }
- }
- else
- {
- if (isarray && *scan_length == '"')
- scan_length++;
+ if (isarray && *scan_length == '"')
+ scan_length++;
- if (garbage_left(isarray, scan_length, compat))
- {
- free(nres);
- ECPGraise(lineno, ECPG_NUMERIC_FORMAT,
+ if (garbage_left(isarray, scan_length, compat))
+ {
+ free(nres);
+ ECPGraise(lineno, ECPG_NUMERIC_FORMAT,
ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
- return (false);
+ return (false);
+ }
}
+ pval = scan_length;
}
- pval = scan_length;
- }
- else
- nres = PGTYPESnumeric_from_asc("0.0", &scan_length);
-
- if (type == ECPGt_numeric)
- PGTYPESnumeric_copy(nres, (numeric *) (var + offset * act_tuple));
- else
- PGTYPESnumeric_to_decimal(nres, (decimal *) (var + offset * act_tuple));
-
- free(nres);
- break;
+ else
+ nres = PGTYPESnumeric_from_asc("0.0", &scan_length);
- case ECPGt_interval:
- if (pval)
- {
- if (isarray && *pval == '"')
- ires = PGTYPESinterval_from_asc(pval + 1, &scan_length);
+ if (type == ECPGt_numeric)
+ PGTYPESnumeric_copy(nres, (numeric *) (var + offset * act_tuple));
else
- ires = PGTYPESinterval_from_asc(pval, &scan_length);
+ PGTYPESnumeric_to_decimal(nres, (decimal *) (var + offset * act_tuple));
+
+ free(nres);
+ break;
- /* did we get an error? */
- if (ires == NULL)
+ case ECPGt_interval:
+ if (pval)
{
- if (INFORMIX_MODE(compat))
+ if (isarray && *pval == '"')
+ ires = PGTYPESinterval_from_asc(pval + 1, &scan_length);
+ else
+ ires = PGTYPESinterval_from_asc(pval, &scan_length);
+
+ /* did we get an error? */
+ if (ires == NULL)
{
- /*
- * Informix wants its own NULL value here instead
- * of an error
- */
- ires = (interval *) ECPGalloc(sizeof(interval), lineno);
- if (!ires)
+ if (INFORMIX_MODE(compat))
+ {
+ /*
+ * Informix wants its own NULL value here
+ * instead of an error
+ */
+ ires = (interval *) ECPGalloc(sizeof(interval), lineno);
+ if (!ires)
+ return (false);
+
+ ECPGset_noind_null(ECPGt_interval, ires);
+ }
+ else
+ {
+ ECPGraise(lineno, ECPG_INTERVAL_FORMAT,
+ ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
return (false);
-
- ECPGset_noind_null(ECPGt_interval, ires);
+ }
}
else
{
- ECPGraise(lineno, ECPG_INTERVAL_FORMAT,
- ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
- return (false);
- }
- }
- else
- {
- if (isarray && *scan_length == '"')
- scan_length++;
+ if (isarray && *scan_length == '"')
+ scan_length++;
- if (garbage_left(isarray, scan_length, compat))
- {
- free(ires);
- ECPGraise(lineno, ECPG_INTERVAL_FORMAT,
+ if (garbage_left(isarray, scan_length, compat))
+ {
+ free(ires);
+ ECPGraise(lineno, ECPG_INTERVAL_FORMAT,
ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
- return (false);
+ return (false);
+ }
}
+ pval = scan_length;
}
- pval = scan_length;
- }
- else
- ires = PGTYPESinterval_from_asc("0 seconds", NULL);
-
- PGTYPESinterval_copy(ires, (interval *) (var + offset * act_tuple));
- free(ires);
- break;
- case ECPGt_date:
- if (pval)
- {
- if (isarray && *pval == '"')
- ddres = PGTYPESdate_from_asc(pval + 1, &scan_length);
else
- ddres = PGTYPESdate_from_asc(pval, &scan_length);
+ ires = PGTYPESinterval_from_asc("0 seconds", NULL);
- /* did we get an error? */
- if (errno != 0)
+ PGTYPESinterval_copy(ires, (interval *) (var + offset * act_tuple));
+ free(ires);
+ break;
+ case ECPGt_date:
+ if (pval)
{
- if (INFORMIX_MODE(compat))
- {
- /*
- * Informix wants its own NULL value here instead
- * of an error
- */
- ECPGset_noind_null(ECPGt_date, &ddres);
- }
+ if (isarray && *pval == '"')
+ ddres = PGTYPESdate_from_asc(pval + 1, &scan_length);
else
+ ddres = PGTYPESdate_from_asc(pval, &scan_length);
+
+ /* did we get an error? */
+ if (errno != 0)
{
- ECPGraise(lineno, ECPG_DATE_FORMAT,
+ if (INFORMIX_MODE(compat))
+ {
+ /*
+ * Informix wants its own NULL value here
+ * instead of an error
+ */
+ ECPGset_noind_null(ECPGt_date, &ddres);
+ }
+ else
+ {
+ ECPGraise(lineno, ECPG_DATE_FORMAT,
ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
- return (false);
+ return (false);
+ }
}
- }
- else
- {
- if (isarray && *scan_length == '"')
- scan_length++;
-
- if (garbage_left(isarray, scan_length, compat))
+ else
{
- ECPGraise(lineno, ECPG_DATE_FORMAT,
+ if (isarray && *scan_length == '"')
+ scan_length++;
+
+ if (garbage_left(isarray, scan_length, compat))
+ {
+ ECPGraise(lineno, ECPG_DATE_FORMAT,
ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
- return (false);
+ return (false);
+ }
}
- }
-
- *((date *) (var + offset * act_tuple)) = ddres;
- pval = scan_length;
- }
- break;
- case ECPGt_timestamp:
- if (pval)
- {
- if (isarray && *pval == '"')
- tres = PGTYPEStimestamp_from_asc(pval + 1, &scan_length);
- else
- tres = PGTYPEStimestamp_from_asc(pval, &scan_length);
+ *((date *) (var + offset * act_tuple)) = ddres;
+ pval = scan_length;
+ }
+ break;
- /* did we get an error? */
- if (errno != 0)
+ case ECPGt_timestamp:
+ if (pval)
{
- if (INFORMIX_MODE(compat))
- {
- /*
- * Informix wants its own NULL value here instead
- * of an error
- */
- ECPGset_noind_null(ECPGt_timestamp, &tres);
- }
+ if (isarray && *pval == '"')
+ tres = PGTYPEStimestamp_from_asc(pval + 1, &scan_length);
else
+ tres = PGTYPEStimestamp_from_asc(pval, &scan_length);
+
+ /* did we get an error? */
+ if (errno != 0)
{
- ECPGraise(lineno, ECPG_TIMESTAMP_FORMAT,
+ if (INFORMIX_MODE(compat))
+ {
+ /*
+ * Informix wants its own NULL value here
+ * instead of an error
+ */
+ ECPGset_noind_null(ECPGt_timestamp, &tres);
+ }
+ else
+ {
+ ECPGraise(lineno, ECPG_TIMESTAMP_FORMAT,
ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
- return (false);
+ return (false);
+ }
}
- }
- else
- {
- if (isarray && *scan_length == '"')
- scan_length++;
-
- if (garbage_left(isarray, scan_length, compat))
+ else
{
- ECPGraise(lineno, ECPG_TIMESTAMP_FORMAT,
+ if (isarray && *scan_length == '"')
+ scan_length++;
+
+ if (garbage_left(isarray, scan_length, compat))
+ {
+ ECPGraise(lineno, ECPG_TIMESTAMP_FORMAT,
ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
- return (false);
+ return (false);
+ }
}
- }
- *((timestamp *) (var + offset * act_tuple)) = tres;
- pval = scan_length;
- }
- break;
+ *((timestamp *) (var + offset * act_tuple)) = tres;
+ pval = scan_length;
+ }
+ break;
- default:
- ECPGraise(lineno, ECPG_UNSUPPORTED,
- ECPG_SQLSTATE_ECPG_INTERNAL_ERROR,
- ECPGtype_name(type));
- return (false);
- break;
- }
- if (isarray == ECPG_ARRAY_ARRAY)
- {
- bool string = false;
+ default:
+ ECPGraise(lineno, ECPG_UNSUPPORTED,
+ ECPG_SQLSTATE_ECPG_INTERNAL_ERROR,
+ ECPGtype_name(type));
+ return (false);
+ break;
+ }
+ if (isarray == ECPG_ARRAY_ARRAY)
+ {
+ bool string = false;
- /* set array to next entry */
- ++act_tuple;
+ /* set array to next entry */
+ ++act_tuple;
- /* set pval to the next entry */
- for (; string || (*pval != ',' && *pval != '}' && *pval != '\0'); ++pval)
- if (*pval == '"')
- string = string ? false : true;
+ /* set pval to the next entry */
+ for (; string || (*pval != ',' && *pval != '}' && *pval != '\0'); ++pval)
+ if (*pval == '"')
+ string = string ? false : true;
- if (*pval == ',')
- ++pval;
- }
- else if (isarray == ECPG_ARRAY_VECTOR)
- {
- bool string = false;
+ if (*pval == ',')
+ ++pval;
+ }
+ else if (isarray == ECPG_ARRAY_VECTOR)
+ {
+ bool string = false;
- /* set array to next entry */
- ++act_tuple;
+ /* set array to next entry */
+ ++act_tuple;
- /* set pval to the next entry */
- for (; string || (*pval != ' ' && *pval != '\0'); ++pval)
- if (*pval == '"')
- string = string ? false : true;
+ /* set pval to the next entry */
+ for (; string || (*pval != ' ' && *pval != '\0'); ++pval)
+ if (*pval == '"')
+ string = string ? false : true;
- if (*pval == ' ')
- ++pval;
- }
+ if (*pval == ' ')
+ ++pval;
+ }
}
} while (*pval != '\0' && ((isarray == ECPG_ARRAY_ARRAY && *pval != '}') || isarray == ECPG_ARRAY_VECTOR));
diff --git a/src/interfaces/ecpg/ecpglib/descriptor.c b/src/interfaces/ecpg/ecpglib/descriptor.c
index 58d7b5bf6f..d73b7d6e80 100644
--- a/src/interfaces/ecpg/ecpglib/descriptor.c
+++ b/src/interfaces/ecpg/ecpglib/descriptor.c
@@ -1,6 +1,6 @@
/* dynamic SQL support routines
*
- * $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/descriptor.c,v 1.19 2006/08/23 13:57:27 meskes Exp $
+ * $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/descriptor.c,v 1.20 2006/10/04 00:30:11 momjian Exp $
*/
#define POSTGRES_ECPG_INTERNAL
@@ -351,7 +351,8 @@ ECPGget_desc(int lineno, const char *desc_name, int index,...)
/* allocate storage if needed */
if (arrsize == 0 && *(void **) var == NULL)
{
- void *mem = (void *) ECPGalloc(offset * ntuples, lineno);
+ void *mem = (void *) ECPGalloc(offset * ntuples, lineno);
+
if (!mem)
return false;
*(void **) var = mem;
@@ -398,7 +399,12 @@ ECPGget_desc(int lineno, const char *desc_name, int index,...)
ECPGfree(oldlocale);
}
else if (data_var.ind_type != ECPGt_NO_INDICATOR && data_var.ind_pointer != NULL)
- /* ind_type != NO_INDICATOR should always have ind_pointer != NULL but since this might be changed manually in the .c file let's play it safe */
+
+ /*
+ * ind_type != NO_INDICATOR should always have ind_pointer != NULL but
+ * since this might be changed manually in the .c file let's play it
+ * safe
+ */
{
/*
* this is like ECPGstore_result but since we don't have a data
@@ -415,7 +421,8 @@ ECPGget_desc(int lineno, const char *desc_name, int index,...)
/* allocate storage if needed */
if (data_var.ind_arrsize == 0 && data_var.ind_value == NULL)
{
- void *mem = (void *) ECPGalloc(data_var.ind_offset * ntuples, lineno);
+ void *mem = (void *) ECPGalloc(data_var.ind_offset * ntuples, lineno);
+
if (!mem)
return false;
*(void **) data_var.ind_pointer = mem;
diff --git a/src/interfaces/ecpg/ecpglib/error.c b/src/interfaces/ecpg/ecpglib/error.c
index 5e65c0df8d..3f811377bd 100644
--- a/src/interfaces/ecpg/ecpglib/error.c
+++ b/src/interfaces/ecpg/ecpglib/error.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/error.c,v 1.14 2006/08/02 13:43:23 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/error.c,v 1.15 2006/10/04 00:30:11 momjian Exp $ */
#define POSTGRES_ECPG_INTERNAL
#include "postgres_fe.h"
@@ -190,7 +190,7 @@ ECPGraise_backend(int line, PGresult *result, PGconn *conn, int compat)
sqlca->sqlcode = ECPG_PGSQL;
ECPGlog("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();
diff --git a/src/interfaces/ecpg/ecpglib/execute.c b/src/interfaces/ecpg/ecpglib/execute.c
index 7cd23cfc15..15edddcea2 100644
--- a/src/interfaces/ecpg/ecpglib/execute.c
+++ b/src/interfaces/ecpg/ecpglib/execute.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.61 2006/08/23 12:01:52 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.62 2006/10/04 00:30:11 momjian Exp $ */
/*
* The aim is to get a simpler inteface to the database routines.
@@ -39,10 +39,13 @@ static char *
quote_postgres(char *arg, bool quote, int lineno)
{
char *res;
- int i, ri = 0;
+ int i,
+ ri = 0;
- /* if quote is false we just need to store things in a descriptor
- * they will be quoted once they are inserted in a statement */
+ /*
+ * if quote is false we just need to store things in a descriptor they
+ * will be quoted once they are inserted in a statement
+ */
if (!quote)
return res = ECPGstrdup(arg, lineno);
else
@@ -52,9 +55,9 @@ quote_postgres(char *arg, bool quote, int lineno)
return (res);
/*
- * We don't know if the target database is using
- * standard_conforming_strings, so we always use E'' strings.
- */
+ * We don't know if the target database is using
+ * standard_conforming_strings, so we always use E'' strings.
+ */
if (strchr(arg, '\\') != NULL)
res[ri++] = ESCAPE_STRING_SYNTAX;
@@ -270,7 +273,7 @@ ECPGtypeinfocache_push(struct ECPGtype_information_cache ** cache, int oid, bool
new_entry->isarray = isarray;
new_entry->next = *cache;
*cache = new_entry;
- return(true);
+ return (true);
}
static enum ARRAY_TYPE
@@ -290,48 +293,90 @@ ECPGis_type_an_array(int type, const struct statement * stmt, const struct varia
#define not_an_array_in_ecpg ECPG_ARRAY_NONE
/* populate cache with well known types to speed things up */
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), BOOLOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), BYTEAOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), CHAROID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), NAMEOID, not_an_array_in_ecpg, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), INT8OID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), INT2OID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), INT2VECTOROID, ECPG_ARRAY_VECTOR, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), INT4OID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), REGPROCOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), TEXTOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), OIDOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), TIDOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), XIDOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), CIDOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), OIDVECTOROID, ECPG_ARRAY_VECTOR, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), POINTOID, ECPG_ARRAY_VECTOR, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), LSEGOID, ECPG_ARRAY_VECTOR, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), PATHOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), BOXOID, ECPG_ARRAY_VECTOR, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), POLYGONOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), LINEOID, ECPG_ARRAY_VECTOR, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), FLOAT4OID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), FLOAT8OID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), ABSTIMEOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), RELTIMEOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), TINTERVALOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), UNKNOWNOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), CIRCLEOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), CASHOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), INETOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), CIDROID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), BPCHAROID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), VARCHAROID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), DATEOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), TIMEOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), TIMESTAMPOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), TIMESTAMPTZOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), INTERVALOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), TIMETZOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), ZPBITOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), VARBITOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
- if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), NUMERICOID, ECPG_ARRAY_NONE, stmt->lineno)) return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), BOOLOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), BYTEAOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), CHAROID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), NAMEOID, not_an_array_in_ecpg, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), INT8OID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), INT2OID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), INT2VECTOROID, ECPG_ARRAY_VECTOR, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), INT4OID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), REGPROCOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), TEXTOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), OIDOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), TIDOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), XIDOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), CIDOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), OIDVECTOROID, ECPG_ARRAY_VECTOR, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), POINTOID, ECPG_ARRAY_VECTOR, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), LSEGOID, ECPG_ARRAY_VECTOR, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), PATHOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), BOXOID, ECPG_ARRAY_VECTOR, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), POLYGONOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), LINEOID, ECPG_ARRAY_VECTOR, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), FLOAT4OID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), FLOAT8OID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), ABSTIMEOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), RELTIMEOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), TINTERVALOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), UNKNOWNOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), CIRCLEOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), CASHOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), INETOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), CIDROID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), BPCHAROID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), VARCHAROID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), DATEOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), TIMEOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), TIMESTAMPOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), TIMESTAMPTZOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), INTERVALOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), TIMETZOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), ZPBITOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), VARBITOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
+ if (!ECPGtypeinfocache_push(&(stmt->connection->cache_head), NUMERICOID, ECPG_ARRAY_NONE, stmt->lineno))
+ return (ECPG_ARRAY_ERROR);
}
for (cache_entry = (stmt->connection->cache_head); cache_entry != NULL; cache_entry = cache_entry->next)
@@ -580,7 +625,7 @@ ECPGstore_input(const int lineno, const bool force_indicator, const struct varia
}
if (**tobeinserted_p == '\0')
{
- int asize = var->arrsize? var->arrsize : 1;
+ int asize = var->arrsize ? var->arrsize : 1;
switch (var->type)
{
@@ -882,7 +927,7 @@ ECPGstore_input(const int lineno, const bool force_indicator, const struct varia
case ECPGt_numeric:
{
char *str = NULL;
- int slen;
+ int slen;
numeric *nval;
if (var->arrsize > 1)
@@ -892,7 +937,7 @@ ECPGstore_input(const int lineno, const bool force_indicator, const struct varia
nval = PGTYPESnumeric_new();
if (!nval)
return false;
-
+
if (var->type == ECPGt_numeric)
PGTYPESnumeric_copy((numeric *) ((var + var->offset * element)->value), nval);
else
@@ -1237,8 +1282,8 @@ ECPGexecute(struct statement * stmt)
* the first %s
*/
if (!(newcopy = (char *) ECPGalloc(strlen(copiedquery)
- + strlen(tobeinserted)
- + 1, stmt->lineno)))
+ + strlen(tobeinserted)
+ + 1, stmt->lineno)))
{
ECPGfree(copiedquery);
return false;
@@ -1252,7 +1297,7 @@ ECPGexecute(struct statement * stmt)
* in the string
*/
ECPGraise(stmt->lineno, ECPG_TOO_MANY_ARGUMENTS,
- ECPG_SQLSTATE_USING_CLAUSE_DOES_NOT_MATCH_PARAMETERS,
+ ECPG_SQLSTATE_USING_CLAUSE_DOES_NOT_MATCH_PARAMETERS,
NULL);
ECPGfree(copiedquery);
ECPGfree(newcopy);
@@ -1422,11 +1467,12 @@ ECPGexecute(struct statement * stmt)
break;
case PGRES_COPY_OUT:
{
- char *buffer;
- int res;
+ char *buffer;
+ int res;
+
ECPGlog("ECPGexecute line %d: Got PGRES_COPY_OUT\n", stmt->lineno);
while ((res = PQgetCopyData(stmt->connection->connection,
- &buffer, 0)) > 0)
+ &buffer, 0)) > 0)
{
printf("%s", buffer);
PQfreemem(buffer);
diff --git a/src/interfaces/ecpg/ecpglib/extern.h b/src/interfaces/ecpg/ecpglib/extern.h
index 62f8cf34da..8759fac4fd 100644
--- a/src/interfaces/ecpg/ecpglib/extern.h
+++ b/src/interfaces/ecpg/ecpglib/extern.h
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/extern.h,v 1.19 2006/08/23 12:01:52 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/extern.h,v 1.20 2006/10/04 00:30:11 momjian Exp $ */
#ifndef _ECPG_LIB_EXTERN_H
#define _ECPG_LIB_EXTERN_H
@@ -27,6 +27,7 @@ void ECPGadd_mem(void *ptr, int lineno);
bool ECPGget_data(const PGresult *, int, int, int, enum ECPGttype type,
enum ECPGttype, char *, char *, long, long, long,
enum ARRAY_TYPE, enum COMPAT_MODE, bool);
+
#ifdef ENABLE_THREAD_SAFETY
void ecpg_pthreads_init(void);
#endif
diff --git a/src/interfaces/ecpg/ecpglib/misc.c b/src/interfaces/ecpg/ecpglib/misc.c
index 3c84cfd4f7..0bd850d36d 100644
--- a/src/interfaces/ecpg/ecpglib/misc.c
+++ b/src/interfaces/ecpg/ecpglib/misc.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/misc.c,v 1.31 2006/08/15 06:40:19 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/misc.c,v 1.32 2006/10/04 00:30:11 momjian Exp $ */
#define POSTGRES_ECPG_INTERNAL
#include "postgres_fe.h"
@@ -247,8 +247,8 @@ ECPGlog(const char *format,...)
if (simple_debug)
{
- int bufsize = strlen(format) + 100;
- char *f = (char *) malloc(bufsize);
+ int bufsize = strlen(format) + 100;
+ char *f = (char *) malloc(bufsize);
if (f == NULL)
{
diff --git a/src/interfaces/ecpg/ecpglib/prepare.c b/src/interfaces/ecpg/ecpglib/prepare.c
index 19b771afea..f1a9db0729 100644
--- a/src/interfaces/ecpg/ecpglib/prepare.c
+++ b/src/interfaces/ecpg/ecpglib/prepare.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/prepare.c,v 1.17 2006/09/05 10:00:52 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/prepare.c,v 1.18 2006/10/04 00:30:11 momjian Exp $ */
#define POSTGRES_ECPG_INTERNAL
#include "postgres_fe.h"
@@ -53,8 +53,9 @@ replace_variables(char *text)
*ptr = '?';
for (++ptr; *ptr && isvarchar(*ptr); ptr++)
*ptr = ' ';
- if (*ptr == '\0') /* we reached the end */
- ptr--; /* since we will ptr++ in the top level for loop */
+ if (*ptr == '\0') /* we reached the end */
+ ptr--; /* since we will ptr++ in the top level for
+ * loop */
}
}
}
@@ -103,7 +104,7 @@ ECPGprepare(int lineno, const char *name, const char *variable)
this->name = ECPGstrdup(name, lineno);
this->stmt = stmt;
ECPGlog("ECPGprepare line %d: QUERY: %s\n", stmt->lineno, stmt->command);
-
+
if (prep_stmts == NULL)
this->next = NULL;
diff --git a/src/interfaces/ecpg/include/ecpglib.h b/src/interfaces/ecpg/include/ecpglib.h
index ced6da563d..ab18b7e5f9 100644
--- a/src/interfaces/ecpg/include/ecpglib.h
+++ b/src/interfaces/ecpg/include/ecpglib.h
@@ -1,7 +1,7 @@
/*
* this is a small part of c.h since we don't want to leak all postgres
* definitions into ecpg programs
- * $PostgreSQL: pgsql/src/interfaces/ecpg/include/ecpglib.h,v 1.69 2006/08/04 16:54:05 tgl Exp $
+ * $PostgreSQL: pgsql/src/interfaces/ecpg/include/ecpglib.h,v 1.70 2006/10/04 00:30:11 momjian Exp $
*/
#ifndef _ECPGLIB_H
@@ -38,7 +38,7 @@ extern "C"
{
#endif
-void ECPGinit_sqlca(struct sqlca_t *sqlca);
+void ECPGinit_sqlca(struct sqlca_t * sqlca);
void ECPGdebug(int, FILE *);
bool ECPGstatus(int, const char *);
bool ECPGsetcommit(int, const char *, const char *);
diff --git a/src/interfaces/ecpg/include/pgtypes_date.h b/src/interfaces/ecpg/include/pgtypes_date.h
index 2afc97198e..9cc4233ee0 100644
--- a/src/interfaces/ecpg/include/pgtypes_date.h
+++ b/src/interfaces/ecpg/include/pgtypes_date.h
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/include/pgtypes_date.h,v 1.10 2006/09/14 08:02:38 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/include/pgtypes_date.h,v 1.11 2006/10/04 00:30:11 momjian Exp $ */
#ifndef PGTYPES_DATETIME
#define PGTYPES_DATETIME
@@ -13,7 +13,7 @@ extern "C"
#endif
extern date *PGTYPESdate_new(void);
-extern void PGTYPESdate_free(date *);
+extern void PGTYPESdate_free(date *);
extern date PGTYPESdate_from_asc(char *, char **);
extern char *PGTYPESdate_to_asc(date);
extern date PGTYPESdate_from_timestamp(timestamp);
diff --git a/src/interfaces/ecpg/include/pgtypes_interval.h b/src/interfaces/ecpg/include/pgtypes_interval.h
index b2ab1a871e..bb4f269ead 100644
--- a/src/interfaces/ecpg/include/pgtypes_interval.h
+++ b/src/interfaces/ecpg/include/pgtypes_interval.h
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/include/pgtypes_interval.h,v 1.12 2006/09/14 08:02:38 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/include/pgtypes_interval.h,v 1.13 2006/10/04 00:30:11 momjian Exp $ */
#ifndef PGTYPES_INTERVAL
#define PGTYPES_INTERVAL
@@ -17,8 +17,8 @@ typedef long int int64;
#ifndef HAVE_INT64
typedef long long int int64;
#endif
-#else /* not HAVE_LONG_INT_64 and not
- * HAVE_LONG_LONG_INT_64 */
+#else /* not HAVE_LONG_INT_64 and not
+ * HAVE_LONG_LONG_INT_64 */
/* Won't actually work, but fall back to long int so that code compiles */
#ifndef HAVE_INT64
@@ -26,13 +26,13 @@ typedef long int int64;
#endif
#define INT64_IS_BUSTED
-#endif /* not HAVE_LONG_INT_64 and not HAVE_LONG_LONG_INT_64 */
+#endif /* not HAVE_LONG_INT_64 and not
+ * HAVE_LONG_LONG_INT_64 */
#if defined(USE_INTEGER_DATETIMES) && !defined(INT64_IS_BUSTED)
#define HAVE_INT64_TIMESTAMP
#endif
-
-#endif /* C_H */
+#endif /* C_H */
typedef struct
{
diff --git a/src/interfaces/ecpg/pgtypeslib/datetime.c b/src/interfaces/ecpg/pgtypeslib/datetime.c
index e323d579e7..87b62c0b10 100644
--- a/src/interfaces/ecpg/pgtypeslib/datetime.c
+++ b/src/interfaces/ecpg/pgtypeslib/datetime.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/datetime.c,v 1.31 2006/09/14 08:02:38 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/datetime.c,v 1.32 2006/10/04 00:30:11 momjian Exp $ */
#include "postgres_fe.h"
@@ -15,14 +15,15 @@
date *
PGTYPESdate_new(void)
{
- date *result;
+ date *result;
+
result = (date *) pgtypes_alloc(sizeof(date));
/* result can be NULL if we run out of memory */
return result;
}
void
-PGTYPESdate_free(date *d)
+PGTYPESdate_free(date * d)
{
free(d);
}
diff --git a/src/interfaces/ecpg/pgtypeslib/interval.c b/src/interfaces/ecpg/pgtypeslib/interval.c
index b49267eb62..534acdcc5f 100644
--- a/src/interfaces/ecpg/pgtypeslib/interval.c
+++ b/src/interfaces/ecpg/pgtypeslib/interval.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/interval.c,v 1.35 2006/09/14 08:02:38 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/interval.c,v 1.36 2006/10/04 00:30:11 momjian Exp $ */
#include "postgres_fe.h"
#include <time.h>
@@ -307,7 +307,8 @@ DecodeInterval(char **field, int *ftype, int nf, int *dtype, struct tm * tm, fse
tm->tm_mday += val * 7;
if (fval != 0)
{
- int extra_days;
+ int extra_days;
+
fval *= 7;
extra_days = (int32) fval;
tm->tm_mday += extra_days;
@@ -315,6 +316,7 @@ DecodeInterval(char **field, int *ftype, int nf, int *dtype, struct tm * tm, fse
if (fval != 0)
{
int sec;
+
fval *= SECS_PER_DAY;
sec = fval;
tm->tm_sec += sec;
@@ -332,7 +334,8 @@ DecodeInterval(char **field, int *ftype, int nf, int *dtype, struct tm * tm, fse
tm->tm_mon += val;
if (fval != 0)
{
- int day;
+ int day;
+
fval *= DAYS_PER_MONTH;
day = fval;
tm->tm_mday += day;
@@ -340,6 +343,7 @@ DecodeInterval(char **field, int *ftype, int nf, int *dtype, struct tm * tm, fse
if (fval != 0)
{
int sec;
+
fval *= SECS_PER_DAY;
sec = fval;
tm->tm_sec += sec;
@@ -756,14 +760,15 @@ tm2interval(struct tm * tm, fsec_t fsec, interval * span)
interval *
PGTYPESinterval_new(void)
{
- interval *result;
+ interval *result;
+
result = (interval *) pgtypes_alloc(sizeof(interval));
/* result can be NULL if we run out of memory */
return result;
}
void
-PGTYPESinterval_free(interval *intvl)
+PGTYPESinterval_free(interval * intvl)
{
free(intvl);
}
diff --git a/src/interfaces/ecpg/pgtypeslib/numeric.c b/src/interfaces/ecpg/pgtypeslib/numeric.c
index c462d21673..93505eaab1 100644
--- a/src/interfaces/ecpg/pgtypeslib/numeric.c
+++ b/src/interfaces/ecpg/pgtypeslib/numeric.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/numeric.c,v 1.32 2006/08/15 06:40:19 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/numeric.c,v 1.33 2006/10/04 00:30:12 momjian Exp $ */
#include "postgres_fe.h"
#include <ctype.h>
@@ -143,6 +143,7 @@ decimal *
PGTYPESdecimal_new(void)
{
decimal *var;
+
if ((var = (decimal *) pgtypes_alloc(sizeof(decimal))) == NULL)
return NULL;
@@ -382,7 +383,7 @@ PGTYPESnumeric_from_asc(char *str, char **endptr)
char *realptr;
char **ptr = (endptr != NULL) ? endptr : &realptr;
- if (!value)
+ if (!value)
return (NULL);
ret = set_var_from_str(str, ptr, value);
@@ -398,8 +399,8 @@ PGTYPESnumeric_from_asc(char *str, char **endptr)
char *
PGTYPESnumeric_to_asc(numeric *num, int dscale)
{
- numeric *numcopy = PGTYPESnumeric_new();
- char *s;
+ numeric *numcopy = PGTYPESnumeric_new();
+ char *s;
if (dscale < 0)
dscale = num->dscale;
@@ -1468,7 +1469,7 @@ PGTYPESnumeric_from_double(double d, numeric *dst)
{
char buffer[100];
numeric *tmp;
- int i;
+ int i;
if (sprintf(buffer, "%f", d) == 0)
return -1;
@@ -1490,7 +1491,7 @@ numericvar_to_double(numeric *var, double *dp)
char *tmp;
double val;
char *endptr;
- numeric *varcopy = PGTYPESnumeric_new();
+ numeric *varcopy = PGTYPESnumeric_new();
if (PGTYPESnumeric_copy(var, varcopy) < 0)
{
@@ -1566,8 +1567,8 @@ PGTYPESnumeric_to_int(numeric *nv, int *ip)
int
PGTYPESnumeric_to_long(numeric *nv, long *lp)
{
- char *s = PGTYPESnumeric_to_asc(nv, 0);
- char *endptr;
+ char *s = PGTYPESnumeric_to_asc(nv, 0);
+ char *endptr;
if (s == NULL)
return -1;
diff --git a/src/interfaces/ecpg/pgtypeslib/timestamp.c b/src/interfaces/ecpg/pgtypeslib/timestamp.c
index d701124385..19c6bb80de 100644
--- a/src/interfaces/ecpg/pgtypeslib/timestamp.c
+++ b/src/interfaces/ecpg/pgtypeslib/timestamp.c
@@ -423,47 +423,50 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
replace_type = PGTYPES_TYPE_NOTHING;
switch (*p)
{
- /* the abbreviated name of the day in the week */
- /* XXX should be locale aware */
+ /* the abbreviated name of the day in the week */
+ /* XXX should be locale aware */
case 'a':
replace_val.str_val = pgtypes_date_weekdays_short[dow];
replace_type = PGTYPES_TYPE_STRING_CONSTANT;
break;
- /* the full name of the day in the week */
- /* XXX should be locale aware */
+ /* the full name of the day in the week */
+ /* XXX should be locale aware */
case 'A':
replace_val.str_val = days[dow];
replace_type = PGTYPES_TYPE_STRING_CONSTANT;
break;
- /* the abbreviated name of the month */
- /* XXX should be locale aware */
+ /* the abbreviated name of the month */
+ /* XXX should be locale aware */
case 'b':
case 'h':
replace_val.str_val = months[tm->tm_mon];
replace_type = PGTYPES_TYPE_STRING_CONSTANT;
break;
- /* the full name name of the month */
- /* XXX should be locale aware */
+ /* the full name name of the month */
+ /* XXX should be locale aware */
case 'B':
replace_val.str_val = pgtypes_date_months[tm->tm_mon];
replace_type = PGTYPES_TYPE_STRING_CONSTANT;
break;
- /* The preferred date and time representation for the
- * current locale. */
+
+ /*
+ * The preferred date and time representation for
+ * the current locale.
+ */
case 'c':
/* XXX */
break;
- /* the century number with leading zeroes */
+ /* the century number with leading zeroes */
case 'C':
replace_val.uint_val = tm->tm_year / 100;
replace_type = PGTYPES_TYPE_UINT_2_LZ;
break;
- /* day with leading zeroes (01 - 31) */
+ /* day with leading zeroes (01 - 31) */
case 'd':
replace_val.uint_val = tm->tm_mday;
replace_type = PGTYPES_TYPE_UINT_2_LZ;
break;
- /* the date in the format mm/dd/yy */
+ /* the date in the format mm/dd/yy */
case 'D':
/*
@@ -480,14 +483,15 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
if (i)
return i;
break;
- /* day with leading spaces (01 - 31) */
+ /* day with leading spaces (01 - 31) */
case 'e':
replace_val.uint_val = tm->tm_mday;
replace_type = PGTYPES_TYPE_UINT_2_LS;
break;
- /*
- * alternative format modifier
- */
+
+ /*
+ * alternative format modifier
+ */
case 'E':
{
char tmp[4] = "%Ex";
@@ -496,7 +500,7 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
if (*p == '\0')
return -1;
tmp[2] = *p;
-
+
/*
* strftime's month is 0 based, ours is 1 based
*/
@@ -513,10 +517,11 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
replace_type = PGTYPES_TYPE_NOTHING;
break;
}
- /*
- * The ISO 8601 year with century as a decimal number. The
- * 4-digit year corresponding to the ISO week number.
- */
+
+ /*
+ * The ISO 8601 year with century as a decimal number. The
+ * 4-digit year corresponding to the ISO week number.
+ */
case 'G':
tm->tm_mon -= 1;
i = strftime(q, *pstr_len, "%G", tm);
@@ -530,10 +535,11 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
tm->tm_mon += 1;
replace_type = PGTYPES_TYPE_NOTHING;
break;
- /*
- * Like %G, but without century, i.e., with a 2-digit year
- * (00-99).
- */
+
+ /*
+ * Like %G, but without century, i.e., with a 2-digit year
+ * (00-99).
+ */
case 'g':
{
char *fmt = "%g"; /* Keep compiler quiet about
@@ -552,57 +558,60 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
replace_type = PGTYPES_TYPE_NOTHING;
}
break;
- /* hour (24 hour clock) with leading zeroes */
+ /* hour (24 hour clock) with leading zeroes */
case 'H':
replace_val.uint_val = tm->tm_hour;
replace_type = PGTYPES_TYPE_UINT_2_LZ;
break;
- /* hour (12 hour clock) with leading zeroes */
+ /* hour (12 hour clock) with leading zeroes */
case 'I':
replace_val.uint_val = tm->tm_hour % 12;
replace_type = PGTYPES_TYPE_UINT_2_LZ;
break;
- /*
- * The day of the year as a decimal number with leading zeroes.
- * It ranges from 001 to 366.
- */
+
+ /*
+ * The day of the year as a decimal number with leading
+ * zeroes. It ranges from 001 to 366.
+ */
case 'j':
replace_val.uint_val = tm->tm_yday;
replace_type = PGTYPES_TYPE_UINT_3_LZ;
break;
- /*
- * The hour (24 hour clock). Leading zeroes will be turned into
- * spaces.
- */
+
+ /*
+ * The hour (24 hour clock). Leading zeroes will be turned
+ * into spaces.
+ */
case 'k':
replace_val.uint_val = tm->tm_hour;
replace_type = PGTYPES_TYPE_UINT_2_LS;
break;
- /*
- * The hour (12 hour clock). Leading zeroes will be turned into
- * spaces.
- */
+
+ /*
+ * The hour (12 hour clock). Leading zeroes will be turned
+ * into spaces.
+ */
case 'l':
replace_val.uint_val = tm->tm_hour % 12;
replace_type = PGTYPES_TYPE_UINT_2_LS;
break;
- /* The month as a decimal number with a leading zero */
+ /* The month as a decimal number with a leading zero */
case 'm':
replace_val.uint_val = tm->tm_mon;
replace_type = PGTYPES_TYPE_UINT_2_LZ;
break;
- /* The minute as a decimal number with a leading zero */
+ /* The minute as a decimal number with a leading zero */
case 'M':
replace_val.uint_val = tm->tm_min;
replace_type = PGTYPES_TYPE_UINT_2_LZ;
break;
- /* A newline character */
+ /* A newline character */
case 'n':
replace_val.char_val = '\n';
replace_type = PGTYPES_TYPE_CHAR;
break;
- /* the AM/PM specifier (uppercase) */
- /* XXX should be locale aware */
+ /* the AM/PM specifier (uppercase) */
+ /* XXX should be locale aware */
case 'p':
if (tm->tm_hour < 12)
replace_val.str_val = "AM";
@@ -610,8 +619,8 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
replace_val.str_val = "PM";
replace_type = PGTYPES_TYPE_STRING_CONSTANT;
break;
- /* the AM/PM specifier (lowercase) */
- /* XXX should be locale aware */
+ /* the AM/PM specifier (lowercase) */
+ /* XXX should be locale aware */
case 'P':
if (tm->tm_hour < 12)
replace_val.str_val = "am";
@@ -619,8 +628,8 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
replace_val.str_val = "pm";
replace_type = PGTYPES_TYPE_STRING_CONSTANT;
break;
- /* the time in the format %I:%M:%S %p */
- /* XXX should be locale aware */
+ /* the time in the format %I:%M:%S %p */
+ /* XXX should be locale aware */
case 'r':
i = dttofmtasc_replace(ts, dDate, dow, tm,
q, pstr_len,
@@ -628,7 +637,7 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
if (i)
return i;
break;
- /* The time in 24 hour notation (%H:%M) */
+ /* The time in 24 hour notation (%H:%M) */
case 'R':
i = dttofmtasc_replace(ts, dDate, dow, tm,
q, pstr_len,
@@ -636,7 +645,7 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
if (i)
return i;
break;
- /* The number of seconds since the Epoch (1970-01-01) */
+ /* The number of seconds since the Epoch (1970-01-01) */
case 's':
#ifdef HAVE_INT64_TIMESTAMP
replace_val.int64_val = (*ts - SetEpochTimestamp()) / 1000000.0;
@@ -646,17 +655,17 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
replace_type = PGTYPES_TYPE_DOUBLE_NF;
#endif
break;
- /* seconds as a decimal number with leading zeroes */
+ /* seconds as a decimal number with leading zeroes */
case 'S':
replace_val.uint_val = tm->tm_sec;
replace_type = PGTYPES_TYPE_UINT_2_LZ;
break;
- /* A tabulator */
+ /* A tabulator */
case 't':
replace_val.char_val = '\t';
replace_type = PGTYPES_TYPE_CHAR;
break;
- /* The time in 24 hour notation (%H:%M:%S) */
+ /* The time in 24 hour notation (%H:%M:%S) */
case 'T':
i = dttofmtasc_replace(ts, dDate, dow, tm,
q, pstr_len,
@@ -664,14 +673,18 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
if (i)
return i;
break;
- /* The day of the week as a decimal, Monday = 1, Sunday = 7 */
+
+ /*
+ * The day of the week as a decimal, Monday = 1, Sunday =
+ * 7
+ */
case 'u':
replace_val.uint_val = dow;
if (replace_val.uint_val == 0)
replace_val.uint_val = 7;
replace_type = PGTYPES_TYPE_UINT;
break;
- /* The week number of the year as a decimal number */
+ /* The week number of the year as a decimal number */
case 'U':
tm->tm_mon -= 1;
i = strftime(q, *pstr_len, "%U", tm);
@@ -685,10 +698,11 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
tm->tm_mon += 1;
replace_type = PGTYPES_TYPE_NOTHING;
break;
- /*
- * The ISO 8601:1988 week number of the current year as a
- * decimal number.
- */
+
+ /*
+ * The ISO 8601:1988 week number of the current year as a
+ * decimal number.
+ */
case 'V':
i = strftime(q, *pstr_len, "%V", tm);
if (i == 0)
@@ -700,15 +714,16 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
}
replace_type = PGTYPES_TYPE_NOTHING;
break;
- /*
- * The day of the week as a decimal, Sunday being 0 and
- * Monday 1.
- */
+
+ /*
+ * The day of the week as a decimal, Sunday being 0 and
+ * Monday 1.
+ */
case 'w':
replace_val.uint_val = dow;
replace_type = PGTYPES_TYPE_UINT;
break;
- /* The week number of the year (another definition) */
+ /* The week number of the year (another definition) */
case 'W':
tm->tm_mon -= 1;
i = strftime(q, *pstr_len, "%U", tm);
@@ -722,10 +737,11 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
tm->tm_mon += 1;
replace_type = PGTYPES_TYPE_NOTHING;
break;
- /*
- * The preferred date representation for the current locale
- * without the time.
- */
+
+ /*
+ * The preferred date representation for the current
+ * locale without the time.
+ */
case 'x':
{
char *fmt = "%x"; /* Keep compiler quiet about
@@ -744,10 +760,11 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
replace_type = PGTYPES_TYPE_NOTHING;
}
break;
- /*
- * The preferred time representation for the current locale
- * without the date.
- */
+
+ /*
+ * The preferred time representation for the current
+ * locale without the date.
+ */
case 'X':
tm->tm_mon -= 1;
i = strftime(q, *pstr_len, "%X", tm);
@@ -761,17 +778,17 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
tm->tm_mon += 1;
replace_type = PGTYPES_TYPE_NOTHING;
break;
- /* The year without the century (2 digits, leading zeroes) */
+ /* The year without the century (2 digits, leading zeroes) */
case 'y':
replace_val.uint_val = tm->tm_year % 100;
replace_type = PGTYPES_TYPE_UINT_2_LZ;
break;
- /* The year with the century (4 digits) */
+ /* The year with the century (4 digits) */
case 'Y':
replace_val.uint_val = tm->tm_year;
replace_type = PGTYPES_TYPE_UINT;
break;
- /* The time zone offset from GMT */
+ /* The time zone offset from GMT */
case 'z':
tm->tm_mon -= 1;
i = strftime(q, *pstr_len, "%z", tm);
@@ -785,7 +802,7 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
tm->tm_mon += 1;
replace_type = PGTYPES_TYPE_NOTHING;
break;
- /* The name or abbreviation of the time zone */
+ /* The name or abbreviation of the time zone */
case 'Z':
tm->tm_mon -= 1;
i = strftime(q, *pstr_len, "%Z", tm);
@@ -799,18 +816,20 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
tm->tm_mon += 1;
replace_type = PGTYPES_TYPE_NOTHING;
break;
- /* A % sign */
+ /* A % sign */
case '%':
replace_val.char_val = '%';
replace_type = PGTYPES_TYPE_CHAR;
break;
case '\0':
/* fmtstr: foo%' - The string ends with a % sign */
+
/*
* this is not compliant to the specification
*/
return -1;
default:
+
/*
* if we don't know the pattern, we just copy it
*/
diff --git a/src/interfaces/ecpg/preproc/output.c b/src/interfaces/ecpg/preproc/output.c
index 910d1750a4..23469fca86 100644
--- a/src/interfaces/ecpg/preproc/output.c
+++ b/src/interfaces/ecpg/preproc/output.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/output.c,v 1.18 2006/08/15 06:40:19 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/output.c,v 1.19 2006/10/04 00:30:12 momjian Exp $ */
#include "postgres_fe.h"
@@ -9,8 +9,8 @@ static void output_escaped_str(char *cmd);
void
output_line_number(void)
{
- char *line = hashline_number();
-
+ char *line = hashline_number();
+
/* output_escaped_str(line); */
fprintf(yyout, "%s", line);
free(line);
@@ -130,7 +130,8 @@ output_statement(char *stmt, int mode, char *con)
static void
output_escaped_str(char *str)
{
- int i, len = strlen(str);
+ int i,
+ len = strlen(str);
/* output this char by char as we have to filter " and \n */
for (i = 0; i < len; i++)
@@ -139,7 +140,7 @@ output_escaped_str(char *str)
fputs("\\\"", yyout);
else if (str[i] == '\n')
fputs("\\\n", yyout);
- else if (str[i] == '\r' && str[i+1] == '\n')
+ else if (str[i] == '\r' && str[i + 1] == '\n')
{
fputs("\\\r\n", yyout);
i++;
diff --git a/src/interfaces/ecpg/test/expected/compat_informix-charfuncs.c b/src/interfaces/ecpg/test/expected/compat_informix-charfuncs.c
index eddd580e54..7ed4de17ed 100644
--- a/src/interfaces/ecpg/test/expected/compat_informix-charfuncs.c
+++ b/src/interfaces/ecpg/test/expected/compat_informix-charfuncs.c
@@ -13,12 +13,14 @@
#include <stdlib.h>
#include <sqltypes.h>
-int main(void)
+int
+main(void)
{
- char t1[] = "abc def ghi ";
- /* 123456789012345 */
- char buf[50];
- int k;
+ char t1[] = "abc def ghi ";
+
+ /* 123456789012345 */
+ char buf[50];
+ int k;
printf("t1: _%s_\n", t1);
rupshift(t1);
diff --git a/src/interfaces/ecpg/test/expected/compat_informix-dec_test.c b/src/interfaces/ecpg/test/expected/compat_informix-dec_test.c
index a130aa17c9..bde792c400 100644
--- a/src/interfaces/ecpg/test/expected/compat_informix-dec_test.c
+++ b/src/interfaces/ecpg/test/expected/compat_informix-dec_test.c
@@ -44,31 +44,36 @@ TODO:
ECPG_INFORMIX_BAD_EXPONENT ?
*/
-char* decs[] = { "2E394", "-2", ".794", "3.44", "592.49E21", "-32.84e4",
- "2E-394", ".1E-2", "+.0", "-592.49E-07", "+32.84e-4",
- ".500001", "-.5000001",
- "1234567890123456789012345678.91", /* 30 digits should fit
- into decimal */
- "1234567890123456789012345678.921", /* 31 digits should NOT
- fit into decimal */
- "not a number",
- NULL};
+char *decs[] = {"2E394", "-2", ".794", "3.44", "592.49E21", "-32.84e4",
+ "2E-394", ".1E-2", "+.0", "-592.49E-07", "+32.84e-4",
+ ".500001", "-.5000001",
+ "1234567890123456789012345678.91", /* 30 digits should fit into decimal */
+ "1234567890123456789012345678.921", /* 31 digits should NOT fit into
+ * decimal */
+ "not a number",
+NULL};
static void
-check_errno(void);
+ check_errno(void);
#define BUFSIZE 200
int
main(void)
{
- decimal *dec, *din;
- char buf[BUFSIZE];
- long l;
- int i, j, k, q, r, count = 0;
- double dbl;
- decimal **decarr = (decimal **) calloc(1, sizeof(decimal));
+ decimal *dec,
+ *din;
+ char buf[BUFSIZE];
+ long l;
+ int i,
+ j,
+ k,
+ q,
+ r,
+ count = 0;
+ double dbl;
+ decimal **decarr = (decimal **) calloc(1, sizeof(decimal));
ECPGdebug(1, stderr);
@@ -85,52 +90,62 @@ main(void)
decarr = realloc(decarr, sizeof(decimal *) * (count + 1));
decarr[count++] = dec;
- r = dectoasc(dec, buf, BUFSIZE-1, -1);
- if (r < 0) check_errno();
+ r = dectoasc(dec, buf, BUFSIZE - 1, -1);
+ if (r < 0)
+ check_errno();
printf("dec[%d,1]: r: %d, %s\n", i, r, buf);
- r = dectoasc(dec, buf, BUFSIZE-1, 0);
- if (r < 0) check_errno();
+ r = dectoasc(dec, buf, BUFSIZE - 1, 0);
+ if (r < 0)
+ check_errno();
printf("dec[%d,2]: r: %d, %s\n", i, r, buf);
- r = dectoasc(dec, buf, BUFSIZE-1, 1);
- if (r < 0) check_errno();
+ r = dectoasc(dec, buf, BUFSIZE - 1, 1);
+ if (r < 0)
+ check_errno();
printf("dec[%d,3]: r: %d, %s\n", i, r, buf);
- r = dectoasc(dec, buf, BUFSIZE-1, 2);
- if (r < 0) check_errno();
+ r = dectoasc(dec, buf, BUFSIZE - 1, 2);
+ if (r < 0)
+ check_errno();
printf("dec[%d,4]: r: %d, %s\n", i, r, buf);
din = PGTYPESdecimal_new();
- r = dectoasc(din, buf, BUFSIZE-1, 2);
- if (r < 0) check_errno();
+ r = dectoasc(din, buf, BUFSIZE - 1, 2);
+ if (r < 0)
+ check_errno();
printf("dec[%d,5]: r: %d, %s\n", i, r, buf);
r = dectolong(dec, &l);
- if (r) check_errno();
- printf("dec[%d,6]: %ld (r: %d)\n", i, r?0L:l, r);
+ if (r)
+ check_errno();
+ printf("dec[%d,6]: %ld (r: %d)\n", i, r ? 0L : l, r);
if (r == 0)
{
r = deccvlong(l, din);
- if (r) check_errno();
- dectoasc(din, buf, BUFSIZE-1, 2);
+ if (r)
+ check_errno();
+ dectoasc(din, buf, BUFSIZE - 1, 2);
q = deccmp(dec, din);
printf("dec[%d,7]: %s (r: %d - cmp: %d)\n", i, buf, r, q);
}
r = dectoint(dec, &k);
- if (r) check_errno();
- printf("dec[%d,8]: %d (r: %d)\n", i, r?0:k, r);
+ if (r)
+ check_errno();
+ printf("dec[%d,8]: %d (r: %d)\n", i, r ? 0 : k, r);
if (r == 0)
{
r = deccvint(k, din);
- if (r) check_errno();
- dectoasc(din, buf, BUFSIZE-1, 2);
+ if (r)
+ check_errno();
+ dectoasc(din, buf, BUFSIZE - 1, 2);
q = deccmp(dec, din);
printf("dec[%d,9]: %s (r: %d - cmp: %d)\n", i, buf, r, q);
}
r = dectodbl(dec, &dbl);
- if (r) check_errno();
- printf("dec[%d,10]: %g (r: %d)\n", i, r?0.0:dbl, r);
+ if (r)
+ check_errno();
+ printf("dec[%d,10]: %g (r: %d)\n", i, r ? 0.0 : dbl, r);
PGTYPESdecimal_free(din);
printf("\n");
@@ -141,23 +156,29 @@ main(void)
decarr = realloc(decarr, sizeof(decimal *) * (count + 1));
decarr[count++] = dec;
- rsetnull(CDECIMALTYPE, (char *) decarr[count-1]);
- printf("dec[%d]: %sNULL\n", count-1,
- risnull(CDECIMALTYPE, (char *) decarr[count-1]) ? "" : "NOT ");
+ rsetnull(CDECIMALTYPE, (char *) decarr[count - 1]);
+ printf("dec[%d]: %sNULL\n", count - 1,
+ risnull(CDECIMALTYPE, (char *) decarr[count - 1]) ? "" : "NOT ");
printf("dec[0]: %sNULL\n",
- risnull(CDECIMALTYPE, (char *) decarr[0]) ? "" : "NOT ");
+ risnull(CDECIMALTYPE, (char *) decarr[0]) ? "" : "NOT ");
r = dectoasc(decarr[3], buf, -1, -1);
- check_errno(); printf("dectoasc with len == -1: r: %d\n", r);
+ check_errno();
+ printf("dectoasc with len == -1: r: %d\n", r);
r = dectoasc(decarr[3], buf, 0, -1);
- check_errno(); printf("dectoasc with len == 0: r: %d\n", r);
+ check_errno();
+ printf("dectoasc with len == 0: r: %d\n", r);
for (i = 0; i < count; i++)
{
for (j = 0; j < count; j++)
{
- decimal a, s, m, d;
- int c;
+ decimal a,
+ s,
+ m,
+ d;
+ int c;
+
c = deccmp(decarr[i], decarr[j]);
printf("dec[c,%d,%d]: %d\n", i, j, c);
@@ -169,7 +190,7 @@ main(void)
}
else
{
- dectoasc(&a, buf, BUFSIZE-1, -1);
+ dectoasc(&a, buf, BUFSIZE - 1, -1);
printf("dec[a,%d,%d]: %s\n", i, j, buf);
}
@@ -181,7 +202,7 @@ main(void)
}
else
{
- dectoasc(&s, buf, BUFSIZE-1, -1);
+ dectoasc(&s, buf, BUFSIZE - 1, -1);
printf("dec[s,%d,%d]: %s\n", i, j, buf);
}
@@ -193,7 +214,7 @@ main(void)
}
else
{
- dectoasc(&m, buf, BUFSIZE-1, -1);
+ dectoasc(&m, buf, BUFSIZE - 1, -1);
printf("dec[m,%d,%d]: %s\n", i, j, buf);
}
@@ -205,7 +226,7 @@ main(void)
}
else
{
- dectoasc(&d, buf, BUFSIZE-1, -1);
+ dectoasc(&d, buf, BUFSIZE - 1, -1);
printf("dec[d,%d,%d]: %s\n", i, j, buf);
}
}
@@ -213,7 +234,7 @@ main(void)
for (i = 0; i < count; i++)
{
- dectoasc(decarr[i], buf, BUFSIZE-1, -1);
+ dectoasc(decarr[i], buf, BUFSIZE - 1, -1);
printf("%d: %s\n", i, buf);
}
@@ -223,7 +244,7 @@ main(void)
static void
check_errno(void)
{
- switch(errno)
+ switch (errno)
{
case 0:
printf("(no errno set) - ");
diff --git a/src/interfaces/ecpg/test/expected/compat_informix-rfmtdate.c b/src/interfaces/ecpg/test/expected/compat_informix-rfmtdate.c
index 49de0b660b..7add41eb8e 100644
--- a/src/interfaces/ecpg/test/expected/compat_informix-rfmtdate.c
+++ b/src/interfaces/ecpg/test/expected/compat_informix-rfmtdate.c
@@ -21,15 +21,16 @@
static void
-check_return(int ret);
+ check_return(int ret);
static void
date_test_strdate(char *input)
{
- static int i;
- date d;
- int r, q;
- char dbuf[11];
+ static int i;
+ date d;
+ int r,
+ q;
+ char dbuf[11];
r = rstrdate(input, &d);
printf("r: %d ", r);
@@ -51,10 +52,11 @@ date_test_strdate(char *input)
static void
date_test_defmt(char *fmt, char *input)
{
- static int i;
- char dbuf[11];
- date d;
- int q, r;
+ static int i;
+ char dbuf[11];
+ date d;
+ int q,
+ r;
r = rdefmtdate(&d, fmt, input);
printf("r: %d ", r);
@@ -76,9 +78,9 @@ date_test_defmt(char *fmt, char *input)
static void
date_test_fmt(date d, char *fmt)
{
- static int i;
- char buf[200];
- int r;
+ static int i;
+ char buf[200];
+ int r;
r = rfmtdate(d, fmt, buf);
printf("r: %d ", r);
@@ -92,10 +94,10 @@ date_test_fmt(date d, char *fmt)
int
main(void)
{
- short mdy[3] = { 11, 23, 1959 };
- char dbuf[11];
- date d;
- int r;
+ short mdy[3] = {11, 23, 1959};
+ char dbuf[11];
+ date d;
+ int r;
ECPGdebug(1, stderr);
@@ -164,7 +166,7 @@ main(void)
static void
check_return(int ret)
{
- switch(ret)
+ switch (ret)
{
case ECPG_INFORMIX_ENOTDMY:
printf("(ECPG_INFORMIX_ENOTDMY)");
diff --git a/src/interfaces/ecpg/test/expected/compat_informix-rfmtlong.c b/src/interfaces/ecpg/test/expected/compat_informix-rfmtlong.c
index d000054abb..8c9d76986c 100644
--- a/src/interfaces/ecpg/test/expected/compat_informix-rfmtlong.c
+++ b/src/interfaces/ecpg/test/expected/compat_informix-rfmtlong.c
@@ -21,14 +21,14 @@
static void
-check_return(int ret);
+ check_return(int ret);
static void
fmtlong(long lng, char *fmt)
{
- static int i;
- int r;
- char buf[30];
+ static int i;
+ int r;
+ char buf[30];
r = rfmtlong(lng, fmt, buf);
printf("r: %d ", r);
@@ -62,7 +62,7 @@ main(void)
static void
check_return(int ret)
{
- switch(ret)
+ switch (ret)
{
case ECPG_INFORMIX_ENOTDMY:
printf("(ECPG_INFORMIX_ENOTDMY)");
diff --git a/src/interfaces/ecpg/test/expected/compat_informix-rnull.c b/src/interfaces/ecpg/test/expected/compat_informix-rnull.c
index 9ee19ace76..7cfa6a80d1 100644
--- a/src/interfaces/ecpg/test/expected/compat_informix-rnull.c
+++ b/src/interfaces/ecpg/test/expected/compat_informix-rnull.c
@@ -30,65 +30,66 @@ test_null(int type, char *ptr)
printf("null: %d\n", risnull(type, ptr));
}
-int main(void)
+int
+main(void)
{
-
+
#line 15 "rnull.pgc"
- char c [] = "abc " ;
+ char c[] = "abc ";
#line 15 "rnull.pgc"
-
+
#line 16 "rnull.pgc"
- short s = 17 ;
+ short s = 17;
#line 16 "rnull.pgc"
-
+
#line 17 "rnull.pgc"
- int i = - 74874 ;
+ int i = -74874;
#line 17 "rnull.pgc"
-
+
#line 18 "rnull.pgc"
- bool b = 1 ;
+ bool b = 1;
#line 18 "rnull.pgc"
-
+
#line 19 "rnull.pgc"
- float f = 3.71 ;
+ float f = 3.71;
#line 19 "rnull.pgc"
-
+
#line 20 "rnull.pgc"
- long l = 487444 ;
+ long l = 487444;
#line 20 "rnull.pgc"
-
+
#line 21 "rnull.pgc"
- double dbl = 404.404 ;
+ double dbl = 404.404;
#line 21 "rnull.pgc"
-
+
#line 22 "rnull.pgc"
- decimal dec ;
+ decimal dec;
#line 22 "rnull.pgc"
-
+
#line 23 "rnull.pgc"
- date dat ;
+ date dat;
#line 23 "rnull.pgc"
-
+
#line 24 "rnull.pgc"
- timestamp tmp ;
+ timestamp tmp;
#line 24 "rnull.pgc"
@@ -98,50 +99,65 @@ int main(void)
#line 27 "rnull.pgc"
- { ECPGconnect(__LINE__, 1, "regress1" , NULL,NULL , NULL, 0);
+ {
+ ECPGconnect(__LINE__, 1, "regress1", NULL, NULL, NULL, 0);
#line 29 "rnull.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 29 "rnull.pgc"
- { ECPGdo(__LINE__, 1, 0, NULL, "create table test ( id int , c char ( 10 ) , s smallint , i int , b bool , f float , l bigint , dbl double precision , dec decimal , dat date , tmp timestamptz ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 0, NULL, "create table test ( id int , c char ( 10 ) , s smallint , i int , b bool , f float , l bigint , dbl double precision , dec decimal , dat date , tmp timestamptz ) ", ECPGt_EOIT, ECPGt_EORT);
#line 33 "rnull.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 33 "rnull.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 34 "rnull.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 34 "rnull.pgc"
- { ECPGdo(__LINE__, 1, 0, NULL, "insert into test ( id , c , s , i , b , f , l , dbl ) values( 1 , ? , ? , ? , ? , ? , ? , ? ) ",
- ECPGt_char,(c),(long)sizeof("abc "),(long)1,(sizeof("abc "))*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_short,&(s),(long)1,(long)1,sizeof(short),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_bool,&(b),(long)1,(long)1,sizeof(bool),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_float,&(f),(long)1,(long)1,sizeof(float),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_long,&(l),(long)1,(long)1,sizeof(long),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_double,&(dbl),(long)1,(long)1,sizeof(double),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 0, NULL, "insert into test ( id , c , s , i , b , f , l , dbl ) values( 1 , ? , ? , ? , ? , ? , ? , ? ) ",
+ ECPGt_char, (c), (long) sizeof("abc "), (long) 1, (sizeof("abc ")) *sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_short, &(s), (long) 1, (long) 1, sizeof(short),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_int, &(i), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_bool, &(b), (long) 1, (long) 1, sizeof(bool),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_float, &(f), (long) 1, (long) 1, sizeof(float),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_long, &(l), (long) 1, (long) 1, sizeof(long),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_double, &(dbl), (long) 1, (long) 1, sizeof(double),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 38 "rnull.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 38 "rnull.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 39 "rnull.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 39 "rnull.pgc"
@@ -156,65 +172,74 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
rsetnull(CDATETYPE, (char *) &dat);
rsetnull(CDTIMETYPE, (char *) &tmp);
- { ECPGdo(__LINE__, 1, 0, NULL, "insert into test ( id , c , s , i , b , f , l , dbl , dec , dat , tmp ) values( 2 , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? ) ",
- ECPGt_char,(c),(long)sizeof("abc "),(long)1,(sizeof("abc "))*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_short,&(s),(long)1,(long)1,sizeof(short),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_bool,&(b),(long)1,(long)1,sizeof(bool),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_float,&(f),(long)1,(long)1,sizeof(float),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_long,&(l),(long)1,(long)1,sizeof(long),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_double,&(dbl),(long)1,(long)1,sizeof(double),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_decimal,&(dec),(long)1,(long)1,sizeof(decimal),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_date,&(dat),(long)1,(long)1,sizeof(date),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_timestamp,&(tmp),(long)1,(long)1,sizeof(timestamp),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 0, NULL, "insert into test ( id , c , s , i , b , f , l , dbl , dec , dat , tmp ) values( 2 , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? ) ",
+ ECPGt_char, (c), (long) sizeof("abc "), (long) 1, (sizeof("abc ")) *sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_short, &(s), (long) 1, (long) 1, sizeof(short),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_int, &(i), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_bool, &(b), (long) 1, (long) 1, sizeof(bool),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_float, &(f), (long) 1, (long) 1, sizeof(float),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_long, &(l), (long) 1, (long) 1, sizeof(long),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_double, &(dbl), (long) 1, (long) 1, sizeof(double),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_decimal, &(dec), (long) 1, (long) 1, sizeof(decimal),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_date, &(dat), (long) 1, (long) 1, sizeof(date),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_timestamp, &(tmp), (long) 1, (long) 1, sizeof(timestamp),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 54 "rnull.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 54 "rnull.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 55 "rnull.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 55 "rnull.pgc"
printf("first select\n");
- { ECPGdo(__LINE__, 1, 0, NULL, "select c , s , i , b , f , l , dbl , dec , dat , tmp from test where id = 1 ", ECPGt_EOIT,
- ECPGt_char,(c),(long)sizeof("abc "),(long)1,(sizeof("abc "))*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_short,&(s),(long)1,(long)1,sizeof(short),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_bool,&(b),(long)1,(long)1,sizeof(bool),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_float,&(f),(long)1,(long)1,sizeof(float),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_long,&(l),(long)1,(long)1,sizeof(long),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_double,&(dbl),(long)1,(long)1,sizeof(double),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_decimal,&(dec),(long)1,(long)1,sizeof(decimal),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_date,&(dat),(long)1,(long)1,sizeof(date),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_timestamp,&(tmp),(long)1,(long)1,sizeof(timestamp),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 0, NULL, "select c , s , i , b , f , l , dbl , dec , dat , tmp from test where id = 1 ", ECPGt_EOIT,
+ ECPGt_char, (c), (long) sizeof("abc "), (long) 1, (sizeof("abc ")) *sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_short, &(s), (long) 1, (long) 1, sizeof(short),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_int, &(i), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_bool, &(b), (long) 1, (long) 1, sizeof(bool),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_float, &(f), (long) 1, (long) 1, sizeof(float),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_long, &(l), (long) 1, (long) 1, sizeof(long),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_double, &(dbl), (long) 1, (long) 1, sizeof(double),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_decimal, &(dec), (long) 1, (long) 1, sizeof(decimal),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_date, &(dat), (long) 1, (long) 1, sizeof(date),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_timestamp, &(tmp), (long) 1, (long) 1, sizeof(timestamp),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 61 "rnull.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 61 "rnull.pgc"
@@ -231,30 +256,33 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
printf("second select\n");
- { ECPGdo(__LINE__, 1, 0, NULL, "select c , s , i , b , f , l , dbl , dec , dat , tmp from test where id = 2 ", ECPGt_EOIT,
- ECPGt_char,(c),(long)sizeof("abc "),(long)1,(sizeof("abc "))*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_short,&(s),(long)1,(long)1,sizeof(short),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_bool,&(b),(long)1,(long)1,sizeof(bool),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_float,&(f),(long)1,(long)1,sizeof(float),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_long,&(l),(long)1,(long)1,sizeof(long),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_double,&(dbl),(long)1,(long)1,sizeof(double),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_decimal,&(dec),(long)1,(long)1,sizeof(decimal),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_date,&(dat),(long)1,(long)1,sizeof(date),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_timestamp,&(tmp),(long)1,(long)1,sizeof(timestamp),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 0, NULL, "select c , s , i , b , f , l , dbl , dec , dat , tmp from test where id = 2 ", ECPGt_EOIT,
+ ECPGt_char, (c), (long) sizeof("abc "), (long) 1, (sizeof("abc ")) *sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_short, &(s), (long) 1, (long) 1, sizeof(short),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_int, &(i), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_bool, &(b), (long) 1, (long) 1, sizeof(bool),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_float, &(f), (long) 1, (long) 1, sizeof(float),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_long, &(l), (long) 1, (long) 1, sizeof(long),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_double, &(dbl), (long) 1, (long) 1, sizeof(double),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_decimal, &(dec), (long) 1, (long) 1, sizeof(decimal),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_date, &(dat), (long) 1, (long) 1, sizeof(date),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_timestamp, &(tmp), (long) 1, (long) 1, sizeof(timestamp),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 78 "rnull.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 78 "rnull.pgc"
@@ -269,23 +297,32 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
test_null(CDATETYPE, (char *) &dat);
test_null(CDTIMETYPE, (char *) &tmp);
- { ECPGdo(__LINE__, 1, 0, NULL, "drop table test ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 0, NULL, "drop table test ", ECPGt_EOIT, ECPGt_EORT);
#line 91 "rnull.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 91 "rnull.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 92 "rnull.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 92 "rnull.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
#line 94 "rnull.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 94 "rnull.pgc"
diff --git a/src/interfaces/ecpg/test/expected/compat_informix-test_informix.c b/src/interfaces/ecpg/test/expected/compat_informix-test_informix.c
index 53e39a008d..166a15c5f0 100644
--- a/src/interfaces/ecpg/test/expected/compat_informix-test_informix.c
+++ b/src/interfaces/ecpg/test/expected/compat_informix-test_informix.c
@@ -25,149 +25,199 @@
static void openit(void);
-static void dosqlprint(void) {
+static void
+dosqlprint(void)
+{
printf("doSQLprint: Error: %s\n", sqlca.sqlerrm.sqlerrmc);
}
-int main(void)
+int
+main(void)
{
-
+
#line 14 "test_informix.pgc"
- int i = 14 ;
+ int i = 14;
#line 14 "test_informix.pgc"
-
-
+
+
#line 15 "test_informix.pgc"
- decimal j , m , n ;
+ decimal j,
+ m,
+ n;
#line 15 "test_informix.pgc"
ECPGdebug(1, stderr);
- /* exec sql whenever sqlerror do dosqlprint ( ) ; */
+ /* exec sql whenever sqlerror do dosqlprint ( ) ; */
#line 18 "test_informix.pgc"
- { ECPGconnect(__LINE__, 1, "regress1" , NULL,NULL , NULL, 0);
+ {
+ ECPGconnect(__LINE__, 1, "regress1", NULL, NULL, NULL, 0);
#line 20 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 20 "test_informix.pgc"
- if (sqlca.sqlcode != 0) exit(1);
+ if (sqlca.sqlcode != 0)
+ exit(1);
- { ECPGdo(__LINE__, 1, 1, NULL, "create table test ( i int primary key , j int ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 1, NULL, "create table test ( i int primary key , j int ) ", ECPGt_EOIT, ECPGt_EORT);
#line 23 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 23 "test_informix.pgc"
/* this INSERT works */
- rsetnull(CDECIMALTYPE, (char *)&j);
- { ECPGdo(__LINE__, 1, 1, NULL, "insert into test ( i , j ) values( 7 , ? ) ",
- ECPGt_decimal,&(j),(long)1,(long)1,sizeof(decimal),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ rsetnull(CDECIMALTYPE, (char *) &j);
+ {
+ ECPGdo(__LINE__, 1, 1, NULL, "insert into test ( i , j ) values( 7 , ? ) ",
+ ECPGt_decimal, &(j), (long) 1, (long) 1, sizeof(decimal),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 27 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 27 "test_informix.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 28 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 28 "test_informix.pgc"
/* this INSERT should fail because i is a unique column */
- { ECPGdo(__LINE__, 1, 1, NULL, "insert into test ( i , j ) values( 7 , 12 ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 1, NULL, "insert into test ( i , j ) values( 7 , 12 ) ", ECPGt_EOIT, ECPGt_EORT);
#line 31 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 31 "test_informix.pgc"
printf("INSERT: %ld=%s\n", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc);
- if (sqlca.sqlcode != 0) { ECPGtrans(__LINE__, NULL, "rollback");
+ if (sqlca.sqlcode != 0)
+ {
+ ECPGtrans(__LINE__, NULL, "rollback");
#line 33 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 33 "test_informix.pgc"
- { ECPGdo(__LINE__, 1, 1, NULL, "insert into test ( i , j ) values( ? , 1 ) ",
- ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 1, NULL, "insert into test ( i , j ) values( ? , 1 ) ",
+ ECPGt_int, &(i), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 35 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 35 "test_informix.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 36 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 36 "test_informix.pgc"
/* this will fail (more than one row in subquery) */
- { ECPGdo(__LINE__, 1, 1, NULL, "select i from test where j = ( select j from test ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 1, NULL, "select i from test where j = ( select j from test ) ", ECPGt_EOIT, ECPGt_EORT);
#line 39 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 39 "test_informix.pgc"
- { ECPGtrans(__LINE__, NULL, "rollback");
+ {
+ ECPGtrans(__LINE__, NULL, "rollback");
#line 40 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 40 "test_informix.pgc"
/* this however should be ok */
- { ECPGdo(__LINE__, 1, 1, NULL, "select i from test where j = ( select j from test order by i limit 1 ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 1, NULL, "select i from test where j = ( select j from test order by i limit 1 ) ", ECPGt_EOIT, ECPGt_EORT);
#line 43 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 43 "test_informix.pgc"
printf("SELECT: %ld=%s\n", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc);
- if (sqlca.sqlcode != 0) { ECPGtrans(__LINE__, NULL, "rollback");
+ if (sqlca.sqlcode != 0)
+ {
+ ECPGtrans(__LINE__, NULL, "rollback");
#line 45 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 45 "test_informix.pgc"
- ECPG_informix_set_var( 0, &( i ), __LINE__);\
- /* declare c cursor for select * from test where i <= ? */
+ ECPG_informix_set_var(0, &(i), __LINE__);
+ \
+ /* declare c cursor for select * from test where i <= ? */
#line 47 "test_informix.pgc"
- openit();
+ openit();
deccvint(0, &j);
while (1)
{
- { ECPGdo(__LINE__, 1, 1, NULL, "fetch forward from c", ECPGt_EOIT,
- ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_decimal,&(j),(long)1,(long)1,sizeof(decimal),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 1, NULL, "fetch forward from c", ECPGt_EOIT,
+ ECPGt_int, &(i), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_decimal, &(j), (long) 1, (long) 1, sizeof(decimal),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 54 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 54 "test_informix.pgc"
- if (sqlca.sqlcode == 100) break;
- else if (sqlca.sqlcode != 0) printf ("Error: %ld\n", sqlca.sqlcode);
+ if (sqlca.sqlcode == 100)
+ break;
+ else if (sqlca.sqlcode != 0)
+ printf("Error: %ld\n", sqlca.sqlcode);
- if (risnull(CDECIMALTYPE, (char *)&j))
+ if (risnull(CDECIMALTYPE, (char *) &j))
printf("%d NULL\n", i);
else
{
- int a;
+ int a;
dectoint(&j, &a);
printf("%d %d\n", i, a);
@@ -177,70 +227,94 @@ if (sqlca.sqlcode < 0) dosqlprint ( );}
deccvint(7, &j);
deccvint(14, &m);
decadd(&j, &m, &n);
- { ECPGdo(__LINE__, 1, 1, NULL, "delete from test where i = ? ",
- ECPGt_decimal,&(n),(long)1,(long)1,sizeof(decimal),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 1, NULL, "delete from test where i = ? ",
+ ECPGt_decimal, &(n), (long) 1, (long) 1, sizeof(decimal),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 72 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 72 "test_informix.pgc"
printf("DELETE: %ld\n", sqlca.sqlcode);
- { ECPGdo(__LINE__, 1, 1, NULL, "select 1 from test where i = 14 ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 1, NULL, "select 1 from test where i = 14 ", ECPGt_EOIT, ECPGt_EORT);
#line 75 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 75 "test_informix.pgc"
printf("Exists: %ld\n", sqlca.sqlcode);
- { ECPGdo(__LINE__, 1, 1, NULL, "select 1 from test where i = 147 ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 1, NULL, "select 1 from test where i = 147 ", ECPGt_EOIT, ECPGt_EORT);
#line 78 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 78 "test_informix.pgc"
printf("Does not exist: %ld\n", sqlca.sqlcode);
- { ECPGtrans(__LINE__, NULL, "commit");
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 81 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 81 "test_informix.pgc"
- { ECPGdo(__LINE__, 1, 1, NULL, "drop table test ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 1, NULL, "drop table test ", ECPGt_EOIT, ECPGt_EORT);
#line 82 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 82 "test_informix.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 83 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 83 "test_informix.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
#line 85 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 85 "test_informix.pgc"
return 0;
}
-static void openit(void)
+static void
+openit(void)
{
- { ECPGdo(__LINE__, 1, 1, NULL, "declare c cursor for select * from test where i <= ? ",
- ECPGt_int,&(*( int *)(ECPG_informix_get_var( 0))),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 1, NULL, "declare c cursor for select * from test where i <= ? ",
+ ECPGt_int, &(*(int *) (ECPG_informix_get_var(0))), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 92 "test_informix.pgc"
-if (sqlca.sqlcode < 0) dosqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ dosqlprint();
+ }
#line 92 "test_informix.pgc"
}
-
diff --git a/src/interfaces/ecpg/test/expected/compat_informix-test_informix2.c b/src/interfaces/ecpg/test/expected/compat_informix-test_informix2.c
index 12c34203fa..7926d78251 100644
--- a/src/interfaces/ecpg/test/expected/compat_informix-test_informix2.c
+++ b/src/interfaces/ecpg/test/expected/compat_informix-test_informix2.c
@@ -79,7 +79,6 @@ struct sqlca_t *ECPGget_sqlca(void);
#ifdef __cplusplus
}
#endif
-
#endif
#line 5 "test_informix2.pgc"
@@ -97,72 +96,79 @@ struct sqlca_t *ECPGget_sqlca(void);
/* Check SQLCODE, and produce a "standard error" if it's wrong! */
-static void sql_check(char *fn, char *caller, int ignore)
+static void
+sql_check(char *fn, char *caller, int ignore)
{
- char errorstring[255];
-
- if (SQLCODE == ignore)
- return;
- else
- {
- if (SQLCODE != 0)
- {
-
- sprintf(errorstring, "**SQL error %ld doing '%s' in function '%s'. [%s]",
- SQLCODE, caller, fn, sqlca.sqlerrm.sqlerrmc);
- fprintf(stderr, "%s", errorstring);
- printf("%s\n", errorstring);
-
- /* attempt a ROLLBACK */
- { ECPGtrans(__LINE__, NULL, "rollback");}
+ char errorstring[255];
+
+ if (SQLCODE == ignore)
+ return;
+ else
+ {
+ if (SQLCODE != 0)
+ {
+
+ sprintf(errorstring, "**SQL error %ld doing '%s' in function '%s'. [%s]",
+ SQLCODE, caller, fn, sqlca.sqlerrm.sqlerrmc);
+ fprintf(stderr, "%s", errorstring);
+ printf("%s\n", errorstring);
+
+ /* attempt a ROLLBACK */
+ {
+ ECPGtrans(__LINE__, NULL, "rollback");
+ }
#line 27 "test_informix2.pgc"
- if (SQLCODE == 0)
- {
- sprintf(errorstring, "Rollback successful.\n");
- } else {
- sprintf(errorstring, "Rollback failed with code %ld.\n", SQLCODE);
- }
+ if (SQLCODE == 0)
+ {
+ sprintf(errorstring, "Rollback successful.\n");
+ }
+ else
+ {
+ sprintf(errorstring, "Rollback failed with code %ld.\n", SQLCODE);
+ }
- fprintf(stderr, "%s", errorstring);
- printf("%s\n", errorstring);
+ fprintf(stderr, "%s", errorstring);
+ printf("%s\n", errorstring);
- exit(1);
- }
- }
+ exit(1);
+ }
+ }
}
-int main(void)
+int
+main(void)
{
/* exec sql begin declare section */
-
-
-
-
-
-
+
+
+
+
+
+
#line 49 "test_informix2.pgc"
- int c ;
-
+ int c;
+
#line 50 "test_informix2.pgc"
- timestamp d ;
-
+ timestamp d;
+
#line 51 "test_informix2.pgc"
- timestamp e ;
-
+ timestamp e;
+
#line 52 "test_informix2.pgc"
- timestamp maxd ;
-
+ timestamp maxd;
+
#line 53 "test_informix2.pgc"
- char dbname [ 30 ] ;
+ char dbname[30];
+
/* exec sql end declare section */
#line 54 "test_informix2.pgc"
- interval *intvl;
+ interval *intvl;
/* exec sql whenever sqlerror sqlprint ; */
#line 58 "test_informix2.pgc"
@@ -171,57 +177,75 @@ int main(void)
ECPGdebug(1, stderr);
strcpy(dbname, "regress1");
- { ECPGconnect(__LINE__, 1, dbname , NULL,NULL , NULL, 0);
+ {
+ ECPGconnect(__LINE__, 1, dbname, NULL, NULL, NULL, 0);
#line 63 "test_informix2.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 63 "test_informix2.pgc"
sql_check("main", "connect", 0);
- { ECPGdo(__LINE__, 1, 1, NULL, "set DateStyle to 'DMY'", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 1, NULL, "set DateStyle to 'DMY'", ECPGt_EOIT, ECPGt_EORT);
#line 66 "test_informix2.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 66 "test_informix2.pgc"
- { ECPGdo(__LINE__, 1, 1, NULL, "create table history ( customerid integer , timestamp timestamp without time zone , action_taken char ( 5 ) , narrative varchar ( 100 ) ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 1, NULL, "create table history ( customerid integer , timestamp timestamp without time zone , action_taken char ( 5 ) , narrative varchar ( 100 ) ) ", ECPGt_EOIT, ECPGt_EORT);
#line 68 "test_informix2.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 68 "test_informix2.pgc"
sql_check("main", "create", 0);
-
- { ECPGdo(__LINE__, 1, 1, NULL, "insert into history ( customerid , timestamp , action_taken , narrative ) values( 1 , '2003-05-07 13:28:34 CEST' , 'test' , 'test' ) ", ECPGt_EOIT, ECPGt_EORT);
+
+ {
+ ECPGdo(__LINE__, 1, 1, NULL, "insert into history ( customerid , timestamp , action_taken , narrative ) values( 1 , '2003-05-07 13:28:34 CEST' , 'test' , 'test' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 73 "test_informix2.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 73 "test_informix2.pgc"
sql_check("main", "insert", 0);
- { ECPGdo(__LINE__, 1, 1, NULL, "select max ( timestamp ) from history ", ECPGt_EOIT,
- ECPGt_timestamp,&(maxd),(long)1,(long)1,sizeof(timestamp),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 1, NULL, "select max ( timestamp ) from history ", ECPGt_EOIT,
+ ECPGt_timestamp, &(maxd), (long) 1, (long) 1, sizeof(timestamp),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 78 "test_informix2.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 78 "test_informix2.pgc"
sql_check("main", "select max", 100);
- { ECPGdo(__LINE__, 1, 1, NULL, "select customerid , timestamp from history where timestamp = ? limit 1 ",
- ECPGt_timestamp,&(maxd),(long)1,(long)1,sizeof(timestamp),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT,
- ECPGt_int,&(c),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_timestamp,&(d),(long)1,(long)1,sizeof(timestamp),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 1, NULL, "select customerid , timestamp from history where timestamp = ? limit 1 ",
+ ECPGt_timestamp, &(maxd), (long) 1, (long) 1, sizeof(timestamp),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT,
+ ECPGt_int, &(c), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_timestamp, &(d), (long) 1, (long) 1, sizeof(timestamp),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 85 "test_informix2.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 85 "test_informix2.pgc"
sql_check("main", "select", 0);
@@ -233,44 +257,59 @@ if (sqlca.sqlcode < 0) sqlprint();}
c++;
- { ECPGdo(__LINE__, 1, 1, NULL, "insert into history ( customerid , timestamp , action_taken , narrative ) values( ? , ? , 'test' , 'test' ) ",
- ECPGt_int,&(c),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_timestamp,&(e),(long)1,(long)1,sizeof(timestamp),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 1, NULL, "insert into history ( customerid , timestamp , action_taken , narrative ) values( ? , ? , 'test' , 'test' ) ",
+ ECPGt_int, &(c), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_timestamp, &(e), (long) 1, (long) 1, sizeof(timestamp),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 97 "test_informix2.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 97 "test_informix2.pgc"
sql_check("main", "update", 0);
-
- { ECPGtrans(__LINE__, NULL, "commit");
+
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 100 "test_informix2.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 100 "test_informix2.pgc"
- { ECPGdo(__LINE__, 1, 1, NULL, "drop table history ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 1, 1, NULL, "drop table history ", ECPGt_EOIT, ECPGt_EORT);
#line 102 "test_informix2.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 102 "test_informix2.pgc"
sql_check("main", "drop", 0);
- { ECPGtrans(__LINE__, NULL, "commit");
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 105 "test_informix2.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 105 "test_informix2.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
#line 107 "test_informix2.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 107 "test_informix2.pgc"
sql_check("main", "disconnect", 0);
@@ -280,13 +319,13 @@ if (sqlca.sqlcode < 0) sqlprint();}
exit(0);
/*
- Table "public.history"
- Column | Type | Modifiers
+ Table "public.history"
+ Column | Type | Modifiers
--------------+-----------------------------+-----------
- customerid | integer | not null
- timestamp | timestamp without time zone | not null
- action_taken | character(5) | not null
- narrative | character varying(100) |
+ customerid | integer | not null
+ timestamp | timestamp without time zone | not null
+ action_taken | character(5) | not null
+ narrative | character varying(100) |
*/
}
diff --git a/src/interfaces/ecpg/test/expected/connect-test1.c b/src/interfaces/ecpg/test/expected/connect-test1.c
index 86f3d8d1d3..59a3b73997 100644
--- a/src/interfaces/ecpg/test/expected/connect-test1.c
+++ b/src/interfaces/ecpg/test/expected/connect-test1.c
@@ -25,125 +25,184 @@ int
main(void)
{
/* exec sql begin declare section */
-
-
+
+
#line 16 "test1.pgc"
- char db [ 200 ] ;
-
+ char db[200];
+
#line 17 "test1.pgc"
- char pw [ 200 ] ;
+ char pw[200];
+
/* exec sql end declare section */
#line 18 "test1.pgc"
ECPGdebug(1, stderr);
- { ECPGconnect(__LINE__, 0, "connectdb" , NULL,NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "connectdb", NULL, NULL, "main", 0);
+ }
#line 22 "test1.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "alter user connectuser encrypted password 'connectpw'", ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "alter user connectuser encrypted password 'connectpw'", ECPGt_EOIT, ECPGt_EORT);
+ }
#line 23 "test1.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 24 "test1.pgc"
- /* <-- "main" not specified */
+ /* <-- "main" not specified */
- { ECPGconnect(__LINE__, 0, "connectdb@localhost" , NULL,NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "connectdb@localhost", NULL, NULL, "main", 0);
+ }
#line 26 "test1.pgc"
- { ECPGdisconnect(__LINE__, "main");}
+ {
+ ECPGdisconnect(__LINE__, "main");
+ }
#line 27 "test1.pgc"
- { ECPGconnect(__LINE__, 0, "@localhost" , "connectdb" , NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "@localhost", "connectdb", NULL, "main", 0);
+ }
#line 29 "test1.pgc"
- { ECPGdisconnect(__LINE__, "main");}
+ {
+ ECPGdisconnect(__LINE__, "main");
+ }
#line 30 "test1.pgc"
- { ECPGconnect(__LINE__, 0, "connectdb@localhost:55432" , NULL,NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "connectdb@localhost:55432", NULL, NULL, "main", 0);
+ }
#line 32 "test1.pgc"
- { ECPGdisconnect(__LINE__, "main");}
+ {
+ ECPGdisconnect(__LINE__, "main");
+ }
#line 33 "test1.pgc"
- { ECPGconnect(__LINE__, 0, "@localhost:55432" , "connectdb" , NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "@localhost:55432", "connectdb", NULL, "main", 0);
+ }
#line 35 "test1.pgc"
- { ECPGdisconnect(__LINE__, "main");}
+ {
+ ECPGdisconnect(__LINE__, "main");
+ }
#line 36 "test1.pgc"
- { ECPGconnect(__LINE__, 0, "connectdb:55432" , NULL,NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "connectdb:55432", NULL, NULL, "main", 0);
+ }
#line 38 "test1.pgc"
- { ECPGdisconnect(__LINE__, "main");}
+ {
+ ECPGdisconnect(__LINE__, "main");
+ }
#line 39 "test1.pgc"
- { ECPGconnect(__LINE__, 0, ":55432" , "connectdb" , NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, ":55432", "connectdb", NULL, "main", 0);
+ }
#line 41 "test1.pgc"
- { ECPGdisconnect(__LINE__, "main");}
+ {
+ ECPGdisconnect(__LINE__, "main");
+ }
#line 42 "test1.pgc"
- { ECPGconnect(__LINE__, 0, "tcp:postgresql://localhost:55432/connectdb" , "connectuser" , "connectpw" , NULL, 0); }
+ {
+ ECPGconnect(__LINE__, 0, "tcp:postgresql://localhost:55432/connectdb", "connectuser", "connectpw", NULL, 0);
+ }
#line 44 "test1.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 45 "test1.pgc"
- { ECPGconnect(__LINE__, 0, "tcp:postgresql://localhost:55432/" , "connectdb" , NULL , NULL, 0); }
+ {
+ ECPGconnect(__LINE__, 0, "tcp:postgresql://localhost:55432/", "connectdb", NULL, NULL, 0);
+ }
#line 47 "test1.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 48 "test1.pgc"
strcpy(pw, "connectpw");
strcpy(db, "tcp:postgresql://localhost:55432/connectdb");
- { ECPGconnect(__LINE__, 0, db , "connectuser" , pw , NULL, 0); }
+ {
+ ECPGconnect(__LINE__, 0, db, "connectuser", pw, NULL, 0);
+ }
#line 52 "test1.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 53 "test1.pgc"
- { ECPGconnect(__LINE__, 0, "unix:postgresql://localhost:55432/connectdb" , "connectuser" , "connectpw" , NULL, 0); }
+ {
+ ECPGconnect(__LINE__, 0, "unix:postgresql://localhost:55432/connectdb", "connectuser", "connectpw", NULL, 0);
+ }
#line 55 "test1.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 56 "test1.pgc"
- { ECPGconnect(__LINE__, 0, "unix:postgresql://localhost:55432/connectdb" , "connectuser" , NULL , NULL, 0); }
+ {
+ ECPGconnect(__LINE__, 0, "unix:postgresql://localhost:55432/connectdb", "connectuser", NULL, NULL, 0);
+ }
#line 58 "test1.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 59 "test1.pgc"
/* wrong db */
- { ECPGconnect(__LINE__, 0, "tcp:postgresql://localhost:55432/nonexistant" , "connectuser" , "connectpw" , NULL, 0); }
+ {
+ ECPGconnect(__LINE__, 0, "tcp:postgresql://localhost:55432/nonexistant", "connectuser", "connectpw", NULL, 0);
+ }
#line 62 "test1.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 63 "test1.pgc"
/* wrong port */
- { ECPGconnect(__LINE__, 0, "tcp:postgresql://localhost:20/connectdb" , "connectuser" , "connectpw" , NULL, 0); }
+ {
+ ECPGconnect(__LINE__, 0, "tcp:postgresql://localhost:20/connectdb", "connectuser", "connectpw", NULL, 0);
+ }
#line 66 "test1.pgc"
/* no disconnect necessary */
/* wrong password */
- { ECPGconnect(__LINE__, 0, "unix:postgresql://localhost:55432/connectdb" , "connectuser" , "wrongpw" , NULL, 0); }
+ {
+ ECPGconnect(__LINE__, 0, "unix:postgresql://localhost:55432/connectdb", "connectuser", "wrongpw", NULL, 0);
+ }
#line 70 "test1.pgc"
/* no disconnect necessary */
diff --git a/src/interfaces/ecpg/test/expected/connect-test2.c b/src/interfaces/ecpg/test/expected/connect-test2.c
index ce18b08bf8..464a7cdf4d 100644
--- a/src/interfaces/ecpg/test/expected/connect-test2.c
+++ b/src/interfaces/ecpg/test/expected/connect-test2.c
@@ -32,14 +32,15 @@ int
main(void)
{
/* exec sql begin declare section */
-
-
+
+
#line 17 "test2.pgc"
- char id [ 200 ] ;
-
+ char id[200];
+
#line 18 "test2.pgc"
- char res [ 200 ] ;
+ char res[200];
+
/* exec sql end declare section */
#line 19 "test2.pgc"
@@ -47,56 +48,78 @@ main(void)
ECPGdebug(1, stderr);
strcpy(id, "first");
- { ECPGconnect(__LINE__, 0, "connectdb" , NULL,NULL , id, 0); }
+ {
+ ECPGconnect(__LINE__, 0, "connectdb", NULL, NULL, id, 0);
+ }
#line 24 "test2.pgc"
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , "second", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, "second", 0);
+ }
#line 25 "test2.pgc"
/* this selects from "second" which was opened last */
- { ECPGdo(__LINE__, 0, 1, NULL, "select current_database () ", ECPGt_EOIT,
- ECPGt_char,(res),(long)200,(long)1,(200)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select current_database () ", ECPGt_EOIT,
+ ECPGt_char, (res), (long) 200, (long) 1, (200) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
+ }
#line 28 "test2.pgc"
- { ECPGdo(__LINE__, 0, 1, "first", "select current_database () ", ECPGt_EOIT,
- ECPGt_char,(res),(long)200,(long)1,(200)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, "first", "select current_database () ", ECPGt_EOIT,
+ ECPGt_char, (res), (long) 200, (long) 1, (200) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
+ }
#line 29 "test2.pgc"
- { ECPGdo(__LINE__, 0, 1, "second", "select current_database () ", ECPGt_EOIT,
- ECPGt_char,(res),(long)200,(long)1,(200)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, "second", "select current_database () ", ECPGt_EOIT,
+ ECPGt_char, (res), (long) 200, (long) 1, (200) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
+ }
#line 30 "test2.pgc"
- { ECPGsetconn(__LINE__, "first");}
+ {
+ ECPGsetconn(__LINE__, "first");
+ }
#line 32 "test2.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select current_database () ", ECPGt_EOIT,
- ECPGt_char,(res),(long)200,(long)1,(200)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select current_database () ", ECPGt_EOIT,
+ ECPGt_char, (res), (long) 200, (long) 1, (200) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
+ }
#line 33 "test2.pgc"
/* this will disconnect from "first" */
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 36 "test2.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select current_database () ", ECPGt_EOIT,
- ECPGt_char,(res),(long)200,(long)1,(200)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select current_database () ", ECPGt_EOIT,
+ ECPGt_char, (res), (long) 200, (long) 1, (200) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
+ }
#line 37 "test2.pgc"
/* error here since "first" is already disconnected */
- { ECPGdisconnect(__LINE__, id);}
+ {
+ ECPGdisconnect(__LINE__, id);
+ }
#line 40 "test2.pgc"
/* disconnect from "second" */
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 43 "test2.pgc"
diff --git a/src/interfaces/ecpg/test/expected/connect-test3.c b/src/interfaces/ecpg/test/expected/connect-test3.c
index 5e4451a4c5..496083da5e 100644
--- a/src/interfaces/ecpg/test/expected/connect-test3.c
+++ b/src/interfaces/ecpg/test/expected/connect-test3.c
@@ -31,14 +31,15 @@ int
main(void)
{
/* exec sql begin declare section */
-
-
+
+
#line 16 "test3.pgc"
- char id [ 200 ] ;
-
+ char id[200];
+
#line 17 "test3.pgc"
- char res [ 200 ] ;
+ char res[200];
+
/* exec sql end declare section */
#line 18 "test3.pgc"
@@ -46,60 +47,83 @@ main(void)
ECPGdebug(1, stderr);
strcpy(id, "first");
- { ECPGconnect(__LINE__, 0, "connectdb" , NULL,NULL , id, 0); }
+ {
+ ECPGconnect(__LINE__, 0, "connectdb", NULL, NULL, id, 0);
+ }
#line 23 "test3.pgc"
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , "second", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, "second", 0);
+ }
#line 24 "test3.pgc"
/* this selects from "second" which was opened last */
- { ECPGdo(__LINE__, 0, 1, NULL, "select current_database () ", ECPGt_EOIT,
- ECPGt_char,(res),(long)200,(long)1,(200)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select current_database () ", ECPGt_EOIT,
+ ECPGt_char, (res), (long) 200, (long) 1, (200) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
+ }
#line 27 "test3.pgc"
/* will close "second" */
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 30 "test3.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select current_database () ", ECPGt_EOIT,
- ECPGt_char,(res),(long)200,(long)1,(200)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select current_database () ", ECPGt_EOIT,
+ ECPGt_char, (res), (long) 200, (long) 1, (200) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
+ }
#line 31 "test3.pgc"
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , "second", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, "second", 0);
+ }
#line 33 "test3.pgc"
/* will close "second" */
- { ECPGdisconnect(__LINE__, "DEFAULT");}
+ {
+ ECPGdisconnect(__LINE__, "DEFAULT");
+ }
#line 35 "test3.pgc"
- { ECPGconnect(__LINE__, 0, "connectdb" , NULL,NULL , "second", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "connectdb", NULL, NULL, "second", 0);
+ }
#line 37 "test3.pgc"
- { ECPGdisconnect(__LINE__, "ALL");}
+ {
+ ECPGdisconnect(__LINE__, "ALL");
+ }
#line 38 "test3.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 40 "test3.pgc"
- { ECPGdisconnect(__LINE__, "DEFAULT");}
+ {
+ ECPGdisconnect(__LINE__, "DEFAULT");
+ }
#line 41 "test3.pgc"
- { ECPGdisconnect(__LINE__, "ALL");}
+ {
+ ECPGdisconnect(__LINE__, "ALL");
+ }
#line 42 "test3.pgc"
/*
- * exec sql disconnect;
- * exec sql disconnect name;
+ * exec sql disconnect; exec sql disconnect name;
*
- * are used in other tests
+ * are used in other tests
*/
return (0);
diff --git a/src/interfaces/ecpg/test/expected/connect-test4.c b/src/interfaces/ecpg/test/expected/connect-test4.c
index ba15660f33..2b9f4ff297 100644
--- a/src/interfaces/ecpg/test/expected/connect-test4.c
+++ b/src/interfaces/ecpg/test/expected/connect-test4.c
@@ -28,15 +28,21 @@ main(void)
{
ECPGdebug(1, stderr);
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, "main", 0);
+ }
#line 13 "test4.pgc"
- { ECPGsetconn(__LINE__, "main");}
+ {
+ ECPGsetconn(__LINE__, "main");
+ }
#line 15 "test4.pgc"
- { ECPGdisconnect(__LINE__, "DEFAULT");}
+ {
+ ECPGdisconnect(__LINE__, "DEFAULT");
+ }
#line 17 "test4.pgc"
diff --git a/src/interfaces/ecpg/test/expected/connect-test5.c b/src/interfaces/ecpg/test/expected/connect-test5.c
index 6075aacf13..36e902979c 100644
--- a/src/interfaces/ecpg/test/expected/connect-test5.c
+++ b/src/interfaces/ecpg/test/expected/connect-test5.c
@@ -22,122 +22,181 @@ int
main(void)
{
/* exec sql begin declare section */
-
-
+
+
#line 16 "test5.pgc"
- char db [ 200 ] ;
-
+ char db[200];
+
#line 17 "test5.pgc"
- char id [ 200 ] ;
+ char id[200];
+
/* exec sql end declare section */
#line 18 "test5.pgc"
ECPGdebug(1, stderr);
- { ECPGconnect(__LINE__, 0, "connectdb" , NULL,NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "connectdb", NULL, NULL, "main", 0);
+ }
#line 22 "test5.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "alter user connectuser encrypted password 'connectpw'", ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "alter user connectuser encrypted password 'connectpw'", ECPGt_EOIT, ECPGt_EORT);
+ }
#line 23 "test5.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 24 "test5.pgc"
- /* <-- "main" not specified */
+ /* <-- "main" not specified */
strcpy(db, "connectdb");
strcpy(id, "main");
- { ECPGconnect(__LINE__, 0, db , NULL,NULL , id, 0); }
+ {
+ ECPGconnect(__LINE__, 0, db, NULL, NULL, id, 0);
+ }
#line 28 "test5.pgc"
- { ECPGdisconnect(__LINE__, id);}
+ {
+ ECPGdisconnect(__LINE__, id);
+ }
#line 29 "test5.pgc"
- { ECPGconnect(__LINE__, 0, "connectdb" , NULL,NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "connectdb", NULL, NULL, "main", 0);
+ }
#line 31 "test5.pgc"
- { ECPGdisconnect(__LINE__, "main");}
+ {
+ ECPGdisconnect(__LINE__, "main");
+ }
#line 32 "test5.pgc"
- { ECPGconnect(__LINE__, 0, "connectdb" , NULL,NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "connectdb", NULL, NULL, "main", 0);
+ }
#line 34 "test5.pgc"
- { ECPGdisconnect(__LINE__, "main");}
+ {
+ ECPGdisconnect(__LINE__, "main");
+ }
#line 35 "test5.pgc"
- { ECPGconnect(__LINE__, 0, "connectdb" , NULL,NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "connectdb", NULL, NULL, "main", 0);
+ }
#line 37 "test5.pgc"
- { ECPGdisconnect(__LINE__, "main");}
+ {
+ ECPGdisconnect(__LINE__, "main");
+ }
#line 38 "test5.pgc"
- { ECPGconnect(__LINE__, 0, "" , "connectdb" , NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "", "connectdb", NULL, "main", 0);
+ }
#line 40 "test5.pgc"
- { ECPGdisconnect(__LINE__, "main");}
+ {
+ ECPGdisconnect(__LINE__, "main");
+ }
#line 41 "test5.pgc"
- { ECPGconnect(__LINE__, 0, "connectdb" , "connectuser" , "connectdb" , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "connectdb", "connectuser", "connectdb", "main", 0);
+ }
#line 43 "test5.pgc"
- { ECPGdisconnect(__LINE__, "main");}
+ {
+ ECPGdisconnect(__LINE__, "main");
+ }
#line 44 "test5.pgc"
- { ECPGconnect(__LINE__, 0, "unix:postgresql://localhost/connectdb" , "connectuser" , NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "unix:postgresql://localhost/connectdb", "connectuser", NULL, "main", 0);
+ }
#line 46 "test5.pgc"
- { ECPGdisconnect(__LINE__, "main");}
+ {
+ ECPGdisconnect(__LINE__, "main");
+ }
#line 47 "test5.pgc"
- { ECPGconnect(__LINE__, 0, "unix:postgresql://localhost/connectdb" , "connectuser" , NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "unix:postgresql://localhost/connectdb", "connectuser", NULL, "main", 0);
+ }
#line 49 "test5.pgc"
- { ECPGdisconnect(__LINE__, "main");}
+ {
+ ECPGdisconnect(__LINE__, "main");
+ }
#line 50 "test5.pgc"
- { ECPGconnect(__LINE__, 0, "unix:postgresql://localhost/connectdb" , "connectuser" , NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "unix:postgresql://localhost/connectdb", "connectuser", NULL, "main", 0);
+ }
#line 52 "test5.pgc"
- { ECPGdisconnect(__LINE__, "main");}
+ {
+ ECPGdisconnect(__LINE__, "main");
+ }
#line 53 "test5.pgc"
- { ECPGconnect(__LINE__, 0, "unix:postgresql://200.46.204.71/connectdb" , "connectuser" , NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "unix:postgresql://200.46.204.71/connectdb", "connectuser", NULL, "main", 0);
+ }
#line 55 "test5.pgc"
- { ECPGdisconnect(__LINE__, "main");}
+ {
+ ECPGdisconnect(__LINE__, "main");
+ }
#line 56 "test5.pgc"
- { ECPGconnect(__LINE__, 0, "unix:postgresql://localhost/" , "connectdb" , NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "unix:postgresql://localhost/", "connectdb", NULL, "main", 0);
+ }
#line 58 "test5.pgc"
- { ECPGdisconnect(__LINE__, "main");}
+ {
+ ECPGdisconnect(__LINE__, "main");
+ }
#line 59 "test5.pgc"
/* connect twice */
- { ECPGconnect(__LINE__, 0, "connectdb" , NULL,NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "connectdb", NULL, NULL, "main", 0);
+ }
#line 62 "test5.pgc"
- { ECPGconnect(__LINE__, 0, "connectdb" , NULL,NULL , "main", 0); }
+ {
+ ECPGconnect(__LINE__, 0, "connectdb", NULL, NULL, "main", 0);
+ }
#line 63 "test5.pgc"
- { ECPGdisconnect(__LINE__, "main");}
+ {
+ ECPGdisconnect(__LINE__, "main");
+ }
#line 64 "test5.pgc"
/* not connected */
- { ECPGdisconnect(__LINE__, "nonexistant");}
+ {
+ ECPGdisconnect(__LINE__, "nonexistant");
+ }
#line 67 "test5.pgc"
diff --git a/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c b/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c
index 0ce27f4596..a818634675 100644
--- a/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c
+++ b/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c
@@ -29,94 +29,116 @@ int
main(void)
{
/* exec sql begin declare section */
-
-
-
-
-
+
+
+
+
+
#line 14 "dt_test.pgc"
- date date1 ;
-
+ date date1;
+
#line 15 "dt_test.pgc"
- timestamp ts1 ;
-
+ timestamp ts1;
+
#line 16 "dt_test.pgc"
- interval * iv1 , iv2 ;
-
+ interval *iv1,
+ iv2;
+
#line 17 "dt_test.pgc"
- char * text ;
+ char *text;
+
/* exec sql end declare section */
#line 18 "dt_test.pgc"
- date date2;
- int mdy[3] = { 4, 19, 1998 };
- char *fmt, *out, *in;
- char *d1 = "Mon Jan 17 1966";
- char *t1 = "2000-7-12 17:34:29";
- int i;
-
- ECPGdebug(1, stderr);
- /* exec sql whenever sqlerror do sqlprint ( ) ; */
+ date date2;
+ int mdy[3] = {4, 19, 1998};
+ char *fmt,
+ *out,
+ *in;
+ char *d1 = "Mon Jan 17 1966";
+ char *t1 = "2000-7-12 17:34:29";
+ int i;
+
+ ECPGdebug(1, stderr);
+ /* exec sql whenever sqlerror do sqlprint ( ) ; */
#line 27 "dt_test.pgc"
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
#line 28 "dt_test.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 28 "dt_test.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create table date_test ( d date , ts timestamp ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table date_test ( d date , ts timestamp ) ", ECPGt_EOIT, ECPGt_EORT);
#line 29 "dt_test.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 29 "dt_test.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "set datestyle to iso", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "set datestyle to iso", ECPGt_EOIT, ECPGt_EORT);
#line 30 "dt_test.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 30 "dt_test.pgc"
- date1 = PGTYPESdate_from_asc(d1, NULL);
- ts1 = PGTYPEStimestamp_from_asc(t1, NULL);
+ date1 = PGTYPESdate_from_asc(d1, NULL);
+ ts1 = PGTYPEStimestamp_from_asc(t1, NULL);
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into date_test ( d , ts ) values( ? , ? ) ",
- ECPGt_date,&(date1),(long)1,(long)1,sizeof(date),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_timestamp,&(ts1),(long)1,(long)1,sizeof(timestamp),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into date_test ( d , ts ) values( ? , ? ) ",
+ ECPGt_date, &(date1), (long) 1, (long) 1, sizeof(date),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_timestamp, &(ts1), (long) 1, (long) 1, sizeof(timestamp),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 35 "dt_test.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 35 "dt_test.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select * from date_test where d = ? ",
- ECPGt_date,&(date1),(long)1,(long)1,sizeof(date),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT,
- ECPGt_date,&(date1),(long)1,(long)1,sizeof(date),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_timestamp,&(ts1),(long)1,(long)1,sizeof(timestamp),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select * from date_test where d = ? ",
+ ECPGt_date, &(date1), (long) 1, (long) 1, sizeof(date),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT,
+ ECPGt_date, &(date1), (long) 1, (long) 1, sizeof(date),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_timestamp, &(ts1), (long) 1, (long) 1, sizeof(timestamp),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 37 "dt_test.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 37 "dt_test.pgc"
text = PGTYPESdate_to_asc(date1);
- printf ("Date: %s\n", text);
+
+ printf("Date: %s\n", text);
free(text);
text = PGTYPEStimestamp_to_asc(ts1);
- printf ("timestamp: %s\n", text);
+
+ printf("timestamp: %s\n", text);
free(text);
iv1 = PGTYPESinterval_from_asc("13556 days 12 hours 34 minutes 14 seconds ", NULL);
PGTYPESinterval_copy(iv1, &iv2);
text = PGTYPESinterval_to_asc(&iv2);
- printf ("interval: %s\n", text);
+
+ printf("interval: %s\n", text);
free(text);
PGTYPESdate_mdyjul(mdy, &date2);
@@ -131,8 +153,9 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
ts1 = PGTYPEStimestamp_from_asc("2003-12-04 17:34:29", NULL);
text = PGTYPEStimestamp_to_asc(ts1);
+
fmt = "(ddd), mmm. dd, yyyy, repeat: (ddd), mmm. dd, yyyy. end";
- out = (char*) malloc(strlen(fmt) + 1);
+ out = (char *) malloc(strlen(fmt) + 1);
date1 = PGTYPESdate_from_timestamp(ts1);
PGTYPESdate_fmt_asc(date1, fmt, out);
printf("date_day of %s is %d\n", text, PGTYPESdate_dayofweek(date1));
@@ -142,249 +165,306 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
/* rdate_defmt_asc() */
- date1 = 0; text = "";
+ date1 = 0;
+ text = "";
+
fmt = "yy/mm/dd";
in = "In the year 1995, the month of December, it is the 25th day";
- /* 0123456789012345678901234567890123456789012345678901234567890
- * 0 1 2 3 4 5 6
+
+ /*
+ * 0123456789012345678901234567890123456789012345678901234567890 0
+ * 1 2 3 4 5 6
*/
PGTYPESdate_defmt_asc(&date1, fmt, in);
text = PGTYPESdate_to_asc(date1);
+
printf("date_defmt_asc1: %s\n", text);
free(text);
- date1 = 0; text = "";
+ date1 = 0;
+ text = "";
+
fmt = "mmmm. dd. yyyy";
in = "12/25/95";
PGTYPESdate_defmt_asc(&date1, fmt, in);
text = PGTYPESdate_to_asc(date1);
+
printf("date_defmt_asc2: %s\n", text);
free(text);
- date1 = 0; text = "";
+ date1 = 0;
+ text = "";
+
fmt = "yy/mm/dd";
in = "95/12/25";
PGTYPESdate_defmt_asc(&date1, fmt, in);
text = PGTYPESdate_to_asc(date1);
+
printf("date_defmt_asc3: %s\n", text);
free(text);
- date1 = 0; text = "";
+ date1 = 0;
+ text = "";
+
fmt = "yy/mm/dd";
in = "1995, December 25th";
PGTYPESdate_defmt_asc(&date1, fmt, in);
text = PGTYPESdate_to_asc(date1);
+
printf("date_defmt_asc4: %s\n", text);
free(text);
- date1 = 0; text = "";
+ date1 = 0;
+ text = "";
+
fmt = "dd-mm-yy";
in = "This is 25th day of December, 1995";
PGTYPESdate_defmt_asc(&date1, fmt, in);
text = PGTYPESdate_to_asc(date1);
+
printf("date_defmt_asc5: %s\n", text);
free(text);
- date1 = 0; text = "";
+ date1 = 0;
+ text = "";
+
fmt = "mmddyy";
in = "Dec. 25th, 1995";
PGTYPESdate_defmt_asc(&date1, fmt, in);
text = PGTYPESdate_to_asc(date1);
+
printf("date_defmt_asc6: %s\n", text);
free(text);
- date1 = 0; text = "";
+ date1 = 0;
+ text = "";
+
fmt = "mmm. dd. yyyy";
in = "dec 25th 1995";
PGTYPESdate_defmt_asc(&date1, fmt, in);
text = PGTYPESdate_to_asc(date1);
+
printf("date_defmt_asc7: %s\n", text);
free(text);
- date1 = 0; text = "";
+ date1 = 0;
+ text = "";
+
fmt = "mmm. dd. yyyy";
in = "DEC-25-1995";
PGTYPESdate_defmt_asc(&date1, fmt, in);
text = PGTYPESdate_to_asc(date1);
+
printf("date_defmt_asc8: %s\n", text);
free(text);
- date1 = 0; text = "";
+ date1 = 0;
+ text = "";
+
fmt = "mm yy dd.";
in = "12199525";
PGTYPESdate_defmt_asc(&date1, fmt, in);
text = PGTYPESdate_to_asc(date1);
+
printf("date_defmt_asc9: %s\n", text);
free(text);
- date1 = 0; text = "";
+ date1 = 0;
+ text = "";
+
fmt = "yyyy fierj mm dd.";
in = "19951225";
PGTYPESdate_defmt_asc(&date1, fmt, in);
text = PGTYPESdate_to_asc(date1);
+
printf("date_defmt_asc10: %s\n", text);
free(text);
- date1 = 0; text = "";
+ date1 = 0;
+ text = "";
+
fmt = "mm/dd/yy";
in = "122595";
PGTYPESdate_defmt_asc(&date1, fmt, in);
text = PGTYPESdate_to_asc(date1);
+
printf("date_defmt_asc12: %s\n", text);
free(text);
PGTYPEStimestamp_current(&ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
/* can't output this in regression mode */
/* printf("timestamp_current: Now: %s\n", text); */
free(text);
ts1 = PGTYPEStimestamp_from_asc("96-02-29", NULL);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_to_asc1: %s\n", text);
free(text);
ts1 = PGTYPEStimestamp_from_asc("1994-02-11 3:10:35", NULL);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_to_asc2: %s\n", text);
free(text);
ts1 = PGTYPEStimestamp_from_asc("1994-02-11 26:10:35", NULL);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_to_asc3: %s\n", text);
free(text);
/* abc-03:10:35-def-02/11/94-gh */
-/* 12345678901234567890123456789 */
+/* 12345678901234567890123456789 */
- out = (char*) malloc(32);
+ out = (char *) malloc(32);
i = PGTYPEStimestamp_fmt_asc(&ts1, out, 31, "abc-%X-def-%x-ghi%%");
printf("timestamp_fmt_asc: %d: %s\n", i, out);
free(out);
fmt = "This is a %m/%d/%y %H-%Ml%Stest";
- in = "This is a 4/12/80 3-39l12test";
+ in = "This is a 4/12/80 3-39l12test";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
free(text);
fmt = "%a %b %d %H:%M:%S %z %Y";
- in = "Tue Jul 22 17:28:44 +0200 2003";
+ in = "Tue Jul 22 17:28:44 +0200 2003";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
free(text);
fmt = "%a %b %d %H:%M:%S %z %Y";
- in = "Tue Feb 29 17:28:44 +0200 2000";
+ in = "Tue Feb 29 17:28:44 +0200 2000";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
free(text);
fmt = "%a %b %d %H:%M:%S %z %Y";
- in = "Tue Feb 29 17:28:44 +0200 1900";
+ in = "Tue Feb 29 17:28:44 +0200 1900";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i);
free(text);
fmt = "%a %b %d %H:%M:%S %z %Y";
- in = "Tue Feb 29 17:28:44 +0200 1996";
+ in = "Tue Feb 29 17:28:44 +0200 1996";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
free(text);
fmt = "%b %d %H:%M:%S %z %Y";
- in = " Jul 31 17:28:44 +0200 1996";
+ in = " Jul 31 17:28:44 +0200 1996";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
free(text);
fmt = "%b %d %H:%M:%S %z %Y";
- in = " Jul 32 17:28:44 +0200 1996";
+ in = " Jul 32 17:28:44 +0200 1996";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i);
free(text);
fmt = "%a %b %d %H:%M:%S %z %Y";
- in = "Tue Feb 29 17:28:44 +0200 1997";
+ in = "Tue Feb 29 17:28:44 +0200 1997";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i);
free(text);
fmt = "%";
- in = "Tue Jul 22 17:28:44 +0200 2003";
+ in = "Tue Jul 22 17:28:44 +0200 2003";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i);
free(text);
fmt = "a %";
- in = "Tue Jul 22 17:28:44 +0200 2003";
+ in = "Tue Jul 22 17:28:44 +0200 2003";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i);
free(text);
fmt = "%b, %d %H_%M`%S %z %Y";
- in = " Jul, 22 17_28 `44 +0200 2003 ";
+ in = " Jul, 22 17_28 `44 +0200 2003 ";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
free(text);
fmt = "%a %b %%%d %H:%M:%S %Z %Y";
- in = "Tue Jul %22 17:28:44 CEST 2003";
+ in = "Tue Jul %22 17:28:44 CEST 2003";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
free(text);
fmt = "%a %b %%%d %H:%M:%S %Z %Y";
- in = "Tue Jul %22 17:28:44 CEST 2003";
+ in = "Tue Jul %22 17:28:44 CEST 2003";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
free(text);
fmt = "abc%n %C %B %%%d %H:%M:%S %Z %Y";
- in = "abc\n 19 October %22 17:28:44 CEST 2003";
+ in = "abc\n 19 October %22 17:28:44 CEST 2003";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
free(text);
fmt = "abc%n %C %B %%%d %H:%M:%S %Z %y";
- in = "abc\n 18 October %34 17:28:44 CEST 80";
+ in = "abc\n 18 October %34 17:28:44 CEST 80";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i);
free(text);
fmt = "";
- in = "abc\n 18 October %34 17:28:44 CEST 80";
+ in = "abc\n 18 October %34 17:28:44 CEST 80";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i);
free(text);
fmt = NULL;
- in = "1980-04-12 3:49:44 ";
+ in = "1980-04-12 3:49:44 ";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, NULL) = %s, error: %d\n", in, text, i);
free(text);
fmt = "%B %d, %Y. Time: %I:%M%p";
- in = "July 14, 1988. Time: 9:15am";
+ in = "July 14, 1988. Time: 9:15am";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
free(text);
@@ -392,6 +472,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
fmt = "%B %d at %I:%M %p in the year %Y";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
free(text);
@@ -399,6 +480,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
fmt = "%Y, %B %d. Time: %I:%M %p";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
free(text);
@@ -406,6 +488,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
fmt = "%Y, %B %d. Time: %I:%M%p";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
free(text);
@@ -413,22 +496,28 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
fmt = "%Y, %P %B %d. Time: %I:%M";
i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1);
text = PGTYPEStimestamp_to_asc(ts1);
+
printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i);
free(text);
- { ECPGtrans(__LINE__, NULL, "rollback");
+ {
+ ECPGtrans(__LINE__, NULL, "rollback");
#line 350 "dt_test.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 350 "dt_test.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
#line 351 "dt_test.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 351 "dt_test.pgc"
return (0);
}
-
diff --git a/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c b/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c
index e5388b6fa8..72b1199dd8 100644
--- a/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c
+++ b/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c
@@ -25,73 +25,76 @@
#line 8 "dt_test2.pgc"
-char *dates[] = { "19990108foobar",
- "19990108 foobar",
- "1999-01-08 foobar",
- "January 8, 1999",
- "1999-01-08",
- "1/8/1999",
- "1/18/1999",
- "01/02/03",
- "1999-Jan-08",
- "Jan-08-1999",
- "08-Jan-1999",
- "99-Jan-08",
- "08-Jan-99",
- "08-Jan-06",
- "Jan-08-99",
- "19990108",
- "990108",
- "1999.008",
- "J2451187",
- "January 8, 99 BC",
- NULL };
-
-char *times[] = { "0:04",
- "1:59 PDT",
- "13:24:40 -8:00",
- "13:24:40.495+3",
- NULL };
-
-char *intervals[] = { "1 minute",
- "1 12:59:10",
- "2 day 12 hour 59 minute 10 second",
- "1 days 12 hrs 59 mins 10 secs",
- "1 days 1 hours 1 minutes 1 seconds",
- "1 year 59 mins",
- "1 year 59 mins foobar",
- NULL };
+char *dates[] = {"19990108foobar",
+ "19990108 foobar",
+ "1999-01-08 foobar",
+ "January 8, 1999",
+ "1999-01-08",
+ "1/8/1999",
+ "1/18/1999",
+ "01/02/03",
+ "1999-Jan-08",
+ "Jan-08-1999",
+ "08-Jan-1999",
+ "99-Jan-08",
+ "08-Jan-99",
+ "08-Jan-06",
+ "Jan-08-99",
+ "19990108",
+ "990108",
+ "1999.008",
+ "J2451187",
+ "January 8, 99 BC",
+NULL};
+
+char *times[] = {"0:04",
+ "1:59 PDT",
+ "13:24:40 -8:00",
+ "13:24:40.495+3",
+NULL};
+
+char *intervals[] = {"1 minute",
+ "1 12:59:10",
+ "2 day 12 hour 59 minute 10 second",
+ "1 days 12 hrs 59 mins 10 secs",
+ "1 days 1 hours 1 minutes 1 seconds",
+ "1 year 59 mins",
+ "1 year 59 mins foobar",
+NULL};
int
main(void)
{
/* exec sql begin declare section */
-
-
-
-
-
-
+
+
+
+
+
+
#line 51 "dt_test2.pgc"
- date date1 ;
-
+ date date1;
+
#line 52 "dt_test2.pgc"
- timestamp ts1 , ts2 ;
-
+ timestamp ts1,
+ ts2;
+
#line 53 "dt_test2.pgc"
- char * text ;
-
+ char *text;
+
#line 54 "dt_test2.pgc"
- interval * i1 ;
-
+ interval *i1;
+
#line 55 "dt_test2.pgc"
- date * dc ;
+ date *dc;
+
/* exec sql end declare section */
#line 56 "dt_test2.pgc"
- int i, j;
- char *endptr;
+ int i,
+ j;
+ char *endptr;
ECPGdebug(1, stderr);
@@ -105,38 +108,45 @@ main(void)
dc = PGTYPESdate_new();
*dc = date1;
text = PGTYPESdate_to_asc(*dc);
+
printf("Date of timestamp: %s\n", text);
free(text);
PGTYPESdate_free(dc);
for (i = 0; dates[i]; i++)
{
- bool err = false;
+ bool err = false;
+
date1 = PGTYPESdate_from_asc(dates[i], &endptr);
- if (date1 == INT_MIN) {
+ if (date1 == INT_MIN)
+ {
err = true;
}
text = PGTYPESdate_to_asc(date1);
+
printf("Date[%d]: %s (%c - %c)\n",
- i, err ? "-" : text,
- endptr ? 'N' : 'Y',
- err ? 'T' : 'F');
+ i, err ? "-" : text,
+ endptr ? 'N' : 'Y',
+ err ? 'T' : 'F');
free(text);
if (!err)
{
for (j = 0; times[j]; j++)
{
- int length = strlen(dates[i])
- + 1
- + strlen(times[j])
- + 1;
- char* t = malloc(length);
+ int length = strlen(dates[i])
+ + 1
+ + strlen(times[j])
+ + 1;
+ char *t = malloc(length);
+
sprintf(t, "%s %s", dates[i], times[j]);
ts1 = PGTYPEStimestamp_from_asc(t, NULL);
text = PGTYPEStimestamp_to_asc(ts1);
- if (i != 19 || j != 3) /* timestamp as integer or double differ for this case */
+
+ if (i != 19 || j != 3) /* timestamp as integer or double
+ * differ for this case */
printf("TS[%d,%d]: %s\n",
- i, j, errno ? "-" : text);
+ i, j, errno ? "-" : text);
free(text);
}
}
@@ -146,7 +156,8 @@ main(void)
for (i = 0; intervals[i]; i++)
{
- interval *ic;
+ interval *ic;
+
i1 = PGTYPESinterval_from_asc(intervals[i], &endptr);
if (*endptr)
printf("endptr set to %s\n", endptr);
@@ -159,12 +170,14 @@ main(void)
if (j < 0)
continue;
text = PGTYPESinterval_to_asc(i1);
+
printf("interval[%d]: %s\n", i, text ? text : "-");
free(text);
ic = PGTYPESinterval_new();
PGTYPESinterval_copy(i1, ic);
text = PGTYPESinterval_to_asc(i1);
+
printf("interval_copy[%d]: %s\n", i, text ? text : "-");
free(text);
PGTYPESinterval_free(ic);
@@ -172,4 +185,3 @@ main(void)
return (0);
}
-
diff --git a/src/interfaces/ecpg/test/expected/pgtypeslib-num_test.c b/src/interfaces/ecpg/test/expected/pgtypeslib-num_test.c
index e45abe6368..903b824704 100644
--- a/src/interfaces/ecpg/test/expected/pgtypeslib-num_test.c
+++ b/src/interfaces/ecpg/test/expected/pgtypeslib-num_test.c
@@ -34,49 +34,64 @@ NOTE: This file has a different expect file for regression tests on MinGW32
int
main(void)
{
- char *text="error\n";
- numeric *value1, *value2, *res;
+ char *text = "error\n";
+ numeric *value1,
+ *value2,
+ *res;
+
/* exec sql begin declare section */
-
- /* = {0, 0, 0, 0, 0, NULL, NULL} ; */
-
+
+ /* = {0, 0, 0, 0, 0, NULL, NULL} ; */
+
#line 22 "num_test.pgc"
- numeric * des ;
+ numeric *des;
+
/* exec sql end declare section */
#line 24 "num_test.pgc"
- double d;
- long l1, l2;
- int i;
+ double d;
+ long l1,
+ l2;
+ int i;
ECPGdebug(1, stderr);
/* exec sql whenever sqlerror do sqlprint ( ) ; */
#line 30 "num_test.pgc"
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
#line 32 "num_test.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 32 "num_test.pgc"
- { ECPGsetcommit(__LINE__, "off", NULL);
+ {
+ ECPGsetcommit(__LINE__, "off", NULL);
#line 34 "num_test.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 34 "num_test.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create table test ( text char ( 5 ) , num numeric ( 14 , 7 ) ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table test ( text char ( 5 ) , num numeric ( 14 , 7 ) ) ", ECPGt_EOIT, ECPGt_EORT);
#line 35 "num_test.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 35 "num_test.pgc"
value1 = PGTYPESnumeric_new();
PGTYPESnumeric_from_int(1407, value1);
text = PGTYPESnumeric_to_asc(value1, -1);
+
printf("from int = %s\n", text);
free(text);
PGTYPESnumeric_free(value1);
@@ -86,23 +101,28 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
res = PGTYPESnumeric_new();
PGTYPESnumeric_add(value1, value2, res);
text = PGTYPESnumeric_to_asc(res, -1);
+
printf("add = %s\n", text);
free(text);
PGTYPESnumeric_sub(res, value2, res);
text = PGTYPESnumeric_to_asc(res, -1);
+
printf("sub = %s\n", text);
free(text);
PGTYPESnumeric_free(value2);
des = PGTYPESnumeric_new();
PGTYPESnumeric_copy(res, des);
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( text , num ) values( 'test' , ? ) ",
- ECPGt_numeric,&(des),(long)1,(long)0,sizeof(numeric),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( text , num ) values( 'test' , ? ) ",
+ ECPGt_numeric, &(des), (long) 1, (long) 0, sizeof(numeric),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 60 "num_test.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 60 "num_test.pgc"
@@ -110,17 +130,21 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
PGTYPESnumeric_mul(value1, value2, res);
PGTYPESnumeric_free(value2);
- { ECPGdo(__LINE__, 0, 1, NULL, "select num from test where text = 'test' ", ECPGt_EOIT,
- ECPGt_numeric,&(des),(long)1,(long)0,sizeof(numeric),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select num from test where text = 'test' ", ECPGt_EOIT,
+ ECPGt_numeric, &(des), (long) 1, (long) 0, sizeof(numeric),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 66 "num_test.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 66 "num_test.pgc"
PGTYPESnumeric_mul(res, des, res);
text = PGTYPESnumeric_to_asc(res, -1);
+
printf("mul = %s\n", text);
free(text);
PGTYPESnumeric_free(des);
@@ -128,6 +152,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
value2 = PGTYPESnumeric_from_asc("10000", NULL);
PGTYPESnumeric_div(res, value2, res);
text = PGTYPESnumeric_to_asc(res, -1);
+
PGTYPESnumeric_to_double(res, &d);
printf("div = %s %e\n", text, d);
@@ -141,19 +166,24 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
PGTYPESnumeric_free(value2);
PGTYPESnumeric_free(res);
- { ECPGtrans(__LINE__, NULL, "rollback");
+ {
+ ECPGtrans(__LINE__, NULL, "rollback");
#line 90 "num_test.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 90 "num_test.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
#line 91 "num_test.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 91 "num_test.pgc"
return (0);
}
-
diff --git a/src/interfaces/ecpg/test/expected/pgtypeslib-num_test2.c b/src/interfaces/ecpg/test/expected/pgtypeslib-num_test2.c
index 9db09e7188..41d2511c40 100644
--- a/src/interfaces/ecpg/test/expected/pgtypeslib-num_test2.c
+++ b/src/interfaces/ecpg/test/expected/pgtypeslib-num_test2.c
@@ -32,112 +32,149 @@ NOTE: This file has a different expect file for regression tests on MinGW32
*/
-char* nums[] = { "2E394", "-2", ".794", "3.44", "592.49E21", "-32.84e4",
- "2E-394", ".1E-2", "+.0", "-592.49E-07", "+32.84e-4",
- ".500001", "-.5000001",
- "1234567890123456789012345678.91", /* 30 digits should fit
- into decimal */
- "1234567890123456789012345678.921", /* 31 digits should NOT
- fit into decimal */
- "not a number",
- NULL};
+char *nums[] = {"2E394", "-2", ".794", "3.44", "592.49E21", "-32.84e4",
+ "2E-394", ".1E-2", "+.0", "-592.49E-07", "+32.84e-4",
+ ".500001", "-.5000001",
+ "1234567890123456789012345678.91", /* 30 digits should fit into decimal */
+ "1234567890123456789012345678.921", /* 31 digits should NOT fit into
+ * decimal */
+ "not a number",
+NULL};
static void
-check_errno(void);
+ check_errno(void);
int
main(void)
{
- char *text="error\n";
- char *endptr;
- numeric *num, *nin;
- decimal *dec;
- long l;
- int i, j, k, q, r, count = 0;
- double d;
- numeric **numarr = (numeric **) calloc(1, sizeof(numeric));
+ char *text = "error\n";
+ char *endptr;
+ numeric *num,
+ *nin;
+ decimal *dec;
+ long l;
+ int i,
+ j,
+ k,
+ q,
+ r,
+ count = 0;
+ double d;
+ numeric **numarr = (numeric **) calloc(1, sizeof(numeric));
ECPGdebug(1, stderr);
for (i = 0; nums[i]; i++)
{
num = PGTYPESnumeric_from_asc(nums[i], &endptr);
- if (!num) check_errno();
+ if (!num)
+ check_errno();
if (endptr != NULL)
{
printf("endptr of %d is not NULL\n", i);
if (*endptr != '\0')
printf("*endptr of %d is not \\0\n", i);
}
- if (!num) continue;
+ if (!num)
+ continue;
numarr = realloc(numarr, sizeof(numeric *) * (count + 1));
numarr[count++] = num;
text = PGTYPESnumeric_to_asc(num, -1);
- if (!text) check_errno();
- printf("num[%d,1]: %s\n", i, text); free(text);
+
+ if (!text)
+ check_errno();
+ printf("num[%d,1]: %s\n", i, text);
+ free(text);
text = PGTYPESnumeric_to_asc(num, 0);
- if (!text) check_errno();
- printf("num[%d,2]: %s\n", i, text); free(text);
+
+ if (!text)
+ check_errno();
+ printf("num[%d,2]: %s\n", i, text);
+ free(text);
text = PGTYPESnumeric_to_asc(num, 1);
- if (!text) check_errno();
- printf("num[%d,3]: %s\n", i, text); free(text);
+
+ if (!text)
+ check_errno();
+ printf("num[%d,3]: %s\n", i, text);
+ free(text);
text = PGTYPESnumeric_to_asc(num, 2);
- if (!text) check_errno();
- printf("num[%d,4]: %s\n", i, text); free(text);
+
+ if (!text)
+ check_errno();
+ printf("num[%d,4]: %s\n", i, text);
+ free(text);
nin = PGTYPESnumeric_new();
text = PGTYPESnumeric_to_asc(nin, 2);
- if (!text) check_errno();
- printf("num[%d,5]: %s\n", i, text); free(text);
+
+ if (!text)
+ check_errno();
+ printf("num[%d,5]: %s\n", i, text);
+ free(text);
r = PGTYPESnumeric_to_long(num, &l);
- if (r) check_errno();
- printf("num[%d,6]: %ld (r: %d)\n", i, r?0L:l, r);
+ if (r)
+ check_errno();
+ printf("num[%d,6]: %ld (r: %d)\n", i, r ? 0L : l, r);
if (r == 0)
{
r = PGTYPESnumeric_from_long(l, nin);
- if (r) check_errno();
+ if (r)
+ check_errno();
text = PGTYPESnumeric_to_asc(nin, 2);
+
q = PGTYPESnumeric_cmp(num, nin);
printf("num[%d,7]: %s (r: %d - cmp: %d)\n", i, text, r, q);
free(text);
}
r = PGTYPESnumeric_to_int(num, &k);
- if (r) check_errno();
- printf("num[%d,8]: %d (r: %d)\n", i, r?0:k, r);
+ if (r)
+ check_errno();
+ printf("num[%d,8]: %d (r: %d)\n", i, r ? 0 : k, r);
if (r == 0)
{
r = PGTYPESnumeric_from_int(k, nin);
- if (r) check_errno();
+ if (r)
+ check_errno();
text = PGTYPESnumeric_to_asc(nin, 2);
+
q = PGTYPESnumeric_cmp(num, nin);
printf("num[%d,9]: %s (r: %d - cmp: %d)\n", i, text, r, q);
free(text);
}
r = PGTYPESnumeric_to_double(num, &d);
- if (r) check_errno();
- printf("num[%d,10]: %g (r: %d)\n", i, r?0.0:d, r);
- /* do not test double to numeric because
- * - extra digits are different on different architectures
- * - PGTYPESnumeric_from_double internally calls PGTYPESnumeric_from_asc anyway
+ if (r)
+ check_errno();
+ printf("num[%d,10]: %g (r: %d)\n", i, r ? 0.0 : d, r);
+
+ /*
+ * do not test double to numeric because - extra digits are different
+ * on different architectures - PGTYPESnumeric_from_double internally
+ * calls PGTYPESnumeric_from_asc anyway
*/
dec = PGTYPESdecimal_new();
r = PGTYPESnumeric_to_decimal(num, dec);
- if (r) check_errno();
- /* we have no special routine for outputting decimal, it would
- * convert to a numeric anyway */
+ if (r)
+ check_errno();
+
+ /*
+ * we have no special routine for outputting decimal, it would convert
+ * to a numeric anyway
+ */
printf("num[%d,11]: - (r: %d)\n", i, r);
if (r == 0)
{
r = PGTYPESnumeric_from_decimal(dec, nin);
- if (r) check_errno();
+ if (r)
+ check_errno();
text = PGTYPESnumeric_to_asc(nin, 2);
+
q = PGTYPESnumeric_cmp(num, nin);
printf("num[%d,12]: %s (r: %d - cmp: %d)\n", i, text, r, q);
free(text);
@@ -152,10 +189,11 @@ main(void)
{
for (j = 0; j < count; j++)
{
- numeric* a = PGTYPESnumeric_new();
- numeric* s = PGTYPESnumeric_new();
- numeric* m = PGTYPESnumeric_new();
- numeric* d = PGTYPESnumeric_new();
+ numeric *a = PGTYPESnumeric_new();
+ numeric *s = PGTYPESnumeric_new();
+ numeric *m = PGTYPESnumeric_new();
+ numeric *d = PGTYPESnumeric_new();
+
r = PGTYPESnumeric_add(numarr[i], numarr[j], a);
if (r)
{
@@ -165,6 +203,7 @@ main(void)
else
{
text = PGTYPESnumeric_to_asc(a, 10);
+
printf("num[a,%d,%d]: %s\n", i, j, text);
free(text);
}
@@ -177,6 +216,7 @@ main(void)
else
{
text = PGTYPESnumeric_to_asc(s, 10);
+
printf("num[s,%d,%d]: %s\n", i, j, text);
free(text);
}
@@ -189,6 +229,7 @@ main(void)
else
{
text = PGTYPESnumeric_to_asc(m, 10);
+
printf("num[m,%d,%d]: %s\n", i, j, text);
free(text);
}
@@ -201,6 +242,7 @@ main(void)
else
{
text = PGTYPESnumeric_to_asc(d, 10);
+
printf("num[d,%d,%d]: %s\n", i, j, text);
free(text);
}
@@ -210,6 +252,7 @@ main(void)
for (i = 0; i < count; i++)
{
text = PGTYPESnumeric_to_asc(numarr[i], -1);
+
printf("%d: %s\n", i, text);
free(text);
}
@@ -220,7 +263,7 @@ main(void)
static void
check_errno(void)
{
- switch(errno)
+ switch (errno)
{
case 0:
printf("(no errno set) - ");
diff --git a/src/interfaces/ecpg/test/expected/preproc-comment.c b/src/interfaces/ecpg/test/expected/preproc-comment.c
index 23e81708ee..3297ede6b6 100644
--- a/src/interfaces/ecpg/test/expected/preproc-comment.c
+++ b/src/interfaces/ecpg/test/expected/preproc-comment.c
@@ -20,24 +20,29 @@
#line 3 "comment.pgc"
-/* just a test comment */ int i;
-/* just a test comment int j*/;
+ /* just a test comment */ int i;
+
+ /* just a test comment int j*/ ;
/****************************************************************************/
-/* Test comment */
+/* Test comment */
/*--------------------------------------------------------------------------*/
-int main(void)
+int
+main(void)
{
- ECPGdebug(1, stderr);
+ ECPGdebug(1, stderr);
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0); }
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
+ }
#line 17 "comment.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 19 "comment.pgc"
- exit (0);
+ exit(0);
}
-
diff --git a/src/interfaces/ecpg/test/expected/preproc-define.c b/src/interfaces/ecpg/test/expected/preproc-define.c
index 4c4caa7295..9978fead81 100644
--- a/src/interfaces/ecpg/test/expected/preproc-define.c
+++ b/src/interfaces/ecpg/test/expected/preproc-define.c
@@ -30,133 +30,165 @@
-/* exec sql type intarray is int [ 6 ] */
+/* exec sql type intarray is int [ 6 ] */
#line 13 "define.pgc"
-typedef int intarray[ 6];
+typedef int intarray[6];
int
main(void)
{
/* exec sql begin declare section */
- typedef char string [ 8 ] ;
+ typedef char string[8];
#line 21 "define.pgc"
-
-
-
-
+
+
+
+
#line 22 "define.pgc"
- intarray amount ;
-
+ intarray amount;
+
#line 23 "define.pgc"
- char name [ 6 ] [ 8 ] ;
-
+ char name[6][8];
+
#line 24 "define.pgc"
- char letter [ 6 ] [ 1 ] ;
-
+ char letter[6][1];
+
#if 0
-
+
#line 26 "define.pgc"
- int not_used ;
-
+ int not_used;
#endif
/* exec sql end declare section */
#line 29 "define.pgc"
- int i,j;
+ int i,
+ j;
ECPGdebug(1, stderr);
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
#line 34 "define.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 34 "define.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create table test ( name char ( 8 ) , amount int , letter char ( 1 ) ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table test ( name char ( 8 ) , amount int , letter char ( 1 ) ) ", ECPGt_EOIT, ECPGt_EORT);
#line 36 "define.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 36 "define.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 37 "define.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 37 "define.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into Test ( name , amount , letter ) values ( 'false' , 1 , 'f' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into Test ( name , amount , letter ) values ( 'false' , 1 , 'f' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 39 "define.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 39 "define.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( name , amount , letter ) values ( 'true' , 2 , 't' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( name , amount , letter ) values ( 'true' , 2 , 't' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 40 "define.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 40 "define.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 41 "define.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 41 "define.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select * from test ", ECPGt_EOIT,
- ECPGt_char,(name),(long)8,(long)6,(8)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_int,(amount),(long)1,(long)6,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_char,(letter),(long)1,(long)6,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select * from test ", ECPGt_EOIT,
+ ECPGt_char, (name), (long) 8, (long) 6, (8) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_int, (amount), (long) 1, (long) 6, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_char, (letter), (long) 1, (long) 6, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 43 "define.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 43 "define.pgc"
- for (i=0, j=sqlca.sqlerrd[2]; i<j; i++)
+ for (i = 0, j = sqlca.sqlerrd[2]; i < j; i++)
{
/* exec sql begin declare section */
-
-
-
+
+
+
#line 48 "define.pgc"
- char n [ 8 ] , l = letter [ i ] [ 0 ] ;
-
+ char n[8],
+ l = letter[i][0];
+
#line 49 "define.pgc"
- int a = amount [ i ] ;
+ int a = amount[i];
+
/* exec sql end declare section */
#line 50 "define.pgc"
- strncpy(n, name[i], 8);
+ strncpy(n, name[i], 8);
printf("name[%d]=%8.8s\tamount[%d]=%d\tletter[%d]=%c\n", i, n, i, a, i, l);
}
- { ECPGdo(__LINE__, 0, 1, NULL, "drop table test ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "drop table test ", ECPGt_EOIT, ECPGt_EORT);
#line 56 "define.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 56 "define.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 57 "define.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 57 "define.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
#line 58 "define.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 58 "define.pgc"
diff --git a/src/interfaces/ecpg/test/expected/preproc-init.c b/src/interfaces/ecpg/test/expected/preproc-init.c
index 0d085b140d..f5e8e9e19a 100644
--- a/src/interfaces/ecpg/test/expected/preproc-init.c
+++ b/src/interfaces/ecpg/test/expected/preproc-init.c
@@ -73,16 +73,22 @@ struct sqlca_t *ECPGget_sqlca(void);
#ifdef __cplusplus
}
#endif
-
#endif
#line 1 "init.pgc"
-enum e { ENUM0, ENUM1 };
-struct sa { int member; };
+enum e
+{
+ ENUM0, ENUM1
+};
+struct sa
+{
+ int member;
+};
-static int fa(void)
+static int
+fa(void)
{
printf("in fa\n");
return 2;
@@ -102,19 +108,22 @@ fc(const char *x)
return *x;
}
-static int fd(const char *x,int i)
+static int
+fd(const char *x, int i)
{
printf("in fd (%s, %d)\n", x, i);
- return (*x)*i;
+ return (*x) * i;
}
-static int fe(enum e x)
+static int
+fe(enum e x)
{
printf("in fe (%d)\n", (int) x);
- return (int)x;
+ return (int) x;
}
-static void sqlnotice(char *notice, short trans)
+static void
+sqlnotice(char *notice, short trans)
{
if (!notice)
notice = "-empty-";
@@ -126,76 +135,79 @@ static void sqlnotice(char *notice, short trans)
#define YES 1
#ifdef _cplusplus
-namespace N
+namespace N
{
- static const int i=2;
+ static const int i = 2;
};
#endif
-int main(void)
+int
+main(void)
{
- struct sa x = { 14 },*y = &x;
+ struct sa x = {14}, *y = &x;
+
/* exec sql begin declare section */
-
-
-
-
-
-
-
-
-
-
-
- /* = 1L */
-
+
+
+
+
+
+
+
+
+
+
+
+ /* = 1L */
+
#line 60 "init.pgc"
- int a = ( int ) 2 ;
-
+ int a = (int) 2;
+
#line 61 "init.pgc"
- int b = 2 + 2 ;
-
+ int b = 2 + 2;
+
#line 62 "init.pgc"
- int b2 = ( 14 * 7 ) ;
-
+ int b2 = (14 * 7);
+
#line 63 "init.pgc"
- int d = x . member ;
-
+ int d = x.member;
+
#line 64 "init.pgc"
- int g = fb ( 2 ) ;
-
+ int g = fb(2);
+
#line 65 "init.pgc"
- int i = 3 ^ 1 ;
-
+ int i = 3 ^ 1;
+
#line 66 "init.pgc"
- int j = 1 ? 1 : 2 ;
-
+ int j = 1 ? 1 : 2;
+
#line 68 "init.pgc"
- int e = y -> member ;
-
+ int e = y->member;
+
#line 69 "init.pgc"
- int c = 10 >> 2 ;
-
+ int c = 10 >> 2;
+
#line 70 "init.pgc"
- bool h = 2 || 1 ;
-
+ bool h = 2 || 1;
+
#line 71 "init.pgc"
- long iay ;
+ long iay;
+
/* exec sql end declare section */
#line 72 "init.pgc"
- int f=fa();
+ int f = fa();
#ifdef _cplusplus
/* exec sql begin declare section */
- /* compile error */
-
+ /* compile error */
+
#line 78 "init.pgc"
- int k = N : : i ;
+ int k = N::i;
+
/* exec sql end declare section */
#line 79 "init.pgc"
-
#endif
ECPGdebug(1, stderr);
@@ -203,58 +215,76 @@ int main(void)
printf("%d %d %d %d %d %d %d %d %d %d %d\n", a, b, b2, c, d, e, f, g, h, i, j);
iay = 0;
printf("%ld\n", iay);
- /* exec sql whenever sqlerror do fa ( ) ; */
+ /* exec sql whenever sqlerror do fa ( ) ; */
#line 87 "init.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select now () ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select now () ", ECPGt_EOIT, ECPGt_EORT);
#line 88 "init.pgc"
-if (sqlca.sqlcode < 0) fa ( );}
+ if (sqlca.sqlcode < 0)
+ fa();
+ }
#line 88 "init.pgc"
/* exec sql whenever sqlerror do fb ( 20 ) ; */
#line 89 "init.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select now () ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select now () ", ECPGt_EOIT, ECPGt_EORT);
#line 90 "init.pgc"
-if (sqlca.sqlcode < 0) fb ( 20 );}
+ if (sqlca.sqlcode < 0)
+ fb(20);
+ }
#line 90 "init.pgc"
/* exec sql whenever sqlerror do fc ( \"50\" ) ; */
#line 91 "init.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select now () ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select now () ", ECPGt_EOIT, ECPGt_EORT);
#line 92 "init.pgc"
-if (sqlca.sqlcode < 0) fc ( "50" );}
+ if (sqlca.sqlcode < 0)
+ fc("50");
+ }
#line 92 "init.pgc"
/* exec sql whenever sqlerror do fd ( \"50\" , 1 ) ; */
#line 93 "init.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select now () ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select now () ", ECPGt_EOIT, ECPGt_EORT);
#line 94 "init.pgc"
-if (sqlca.sqlcode < 0) fd ( "50" , 1 );}
+ if (sqlca.sqlcode < 0)
+ fd("50", 1);
+ }
#line 94 "init.pgc"
/* exec sql whenever sqlerror do fe ( ENUM0 ) ; */
#line 95 "init.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select now () ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select now () ", ECPGt_EOIT, ECPGt_EORT);
#line 96 "init.pgc"
-if (sqlca.sqlcode < 0) fe ( ENUM0 );}
+ if (sqlca.sqlcode < 0)
+ fe(ENUM0);
+ }
#line 96 "init.pgc"
/* exec sql whenever sqlerror do sqlnotice ( NULL , 0 ) ; */
#line 97 "init.pgc"
-
- { ECPGdo(__LINE__, 0, 1, NULL, "select now () ", ECPGt_EOIT, ECPGt_EORT);
+
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select now () ", ECPGt_EOIT, ECPGt_EORT);
#line 98 "init.pgc"
-if (sqlca.sqlcode < 0) sqlnotice ( NULL , 0 );}
+ if (sqlca.sqlcode < 0)
+ sqlnotice(NULL, 0);
+ }
#line 98 "init.pgc"
return 0;
diff --git a/src/interfaces/ecpg/test/expected/preproc-type.c b/src/interfaces/ecpg/test/expected/preproc-type.c
index 20e937188c..fc9334b8c1 100644
--- a/src/interfaces/ecpg/test/expected/preproc-type.c
+++ b/src/interfaces/ecpg/test/expected/preproc-type.c
@@ -21,150 +21,164 @@
#line 4 "type.pgc"
-typedef long mmInteger ;
+typedef long mmInteger;
#line 6 "type.pgc"
#line 6 "type.pgc"
-typedef char mmChar ;
+typedef char mmChar;
#line 7 "type.pgc"
#line 7 "type.pgc"
-typedef short mmSmallInt ;
+typedef short mmSmallInt;
#line 8 "type.pgc"
#line 8 "type.pgc"
-/* exec sql type string is char [ 11 ] */
+/* exec sql type string is char [ 11 ] */
#line 10 "type.pgc"
typedef char string[11];
-/* exec sql type c is char reference */
+/* exec sql type c is char reference */
#line 13 "type.pgc"
-typedef char* c;
+typedef char *c;
/* exec sql begin declare section */
-
-
-
-
-struct TBempl {
+
+
+
+
+struct TBempl
+{
#line 19 "type.pgc"
- mmInteger idnum ;
-
+ mmInteger idnum;
+
#line 20 "type.pgc"
- mmChar name [ 21 ] ;
-
+ mmChar name[21];
+
#line 21 "type.pgc"
- mmSmallInt accs ;
- } ;/* exec sql end declare section */
+ mmSmallInt accs;
+}; /* exec sql end declare section */
+
#line 23 "type.pgc"
int
-main (void)
+main(void)
{
- /* exec sql begin declare section */
-
-
-
-
-
-
-
-
-
+ /* exec sql begin declare section */
+
+
+
+
+
+
+
+
+
#line 29 "type.pgc"
- struct TBempl empl ;
-
+ struct TBempl empl;
+
#line 30 "type.pgc"
- string str ;
-
+ string str;
+
#line 31 "type.pgc"
- c ptr = NULL ;
-
+ c ptr = NULL;
+
#line 36 "type.pgc"
- struct varchar_vc {
+ struct varchar_vc
+ {
#line 34 "type.pgc"
- int len ;
-
+ int len;
+
#line 35 "type.pgc"
- char text [ 10 ] ;
- } vc ;
+ char text [10];
+ } vc;
+
/* exec sql end declare section */
#line 37 "type.pgc"
- /* exec sql var vc is [ 10 ] */
+ /* exec sql var vc is [ 10 ] */
#line 39 "type.pgc"
- ECPGdebug (1, stderr);
+ ECPGdebug(1, stderr);
- empl.idnum = 1;
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0); }
+ empl.idnum = 1;
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
+ }
#line 43 "type.pgc"
- if (sqlca.sqlcode)
- {
- printf ("connect error = %ld\n", sqlca.sqlcode);
- exit (sqlca.sqlcode);
- }
+ if (sqlca.sqlcode)
+ {
+ printf("connect error = %ld\n", sqlca.sqlcode);
+ exit(sqlca.sqlcode);
+ }
- { ECPGdo(__LINE__, 0, 1, NULL, "create table empl ( idnum integer , name char ( 20 ) , accs smallint , string1 char ( 10 ) , string2 char ( 10 ) , string3 char ( 10 ) ) ", ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table empl ( idnum integer , name char ( 20 ) , accs smallint , string1 char ( 10 ) , string2 char ( 10 ) , string3 char ( 10 ) ) ", ECPGt_EOIT, ECPGt_EORT);
+ }
#line 51 "type.pgc"
- if (sqlca.sqlcode)
- {
- printf ("create error = %ld\n", sqlca.sqlcode);
- exit (sqlca.sqlcode);
- }
+ if (sqlca.sqlcode)
+ {
+ printf("create error = %ld\n", sqlca.sqlcode);
+ exit(sqlca.sqlcode);
+ }
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into empl values ( 1 , 'user name' , 320 , 'first str' , 'second str' , 'third str' ) ", ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into empl values ( 1 , 'user name' , 320 , 'first str' , 'second str' , 'third str' ) ", ECPGt_EOIT, ECPGt_EORT);
+ }
#line 58 "type.pgc"
- if (sqlca.sqlcode)
- {
- printf ("insert error = %ld\n", sqlca.sqlcode);
- exit (sqlca.sqlcode);
- }
-
- { ECPGdo(__LINE__, 0, 1, NULL, "select idnum , name , accs , string1 , string2 , string3 from empl where idnum = ? ",
- ECPGt_long,&(empl.idnum),(long)1,(long)1,sizeof(long),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT,
- ECPGt_long,&(empl.idnum),(long)1,(long)1,sizeof(long),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_char,&(empl.name),(long)21,(long)1,(21)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_short,&(empl.accs),(long)1,(long)1,sizeof(short),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_char,(str),(long)11,(long)1,(11)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_char,&(ptr),(long)0,(long)1,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_varchar,&(vc),(long)10,(long)1,sizeof(struct varchar_vc),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
+ if (sqlca.sqlcode)
+ {
+ printf("insert error = %ld\n", sqlca.sqlcode);
+ exit(sqlca.sqlcode);
+ }
+
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select idnum , name , accs , string1 , string2 , string3 from empl where idnum = ? ",
+ ECPGt_long, &(empl.idnum), (long) 1, (long) 1, sizeof(long),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT,
+ ECPGt_long, &(empl.idnum), (long) 1, (long) 1, sizeof(long),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_char, &(empl.name), (long) 21, (long) 1, (21) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_short, &(empl.accs), (long) 1, (long) 1, sizeof(short),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_char, (str), (long) 11, (long) 1, (11) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_char, &(ptr), (long) 0, (long) 1, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_varchar, &(vc), (long) 10, (long) 1, sizeof(struct varchar_vc),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
+ }
#line 68 "type.pgc"
- if (sqlca.sqlcode)
- {
- printf ("select error = %ld\n", sqlca.sqlcode);
- exit (sqlca.sqlcode);
- }
- printf ("id=%ld name='%s' accs=%d str='%s' ptr='%s' vc='%10.10s'\n", empl.idnum, empl.name, empl.accs, str, ptr, vc.text);
+ if (sqlca.sqlcode)
+ {
+ printf("select error = %ld\n", sqlca.sqlcode);
+ exit(sqlca.sqlcode);
+ }
+ printf("id=%ld name='%s' accs=%d str='%s' ptr='%s' vc='%10.10s'\n", empl.idnum, empl.name, empl.accs, str, ptr, vc.text);
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 76 "type.pgc"
- free(ptr);
- exit (0);
+ free(ptr);
+ exit(0);
}
diff --git a/src/interfaces/ecpg/test/expected/preproc-variable.c b/src/interfaces/ecpg/test/expected/preproc-variable.c
index 3781992747..83761b1f96 100644
--- a/src/interfaces/ecpg/test/expected/preproc-variable.c
+++ b/src/interfaces/ecpg/test/expected/preproc-variable.c
@@ -25,197 +25,245 @@
#line 6 "variable.pgc"
-/* exec sql type c is char reference */
+/* exec sql type c is char reference */
#line 8 "variable.pgc"
-typedef char* c;
+typedef char *c;
-/* exec sql type ind is union {
+/* exec sql type ind is union {
#line 11 "variable.pgc"
- int integer ;
-
+ int integer ;
+
#line 11 "variable.pgc"
- short smallint ;
- } */
+ short smallint ;
+ } */
#line 11 "variable.pgc"
-typedef union { int integer; short smallint; } ind;
+typedef union
+{
+ int integer;
+ short smallint;
+} ind;
#define BUFFERSIZ 8
-/* exec sql type str is [ BUFFERSIZ ] */
+/* exec sql type str is [ BUFFERSIZ ] */
#line 15 "variable.pgc"
-/* declare cur cursor for select name , born , age , married , children from family */
+/* declare cur cursor for select name , born , age , married , children from family */
#line 18 "variable.pgc"
int
-main (void)
+main(void)
{
- struct birthinfo {
+ struct birthinfo
+ {
#line 23 "variable.pgc"
- long born ;
-
+ long born;
+
#line 23 "variable.pgc"
- short age ;
- } ;
+ short age;
+ };
+
#line 23 "variable.pgc"
/* exec sql begin declare section */
-
-
-
-
-
-
-
+
+
+
+
+
+
+
#line 27 "variable.pgc"
- struct personal_struct {
+ struct personal_struct
+ {
#line 25 "variable.pgc"
- struct varchar_name { int len; char arr[ BUFFERSIZ ]; } name ;
-
+ struct varchar_name
+ {
+ int len;
+ char arr[BUFFERSIZ];
+ } name;
+
#line 26 "variable.pgc"
- struct birthinfo birth ;
- } personal , * p ;
-
+ struct birthinfo birth;
+ } personal, *p;
+
#line 30 "variable.pgc"
- struct personal_indicator {
+ struct personal_indicator
+ {
#line 28 "variable.pgc"
- int ind_name ;
-
+ int ind_name;
+
#line 29 "variable.pgc"
- struct birthinfo ind_birth ;
- } ind_personal , * i ;
-
+ struct birthinfo ind_birth;
+ } ind_personal, *i;
+
#line 31 "variable.pgc"
- ind ind_children ;
+ ind ind_children;
+
/* exec sql end declare section */
#line 32 "variable.pgc"
-
+
#line 34 "variable.pgc"
- char * married = NULL ;
+ char *married = NULL;
#line 34 "variable.pgc"
-
+
#line 35 "variable.pgc"
- long ind_married ;
+ long ind_married;
#line 35 "variable.pgc"
-
+
#line 36 "variable.pgc"
- ind children ;
+ ind children;
#line 36 "variable.pgc"
- char msg[128];
+ char msg[128];
- ECPGdebug(1, stderr);
+ ECPGdebug(1, stderr);
strcpy(msg, "connect");
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
#line 43 "variable.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 43 "variable.pgc"
strcpy(msg, "set");
- { ECPGdo(__LINE__, 0, 1, NULL, "set datestyle to iso", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "set datestyle to iso", ECPGt_EOIT, ECPGt_EORT);
#line 46 "variable.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 46 "variable.pgc"
strcpy(msg, "create");
- { ECPGdo(__LINE__, 0, 1, NULL, "create table family ( name char ( 8 ) , born integer , age smallint , married date , children integer ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table family ( name char ( 8 ) , born integer , age smallint , married date , children integer ) ", ECPGt_EOIT, ECPGt_EORT);
#line 49 "variable.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 49 "variable.pgc"
strcpy(msg, "insert");
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into family ( name , married , children ) values ( 'Mum' , '19870714' , 3 ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into family ( name , married , children ) values ( 'Mum' , '19870714' , 3 ) ", ECPGt_EOIT, ECPGt_EORT);
#line 52 "variable.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 52 "variable.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into family ( name , born , married , children ) values ( 'Dad' , '19610721' , '19870714' , 3 ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into family ( name , born , married , children ) values ( 'Dad' , '19610721' , '19870714' , 3 ) ", ECPGt_EOIT, ECPGt_EORT);
#line 53 "variable.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 53 "variable.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into family ( name , age ) values ( 'Child 1' , 16 ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into family ( name , age ) values ( 'Child 1' , 16 ) ", ECPGt_EOIT, ECPGt_EORT);
#line 54 "variable.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 54 "variable.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into family ( name , age ) values ( 'Child 2' , 14 ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into family ( name , age ) values ( 'Child 2' , 14 ) ", ECPGt_EOIT, ECPGt_EORT);
#line 55 "variable.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 55 "variable.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into family ( name , age ) values ( 'Child 3' , 9 ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into family ( name , age ) values ( 'Child 3' , 9 ) ", ECPGt_EOIT, ECPGt_EORT);
#line 56 "variable.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 56 "variable.pgc"
strcpy(msg, "commit");
- { ECPGtrans(__LINE__, NULL, "commit");
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 59 "variable.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 59 "variable.pgc"
strcpy(msg, "open");
- { ECPGdo(__LINE__, 0, 1, NULL, "declare cur cursor for select name , born , age , married , children from family ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "declare cur cursor for select name , born , age , married , children from family ", ECPGt_EOIT, ECPGt_EORT);
#line 62 "variable.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 62 "variable.pgc"
- /* exec sql whenever not found break ; */
+ /* exec sql whenever not found break ; */
#line 64 "variable.pgc"
- p=&personal;
- i=&ind_personal;
+ p = &personal;
+ i = &ind_personal;
memset(i, 0, sizeof(ind_personal));
- while (1) {
+ while (1)
+ {
strcpy(msg, "fetch");
- { ECPGdo(__LINE__, 0, 1, NULL, "fetch cur", ECPGt_EOIT,
- ECPGt_varchar,&(p->name),(long)BUFFERSIZ,(long)1,sizeof(struct varchar_name),
- ECPGt_int,&(i->ind_name),(long)1,(long)1,sizeof(int),
- ECPGt_long,&(p->birth.born),(long)1,(long)1,sizeof(long),
- ECPGt_long,&(i->ind_birth.born),(long)1,(long)1,sizeof(long),
- ECPGt_short,&(p->birth.age),(long)1,(long)1,sizeof(short),
- ECPGt_short,&(i->ind_birth.age),(long)1,(long)1,sizeof(short),
- ECPGt_char,&(married),(long)0,(long)1,(1)*sizeof(char),
- ECPGt_long,&(ind_married),(long)1,(long)1,sizeof(long),
- ECPGt_int,&(children.integer),(long)1,(long)1,sizeof(int),
- ECPGt_short,&(ind_children.smallint),(long)1,(long)1,sizeof(short), ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "fetch cur", ECPGt_EOIT,
+ ECPGt_varchar, &(p->name), (long) BUFFERSIZ, (long) 1, sizeof(struct varchar_name),
+ ECPGt_int, &(i->ind_name), (long) 1, (long) 1, sizeof(int),
+ ECPGt_long, &(p->birth.born), (long) 1, (long) 1, sizeof(long),
+ ECPGt_long, &(i->ind_birth.born), (long) 1, (long) 1, sizeof(long),
+ ECPGt_short, &(p->birth.age), (long) 1, (long) 1, sizeof(short),
+ ECPGt_short, &(i->ind_birth.age), (long) 1, (long) 1, sizeof(short),
+ ECPGt_char, &(married), (long) 0, (long) 1, (1) * sizeof(char),
+ ECPGt_long, &(ind_married), (long) 1, (long) 1, sizeof(long),
+ ECPGt_int, &(children.integer), (long) 1, (long) 1, sizeof(int),
+ ECPGt_short, &(ind_children.smallint), (long) 1, (long) 1, sizeof(short), ECPGt_EORT);
#line 71 "variable.pgc"
-if (sqlca.sqlcode == ECPG_NOT_FOUND) break;
+ if (sqlca.sqlcode == ECPG_NOT_FOUND)
+ break;
#line 71 "variable.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 71 "variable.pgc"
printf("%8.8s", personal.name.arr);
@@ -234,34 +282,46 @@ if (sqlca.sqlcode < 0) sqlprint();}
}
strcpy(msg, "close");
- { ECPGdo(__LINE__, 0, 1, NULL, "close cur", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "close cur", ECPGt_EOIT, ECPGt_EORT);
#line 88 "variable.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 88 "variable.pgc"
strcpy(msg, "drop");
- { ECPGdo(__LINE__, 0, 1, NULL, "drop table family ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "drop table family ", ECPGt_EOIT, ECPGt_EORT);
#line 91 "variable.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 91 "variable.pgc"
strcpy(msg, "commit");
- { ECPGtrans(__LINE__, NULL, "commit");
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 94 "variable.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 94 "variable.pgc"
- strcpy(msg, "disconnect");
- { ECPGdisconnect(__LINE__, "CURRENT");
+ strcpy(msg, "disconnect");
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
#line 97 "variable.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 97 "variable.pgc"
diff --git a/src/interfaces/ecpg/test/expected/preproc-whenever.c b/src/interfaces/ecpg/test/expected/preproc-whenever.c
index 79983ce2f3..270287624d 100644
--- a/src/interfaces/ecpg/test/expected/preproc-whenever.c
+++ b/src/interfaces/ecpg/test/expected/preproc-whenever.c
@@ -24,221 +24,288 @@
#line 5 "whenever.pgc"
-static void print(char *msg)
+static void
+print(char *msg)
{
- fprintf(stderr, "Error in statement '%s':\n", msg);
- sqlprint();
+ fprintf(stderr, "Error in statement '%s':\n", msg);
+ sqlprint();
}
-static void print2(void)
+static void
+print2(void)
{
- fprintf(stderr, "Found another error\n");
- sqlprint();
+ fprintf(stderr, "Found another error\n");
+ sqlprint();
}
-static void warn(void)
+static void
+warn(void)
{
- fprintf(stderr, "Warning: At least one column was truncated\n");
+ fprintf(stderr, "Warning: At least one column was truncated\n");
}
-int main(void)
+int
+main(void)
{
-
+
#line 26 "whenever.pgc"
- int i ;
+ int i;
#line 26 "whenever.pgc"
-
+
#line 27 "whenever.pgc"
- char c [ 6 ] ;
+ char c[6];
#line 27 "whenever.pgc"
ECPGdebug(1, stderr);
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
#line 31 "whenever.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 31 "whenever.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create table test ( i int , c char ( 10 ) ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table test ( i int , c char ( 10 ) ) ", ECPGt_EOIT, ECPGt_EORT);
#line 32 "whenever.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 32 "whenever.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test values ( 1 , 'abcdefghij' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test values ( 1 , 'abcdefghij' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 33 "whenever.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 33 "whenever.pgc"
/* exec sql whenever sql_warning do warn ( ) ; */
#line 35 "whenever.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select * from test ", ECPGt_EOIT,
- ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_char,(c),(long)6,(long)1,(6)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select * from test ", ECPGt_EOIT,
+ ECPGt_int, &(i), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_char, (c), (long) 6, (long) 1, (6) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 36 "whenever.pgc"
-if (sqlca.sqlwarn[0] == 'W') warn ( );
+ if (sqlca.sqlwarn[0] == 'W')
+ warn();
#line 36 "whenever.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 36 "whenever.pgc"
- { ECPGtrans(__LINE__, NULL, "rollback");
+ {
+ ECPGtrans(__LINE__, NULL, "rollback");
#line 37 "whenever.pgc"
-if (sqlca.sqlwarn[0] == 'W') warn ( );
+ if (sqlca.sqlwarn[0] == 'W')
+ warn();
#line 37 "whenever.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 37 "whenever.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select * from nonexistant ", ECPGt_EOIT,
- ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select * from nonexistant ", ECPGt_EOIT,
+ ECPGt_int, &(i), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 39 "whenever.pgc"
-if (sqlca.sqlwarn[0] == 'W') warn ( );
+ if (sqlca.sqlwarn[0] == 'W')
+ warn();
#line 39 "whenever.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 39 "whenever.pgc"
- { ECPGtrans(__LINE__, NULL, "rollback");
+ {
+ ECPGtrans(__LINE__, NULL, "rollback");
#line 40 "whenever.pgc"
-if (sqlca.sqlwarn[0] == 'W') warn ( );
+ if (sqlca.sqlwarn[0] == 'W')
+ warn();
#line 40 "whenever.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 40 "whenever.pgc"
/* exec sql whenever sqlerror do print ( \"select\" ) ; */
#line 42 "whenever.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select * from nonexistant ", ECPGt_EOIT,
- ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select * from nonexistant ", ECPGt_EOIT,
+ ECPGt_int, &(i), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 43 "whenever.pgc"
-if (sqlca.sqlwarn[0] == 'W') warn ( );
+ if (sqlca.sqlwarn[0] == 'W')
+ warn();
#line 43 "whenever.pgc"
-if (sqlca.sqlcode < 0) print ( "select" );}
+ if (sqlca.sqlcode < 0)
+ print("select");
+ }
#line 43 "whenever.pgc"
- { ECPGtrans(__LINE__, NULL, "rollback");
+ {
+ ECPGtrans(__LINE__, NULL, "rollback");
#line 44 "whenever.pgc"
-if (sqlca.sqlwarn[0] == 'W') warn ( );
+ if (sqlca.sqlwarn[0] == 'W')
+ warn();
#line 44 "whenever.pgc"
-if (sqlca.sqlcode < 0) print ( "select" );}
+ if (sqlca.sqlcode < 0)
+ print("select");
+ }
#line 44 "whenever.pgc"
/* exec sql whenever sqlerror call print2 ( ) ; */
#line 46 "whenever.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select * from nonexistant ", ECPGt_EOIT,
- ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select * from nonexistant ", ECPGt_EOIT,
+ ECPGt_int, &(i), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 47 "whenever.pgc"
-if (sqlca.sqlwarn[0] == 'W') warn ( );
+ if (sqlca.sqlwarn[0] == 'W')
+ warn();
#line 47 "whenever.pgc"
-if (sqlca.sqlcode < 0) print2 ( );}
+ if (sqlca.sqlcode < 0)
+ print2();
+ }
#line 47 "whenever.pgc"
- { ECPGtrans(__LINE__, NULL, "rollback");
+ {
+ ECPGtrans(__LINE__, NULL, "rollback");
#line 48 "whenever.pgc"
-if (sqlca.sqlwarn[0] == 'W') warn ( );
+ if (sqlca.sqlwarn[0] == 'W')
+ warn();
#line 48 "whenever.pgc"
-if (sqlca.sqlcode < 0) print2 ( );}
+ if (sqlca.sqlcode < 0)
+ print2();
+ }
#line 48 "whenever.pgc"
/* exec sql whenever sqlerror continue ; */
#line 50 "whenever.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select * from nonexistant ", ECPGt_EOIT,
- ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select * from nonexistant ", ECPGt_EOIT,
+ ECPGt_int, &(i), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 51 "whenever.pgc"
-if (sqlca.sqlwarn[0] == 'W') warn ( );}
+ if (sqlca.sqlwarn[0] == 'W')
+ warn();
+ }
#line 51 "whenever.pgc"
- { ECPGtrans(__LINE__, NULL, "rollback");
+ {
+ ECPGtrans(__LINE__, NULL, "rollback");
#line 52 "whenever.pgc"
-if (sqlca.sqlwarn[0] == 'W') warn ( );}
+ if (sqlca.sqlwarn[0] == 'W')
+ warn();
+ }
#line 52 "whenever.pgc"
/* exec sql whenever sqlerror goto error ; */
#line 54 "whenever.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select * from nonexistant ", ECPGt_EOIT,
- ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select * from nonexistant ", ECPGt_EOIT,
+ ECPGt_int, &(i), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 55 "whenever.pgc"
-if (sqlca.sqlwarn[0] == 'W') warn ( );
+ if (sqlca.sqlwarn[0] == 'W')
+ warn();
#line 55 "whenever.pgc"
-if (sqlca.sqlcode < 0) goto error;}
+ if (sqlca.sqlcode < 0)
+ goto error;
+ }
#line 55 "whenever.pgc"
printf("Should not be reachable\n");
- error:
- { ECPGtrans(__LINE__, NULL, "rollback");
+error:
+ {
+ ECPGtrans(__LINE__, NULL, "rollback");
#line 59 "whenever.pgc"
-if (sqlca.sqlwarn[0] == 'W') warn ( );
+ if (sqlca.sqlwarn[0] == 'W')
+ warn();
#line 59 "whenever.pgc"
-if (sqlca.sqlcode < 0) goto error;}
+ if (sqlca.sqlcode < 0)
+ goto error;
+ }
#line 59 "whenever.pgc"
/* exec sql whenever sqlerror stop ; */
#line 61 "whenever.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select * from nonexistant ", ECPGt_EOIT,
- ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select * from nonexistant ", ECPGt_EOIT,
+ ECPGt_int, &(i), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 62 "whenever.pgc"
-if (sqlca.sqlwarn[0] == 'W') warn ( );
+ if (sqlca.sqlwarn[0] == 'W')
+ warn();
#line 62 "whenever.pgc"
-if (sqlca.sqlcode < 0) exit (1);}
+ if (sqlca.sqlcode < 0)
+ exit(1);
+ }
#line 62 "whenever.pgc"
- { ECPGtrans(__LINE__, NULL, "rollback");
+ {
+ ECPGtrans(__LINE__, NULL, "rollback");
#line 63 "whenever.pgc"
-if (sqlca.sqlwarn[0] == 'W') warn ( );
+ if (sqlca.sqlwarn[0] == 'W')
+ warn();
#line 63 "whenever.pgc"
-if (sqlca.sqlcode < 0) exit (1);}
+ if (sqlca.sqlcode < 0)
+ exit(1);
+ }
#line 63 "whenever.pgc"
- exit (0);
-}
+ exit(0);
+}
diff --git a/src/interfaces/ecpg/test/expected/sql-array.c b/src/interfaces/ecpg/test/expected/sql-array.c
index 87ec88f985..8b7dec49e7 100644
--- a/src/interfaces/ecpg/test/expected/sql-array.c
+++ b/src/interfaces/ecpg/test/expected/sql-array.c
@@ -81,7 +81,6 @@ struct sqlca_t *ECPGget_sqlca(void);
#ifdef __cplusplus
}
#endif
-
#endif
#line 7 "array.pgc"
@@ -98,33 +97,34 @@ struct sqlca_t *ECPGget_sqlca(void);
int
-main (void)
+main(void)
{
/* exec sql begin declare section */
-
-
-
-
-
-
+
+
+
+
+
+
#line 14 "array.pgc"
- int i = 1 ;
-
+ int i = 1;
+
#line 15 "array.pgc"
- int * did = & i ;
-
+ int *did = &i;
+
#line 16 "array.pgc"
- int a [ 10 ] = { 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 } ;
-
+ int a[10] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
+
#line 17 "array.pgc"
- char text [ 25 ] = "klmnopqrst" ;
-
+ char text [25] = "klmnopqrst";
+
#line 18 "array.pgc"
- char * t = ( char * ) malloc ( 11 ) ;
-
+ char *t = (char *) malloc(11);
+
#line 19 "array.pgc"
- double f ;
+ double f;
+
/* exec sql end declare section */
#line 20 "array.pgc"
@@ -134,103 +134,136 @@ main (void)
ECPGdebug(1, stderr);
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
#line 27 "array.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 27 "array.pgc"
- { ECPGsetcommit(__LINE__, "on", NULL);
+ {
+ ECPGsetcommit(__LINE__, "on", NULL);
#line 29 "array.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 29 "array.pgc"
- { ECPGtrans(__LINE__, NULL, "begin transaction ");
+ {
+ ECPGtrans(__LINE__, NULL, "begin transaction ");
#line 31 "array.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 31 "array.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create table test ( f float , i int , a int [ 10 ] , text char ( 10 ) ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table test ( f float , i int , a int [ 10 ] , text char ( 10 ) ) ", ECPGt_EOIT, ECPGt_EORT);
#line 33 "array.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 33 "array.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( f , i , a , text ) values ( 404.90 , 3 , '{0,1,2,3,4,5,6,7,8,9}' , 'abcdefghij' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( f , i , a , text ) values ( 404.90 , 3 , '{0,1,2,3,4,5,6,7,8,9}' , 'abcdefghij' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 35 "array.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 35 "array.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( f , i , a , text ) values ( 140787.0 , 2 , ? , ? ) ",
- ECPGt_int,(a),(long)1,(long)10,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_char,(text),(long)25,(long)1,(25)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( f , i , a , text ) values ( 140787.0 , 2 , ? , ? ) ",
+ ECPGt_int, (a), (long) 1, (long) 10, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_char, (text), (long) 25, (long) 1, (25) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 37 "array.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 37 "array.pgc"
-
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( f , i , a , text ) values ( 14.07 , ? , ? , ? ) ",
- ECPGt_int,&(did),(long)1,(long)0,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_int,(a),(long)1,(long)10,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_char,&(t),(long)0,(long)1,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( f , i , a , text ) values ( 14.07 , ? , ? , ? ) ",
+ ECPGt_int, &(did), (long) 1, (long) 0, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_int, (a), (long) 1, (long) 10, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_char, &(t), (long) 0, (long) 1, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 39 "array.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 39 "array.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 41 "array.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 41 "array.pgc"
- { ECPGtrans(__LINE__, NULL, "begin transaction ");
+ {
+ ECPGtrans(__LINE__, NULL, "begin transaction ");
#line 43 "array.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 43 "array.pgc"
-
- { ECPGdo(__LINE__, 0, 1, NULL, "select f , text from test where i = 1 ", ECPGt_EOIT,
- ECPGt_double,&(f),(long)1,(long)1,sizeof(double),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_char,(text),(long)25,(long)1,(25)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select f , text from test where i = 1 ", ECPGt_EOIT,
+ ECPGt_double, &(f), (long) 1, (long) 1, sizeof(double),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_char, (text), (long) 25, (long) 1, (25) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 48 "array.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 48 "array.pgc"
printf("Found f=%f text=%10.10s\n", f, text);
- f=140787;
- { ECPGdo(__LINE__, 0, 1, NULL, "select a , text from test where f = ? ",
- ECPGt_double,&(f),(long)1,(long)1,sizeof(double),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT,
- ECPGt_int,(a),(long)1,(long)10,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_char,&(t),(long)0,(long)1,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ f = 140787;
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select a , text from test where f = ? ",
+ ECPGt_double, &(f), (long) 1, (long) 1, sizeof(double),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT,
+ ECPGt_int, (a), (long) 1, (long) 10, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_char, &(t), (long) 0, (long) 1, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 56 "array.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 56 "array.pgc"
@@ -239,37 +272,49 @@ if (sqlca.sqlcode < 0) sqlprint();}
printf("Found text=%10.10s\n", t);
- { ECPGdo(__LINE__, 0, 1, NULL, "select a from test where f = ? ",
- ECPGt_double,&(f),(long)1,(long)1,sizeof(double),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT,
- ECPGt_char,(text),(long)25,(long)1,(25)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select a from test where f = ? ",
+ ECPGt_double, &(f), (long) 1, (long) 1, sizeof(double),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT,
+ ECPGt_char, (text), (long) 25, (long) 1, (25) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 66 "array.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 66 "array.pgc"
printf("Found text=%s\n", text);
- { ECPGdo(__LINE__, 0, 1, NULL, "drop table test ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "drop table test ", ECPGt_EOIT, ECPGt_EORT);
#line 70 "array.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 70 "array.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 72 "array.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 72 "array.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
#line 74 "array.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 74 "array.pgc"
diff --git a/src/interfaces/ecpg/test/expected/sql-binary.c b/src/interfaces/ecpg/test/expected/sql-binary.c
index deb0220d44..ae444253f7 100644
--- a/src/interfaces/ecpg/test/expected/sql-binary.c
+++ b/src/interfaces/ecpg/test/expected/sql-binary.c
@@ -22,143 +22,174 @@
/* exec sql begin declare section */
-
-
-
-
-
-struct TBempl {
+
+
+
+
+
+struct TBempl
+{
#line 9 "binary.pgc"
- long idnum ;
-
+ long idnum;
+
#line 10 "binary.pgc"
- char name [ 21 ] ;
-
+ char name[21];
+
#line 11 "binary.pgc"
- short accs ;
-
+ short accs;
+
#line 12 "binary.pgc"
- char byte [ 20 ] ;
- } ;/* exec sql end declare section */
+ char byte[20];
+}; /* exec sql end declare section */
+
#line 14 "binary.pgc"
int
-main (void)
+main(void)
{
- /* exec sql begin declare section */
-
-
-
+ /* exec sql begin declare section */
+
+
+
#line 20 "binary.pgc"
- struct TBempl empl ;
-
+ struct TBempl empl;
+
#line 21 "binary.pgc"
- char * data = "\\001\\155\\000\\212" ;
+ char *data = "\\001\\155\\000\\212";
+
/* exec sql end declare section */
#line 22 "binary.pgc"
- int i;
+ int i;
- ECPGdebug (1, stderr);
+ ECPGdebug(1, stderr);
- empl.idnum = 1;
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0); }
+ empl.idnum = 1;
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
+ }
#line 28 "binary.pgc"
- if (sqlca.sqlcode)
- {
- printf ("connect error = %ld\n", sqlca.sqlcode);
- exit (sqlca.sqlcode);
- }
+ if (sqlca.sqlcode)
+ {
+ printf("connect error = %ld\n", sqlca.sqlcode);
+ exit(sqlca.sqlcode);
+ }
- { ECPGdo(__LINE__, 0, 1, NULL, "create table empl ( idnum integer , name char ( 20 ) , accs smallint , byte bytea ) ", ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table empl ( idnum integer , name char ( 20 ) , accs smallint , byte bytea ) ", ECPGt_EOIT, ECPGt_EORT);
+ }
#line 36 "binary.pgc"
- if (sqlca.sqlcode)
- {
- printf ("create error = %ld\n", sqlca.sqlcode);
- exit (sqlca.sqlcode);
- }
-
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into empl values ( 1 , 'first user' , 320 , ? ) ",
- ECPGt_char,&(data),(long)0,(long)1,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);}
+ if (sqlca.sqlcode)
+ {
+ printf("create error = %ld\n", sqlca.sqlcode);
+ exit(sqlca.sqlcode);
+ }
+
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into empl values ( 1 , 'first user' , 320 , ? ) ",
+ ECPGt_char, &(data), (long) 0, (long) 1, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ }
#line 43 "binary.pgc"
- if (sqlca.sqlcode)
- {
- printf ("insert error = %ld\n", sqlca.sqlcode);
- exit (sqlca.sqlcode);
- }
+ if (sqlca.sqlcode)
+ {
+ printf("insert error = %ld\n", sqlca.sqlcode);
+ exit(sqlca.sqlcode);
+ }
- /* declare C cursor for select name , accs , byte from empl where idnum = ? */
+ /*
+ * declare C cursor for select name , accs , byte from empl where
+ * idnum = ?
+ */
#line 50 "binary.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "declare C cursor for select name , accs , byte from empl where idnum = ? ",
- ECPGt_long,&(empl.idnum),(long)1,(long)1,sizeof(long),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "declare C cursor for select name , accs , byte from empl where idnum = ? ",
+ ECPGt_long, &(empl.idnum), (long) 1, (long) 1, sizeof(long),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ }
#line 51 "binary.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "fetch C", ECPGt_EOIT,
- ECPGt_char,(empl.name),(long)21,(long)1,(21)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_short,&(empl.accs),(long)1,(long)1,sizeof(short),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_char,(empl.byte),(long)20,(long)1,(20)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "fetch C", ECPGt_EOIT,
+ ECPGt_char, (empl.name), (long) 21, (long) 1, (21) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_short, &(empl.accs), (long) 1, (long) 1, sizeof(short),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_char, (empl.byte), (long) 20, (long) 1, (20) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
+ }
#line 52 "binary.pgc"
- if (sqlca.sqlcode)
- {
- printf ("fetch error = %ld\n", sqlca.sqlcode);
- exit (sqlca.sqlcode);
- }
+ if (sqlca.sqlcode)
+ {
+ printf("fetch error = %ld\n", sqlca.sqlcode);
+ exit(sqlca.sqlcode);
+ }
+
+ printf("name=%s, accs=%d byte=%s\n", empl.name, empl.accs, empl.byte);
- printf ("name=%s, accs=%d byte=%s\n", empl.name, empl.accs, empl.byte);
+ memset(empl.name, 0, 21L);
+ memset(empl.byte, '#', 20L);
- memset(empl.name, 0, 21L);
- memset(empl.byte, '#', 20L);
- /* declare B binary cursor for select name , accs , byte from empl where idnum = ? */
+ /*
+ * declare B binary cursor for select name , accs , byte from empl
+ * where idnum = ?
+ */
#line 63 "binary.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "declare B binary cursor for select name , accs , byte from empl where idnum = ? ",
- ECPGt_long,&(empl.idnum),(long)1,(long)1,sizeof(long),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "declare B binary cursor for select name , accs , byte from empl where idnum = ? ",
+ ECPGt_long, &(empl.idnum), (long) 1, (long) 1, sizeof(long),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ }
#line 64 "binary.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "fetch B", ECPGt_EOIT,
- ECPGt_char,(empl.name),(long)21,(long)1,(21)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_short,&(empl.accs),(long)1,(long)1,sizeof(short),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_char,(empl.byte),(long)20,(long)1,(20)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "fetch B", ECPGt_EOIT,
+ ECPGt_char, (empl.name), (long) 21, (long) 1, (21) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_short, &(empl.accs), (long) 1, (long) 1, sizeof(short),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_char, (empl.byte), (long) 20, (long) 1, (20) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
+ }
#line 65 "binary.pgc"
- if (sqlca.sqlcode)
- {
- printf ("fetch error = %ld\n", sqlca.sqlcode);
- exit (sqlca.sqlcode);
- }
+ if (sqlca.sqlcode)
+ {
+ printf("fetch error = %ld\n", sqlca.sqlcode);
+ exit(sqlca.sqlcode);
+ }
- { ECPGdo(__LINE__, 0, 1, NULL, "close B", ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "close B", ECPGt_EOIT, ECPGt_EORT);
+ }
#line 72 "binary.pgc"
- /* do not print a.accs because big/little endian will have different outputs here */
- printf ("name=%s, byte=", empl.name);
- for (i=0; i<20; i++)
- {
- if (empl.byte[i] == '#')
- break;
- printf("(%o)", (unsigned char)empl.byte[i]);
- }
- printf("\n");
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ /*
+ * do not print a.accs because big/little endian will have different
+ * outputs here
+ */
+ printf("name=%s, byte=", empl.name);
+ for (i = 0; i < 20; i++)
+ {
+ if (empl.byte[i] == '#')
+ break;
+ printf("(%o)", (unsigned char) empl.byte[i]);
+ }
+ printf("\n");
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 83 "binary.pgc"
- exit (0);
+ exit(0);
}
diff --git a/src/interfaces/ecpg/test/expected/sql-code100.c b/src/interfaces/ecpg/test/expected/sql-code100.c
index 88bb07925a..036672ff23 100644
--- a/src/interfaces/ecpg/test/expected/sql-code100.c
+++ b/src/interfaces/ecpg/test/expected/sql-code100.c
@@ -73,7 +73,6 @@ struct sqlca_t *ECPGget_sqlca(void);
#ifdef __cplusplus
}
#endif
-
#endif
#line 1 "code100.pgc"
@@ -92,73 +91,109 @@ struct sqlca_t *ECPGget_sqlca(void);
-int main(int argc, char **argv)
-{ /* exec sql begin declare section */
-
-
+int
+main(int argc, char **argv)
+{ /* exec sql begin declare section */
+
+
#line 9 "code100.pgc"
- int index ;
+ int index;
+
/* exec sql end declare section */
#line 10 "code100.pgc"
- ECPGdebug(1,stderr);
-
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0); }
+ ECPGdebug(1, stderr);
+
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
+ }
#line 15 "code100.pgc"
- if (sqlca.sqlcode) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
+ if (sqlca.sqlcode)
+ printf("%ld:%s\n", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc);
- { ECPGdo(__LINE__, 0, 1, NULL, "create table test ( \"index\" numeric ( 3 ) primary key , \"payload\" int4 not null ) ", ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table test ( \"index\" numeric ( 3 ) primary key , \"payload\" int4 not null ) ", ECPGt_EOIT, ECPGt_EORT);
+ }
#line 20 "code100.pgc"
- if (sqlca.sqlcode) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
- { ECPGtrans(__LINE__, NULL, "commit");}
+ if (sqlca.sqlcode)
+ printf("%ld:%s\n", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc);
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
+ }
#line 22 "code100.pgc"
- if (sqlca.sqlcode) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
-
- for (index=0;index<10;++index)
- { { ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( payload , index ) values( 0 , ? ) ",
- ECPGt_int,&(index),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);}
+ if (sqlca.sqlcode)
+ printf("%ld:%s\n", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc);
+
+ for (index = 0; index < 10; ++index)
+ {
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( payload , index ) values( 0 , ? ) ",
+ ECPGt_int, &(index), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ }
#line 28 "code100.pgc"
- if (sqlca.sqlcode) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
- }
- { ECPGtrans(__LINE__, NULL, "commit");}
+ if (sqlca.sqlcode)
+ printf("%ld:%s\n", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc);
+ }
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
+ }
#line 31 "code100.pgc"
- if (sqlca.sqlcode) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
-
- { ECPGdo(__LINE__, 0, 1, NULL, "update test set payload = payload + 1 where index = - 1 ", ECPGt_EOIT, ECPGt_EORT);}
+ if (sqlca.sqlcode)
+ printf("%ld:%s\n", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc);
+
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "update test set payload = payload + 1 where index = - 1 ", ECPGt_EOIT, ECPGt_EORT);
+ }
#line 35 "code100.pgc"
- if (sqlca.sqlcode!=100) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
-
- { ECPGdo(__LINE__, 0, 1, NULL, "delete from test where index = - 1 ", ECPGt_EOIT, ECPGt_EORT);}
+ if (sqlca.sqlcode != 100)
+ printf("%ld:%s\n", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc);
+
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "delete from test where index = - 1 ", ECPGt_EOIT, ECPGt_EORT);
+ }
#line 38 "code100.pgc"
- if (sqlca.sqlcode!=100) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
+ if (sqlca.sqlcode != 100)
+ printf("%ld:%s\n", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc);
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( select * from test where index = - 1 ) ", ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( select * from test where index = - 1 ) ", ECPGt_EOIT, ECPGt_EORT);
+ }
#line 41 "code100.pgc"
- if (sqlca.sqlcode!=100) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
+ if (sqlca.sqlcode != 100)
+ printf("%ld:%s\n", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc);
- { ECPGdo(__LINE__, 0, 1, NULL, "drop table test ", ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "drop table test ", ECPGt_EOIT, ECPGt_EORT);
+ }
#line 44 "code100.pgc"
- if (sqlca.sqlcode) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
- { ECPGtrans(__LINE__, NULL, "commit");}
+ if (sqlca.sqlcode)
+ printf("%ld:%s\n", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc);
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
+ }
#line 46 "code100.pgc"
- if (sqlca.sqlcode) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
-
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ if (sqlca.sqlcode)
+ printf("%ld:%s\n", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc);
+
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 49 "code100.pgc"
- if (sqlca.sqlcode) printf("%ld:%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
- return 0;
+ if (sqlca.sqlcode)
+ printf("%ld:%s\n", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc);
+ return 0;
}
diff --git a/src/interfaces/ecpg/test/expected/sql-copystdout.c b/src/interfaces/ecpg/test/expected/sql-copystdout.c
index 8e14452872..83444f801b 100644
--- a/src/interfaces/ecpg/test/expected/sql-copystdout.c
+++ b/src/interfaces/ecpg/test/expected/sql-copystdout.c
@@ -75,7 +75,6 @@ struct sqlca_t *ECPGget_sqlca(void);
#ifdef __cplusplus
}
#endif
-
#endif
#line 3 "copystdout.pgc"
@@ -96,7 +95,7 @@ struct sqlca_t *ECPGget_sqlca(void);
int
-main ()
+main()
{
/*
EXEC SQL BEGIN DECLARE SECTION;
@@ -104,57 +103,78 @@ main ()
EXEC SQL END DECLARE SECTION;
*/
- ECPGdebug (1, stderr);
+ ECPGdebug(1, stderr);
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
#line 19 "copystdout.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 19 "copystdout.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create table foo ( a int , b varchar ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table foo ( a int , b varchar ) ", ECPGt_EOIT, ECPGt_EORT);
#line 20 "copystdout.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 20 "copystdout.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into foo values( 5 , 'abc' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into foo values( 5 , 'abc' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 21 "copystdout.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 21 "copystdout.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into foo values( 6 , 'def' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into foo values( 6 , 'def' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 22 "copystdout.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 22 "copystdout.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into foo values( 7 , 'ghi' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into foo values( 7 , 'ghi' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 23 "copystdout.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 23 "copystdout.pgc"
- /* produces expected file "/tmp/foo" */
- /* EXEC SQL COPY foo TO:fname WITH DELIMITER ','; */
- /* printf ("copy to /tmp/foo : sqlca.sqlcode = %ld", sqlca.sqlcode); */
+ /* produces expected file "/tmp/foo" */
+ /* EXEC SQL COPY foo TO:fname WITH DELIMITER ','; */
+ /* printf ("copy to /tmp/foo : sqlca.sqlcode = %ld", sqlca.sqlcode); */
- { ECPGdo(__LINE__, 0, 1, NULL, "copy foo to stdout with delimiter ','", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "copy foo to stdout with delimiter ','", ECPGt_EOIT, ECPGt_EORT);
#line 29 "copystdout.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 29 "copystdout.pgc"
- printf ("copy to STDOUT : sqlca.sqlcode = %ld\n", sqlca.sqlcode);
+ printf("copy to STDOUT : sqlca.sqlcode = %ld\n", sqlca.sqlcode);
- { ECPGdisconnect(__LINE__, "CURRENT");
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
#line 32 "copystdout.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 32 "copystdout.pgc"
- return 0;
+ return 0;
}
diff --git a/src/interfaces/ecpg/test/expected/sql-define.c b/src/interfaces/ecpg/test/expected/sql-define.c
index 44cd13bedb..ed8dfb5681 100644
--- a/src/interfaces/ecpg/test/expected/sql-define.c
+++ b/src/interfaces/ecpg/test/expected/sql-define.c
@@ -73,7 +73,6 @@ struct sqlca_t *ECPGget_sqlca(void);
#ifdef __cplusplus
}
#endif
-
#endif
#line 1 "define.pgc"
@@ -92,114 +91,143 @@ struct sqlca_t *ECPGget_sqlca(void);
-int main(void)
+int
+main(void)
{
- /* exec sql begin declare section */
-
-
-
+ /* exec sql begin declare section */
+
+
+
#line 10 "define.pgc"
- int i ;
-
+ int i;
+
#line 11 "define.pgc"
- char s [ 200 ] ;
+ char s[200];
+
/* exec sql end declare section */
#line 12 "define.pgc"
- ECPGdebug(1, stderr);
+ ECPGdebug(1, stderr);
- /* exec sql whenever sqlerror do sqlprint ( ) ; */
+ /* exec sql whenever sqlerror do sqlprint ( ) ; */
#line 16 "define.pgc"
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
#line 17 "define.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 17 "define.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create table test ( a int , b text ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table test ( a int , b text ) ", ECPGt_EOIT, ECPGt_EORT);
#line 19 "define.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 19 "define.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( 29 , 'abcdef' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( 29 , 'abcdef' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 20 "define.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 20 "define.pgc"
-
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( null , 'defined' ) ", ECPGt_EOIT, ECPGt_EORT);
+
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( null , 'defined' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 23 "define.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 23 "define.pgc"
-
-
-
-
-
-
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( null , 'someothervar not defined' ) ", ECPGt_EOIT, ECPGt_EORT);
+
+
+
+
+
+
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( null , 'someothervar not defined' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 31 "define.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 31 "define.pgc"
-
-
- { ECPGdo(__LINE__, 0, 1, NULL, "select 1 , 29 :: text || '-' || 'abcdef' ", ECPGt_EOIT,
- ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_char,(s),(long)200,(long)1,(200)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+
+
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select 1 , 29 :: text || '-' || 'abcdef' ", ECPGt_EOIT,
+ ECPGt_int, &(i), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_char, (s), (long) 200, (long) 1, (200) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 36 "define.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 36 "define.pgc"
- printf("i: %d, s: %s\n", i, s);
+ printf("i: %d, s: %s\n", i, s);
+
-
-
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( 29 , 'no string' ) ", ECPGt_EOIT, ECPGt_EORT);
+
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( 29 , 'no string' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 42 "define.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 42 "define.pgc"
-
- /* no value */
-
-
-
-
-
-
- { ECPGdo(__LINE__, 0, 1, NULL, "set TIMEZONE to 'UTC'", ECPGt_EOIT, ECPGt_EORT);
+ /* no value */
+
+
+
+
+
+
+
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "set TIMEZONE to 'UTC'", ECPGt_EOIT, ECPGt_EORT);
#line 53 "define.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 53 "define.pgc"
-
- { ECPGdisconnect(__LINE__, "CURRENT");
+
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
#line 56 "define.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 56 "define.pgc"
- return 0;
+ return 0;
}
diff --git a/src/interfaces/ecpg/test/expected/sql-desc.c b/src/interfaces/ecpg/test/expected/sql-desc.c
index d1c776fca1..c54e67ee7e 100644
--- a/src/interfaces/ecpg/test/expected/sql-desc.c
+++ b/src/interfaces/ecpg/test/expected/sql-desc.c
@@ -25,39 +25,43 @@ int
main(void)
{
/* exec sql begin declare section */
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
#line 8 "desc.pgc"
- char * stmt1 = "INSERT INTO test1 VALUES (?, ?)" ;
-
+ char *stmt1 = "INSERT INTO test1 VALUES (?, ?)";
+
#line 9 "desc.pgc"
- char * stmt2 = "SELECT * from test1 where a = ? and b = ?" ;
-
+ char *stmt2 = "SELECT * from test1 where a = ? and b = ?";
+
#line 10 "desc.pgc"
- char * stmt3 = "SELECT * from test1 where a = ?" ;
-
+ char *stmt3 = "SELECT * from test1 where a = ?";
+
#line 12 "desc.pgc"
- int val1 = 1 ;
-
+ int val1 = 1;
+
#line 13 "desc.pgc"
- char val2 [ 4 ] = "one" , val2output [] = "AAA" ;
-
+ char val2[4] = "one",
+ val2output[] = "AAA";
+
#line 14 "desc.pgc"
- int val1output = 2 , val2i = 0 ;
-
+ int val1output = 2,
+ val2i = 0;
+
#line 15 "desc.pgc"
- int val2null = - 1 ;
-
+ int val2null = -1;
+
#line 16 "desc.pgc"
- int ind1 , ind2 ;
+ int ind1,
+ ind2;
+
/* exec sql end declare section */
#line 17 "desc.pgc"
@@ -67,172 +71,228 @@ main(void)
ECPGallocate_desc(__LINE__, "indesc");
#line 21 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();
+ if (sqlca.sqlcode < 0)
+ sqlprint();
#line 21 "desc.pgc"
ECPGallocate_desc(__LINE__, "outdesc");
#line 22 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();
+ if (sqlca.sqlcode < 0)
+ sqlprint();
#line 22 "desc.pgc"
- { ECPGset_desc(__LINE__, "indesc", 1,ECPGd_data,
- ECPGt_int,&(val1),(long)1,(long)1,sizeof(int), ECPGd_EODT);
+ {
+ ECPGset_desc(__LINE__, "indesc", 1, ECPGd_data,
+ ECPGt_int, &(val1), (long) 1, (long) 1, sizeof(int), ECPGd_EODT);
#line 24 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 24 "desc.pgc"
- { ECPGset_desc(__LINE__, "indesc", 2,ECPGd_data,
- ECPGt_char,(val2),(long)4,(long)1,(4)*sizeof(char), ECPGd_indicator,
- ECPGt_int,&(val2i),(long)1,(long)1,sizeof(int), ECPGd_EODT);
+ {
+ ECPGset_desc(__LINE__, "indesc", 2, ECPGd_data,
+ ECPGt_char, (val2), (long) 4, (long) 1, (4) * sizeof(char), ECPGd_indicator,
+ ECPGt_int, &(val2i), (long) 1, (long) 1, sizeof(int), ECPGd_EODT);
#line 25 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 25 "desc.pgc"
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
#line 27 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 27 "desc.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create table test1 ( a int , b text ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table test1 ( a int , b text ) ", ECPGt_EOIT, ECPGt_EORT);
#line 29 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 29 "desc.pgc"
- { ECPGprepare(__LINE__, "foo1" , stmt1);
+ {
+ ECPGprepare(__LINE__, "foo1", stmt1);
#line 30 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 30 "desc.pgc"
- { ECPGprepare(__LINE__, "foo2" , stmt2);
+ {
+ ECPGprepare(__LINE__, "foo2", stmt2);
#line 31 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 31 "desc.pgc"
- { ECPGprepare(__LINE__, "foo3" , stmt3);
+ {
+ ECPGprepare(__LINE__, "foo3", stmt3);
#line 32 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 32 "desc.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "?",
- ECPGt_char_variable,(ECPGprepared_statement("foo1")),(long)1,(long)1,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_descriptor, "indesc", 0L, 0L, 0L,
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "?",
+ ECPGt_char_variable, (ECPGprepared_statement("foo1")), (long) 1, (long) 1, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_descriptor, "indesc", 0L, 0L, 0L,
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 34 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 34 "desc.pgc"
- { ECPGset_desc(__LINE__, "indesc", 1,ECPGd_data,
- ECPGt_const,"2",(long)1,(long)1,strlen("2"), ECPGd_EODT);
+ {
+ ECPGset_desc(__LINE__, "indesc", 1, ECPGd_data,
+ ECPGt_const, "2", (long) 1, (long) 1, strlen("2"), ECPGd_EODT);
#line 36 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 36 "desc.pgc"
- { ECPGset_desc(__LINE__, "indesc", 2,ECPGd_data,
- ECPGt_char,(val2),(long)4,(long)1,(4)*sizeof(char), ECPGd_indicator,
- ECPGt_int,&(val2null),(long)1,(long)1,sizeof(int), ECPGd_EODT);
+ {
+ ECPGset_desc(__LINE__, "indesc", 2, ECPGd_data,
+ ECPGt_char, (val2), (long) 4, (long) 1, (4) * sizeof(char), ECPGd_indicator,
+ ECPGt_int, &(val2null), (long) 1, (long) 1, sizeof(int), ECPGd_EODT);
#line 37 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 37 "desc.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "?",
- ECPGt_char_variable,(ECPGprepared_statement("foo1")),(long)1,(long)1,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_descriptor, "indesc", 0L, 0L, 0L,
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "?",
+ ECPGt_char_variable, (ECPGprepared_statement("foo1")), (long) 1, (long) 1, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_descriptor, "indesc", 0L, 0L, 0L,
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 39 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 39 "desc.pgc"
- { ECPGset_desc(__LINE__, "indesc", 1,ECPGd_data,
- ECPGt_const,"3",(long)1,(long)1,strlen("3"), ECPGd_EODT);
+ {
+ ECPGset_desc(__LINE__, "indesc", 1, ECPGd_data,
+ ECPGt_const, "3", (long) 1, (long) 1, strlen("3"), ECPGd_EODT);
#line 41 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 41 "desc.pgc"
- { ECPGset_desc(__LINE__, "indesc", 2,ECPGd_data,
- ECPGt_const,"this is a long test",(long)19,(long)1,strlen("this is a long test"), ECPGd_indicator,
- ECPGt_int,&(val1),(long)1,(long)1,sizeof(int), ECPGd_EODT);
+ {
+ ECPGset_desc(__LINE__, "indesc", 2, ECPGd_data,
+ ECPGt_const, "this is a long test", (long) 19, (long) 1, strlen("this is a long test"), ECPGd_indicator,
+ ECPGt_int, &(val1), (long) 1, (long) 1, sizeof(int), ECPGd_EODT);
#line 42 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 42 "desc.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "?",
- ECPGt_char_variable,(ECPGprepared_statement("foo1")),(long)1,(long)1,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_descriptor, "indesc", 0L, 0L, 0L,
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "?",
+ ECPGt_char_variable, (ECPGprepared_statement("foo1")), (long) 1, (long) 1, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_descriptor, "indesc", 0L, 0L, 0L,
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 44 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 44 "desc.pgc"
- { ECPGset_desc(__LINE__, "indesc", 1,ECPGd_data,
- ECPGt_int,&(val1),(long)1,(long)1,sizeof(int), ECPGd_EODT);
+ {
+ ECPGset_desc(__LINE__, "indesc", 1, ECPGd_data,
+ ECPGt_int, &(val1), (long) 1, (long) 1, sizeof(int), ECPGd_EODT);
#line 46 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 46 "desc.pgc"
- { ECPGset_desc(__LINE__, "indesc", 2,ECPGd_data,
- ECPGt_char,(val2),(long)4,(long)1,(4)*sizeof(char), ECPGd_indicator,
- ECPGt_int,&(val2i),(long)1,(long)1,sizeof(int), ECPGd_EODT);
+ {
+ ECPGset_desc(__LINE__, "indesc", 2, ECPGd_data,
+ ECPGt_char, (val2), (long) 4, (long) 1, (4) * sizeof(char), ECPGd_indicator,
+ ECPGt_int, &(val2i), (long) 1, (long) 1, sizeof(int), ECPGd_EODT);
#line 47 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 47 "desc.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "?",
- ECPGt_char_variable,(ECPGprepared_statement("foo2")),(long)1,(long)1,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_descriptor, "indesc", 0L, 0L, 0L,
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT,
- ECPGt_descriptor, "outdesc", 0L, 0L, 0L,
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "?",
+ ECPGt_char_variable, (ECPGprepared_statement("foo2")), (long) 1, (long) 1, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_descriptor, "indesc", 0L, 0L, 0L,
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT,
+ ECPGt_descriptor, "outdesc", 0L, 0L, 0L,
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 49 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 49 "desc.pgc"
- { ECPGget_desc(__LINE__, "outdesc", 1,ECPGd_data,
- ECPGt_char,(val2output),(long)sizeof("AAA"),(long)1,(sizeof("AAA"))*sizeof(char), ECPGd_EODT);
+ {
+ ECPGget_desc(__LINE__, "outdesc", 1, ECPGd_data,
+ ECPGt_char, (val2output), (long) sizeof("AAA"), (long) 1, (sizeof("AAA")) *sizeof(char), ECPGd_EODT);
#line 51 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 51 "desc.pgc"
printf("output = %s\n", val2output);
@@ -240,121 +300,156 @@ if (sqlca.sqlcode < 0) sqlprint();}
/* declare c1 cursor for ? */
#line 54 "desc.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "declare c1 cursor for ?",
- ECPGt_char_variable,(ECPGprepared_statement("foo2")),(long)1,(long)1,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_descriptor, "indesc", 0L, 0L, 0L,
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "declare c1 cursor for ?",
+ ECPGt_char_variable, (ECPGprepared_statement("foo2")), (long) 1, (long) 1, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_descriptor, "indesc", 0L, 0L, 0L,
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 55 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 55 "desc.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "fetch next from c1", ECPGt_EOIT,
- ECPGt_int,&(val1output),(long)1,(long)1,sizeof(int),
- ECPGt_int,&(ind1),(long)1,(long)1,sizeof(int),
- ECPGt_char,(val2output),(long)sizeof("AAA"),(long)1,(sizeof("AAA"))*sizeof(char),
- ECPGt_int,&(ind2),(long)1,(long)1,sizeof(int), ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "fetch next from c1", ECPGt_EOIT,
+ ECPGt_int, &(val1output), (long) 1, (long) 1, sizeof(int),
+ ECPGt_int, &(ind1), (long) 1, (long) 1, sizeof(int),
+ ECPGt_char, (val2output), (long) sizeof("AAA"), (long) 1, (sizeof("AAA")) *sizeof(char),
+ ECPGt_int, &(ind2), (long) 1, (long) 1, sizeof(int), ECPGt_EORT);
#line 57 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 57 "desc.pgc"
printf("val1=%d (ind1: %d) val2=%s (ind2: %d)\n",
- val1output, ind1, val2output, ind2);
+ val1output, ind1, val2output, ind2);
- { ECPGdo(__LINE__, 0, 1, NULL, "close c1", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "close c1", ECPGt_EOIT, ECPGt_EORT);
#line 61 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 61 "desc.pgc"
- { ECPGset_desc_header(__LINE__, "indesc", (int)(1));
+ {
+ ECPGset_desc_header(__LINE__, "indesc", (int) (1));
#line 63 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 63 "desc.pgc"
- { ECPGset_desc(__LINE__, "indesc", 1,ECPGd_data,
- ECPGt_const,"2",(long)1,(long)1,strlen("2"), ECPGd_EODT);
+ {
+ ECPGset_desc(__LINE__, "indesc", 1, ECPGd_data,
+ ECPGt_const, "2", (long) 1, (long) 1, strlen("2"), ECPGd_EODT);
#line 64 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 64 "desc.pgc"
/* declare c2 cursor for ? */
#line 66 "desc.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "declare c2 cursor for ?",
- ECPGt_char_variable,(ECPGprepared_statement("foo3")),(long)1,(long)1,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_descriptor, "indesc", 0L, 0L, 0L,
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "declare c2 cursor for ?",
+ ECPGt_char_variable, (ECPGprepared_statement("foo3")), (long) 1, (long) 1, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_descriptor, "indesc", 0L, 0L, 0L,
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 67 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 67 "desc.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "fetch next from c2", ECPGt_EOIT,
- ECPGt_int,&(val1output),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_char,(val2output),(long)sizeof("AAA"),(long)1,(sizeof("AAA"))*sizeof(char),
- ECPGt_int,&(val2i),(long)1,(long)1,sizeof(int), ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "fetch next from c2", ECPGt_EOIT,
+ ECPGt_int, &(val1output), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_char, (val2output), (long) sizeof("AAA"), (long) 1, (sizeof("AAA")) *sizeof(char),
+ ECPGt_int, &(val2i), (long) 1, (long) 1, sizeof(int), ECPGt_EORT);
#line 69 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 69 "desc.pgc"
printf("val1=%d val2=%s\n", val1output, val2i ? "null" : val2output);
- { ECPGdo(__LINE__, 0, 1, NULL, "close c2", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "close c2", ECPGt_EOIT, ECPGt_EORT);
#line 72 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 72 "desc.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select * from test1 where a = 3 ", ECPGt_EOIT,
- ECPGt_int,&(val1output),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_char,(val2output),(long)sizeof("AAA"),(long)1,(sizeof("AAA"))*sizeof(char),
- ECPGt_int,&(val2i),(long)1,(long)1,sizeof(int), ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select * from test1 where a = 3 ", ECPGt_EOIT,
+ ECPGt_int, &(val1output), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_char, (val2output), (long) sizeof("AAA"), (long) 1, (sizeof("AAA")) *sizeof(char),
+ ECPGt_int, &(val2i), (long) 1, (long) 1, sizeof(int), ECPGt_EORT);
#line 74 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 74 "desc.pgc"
printf("val1=%d val2=%c%c%c%c warn=%c truncate=%d\n", val1output, val2output[0], val2output[1], val2output[2], val2output[3], sqlca.sqlwarn[0], val2i);
- { ECPGdo(__LINE__, 0, 1, NULL, "drop table test1 ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "drop table test1 ", ECPGt_EOIT, ECPGt_EORT);
#line 77 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 77 "desc.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
#line 78 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 78 "desc.pgc"
ECPGdeallocate_desc(__LINE__, "indesc");
#line 80 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();
+ if (sqlca.sqlcode < 0)
+ sqlprint();
#line 80 "desc.pgc"
ECPGdeallocate_desc(__LINE__, "outdesc");
#line 81 "desc.pgc"
-if (sqlca.sqlcode < 0) sqlprint();
+ if (sqlca.sqlcode < 0)
+ sqlprint();
#line 81 "desc.pgc"
diff --git a/src/interfaces/ecpg/test/expected/sql-dynalloc.c b/src/interfaces/ecpg/test/expected/sql-dynalloc.c
index 77cfa52b19..ac6e722af1 100644
--- a/src/interfaces/ecpg/test/expected/sql-dynalloc.c
+++ b/src/interfaces/ecpg/test/expected/sql-dynalloc.c
@@ -74,7 +74,6 @@ struct sqlca_t *ECPGget_sqlca(void);
#ifdef __cplusplus
}
#endif
-
#endif
#line 2 "dynalloc.pgc"
@@ -91,250 +90,315 @@ struct sqlca_t *ECPGget_sqlca(void);
#line 4 "dynalloc.pgc"
-int main(void)
+int
+main(void)
{
- /* exec sql begin declare section */
-
-
-
-
-
-
-
-/* char **d8=0; */
-
-
-
-
-
-
-
-
-/* int *i8=0; */
-
-
+ /* exec sql begin declare section */
+
+
+
+
+
+
+
+/* char **d8=0; */
+
+
+
+
+
+
+
+
+/* int *i8=0; */
+
+
#line 9 "dynalloc.pgc"
- int * d1 = 0 ;
-
+ int *d1 = 0;
+
#line 10 "dynalloc.pgc"
- double * d2 = 0 ;
-
+ double *d2 = 0;
+
#line 11 "dynalloc.pgc"
- char ** d3 = 0 ;
-
+ char **d3 = 0;
+
#line 12 "dynalloc.pgc"
- char ** d4 = 0 ;
-
+ char **d4 = 0;
+
#line 13 "dynalloc.pgc"
- char ** d5 = 0 ;
-
+ char **d5 = 0;
+
#line 14 "dynalloc.pgc"
- char ** d6 = 0 ;
-
+ char **d6 = 0;
+
#line 15 "dynalloc.pgc"
- char ** d7 = 0 ;
-
+ char **d7 = 0;
+
#line 17 "dynalloc.pgc"
- char ** d9 = 0 ;
-
+ char **d9 = 0;
+
#line 18 "dynalloc.pgc"
- int * i1 = 0 ;
-
+ int *i1 = 0;
+
#line 19 "dynalloc.pgc"
- int * i2 = 0 ;
-
+ int *i2 = 0;
+
#line 20 "dynalloc.pgc"
- int * i3 = 0 ;
-
+ int *i3 = 0;
+
#line 21 "dynalloc.pgc"
- int * i4 = 0 ;
-
+ int *i4 = 0;
+
#line 22 "dynalloc.pgc"
- int * i5 = 0 ;
-
+ int *i5 = 0;
+
#line 23 "dynalloc.pgc"
- int * i6 = 0 ;
-
+ int *i6 = 0;
+
#line 24 "dynalloc.pgc"
- int * i7 = 0 ;
-
+ int *i7 = 0;
+
#line 26 "dynalloc.pgc"
- int * i9 = 0 ;
+ int *i9 = 0;
+
/* exec sql end declare section */
#line 27 "dynalloc.pgc"
- int i;
+ int i;
- ECPGdebug(1, stderr);
+ ECPGdebug(1, stderr);
- /* exec sql whenever sqlerror do sqlprint ( ) ; */
+ /* exec sql whenever sqlerror do sqlprint ( ) ; */
#line 32 "dynalloc.pgc"
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
#line 33 "dynalloc.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 33 "dynalloc.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "set datestyle to mdy", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "set datestyle to mdy", ECPGt_EOIT, ECPGt_EORT);
#line 35 "dynalloc.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 35 "dynalloc.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create table test ( a serial , b numeric ( 12 , 3 ) , c varchar , d varchar ( 3 ) , e char ( 4 ) , f timestamptz , g boolean , h box , i inet ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table test ( a serial , b numeric ( 12 , 3 ) , c varchar , d varchar ( 3 ) , e char ( 4 ) , f timestamptz , g boolean , h box , i inet ) ", ECPGt_EOIT, ECPGt_EORT);
#line 37 "dynalloc.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 37 "dynalloc.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( b , c , d , e , f , g , h , i ) values( 23.456 , 'varchar' , 'v' , 'c' , '2003-03-03 12:33:07 PDT' , true , '(1,2,3,4)' , '2001:4f8:3:ba:2e0:81ff:fe22:d1f1/128' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( b , c , d , e , f , g , h , i ) values( 23.456 , 'varchar' , 'v' , 'c' , '2003-03-03 12:33:07 PDT' , true , '(1,2,3,4)' , '2001:4f8:3:ba:2e0:81ff:fe22:d1f1/128' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 38 "dynalloc.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 38 "dynalloc.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( b , c , d , e , f , g , h , i ) values( 2.446456 , null , 'v' , 'c' , '2003-03-03 12:33:07 PDT' , false , null , null ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( b , c , d , e , f , g , h , i ) values( 2.446456 , null , 'v' , 'c' , '2003-03-03 12:33:07 PDT' , false , null , null ) ", ECPGt_EOIT, ECPGt_EORT);
#line 39 "dynalloc.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 39 "dynalloc.pgc"
- ECPGallocate_desc(__LINE__, "mydesc");
+ ECPGallocate_desc(__LINE__, "mydesc");
#line 41 "dynalloc.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );
+ if (sqlca.sqlcode < 0)
+ sqlprint();
#line 41 "dynalloc.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select a , b , c , d , e , f , g , h , i from test order by a", ECPGt_EOIT,
- ECPGt_descriptor, "mydesc", 0L, 0L, 0L,
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select a , b , c , d , e , f , g , h , i from test order by a", ECPGt_EOIT,
+ ECPGt_descriptor, "mydesc", 0L, 0L, 0L,
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 42 "dynalloc.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 42 "dynalloc.pgc"
- { ECPGget_desc(__LINE__, "mydesc", 1,ECPGd_indicator,
- ECPGt_int,&(i1),(long)1,(long)0,sizeof(int), ECPGd_data,
- ECPGt_int,&(d1),(long)1,(long)0,sizeof(int), ECPGd_EODT);
+ {
+ ECPGget_desc(__LINE__, "mydesc", 1, ECPGd_indicator,
+ ECPGt_int, &(i1), (long) 1, (long) 0, sizeof(int), ECPGd_data,
+ ECPGt_int, &(d1), (long) 1, (long) 0, sizeof(int), ECPGd_EODT);
#line 43 "dynalloc.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 43 "dynalloc.pgc"
- { ECPGget_desc(__LINE__, "mydesc", 2,ECPGd_indicator,
- ECPGt_int,&(i2),(long)1,(long)0,sizeof(int), ECPGd_data,
- ECPGt_double,&(d2),(long)1,(long)0,sizeof(double), ECPGd_EODT);
+ {
+ ECPGget_desc(__LINE__, "mydesc", 2, ECPGd_indicator,
+ ECPGt_int, &(i2), (long) 1, (long) 0, sizeof(int), ECPGd_data,
+ ECPGt_double, &(d2), (long) 1, (long) 0, sizeof(double), ECPGd_EODT);
#line 44 "dynalloc.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 44 "dynalloc.pgc"
- { ECPGget_desc(__LINE__, "mydesc", 3,ECPGd_indicator,
- ECPGt_int,&(i3),(long)1,(long)0,sizeof(int), ECPGd_data,
- ECPGt_char,&(d3),(long)0,(long)0,(1)*sizeof(char), ECPGd_EODT);
+ {
+ ECPGget_desc(__LINE__, "mydesc", 3, ECPGd_indicator,
+ ECPGt_int, &(i3), (long) 1, (long) 0, sizeof(int), ECPGd_data,
+ ECPGt_char, &(d3), (long) 0, (long) 0, (1) * sizeof(char), ECPGd_EODT);
#line 45 "dynalloc.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 45 "dynalloc.pgc"
- { ECPGget_desc(__LINE__, "mydesc", 4,ECPGd_indicator,
- ECPGt_int,&(i4),(long)1,(long)0,sizeof(int), ECPGd_data,
- ECPGt_char,&(d4),(long)0,(long)0,(1)*sizeof(char), ECPGd_EODT);
+ {
+ ECPGget_desc(__LINE__, "mydesc", 4, ECPGd_indicator,
+ ECPGt_int, &(i4), (long) 1, (long) 0, sizeof(int), ECPGd_data,
+ ECPGt_char, &(d4), (long) 0, (long) 0, (1) * sizeof(char), ECPGd_EODT);
#line 46 "dynalloc.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 46 "dynalloc.pgc"
- { ECPGget_desc(__LINE__, "mydesc", 5,ECPGd_indicator,
- ECPGt_int,&(i5),(long)1,(long)0,sizeof(int), ECPGd_data,
- ECPGt_char,&(d5),(long)0,(long)0,(1)*sizeof(char), ECPGd_EODT);
+ {
+ ECPGget_desc(__LINE__, "mydesc", 5, ECPGd_indicator,
+ ECPGt_int, &(i5), (long) 1, (long) 0, sizeof(int), ECPGd_data,
+ ECPGt_char, &(d5), (long) 0, (long) 0, (1) * sizeof(char), ECPGd_EODT);
#line 47 "dynalloc.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 47 "dynalloc.pgc"
- { ECPGget_desc(__LINE__, "mydesc", 6,ECPGd_indicator,
- ECPGt_int,&(i6),(long)1,(long)0,sizeof(int), ECPGd_data,
- ECPGt_char,&(d6),(long)0,(long)0,(1)*sizeof(char), ECPGd_EODT);
+ {
+ ECPGget_desc(__LINE__, "mydesc", 6, ECPGd_indicator,
+ ECPGt_int, &(i6), (long) 1, (long) 0, sizeof(int), ECPGd_data,
+ ECPGt_char, &(d6), (long) 0, (long) 0, (1) * sizeof(char), ECPGd_EODT);
#line 48 "dynalloc.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 48 "dynalloc.pgc"
- { ECPGget_desc(__LINE__, "mydesc", 7,ECPGd_indicator,
- ECPGt_int,&(i7),(long)1,(long)0,sizeof(int), ECPGd_data,
- ECPGt_char,&(d7),(long)0,(long)0,(1)*sizeof(char), ECPGd_EODT);
+ {
+ ECPGget_desc(__LINE__, "mydesc", 7, ECPGd_indicator,
+ ECPGt_int, &(i7), (long) 1, (long) 0, sizeof(int), ECPGd_data,
+ ECPGt_char, &(d7), (long) 0, (long) 0, (1) * sizeof(char), ECPGd_EODT);
#line 49 "dynalloc.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 49 "dynalloc.pgc"
- /* skip box for now */
- /* exec sql get descriptor mydesc value 8 :d8=DATA, :i8=INDICATOR; */
- { ECPGget_desc(__LINE__, "mydesc", 9,ECPGd_indicator,
- ECPGt_int,&(i9),(long)1,(long)0,sizeof(int), ECPGd_data,
- ECPGt_char,&(d9),(long)0,(long)0,(1)*sizeof(char), ECPGd_EODT);
+ /* skip box for now */
+ /* exec sql get descriptor mydesc value 8 :d8=DATA, :i8=INDICATOR; */
+ {
+ ECPGget_desc(__LINE__, "mydesc", 9, ECPGd_indicator,
+ ECPGt_int, &(i9), (long) 1, (long) 0, sizeof(int), ECPGd_data,
+ ECPGt_char, &(d9), (long) 0, (long) 0, (1) * sizeof(char), ECPGd_EODT);
#line 52 "dynalloc.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 52 "dynalloc.pgc"
- printf("Result:\n");
- for (i=0;i<sqlca.sqlerrd[2];++i)
- {
- if (i1[i]) printf("NULL, ");
- else printf("%d, ",d1[i]);
-
- if (i2[i]) printf("NULL, ");
- else printf("%f, ",d2[i]);
-
- if (i3[i]) printf("NULL, ");
- else printf("'%s', ",d3[i]);
-
- if (i4[i]) printf("NULL, ");
- else printf("'%s', ",d4[i]);
-
- if (i5[i]) printf("NULL, ");
- else printf("'%s', ",d5[i]);
-
- if (i6[i]) printf("NULL, ");
- else printf("'%s', ",d6[i]);
-
- if (i7[i]) printf("NULL, ");
- else printf("'%s', ",d7[i]);
-
- if (i9[i]) printf("NULL, ");
- else printf("'%s', ",d9[i]);
-
- printf("\n");
- }
- ECPGfree_auto_mem();
- printf("\n");
-
- ECPGdeallocate_desc(__LINE__, "mydesc");
+ printf("Result:\n");
+ for (i = 0; i < sqlca.sqlerrd[2]; ++i)
+ {
+ if (i1[i])
+ printf("NULL, ");
+ else
+ printf("%d, ", d1[i]);
+
+ if (i2[i])
+ printf("NULL, ");
+ else
+ printf("%f, ", d2[i]);
+
+ if (i3[i])
+ printf("NULL, ");
+ else
+ printf("'%s', ", d3[i]);
+
+ if (i4[i])
+ printf("NULL, ");
+ else
+ printf("'%s', ", d4[i]);
+
+ if (i5[i])
+ printf("NULL, ");
+ else
+ printf("'%s', ", d5[i]);
+
+ if (i6[i])
+ printf("NULL, ");
+ else
+ printf("'%s', ", d6[i]);
+
+ if (i7[i])
+ printf("NULL, ");
+ else
+ printf("'%s', ", d7[i]);
+
+ if (i9[i])
+ printf("NULL, ");
+ else
+ printf("'%s', ", d9[i]);
+
+ printf("\n");
+ }
+ ECPGfree_auto_mem();
+ printf("\n");
+
+ ECPGdeallocate_desc(__LINE__, "mydesc");
#line 86 "dynalloc.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );
+ if (sqlca.sqlcode < 0)
+ sqlprint();
#line 86 "dynalloc.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
#line 87 "dynalloc.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 87 "dynalloc.pgc"
- return 0;
+ return 0;
}
diff --git a/src/interfaces/ecpg/test/expected/sql-dynalloc2.c b/src/interfaces/ecpg/test/expected/sql-dynalloc2.c
index 69d9446169..2f9faf6fa9 100644
--- a/src/interfaces/ecpg/test/expected/sql-dynalloc2.c
+++ b/src/interfaces/ecpg/test/expected/sql-dynalloc2.c
@@ -74,7 +74,6 @@ struct sqlca_t *ECPGget_sqlca(void);
#ifdef __cplusplus
}
#endif
-
#endif
#line 2 "dynalloc2.pgc"
@@ -91,166 +90,219 @@ struct sqlca_t *ECPGget_sqlca(void);
#line 4 "dynalloc2.pgc"
-int main(void)
+int
+main(void)
{
- /* exec sql begin declare section */
-
-
-
-
-
-
+ /* exec sql begin declare section */
+
+
+
+
+
+
#line 9 "dynalloc2.pgc"
- int * ip1 = 0 ;
-
+ int *ip1 = 0;
+
#line 10 "dynalloc2.pgc"
- char ** cp2 = 0 ;
-
+ char **cp2 = 0;
+
#line 11 "dynalloc2.pgc"
- int * ipointer1 = 0 ;
-
+ int *ipointer1 = 0;
+
#line 12 "dynalloc2.pgc"
- int * ipointer2 = 0 ;
-
+ int *ipointer2 = 0;
+
#line 13 "dynalloc2.pgc"
- int colnum ;
+ int colnum;
+
/* exec sql end declare section */
#line 14 "dynalloc2.pgc"
- int i;
+ int i;
- ECPGdebug(1, stderr);
+ ECPGdebug(1, stderr);
- /* exec sql whenever sqlerror do sqlprint ( ) ; */
+ /* exec sql whenever sqlerror do sqlprint ( ) ; */
#line 19 "dynalloc2.pgc"
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
#line 20 "dynalloc2.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 20 "dynalloc2.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "set datestyle to postgres", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "set datestyle to postgres", ECPGt_EOIT, ECPGt_EORT);
#line 22 "dynalloc2.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 22 "dynalloc2.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create table test ( a int , b text ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table test ( a int , b text ) ", ECPGt_EOIT, ECPGt_EORT);
#line 24 "dynalloc2.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 24 "dynalloc2.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( 1 , 'one' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( 1 , 'one' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 25 "dynalloc2.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 25 "dynalloc2.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( 2 , 'two' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( 2 , 'two' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 26 "dynalloc2.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 26 "dynalloc2.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( null , 'three' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( null , 'three' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 27 "dynalloc2.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 27 "dynalloc2.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( 4 , 'four' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( 4 , 'four' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 28 "dynalloc2.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 28 "dynalloc2.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( 5 , null ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( 5 , null ) ", ECPGt_EOIT, ECPGt_EORT);
#line 29 "dynalloc2.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 29 "dynalloc2.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( null , null ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test values( null , null ) ", ECPGt_EOIT, ECPGt_EORT);
#line 30 "dynalloc2.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 30 "dynalloc2.pgc"
- ECPGallocate_desc(__LINE__, "mydesc");
+ ECPGallocate_desc(__LINE__, "mydesc");
#line 32 "dynalloc2.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );
+ if (sqlca.sqlcode < 0)
+ sqlprint();
#line 32 "dynalloc2.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select * from test ", ECPGt_EOIT,
- ECPGt_descriptor, "mydesc", 0L, 0L, 0L,
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select * from test ", ECPGt_EOIT,
+ ECPGt_descriptor, "mydesc", 0L, 0L, 0L,
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 33 "dynalloc2.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 33 "dynalloc2.pgc"
- { ECPGget_desc_header(__LINE__, "mydesc", &(colnum));
+ {
+ ECPGget_desc_header(__LINE__, "mydesc", &(colnum));
#line 34 "dynalloc2.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 34 "dynalloc2.pgc"
- { ECPGget_desc(__LINE__, "mydesc", 1,ECPGd_indicator,
- ECPGt_int,&(ipointer1),(long)1,(long)0,sizeof(int), ECPGd_data,
- ECPGt_int,&(ip1),(long)1,(long)0,sizeof(int), ECPGd_EODT);
+ {
+ ECPGget_desc(__LINE__, "mydesc", 1, ECPGd_indicator,
+ ECPGt_int, &(ipointer1), (long) 1, (long) 0, sizeof(int), ECPGd_data,
+ ECPGt_int, &(ip1), (long) 1, (long) 0, sizeof(int), ECPGd_EODT);
#line 35 "dynalloc2.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 35 "dynalloc2.pgc"
- { ECPGget_desc(__LINE__, "mydesc", 2,ECPGd_indicator,
- ECPGt_int,&(ipointer2),(long)1,(long)0,sizeof(int), ECPGd_data,
- ECPGt_char,&(cp2),(long)0,(long)0,(1)*sizeof(char), ECPGd_EODT);
+ {
+ ECPGget_desc(__LINE__, "mydesc", 2, ECPGd_indicator,
+ ECPGt_int, &(ipointer2), (long) 1, (long) 0, sizeof(int), ECPGd_data,
+ ECPGt_char, &(cp2), (long) 0, (long) 0, (1) * sizeof(char), ECPGd_EODT);
#line 36 "dynalloc2.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 36 "dynalloc2.pgc"
- printf("Result (%d columns):\n", colnum);
- for (i=0;i < sqlca.sqlerrd[2];++i)
- {
- if (ipointer1[i]) printf("NULL, ");
- else printf("%d, ",ip1[i]);
-
- if (ipointer2[i]) printf("NULL, ");
- else printf("'%s', ",cp2[i]);
- printf("\n");
- }
- ECPGfree_auto_mem();
- printf("\n");
-
- ECPGdeallocate_desc(__LINE__, "mydesc");
+ printf("Result (%d columns):\n", colnum);
+ for (i = 0; i < sqlca.sqlerrd[2]; ++i)
+ {
+ if (ipointer1[i])
+ printf("NULL, ");
+ else
+ printf("%d, ", ip1[i]);
+
+ if (ipointer2[i])
+ printf("NULL, ");
+ else
+ printf("'%s', ", cp2[i]);
+ printf("\n");
+ }
+ ECPGfree_auto_mem();
+ printf("\n");
+
+ ECPGdeallocate_desc(__LINE__, "mydesc");
#line 51 "dynalloc2.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );
+ if (sqlca.sqlcode < 0)
+ sqlprint();
#line 51 "dynalloc2.pgc"
- { ECPGtrans(__LINE__, NULL, "rollback");
+ {
+ ECPGtrans(__LINE__, NULL, "rollback");
#line 52 "dynalloc2.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 52 "dynalloc2.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
#line 53 "dynalloc2.pgc"
-if (sqlca.sqlcode < 0) sqlprint ( );}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 53 "dynalloc2.pgc"
- return 0;
+ return 0;
}
diff --git a/src/interfaces/ecpg/test/expected/sql-dyntest.c b/src/interfaces/ecpg/test/expected/sql-dyntest.c
index 5ecd7c6518..5ca8c356a4 100644
--- a/src/interfaces/ecpg/test/expected/sql-dyntest.c
+++ b/src/interfaces/ecpg/test/expected/sql-dyntest.c
@@ -56,7 +56,6 @@ enum
SQL3_DDT_ILLEGAL /* not a datetime data type (not part of
* standard) */
};
-
#endif /* !_ECPG_SQL3TYPES_H */
#line 7 "dyntest.pgc"
@@ -127,7 +126,6 @@ struct sqlca_t *ECPGget_sqlca(void);
#ifdef __cplusplus
}
#endif
-
#endif
#line 8 "dyntest.pgc"
@@ -144,346 +142,409 @@ struct sqlca_t *ECPGget_sqlca(void);
static void
-error (void)
+error(void)
{
- printf ("\n#%ld:%s\n", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc);
- exit (1);
+ printf("\n#%ld:%s\n", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc);
+ exit(1);
}
int
-main (int argc, char **argv)
+main(int argc, char **argv)
{
- /* exec sql begin declare section */
-
-
-
-
-
-
-
-
-
-
-
+ /* exec sql begin declare section */
+
+
+
+
+
+
+
+
+
+
+
#line 22 "dyntest.pgc"
- int COUNT ;
-
+ int COUNT;
+
#line 23 "dyntest.pgc"
- int INTVAR ;
-
+ int INTVAR;
+
#line 24 "dyntest.pgc"
- int INDEX ;
-
+ int INDEX;
+
#line 25 "dyntest.pgc"
- int INDICATOR ;
-
+ int INDICATOR;
+
#line 26 "dyntest.pgc"
- int TYPE , LENGTH , OCTET_LENGTH , PRECISION , SCALE , RETURNED_OCTET_LENGTH ;
-
+ int TYPE,
+ LENGTH,
+ OCTET_LENGTH,
+ PRECISION,
+ SCALE,
+ RETURNED_OCTET_LENGTH;
+
#line 27 "dyntest.pgc"
- int DATETIME_INTERVAL_CODE ;
-
+ int DATETIME_INTERVAL_CODE;
+
#line 28 "dyntest.pgc"
- char NAME [ 120 ] , BOOLVAR ;
-
+ char NAME[120],
+ BOOLVAR;
+
#line 29 "dyntest.pgc"
- char STRINGVAR [ 1024 ] ;
-
+ char STRINGVAR[1024];
+
#line 30 "dyntest.pgc"
- double DOUBLEVAR ;
-
+ double DOUBLEVAR;
+
#line 31 "dyntest.pgc"
- char * QUERY ;
+ char *QUERY;
+
/* exec sql end declare section */
#line 32 "dyntest.pgc"
- int done = 0;
+ int done = 0;
- /* exec sql var BOOLVAR is bool */
+ /* exec sql var BOOLVAR is bool */
#line 35 "dyntest.pgc"
- ECPGdebug (1, stderr);
+ ECPGdebug(1, stderr);
- QUERY = "select * from dyntest";
+ QUERY = "select * from dyntest";
- /* exec sql whenever sqlerror do error ( ) ; */
+ /* exec sql whenever sqlerror do error ( ) ; */
#line 43 "dyntest.pgc"
- ECPGallocate_desc(__LINE__, "MYDESC");
+ ECPGallocate_desc(__LINE__, "MYDESC");
#line 45 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );
+ if (sqlca.sqlcode < 0)
+ error();
#line 45 "dyntest.pgc"
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
#line 47 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );}
+ if (sqlca.sqlcode < 0)
+ error();
+ }
#line 47 "dyntest.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "set datestyle to german", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "set datestyle to german", ECPGt_EOIT, ECPGt_EORT);
#line 49 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );}
+ if (sqlca.sqlcode < 0)
+ error();
+ }
#line 49 "dyntest.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create table dyntest ( name char ( 14 ) , d float8 , i int , bignumber int8 , b boolean , comment text , day date ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table dyntest ( name char ( 14 ) , d float8 , i int , bignumber int8 , b boolean , comment text , day date ) ", ECPGt_EOIT, ECPGt_EORT);
#line 53 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );}
+ if (sqlca.sqlcode < 0)
+ error();
+ }
#line 53 "dyntest.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into dyntest values( 'first entry' , 14.7 , 14 , 123045607890 , true , 'The world''s most advanced open source database.' , '1987-07-14' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into dyntest values( 'first entry' , 14.7 , 14 , 123045607890 , true , 'The world''s most advanced open source database.' , '1987-07-14' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 54 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );}
+ if (sqlca.sqlcode < 0)
+ error();
+ }
#line 54 "dyntest.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into dyntest values( 'second entry' , 1407.87 , 1407 , 987065403210 , false , 'The elephant never forgets.' , '1999-11-5' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into dyntest values( 'second entry' , 1407.87 , 1407 , 987065403210 , false , 'The elephant never forgets.' , '1999-11-5' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 55 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );}
+ if (sqlca.sqlcode < 0)
+ error();
+ }
#line 55 "dyntest.pgc"
- { ECPGprepare(__LINE__, "MYQUERY" , QUERY);
+ {
+ ECPGprepare(__LINE__, "MYQUERY", QUERY);
#line 57 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );}
+ if (sqlca.sqlcode < 0)
+ error();
+ }
#line 57 "dyntest.pgc"
- /* declare MYCURS cursor for ? */
+ /* declare MYCURS cursor for ? */
#line 58 "dyntest.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "declare MYCURS cursor for ?",
- ECPGt_char_variable,(ECPGprepared_statement("MYQUERY")),(long)1,(long)1,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "declare MYCURS cursor for ?",
+ ECPGt_char_variable, (ECPGprepared_statement("MYQUERY")), (long) 1, (long) 1, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 60 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );}
+ if (sqlca.sqlcode < 0)
+ error();
+ }
#line 60 "dyntest.pgc"
- while (1)
- {
- { ECPGdo(__LINE__, 0, 1, NULL, "fetch in MYCURS", ECPGt_EOIT,
- ECPGt_descriptor, "MYDESC", 0L, 0L, 0L,
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ while (1)
+ {
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "fetch in MYCURS", ECPGt_EOIT,
+ ECPGt_descriptor, "MYDESC", 0L, 0L, 0L,
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 64 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );}
+ if (sqlca.sqlcode < 0)
+ error();
+ }
#line 64 "dyntest.pgc"
- if (sqlca.sqlcode)
- break;
+ if (sqlca.sqlcode)
+ break;
- { ECPGget_desc_header(__LINE__, "MYDESC", &(COUNT));
+ {
+ ECPGget_desc_header(__LINE__, "MYDESC", &(COUNT));
#line 69 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );}
+ if (sqlca.sqlcode < 0)
+ error();
+ }
#line 69 "dyntest.pgc"
- if (!done)
- {
- printf ("Found %d columns\n", COUNT);
- done = 1;
- }
+ if (!done)
+ {
+ printf("Found %d columns\n", COUNT);
+ done = 1;
+ }
- for (INDEX = 1; INDEX <= COUNT; ++INDEX)
- {
- { ECPGget_desc(__LINE__, "MYDESC", INDEX,ECPGd_indicator,
- ECPGt_int,&(INDICATOR),(long)1,(long)1,sizeof(int), ECPGd_name,
- ECPGt_char,(NAME),(long)120,(long)1,(120)*sizeof(char), ECPGd_scale,
- ECPGt_int,&(SCALE),(long)1,(long)1,sizeof(int), ECPGd_precision,
- ECPGt_int,&(PRECISION),(long)1,(long)1,sizeof(int), ECPGd_ret_octet,
- ECPGt_int,&(RETURNED_OCTET_LENGTH),(long)1,(long)1,sizeof(int), ECPGd_octet,
- ECPGt_int,&(OCTET_LENGTH),(long)1,(long)1,sizeof(int), ECPGd_length,
- ECPGt_int,&(LENGTH),(long)1,(long)1,sizeof(int), ECPGd_type,
- ECPGt_int,&(TYPE),(long)1,(long)1,sizeof(int), ECPGd_EODT);
+ for (INDEX = 1; INDEX <= COUNT; ++INDEX)
+ {
+ {
+ ECPGget_desc(__LINE__, "MYDESC", INDEX, ECPGd_indicator,
+ ECPGt_int, &(INDICATOR), (long) 1, (long) 1, sizeof(int), ECPGd_name,
+ ECPGt_char, (NAME), (long) 120, (long) 1, (120) * sizeof(char), ECPGd_scale,
+ ECPGt_int, &(SCALE), (long) 1, (long) 1, sizeof(int), ECPGd_precision,
+ ECPGt_int, &(PRECISION), (long) 1, (long) 1, sizeof(int), ECPGd_ret_octet,
+ ECPGt_int, &(RETURNED_OCTET_LENGTH), (long) 1, (long) 1, sizeof(int), ECPGd_octet,
+ ECPGt_int, &(OCTET_LENGTH), (long) 1, (long) 1, sizeof(int), ECPGd_length,
+ ECPGt_int, &(LENGTH), (long) 1, (long) 1, sizeof(int), ECPGd_type,
+ ECPGt_int, &(TYPE), (long) 1, (long) 1, sizeof(int), ECPGd_EODT);
#line 86 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );}
+ if (sqlca.sqlcode < 0)
+ error();
+ }
#line 86 "dyntest.pgc"
- printf ("%2d\t%s (type: %d length: %d precision: %d scale: %d = " , INDEX, NAME, TYPE, LENGTH, PRECISION, SCALE);
- switch (TYPE)
- {
- case SQL3_BOOLEAN:
- printf ("bool");
- break;
- case SQL3_NUMERIC:
- printf ("numeric(%d,%d)", PRECISION, SCALE);
- break;
- case SQL3_DECIMAL:
- printf ("decimal(%d,%d)", PRECISION, SCALE);
- break;
- case SQL3_INTEGER:
- printf ("integer");
- break;
- case SQL3_SMALLINT:
- printf ("smallint");
- break;
- case SQL3_FLOAT:
- printf ("float(%d,%d)", PRECISION, SCALE);
- break;
- case SQL3_REAL:
- printf ("real");
- break;
- case SQL3_DOUBLE_PRECISION:
- printf ("double precision");
- break;
- case SQL3_DATE_TIME_TIMESTAMP:
- { ECPGget_desc(__LINE__, "MYDESC", INDEX,ECPGd_di_code,
- ECPGt_int,&(DATETIME_INTERVAL_CODE),(long)1,(long)1,sizeof(int), ECPGd_EODT);
+ printf("%2d\t%s (type: %d length: %d precision: %d scale: %d = ", INDEX, NAME, TYPE, LENGTH, PRECISION, SCALE);
+ switch (TYPE)
+ {
+ case SQL3_BOOLEAN:
+ printf("bool");
+ break;
+ case SQL3_NUMERIC:
+ printf("numeric(%d,%d)", PRECISION, SCALE);
+ break;
+ case SQL3_DECIMAL:
+ printf("decimal(%d,%d)", PRECISION, SCALE);
+ break;
+ case SQL3_INTEGER:
+ printf("integer");
+ break;
+ case SQL3_SMALLINT:
+ printf("smallint");
+ break;
+ case SQL3_FLOAT:
+ printf("float(%d,%d)", PRECISION, SCALE);
+ break;
+ case SQL3_REAL:
+ printf("real");
+ break;
+ case SQL3_DOUBLE_PRECISION:
+ printf("double precision");
+ break;
+ case SQL3_DATE_TIME_TIMESTAMP:
+ {
+ ECPGget_desc(__LINE__, "MYDESC", INDEX, ECPGd_di_code,
+ ECPGt_int, &(DATETIME_INTERVAL_CODE), (long) 1, (long) 1, sizeof(int), ECPGd_EODT);
#line 116 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );}
+ if (sqlca.sqlcode < 0)
+ error();
+ }
#line 116 "dyntest.pgc"
- switch (DATETIME_INTERVAL_CODE)
- {
- case SQL3_DDT_DATE:
- printf ("date");
- break;
- case SQL3_DDT_TIME:
- printf ("time");
- break;
- case SQL3_DDT_TIMESTAMP:
- printf ("timestamp");
- break;
- case SQL3_DDT_TIME_WITH_TIME_ZONE:
- printf ("time with time zone");
- break;
- case SQL3_DDT_TIMESTAMP_WITH_TIME_ZONE:
- printf ("timestamp with time zone");
- break;
- }
- break;
- case SQL3_INTERVAL:
- printf ("interval");
- break;
- case SQL3_CHARACTER:
- if (LENGTH > 0)
- printf ("char(%d)", LENGTH);
- else
- printf ("text");
- break;
- case SQL3_CHARACTER_VARYING:
- if (LENGTH > 0)
- printf ("varchar(%d)", LENGTH);
- else
- printf ("varchar()");
- break;
- default:
- if (TYPE < 0)
- printf ("<OID %d>", -TYPE);
- else
- printf ("<SQL3 %d>", TYPE);
- break;
- }
- printf (")\n\toctet_length: %d returned_octet_length: %d)\n\t= ",
- OCTET_LENGTH, RETURNED_OCTET_LENGTH);
- if (INDICATOR == -1)
- printf ("NULL\n");
- else
- switch (TYPE)
- {
- case SQL3_BOOLEAN:
- { ECPGget_desc(__LINE__, "MYDESC", INDEX,ECPGd_data,
- ECPGt_bool,&(BOOLVAR),(long)1,(long)1,sizeof(bool), ECPGd_EODT);
+ switch (DATETIME_INTERVAL_CODE)
+ {
+ case SQL3_DDT_DATE:
+ printf("date");
+ break;
+ case SQL3_DDT_TIME:
+ printf("time");
+ break;
+ case SQL3_DDT_TIMESTAMP:
+ printf("timestamp");
+ break;
+ case SQL3_DDT_TIME_WITH_TIME_ZONE:
+ printf("time with time zone");
+ break;
+ case SQL3_DDT_TIMESTAMP_WITH_TIME_ZONE:
+ printf("timestamp with time zone");
+ break;
+ }
+ break;
+ case SQL3_INTERVAL:
+ printf("interval");
+ break;
+ case SQL3_CHARACTER:
+ if (LENGTH > 0)
+ printf("char(%d)", LENGTH);
+ else
+ printf("text");
+ break;
+ case SQL3_CHARACTER_VARYING:
+ if (LENGTH > 0)
+ printf("varchar(%d)", LENGTH);
+ else
+ printf("varchar()");
+ break;
+ default:
+ if (TYPE < 0)
+ printf("<OID %d>", -TYPE);
+ else
+ printf("<SQL3 %d>", TYPE);
+ break;
+ }
+ printf(")\n\toctet_length: %d returned_octet_length: %d)\n\t= ",
+ OCTET_LENGTH, RETURNED_OCTET_LENGTH);
+ if (INDICATOR == -1)
+ printf("NULL\n");
+ else
+ switch (TYPE)
+ {
+ case SQL3_BOOLEAN:
+ {
+ ECPGget_desc(__LINE__, "MYDESC", INDEX, ECPGd_data,
+ ECPGt_bool, &(BOOLVAR), (long) 1, (long) 1, sizeof(bool), ECPGd_EODT);
#line 166 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );}
+ if (sqlca.sqlcode < 0)
+ error();
+ }
#line 166 "dyntest.pgc"
- printf ("%s\n", BOOLVAR ? "true" : "false");
- break;
- case SQL3_INTEGER:
- case SQL3_SMALLINT:
- { ECPGget_desc(__LINE__, "MYDESC", INDEX,ECPGd_data,
- ECPGt_int,&(INTVAR),(long)1,(long)1,sizeof(int), ECPGd_EODT);
+ printf("%s\n", BOOLVAR ? "true" : "false");
+ break;
+ case SQL3_INTEGER:
+ case SQL3_SMALLINT:
+ {
+ ECPGget_desc(__LINE__, "MYDESC", INDEX, ECPGd_data,
+ ECPGt_int, &(INTVAR), (long) 1, (long) 1, sizeof(int), ECPGd_EODT);
#line 171 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );}
+ if (sqlca.sqlcode < 0)
+ error();
+ }
#line 171 "dyntest.pgc"
- printf ("%d\n", INTVAR);
- break;
- case SQL3_DOUBLE_PRECISION:
- { ECPGget_desc(__LINE__, "MYDESC", INDEX,ECPGd_data,
- ECPGt_double,&(DOUBLEVAR),(long)1,(long)1,sizeof(double), ECPGd_EODT);
+ printf("%d\n", INTVAR);
+ break;
+ case SQL3_DOUBLE_PRECISION:
+ {
+ ECPGget_desc(__LINE__, "MYDESC", INDEX, ECPGd_data,
+ ECPGt_double, &(DOUBLEVAR), (long) 1, (long) 1, sizeof(double), ECPGd_EODT);
#line 175 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );}
+ if (sqlca.sqlcode < 0)
+ error();
+ }
#line 175 "dyntest.pgc"
- printf ("%.*f\n", PRECISION, DOUBLEVAR);
- break;
- case SQL3_DATE_TIME_TIMESTAMP:
- { ECPGget_desc(__LINE__, "MYDESC", INDEX,ECPGd_data,
- ECPGt_char,(STRINGVAR),(long)1024,(long)1,(1024)*sizeof(char), ECPGd_di_code,
- ECPGt_int,&(DATETIME_INTERVAL_CODE),(long)1,(long)1,sizeof(int), ECPGd_EODT);
+ printf("%.*f\n", PRECISION, DOUBLEVAR);
+ break;
+ case SQL3_DATE_TIME_TIMESTAMP:
+ {
+ ECPGget_desc(__LINE__, "MYDESC", INDEX, ECPGd_data,
+ ECPGt_char, (STRINGVAR), (long) 1024, (long) 1, (1024) * sizeof(char), ECPGd_di_code,
+ ECPGt_int, &(DATETIME_INTERVAL_CODE), (long) 1, (long) 1, sizeof(int), ECPGd_EODT);
#line 181 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );}
+ if (sqlca.sqlcode < 0)
+ error();
+ }
#line 181 "dyntest.pgc"
- printf ("%d \"%s\"\n", DATETIME_INTERVAL_CODE, STRINGVAR);
- break;
- case SQL3_CHARACTER:
- case SQL3_CHARACTER_VARYING:
- { ECPGget_desc(__LINE__, "MYDESC", INDEX,ECPGd_data,
- ECPGt_char,(STRINGVAR),(long)1024,(long)1,(1024)*sizeof(char), ECPGd_EODT);
+ printf("%d \"%s\"\n", DATETIME_INTERVAL_CODE, STRINGVAR);
+ break;
+ case SQL3_CHARACTER:
+ case SQL3_CHARACTER_VARYING:
+ {
+ ECPGget_desc(__LINE__, "MYDESC", INDEX, ECPGd_data,
+ ECPGt_char, (STRINGVAR), (long) 1024, (long) 1, (1024) * sizeof(char), ECPGd_EODT);
#line 186 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );}
+ if (sqlca.sqlcode < 0)
+ error();
+ }
#line 186 "dyntest.pgc"
- printf ("\"%s\"\n", STRINGVAR);
- break;
- default:
- { ECPGget_desc(__LINE__, "MYDESC", INDEX,ECPGd_data,
- ECPGt_char,(STRINGVAR),(long)1024,(long)1,(1024)*sizeof(char), ECPGd_EODT);
+ printf("\"%s\"\n", STRINGVAR);
+ break;
+ default:
+ {
+ ECPGget_desc(__LINE__, "MYDESC", INDEX, ECPGd_data,
+ ECPGt_char, (STRINGVAR), (long) 1024, (long) 1, (1024) * sizeof(char), ECPGd_EODT);
#line 190 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );}
+ if (sqlca.sqlcode < 0)
+ error();
+ }
#line 190 "dyntest.pgc"
- printf ("<\"%s\">\n", STRINGVAR);
- break;
- }
+ printf("<\"%s\">\n", STRINGVAR);
+ break;
+ }
+ }
}
- }
- { ECPGdo(__LINE__, 0, 1, NULL, "close MYCURS", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "close MYCURS", ECPGt_EOIT, ECPGt_EORT);
#line 197 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );}
+ if (sqlca.sqlcode < 0)
+ error();
+ }
#line 197 "dyntest.pgc"
- ECPGdeallocate_desc(__LINE__, "MYDESC");
+ ECPGdeallocate_desc(__LINE__, "MYDESC");
#line 199 "dyntest.pgc"
-if (sqlca.sqlcode < 0) error ( );
+ if (sqlca.sqlcode < 0)
+ error();
#line 199 "dyntest.pgc"
- return 0;
- }
+ return 0;
+}
diff --git a/src/interfaces/ecpg/test/expected/sql-execute.c b/src/interfaces/ecpg/test/expected/sql-execute.c
index 662f554f4e..d07d82cc97 100644
--- a/src/interfaces/ecpg/test/expected/sql-execute.c
+++ b/src/interfaces/ecpg/test/expected/sql-execute.c
@@ -31,155 +31,195 @@ int
main(void)
{
/* exec sql begin declare section */
-
-
-
-
-
+
+
+
+
+
#line 14 "execute.pgc"
- int amount [ 8 ] ;
-
+ int amount[8];
+
#line 15 "execute.pgc"
- int increment = 100 ;
-
+ int increment = 100;
+
#line 16 "execute.pgc"
- char name [ 8 ] [ 8 ] ;
-
+ char name[8][8];
+
#line 17 "execute.pgc"
- char letter [ 8 ] [ 1 ] ;
-
+ char letter[8][1];
+
#line 18 "execute.pgc"
- char command [ 128 ] ;
+ char command[128];
+
/* exec sql end declare section */
#line 19 "execute.pgc"
- int i,j;
+ int i,
+ j;
ECPGdebug(1, stderr);
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , "main", 0);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, "main", 0);
#line 24 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 24 "execute.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create table test ( name char ( 8 ) , amount int , letter char ( 1 ) ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table test ( name char ( 8 ) , amount int , letter char ( 1 ) ) ", ECPGt_EOIT, ECPGt_EORT);
#line 25 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 25 "execute.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 26 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 26 "execute.pgc"
sprintf(command, "insert into test (name, amount, letter) values ('db: ''r1''', 1, 'f')");
- { ECPGdo(__LINE__, 0, 1, NULL, "?",
- ECPGt_char_variable,(command),(long)1,(long)1,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "?",
+ ECPGt_char_variable, (command), (long) 1, (long) 1, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 29 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 29 "execute.pgc"
sprintf(command, "insert into test (name, amount, letter) values ('db: ''r1''', 2, 't')");
- { ECPGdo(__LINE__, 0, 1, NULL, "?",
- ECPGt_char_variable,(command),(long)1,(long)1,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "?",
+ ECPGt_char_variable, (command), (long) 1, (long) 1, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 32 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 32 "execute.pgc"
sprintf(command, "insert into test (name, amount, letter) select name, amount+10, letter from test");
- { ECPGdo(__LINE__, 0, 1, NULL, "?",
- ECPGt_char_variable,(command),(long)1,(long)1,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "?",
+ ECPGt_char_variable, (command), (long) 1, (long) 1, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 35 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 35 "execute.pgc"
printf("Inserted %ld tuples via execute immediate\n", sqlca.sqlerrd[2]);
sprintf(command, "insert into test (name, amount, letter) select name, amount+?, letter from test");
- { ECPGprepare(__LINE__, "I" , command);
+ {
+ ECPGprepare(__LINE__, "I", command);
#line 40 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 40 "execute.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "?",
- ECPGt_char_variable,(ECPGprepared_statement("I")),(long)1,(long)1,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_int,&(increment),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "?",
+ ECPGt_char_variable, (ECPGprepared_statement("I")), (long) 1, (long) 1, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_int, &(increment), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 41 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 41 "execute.pgc"
printf("Inserted %ld tuples via prepared execute\n", sqlca.sqlerrd[2]);
- { ECPGtrans(__LINE__, NULL, "commit");
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 45 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 45 "execute.pgc"
- sprintf (command, "select * from test");
+ sprintf(command, "select * from test");
- { ECPGprepare(__LINE__, "F" , command);
+ {
+ ECPGprepare(__LINE__, "F", command);
#line 49 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 49 "execute.pgc"
- /* declare CUR cursor for ? */
+ /* declare CUR cursor for ? */
#line 50 "execute.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "declare CUR cursor for ?",
- ECPGt_char_variable,(ECPGprepared_statement("F")),(long)1,(long)1,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "declare CUR cursor for ?",
+ ECPGt_char_variable, (ECPGprepared_statement("F")), (long) 1, (long) 1, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 52 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 52 "execute.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "fetch 8 in CUR", ECPGt_EOIT,
- ECPGt_char,(name),(long)8,(long)8,(8)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_int,(amount),(long)1,(long)8,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_char,(letter),(long)1,(long)8,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "fetch 8 in CUR", ECPGt_EOIT,
+ ECPGt_char, (name), (long) 8, (long) 8, (8) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_int, (amount), (long) 1, (long) 8, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_char, (letter), (long) 1, (long) 8, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 53 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 53 "execute.pgc"
- for (i=0, j=sqlca.sqlerrd[2]; i<j; i++)
+ for (i = 0, j = sqlca.sqlerrd[2]; i < j; i++)
{
/* exec sql begin declare section */
-
-
-
+
+
+
#line 58 "execute.pgc"
- char n [ 8 ] , l = letter [ i ] [ 0 ] ;
-
+ char n[8],
+ l = letter[i][0];
+
#line 59 "execute.pgc"
- int a = amount [ i ] ;
+ int a = amount[i];
+
/* exec sql end declare section */
#line 60 "execute.pgc"
@@ -188,59 +228,73 @@ if (sqlca.sqlcode < 0) sqlprint();}
printf("name[%d]=%8.8s\tamount[%d]=%d\tletter[%d]=%c\n", i, n, i, a, i, l);
}
- { ECPGdo(__LINE__, 0, 1, NULL, "close CUR", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "close CUR", ECPGt_EOIT, ECPGt_EORT);
#line 66 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 66 "execute.pgc"
- sprintf (command, "select * from test where amount = ?");
+ sprintf(command, "select * from test where amount = ?");
- { ECPGprepare(__LINE__, "F" , command);
+ {
+ ECPGprepare(__LINE__, "F", command);
#line 70 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 70 "execute.pgc"
/* declare CUR2 cursor for ? */
#line 71 "execute.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "declare CUR2 cursor for ?",
- ECPGt_char_variable,(ECPGprepared_statement("F")),(long)1,(long)1,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_const,"1",(long)1,(long)1,strlen("1"),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "declare CUR2 cursor for ?",
+ ECPGt_char_variable, (ECPGprepared_statement("F")), (long) 1, (long) 1, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_const, "1", (long) 1, (long) 1, strlen("1"),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 73 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 73 "execute.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "fetch in CUR2", ECPGt_EOIT,
- ECPGt_char,(name),(long)8,(long)8,(8)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_int,(amount),(long)1,(long)8,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_char,(letter),(long)1,(long)8,(1)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "fetch in CUR2", ECPGt_EOIT,
+ ECPGt_char, (name), (long) 8, (long) 8, (8) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_int, (amount), (long) 1, (long) 8, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_char, (letter), (long) 1, (long) 8, (1) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 74 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 74 "execute.pgc"
- for (i=0, j=sqlca.sqlerrd[2]; i<j; i++)
+ for (i = 0, j = sqlca.sqlerrd[2]; i < j; i++)
{
/* exec sql begin declare section */
-
-
-
+
+
+
#line 79 "execute.pgc"
- char n [ 8 ] , l = letter [ i ] [ 0 ] ;
-
+ char n[8],
+ l = letter[i][0];
+
#line 80 "execute.pgc"
- int a = amount [ i ] ;
+ int a = amount[i];
+
/* exec sql end declare section */
#line 81 "execute.pgc"
@@ -249,28 +303,40 @@ if (sqlca.sqlcode < 0) sqlprint();}
printf("name[%d]=%8.8s\tamount[%d]=%d\tletter[%d]=%c\n", i, n, i, a, i, l);
}
- { ECPGdo(__LINE__, 0, 1, NULL, "close CUR2", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "close CUR2", ECPGt_EOIT, ECPGt_EORT);
#line 87 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 87 "execute.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "drop table test ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "drop table test ", ECPGt_EOIT, ECPGt_EORT);
#line 88 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 88 "execute.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 89 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 89 "execute.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
#line 90 "execute.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 90 "execute.pgc"
diff --git a/src/interfaces/ecpg/test/expected/sql-fetch.c b/src/interfaces/ecpg/test/expected/sql-fetch.c
index 2d6ff97426..617eb80e40 100644
--- a/src/interfaces/ecpg/test/expected/sql-fetch.c
+++ b/src/interfaces/ecpg/test/expected/sql-fetch.c
@@ -22,175 +22,231 @@
#line 5 "fetch.pgc"
-int main(int argc, char* argv[]) {
- /* exec sql begin declare section */
-
-
-
+int
+main(int argc, char *argv[])
+{
+ /* exec sql begin declare section */
+
+
+
#line 9 "fetch.pgc"
- char str [ 25 ] ;
-
+ char str[25];
+
#line 10 "fetch.pgc"
- int i , how_many = 1 ;
+ int i,
+ how_many = 1;
+
/* exec sql end declare section */
#line 11 "fetch.pgc"
- ECPGdebug(1, stderr);
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0); }
+ ECPGdebug(1, stderr);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
+ }
#line 14 "fetch.pgc"
- /* exec sql whenever sql_warning sqlprint ; */
+ /* exec sql whenever sql_warning sqlprint ; */
#line 16 "fetch.pgc"
- /* exec sql whenever sqlerror sqlprint ; */
+ /* exec sql whenever sqlerror sqlprint ; */
#line 17 "fetch.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create table My_Table ( Item1 int , Item2 text ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table My_Table ( Item1 int , Item2 text ) ", ECPGt_EOIT, ECPGt_EORT);
#line 19 "fetch.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 19 "fetch.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 19 "fetch.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into My_Table values ( 1 , 'text1' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into My_Table values ( 1 , 'text1' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 21 "fetch.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 21 "fetch.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 21 "fetch.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into My_Table values ( 2 , 'text2' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into My_Table values ( 2 , 'text2' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 22 "fetch.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 22 "fetch.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 22 "fetch.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into My_Table values ( 3 , 'text3' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into My_Table values ( 3 , 'text3' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 23 "fetch.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 23 "fetch.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 23 "fetch.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into My_Table values ( 4 , 'text4' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into My_Table values ( 4 , 'text4' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 24 "fetch.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 24 "fetch.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 24 "fetch.pgc"
- /* declare C cursor for select * from My_Table */
+ /* declare C cursor for select * from My_Table */
#line 26 "fetch.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "declare C cursor for select * from My_Table ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "declare C cursor for select * from My_Table ", ECPGt_EOIT, ECPGt_EORT);
#line 28 "fetch.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 28 "fetch.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 28 "fetch.pgc"
- /* exec sql whenever not found break ; */
+ /* exec sql whenever not found break ; */
#line 30 "fetch.pgc"
- while (1) {
- { ECPGdo(__LINE__, 0, 1, NULL, "fetch 1 in C", ECPGt_EOIT,
- ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_char,(str),(long)25,(long)1,(25)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ while (1)
+ {
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "fetch 1 in C", ECPGt_EOIT,
+ ECPGt_int, &(i), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_char, (str), (long) 25, (long) 1, (25) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 32 "fetch.pgc"
-if (sqlca.sqlcode == ECPG_NOT_FOUND) break;
+ if (sqlca.sqlcode == ECPG_NOT_FOUND)
+ break;
#line 32 "fetch.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 32 "fetch.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 32 "fetch.pgc"
- printf("%d: %s\n", i, str);
- }
+ printf("%d: %s\n", i, str);
+ }
- /* exec sql whenever not found continue ; */
+ /* exec sql whenever not found continue ; */
#line 36 "fetch.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "move backward 2 in C", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "move backward 2 in C", ECPGt_EOIT, ECPGt_EORT);
#line 37 "fetch.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 37 "fetch.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 37 "fetch.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "fetch ? in C",
- ECPGt_int,&(how_many),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT,
- ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_char,(str),(long)25,(long)1,(25)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "fetch ? in C",
+ ECPGt_int, &(how_many), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT,
+ ECPGt_int, &(i), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_char, (str), (long) 25, (long) 1, (25) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 39 "fetch.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 39 "fetch.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 39 "fetch.pgc"
- printf("%d: %s\n", i, str);
+ printf("%d: %s\n", i, str);
- { ECPGdo(__LINE__, 0, 1, NULL, "close C", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "close C", ECPGt_EOIT, ECPGt_EORT);
#line 42 "fetch.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 42 "fetch.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 42 "fetch.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "drop table My_Table ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "drop table My_Table ", ECPGt_EOIT, ECPGt_EORT);
#line 44 "fetch.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 44 "fetch.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 44 "fetch.pgc"
- { ECPGdisconnect(__LINE__, "ALL");
+ {
+ ECPGdisconnect(__LINE__, "ALL");
#line 46 "fetch.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 46 "fetch.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 46 "fetch.pgc"
- return 0;
+ return 0;
}
diff --git a/src/interfaces/ecpg/test/expected/sql-func.c b/src/interfaces/ecpg/test/expected/sql-func.c
index 6f8bf3a17f..59e830bc5f 100644
--- a/src/interfaces/ecpg/test/expected/sql-func.c
+++ b/src/interfaces/ecpg/test/expected/sql-func.c
@@ -22,113 +22,155 @@
#line 5 "func.pgc"
-int main(int argc, char* argv[]) {
-
- ECPGdebug(1, stderr);
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0); }
+int
+main(int argc, char *argv[])
+{
+
+ ECPGdebug(1, stderr);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
+ }
#line 10 "func.pgc"
- { ECPGsetcommit(__LINE__, "on", NULL);}
+ {
+ ECPGsetcommit(__LINE__, "on", NULL);
+ }
#line 12 "func.pgc"
- /* exec sql whenever sql_warning sqlprint ; */
+ /* exec sql whenever sql_warning sqlprint ; */
#line 13 "func.pgc"
- /* exec sql whenever sqlerror sqlprint ; */
+ /* exec sql whenever sqlerror sqlprint ; */
#line 14 "func.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create table My_Table ( Item1 int , Item2 text ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table My_Table ( Item1 int , Item2 text ) ", ECPGt_EOIT, ECPGt_EORT);
#line 16 "func.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 16 "func.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 16 "func.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create function My_Table_Check () returns trigger as $test$\
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create function My_Table_Check () returns trigger as $test$\
BEGIN\
RAISE WARNING 'Notice: TG_NAME=%, TG WHEN=%', TG_NAME, TG_WHEN;\
RETURN NEW;\
END; $test$ language plpgsql", ECPGt_EOIT, ECPGt_EORT);
#line 24 "func.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 24 "func.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 24 "func.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create trigger My_Table_Check_Trigger before insert on My_Table for each row execute procedure My_Table_Check ( )", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create trigger My_Table_Check_Trigger before insert on My_Table for each row execute procedure My_Table_Check ( )", ECPGt_EOIT, ECPGt_EORT);
#line 30 "func.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 30 "func.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 30 "func.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into My_Table values( 1234 , 'Some random text' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into My_Table values( 1234 , 'Some random text' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 32 "func.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 32 "func.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 32 "func.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into My_Table values( 5678 , 'The Quick Brown' ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into My_Table values( 5678 , 'The Quick Brown' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 33 "func.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 33 "func.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 33 "func.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "drop trigger My_Table_Check_Trigger on My_Table ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "drop trigger My_Table_Check_Trigger on My_Table ", ECPGt_EOIT, ECPGt_EORT);
#line 35 "func.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 35 "func.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 35 "func.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "drop function My_Table_Check () ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "drop function My_Table_Check () ", ECPGt_EOIT, ECPGt_EORT);
#line 36 "func.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 36 "func.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 36 "func.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "drop table My_Table ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "drop table My_Table ", ECPGt_EOIT, ECPGt_EORT);
#line 37 "func.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 37 "func.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 37 "func.pgc"
- { ECPGdisconnect(__LINE__, "ALL");
+ {
+ ECPGdisconnect(__LINE__, "ALL");
#line 39 "func.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 39 "func.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 39 "func.pgc"
- return 0;
+ return 0;
}
diff --git a/src/interfaces/ecpg/test/expected/sql-indicators.c b/src/interfaces/ecpg/test/expected/sql-indicators.c
index cc7054d473..1a910ae03d 100644
--- a/src/interfaces/ecpg/test/expected/sql-indicators.c
+++ b/src/interfaces/ecpg/test/expected/sql-indicators.c
@@ -75,7 +75,6 @@ struct sqlca_t *ECPGget_sqlca(void);
#ifdef __cplusplus
}
#endif
-
#endif
#line 3 "indicators.pgc"
@@ -92,98 +91,133 @@ struct sqlca_t *ECPGget_sqlca(void);
-int main(int argc, char **argv)
+int
+main(int argc, char **argv)
{
/* exec sql begin declare section */
-
-
-
+
+
+
#line 10 "indicators.pgc"
- int intvar = 5 ;
-
+ int intvar = 5;
+
#line 11 "indicators.pgc"
- int nullind = - 1 ;
+ int nullind = -1;
+
/* exec sql end declare section */
#line 12 "indicators.pgc"
- ECPGdebug(1,stderr);
+ ECPGdebug(1, stderr);
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0); }
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
+ }
#line 16 "indicators.pgc"
- { ECPGsetcommit(__LINE__, "off", NULL);}
+ {
+ ECPGsetcommit(__LINE__, "off", NULL);
+ }
#line 17 "indicators.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create table test ( \"id\" int primary key , \"str\" text not null , val int null ) ", ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table test ( \"id\" int primary key , \"str\" text not null , val int null ) ", ECPGt_EOIT, ECPGt_EORT);
+ }
#line 22 "indicators.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");}
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
+ }
#line 23 "indicators.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( id , str , val ) values( 1 , 'Hello' , 0 ) ", ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( id , str , val ) values( 1 , 'Hello' , 0 ) ", ECPGt_EOIT, ECPGt_EORT);
+ }
#line 25 "indicators.pgc"
/* use indicator in insert */
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( id , str , val ) values( 2 , 'Hi there' , ? ) ",
- ECPGt_int,&(intvar),(long)1,(long)1,sizeof(int),
- ECPGt_int,&(nullind),(long)1,(long)1,sizeof(int), ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( id , str , val ) values( 2 , 'Hi there' , ? ) ",
+ ECPGt_int, &(intvar), (long) 1, (long) 1, sizeof(int),
+ ECPGt_int, &(nullind), (long) 1, (long) 1, sizeof(int), ECPGt_EOIT, ECPGt_EORT);
+ }
#line 28 "indicators.pgc"
nullind = 0;
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( id , str , val ) values( 3 , 'Good evening' , ? ) ",
- ECPGt_int,&(intvar),(long)1,(long)1,sizeof(int),
- ECPGt_int,&(nullind),(long)1,(long)1,sizeof(int), ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( id , str , val ) values( 3 , 'Good evening' , ? ) ",
+ ECPGt_int, &(intvar), (long) 1, (long) 1, sizeof(int),
+ ECPGt_int, &(nullind), (long) 1, (long) 1, sizeof(int), ECPGt_EOIT, ECPGt_EORT);
+ }
#line 30 "indicators.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");}
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
+ }
#line 31 "indicators.pgc"
/* use indicators to get information about selects */
- { ECPGdo(__LINE__, 0, 1, NULL, "select val from test where id = 1 ", ECPGt_EOIT,
- ECPGt_int,&(intvar),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select val from test where id = 1 ", ECPGt_EOIT,
+ ECPGt_int, &(intvar), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
+ }
#line 34 "indicators.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select val from test where id = 2 ", ECPGt_EOIT,
- ECPGt_int,&(intvar),(long)1,(long)1,sizeof(int),
- ECPGt_int,&(nullind),(long)1,(long)1,sizeof(int), ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select val from test where id = 2 ", ECPGt_EOIT,
+ ECPGt_int, &(intvar), (long) 1, (long) 1, sizeof(int),
+ ECPGt_int, &(nullind), (long) 1, (long) 1, sizeof(int), ECPGt_EORT);
+ }
#line 35 "indicators.pgc"
printf("intvar: %d, nullind: %d\n", intvar, nullind);
- { ECPGdo(__LINE__, 0, 1, NULL, "select val from test where id = 3 ", ECPGt_EOIT,
- ECPGt_int,&(intvar),(long)1,(long)1,sizeof(int),
- ECPGt_int,&(nullind),(long)1,(long)1,sizeof(int), ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select val from test where id = 3 ", ECPGt_EOIT,
+ ECPGt_int, &(intvar), (long) 1, (long) 1, sizeof(int),
+ ECPGt_int, &(nullind), (long) 1, (long) 1, sizeof(int), ECPGt_EORT);
+ }
#line 37 "indicators.pgc"
printf("intvar: %d, nullind: %d\n", intvar, nullind);
/* use indicators for update */
- intvar = 5; nullind = -1;
- { ECPGdo(__LINE__, 0, 1, NULL, "update test set val = ? where id = 1 ",
- ECPGt_int,&(intvar),(long)1,(long)1,sizeof(int),
- ECPGt_int,&(nullind),(long)1,(long)1,sizeof(int), ECPGt_EOIT, ECPGt_EORT);}
+ intvar = 5;
+ nullind = -1;
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "update test set val = ? where id = 1 ",
+ ECPGt_int, &(intvar), (long) 1, (long) 1, sizeof(int),
+ ECPGt_int, &(nullind), (long) 1, (long) 1, sizeof(int), ECPGt_EOIT, ECPGt_EORT);
+ }
#line 42 "indicators.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select val from test where id = 1 ", ECPGt_EOIT,
- ECPGt_int,&(intvar),(long)1,(long)1,sizeof(int),
- ECPGt_int,&(nullind),(long)1,(long)1,sizeof(int), ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select val from test where id = 1 ", ECPGt_EOIT,
+ ECPGt_int, &(intvar), (long) 1, (long) 1, sizeof(int),
+ ECPGt_int, &(nullind), (long) 1, (long) 1, sizeof(int), ECPGt_EORT);
+ }
#line 43 "indicators.pgc"
printf("intvar: %d, nullind: %d\n", intvar, nullind);
- { ECPGdo(__LINE__, 0, 1, NULL, "drop table test ", ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "drop table test ", ECPGt_EOIT, ECPGt_EORT);
+ }
#line 46 "indicators.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");}
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
+ }
#line 47 "indicators.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 49 "indicators.pgc"
return 0;
diff --git a/src/interfaces/ecpg/test/expected/sql-quote.c b/src/interfaces/ecpg/test/expected/sql-quote.c
index 5bb9ab005a..7ab022d9b4 100644
--- a/src/interfaces/ecpg/test/expected/sql-quote.c
+++ b/src/interfaces/ecpg/test/expected/sql-quote.c
@@ -22,135 +22,182 @@
#line 5 "quote.pgc"
-int main(int argc, char* argv[]) {
- /* exec sql begin declare section */
-
-
+int
+main(int argc, char *argv[])
+{
+ /* exec sql begin declare section */
+
+
#line 9 "quote.pgc"
- char var [ 25 ] ;
+ char var[25];
+
/* exec sql end declare section */
#line 10 "quote.pgc"
- ECPGdebug(1, stderr);
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0); }
+ ECPGdebug(1, stderr);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
+ }
#line 13 "quote.pgc"
- { ECPGsetcommit(__LINE__, "on", NULL);}
+ {
+ ECPGsetcommit(__LINE__, "on", NULL);
+ }
#line 15 "quote.pgc"
- /* exec sql whenever sql_warning sqlprint ; */
+ /* exec sql whenever sql_warning sqlprint ; */
#line 16 "quote.pgc"
- /* exec sql whenever sqlerror sqlprint ; */
+ /* exec sql whenever sqlerror sqlprint ; */
#line 17 "quote.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create table \"My_Table\" ( Item1 int , Item2 text ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table \"My_Table\" ( Item1 int , Item2 text ) ", ECPGt_EOIT, ECPGt_EORT);
#line 19 "quote.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 19 "quote.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 19 "quote.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "show standard_conforming_strings", ECPGt_EOIT,
- ECPGt_char,(var),(long)25,(long)1,(25)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "show standard_conforming_strings", ECPGt_EOIT,
+ ECPGt_char, (var), (long) 25, (long) 1, (25) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 21 "quote.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 21 "quote.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 21 "quote.pgc"
- printf("Standard conforming strings: %s\n", var);
+ printf("Standard conforming strings: %s\n", var);
- /* this is a\\b actually */
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into \"My_Table\" values ( 1 , 'a\\\\b' ) ", ECPGt_EOIT, ECPGt_EORT);
+ /* this is a\\b actually */
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into \"My_Table\" values ( 1 , 'a\\\\b' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 25 "quote.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 25 "quote.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 25 "quote.pgc"
- /* this is a\b */
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into \"My_Table\" values ( 1 , 'a\\\\b' ) ", ECPGt_EOIT, ECPGt_EORT);
+ /* this is a\b */
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into \"My_Table\" values ( 1 , 'a\\\\b' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 27 "quote.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 27 "quote.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 27 "quote.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "set standard_conforming_strings to on", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "set standard_conforming_strings to on", ECPGt_EOIT, ECPGt_EORT);
#line 29 "quote.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 29 "quote.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 29 "quote.pgc"
- /* this is a\\b actually */
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into \"My_Table\" values ( 1 , 'a\\\\b' ) ", ECPGt_EOIT, ECPGt_EORT);
+ /* this is a\\b actually */
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into \"My_Table\" values ( 1 , 'a\\\\b' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 32 "quote.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 32 "quote.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 32 "quote.pgc"
- /* this is a\b */
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into \"My_Table\" values ( 1 , 'a\\\\b' ) ", ECPGt_EOIT, ECPGt_EORT);
+ /* this is a\b */
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into \"My_Table\" values ( 1 , 'a\\\\b' ) ", ECPGt_EOIT, ECPGt_EORT);
#line 34 "quote.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 34 "quote.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 34 "quote.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select * from \"My_Table\" ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select * from \"My_Table\" ", ECPGt_EOIT, ECPGt_EORT);
#line 36 "quote.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 36 "quote.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 36 "quote.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "drop table \"My_Table\" ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "drop table \"My_Table\" ", ECPGt_EOIT, ECPGt_EORT);
#line 38 "quote.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 38 "quote.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 38 "quote.pgc"
- { ECPGdisconnect(__LINE__, "ALL");
+ {
+ ECPGdisconnect(__LINE__, "ALL");
#line 40 "quote.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 40 "quote.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 40 "quote.pgc"
- return 0;
+ return 0;
}
diff --git a/src/interfaces/ecpg/test/expected/sql-show.c b/src/interfaces/ecpg/test/expected/sql-show.c
index e5c906b45e..a0cba021af 100644
--- a/src/interfaces/ecpg/test/expected/sql-show.c
+++ b/src/interfaces/ecpg/test/expected/sql-show.c
@@ -22,105 +22,134 @@
#line 5 "show.pgc"
-int main(int argc, char* argv[]) {
- /* exec sql begin declare section */
-
-
+int
+main(int argc, char *argv[])
+{
+ /* exec sql begin declare section */
+
+
#line 9 "show.pgc"
- char var [ 25 ] ;
+ char var[25];
+
/* exec sql end declare section */
#line 10 "show.pgc"
- ECPGdebug(1, stderr);
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0); }
+ ECPGdebug(1, stderr);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
+ }
#line 13 "show.pgc"
- /* exec sql whenever sql_warning sqlprint ; */
+ /* exec sql whenever sql_warning sqlprint ; */
#line 15 "show.pgc"
- /* exec sql whenever sqlerror sqlprint ; */
+ /* exec sql whenever sqlerror sqlprint ; */
#line 16 "show.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "show search_path", ECPGt_EOIT,
- ECPGt_char,(var),(long)25,(long)1,(25)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "show search_path", ECPGt_EOIT,
+ ECPGt_char, (var), (long) 25, (long) 1, (25) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 18 "show.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 18 "show.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 18 "show.pgc"
- printf("Var: Search path: %s\n", var);
+ printf("Var: Search path: %s\n", var);
- { ECPGdo(__LINE__, 0, 1, NULL, "show wal_buffers", ECPGt_EOIT,
- ECPGt_char,(var),(long)25,(long)1,(25)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "show wal_buffers", ECPGt_EOIT,
+ ECPGt_char, (var), (long) 25, (long) 1, (25) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 21 "show.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 21 "show.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 21 "show.pgc"
- printf("Var: WAL buffers: %s\n", var);
+ printf("Var: WAL buffers: %s\n", var);
- { ECPGdo(__LINE__, 0, 1, NULL, "show standard_conforming_strings", ECPGt_EOIT,
- ECPGt_char,(var),(long)25,(long)1,(25)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "show standard_conforming_strings", ECPGt_EOIT,
+ ECPGt_char, (var), (long) 25, (long) 1, (25) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 24 "show.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 24 "show.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 24 "show.pgc"
- printf("Var: Standard conforming strings: %s\n", var);
+ printf("Var: Standard conforming strings: %s\n", var);
- { ECPGdo(__LINE__, 0, 1, NULL, "show time zone", ECPGt_EOIT,
- ECPGt_char,(var),(long)25,(long)1,(25)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "show time zone", ECPGt_EOIT,
+ ECPGt_char, (var), (long) 25, (long) 1, (25) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 27 "show.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 27 "show.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 27 "show.pgc"
- printf("Time Zone: %s\n", var);
+ printf("Time Zone: %s\n", var);
- { ECPGdo(__LINE__, 0, 1, NULL, "show transaction isolation level", ECPGt_EOIT,
- ECPGt_char,(var),(long)25,(long)1,(25)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "show transaction isolation level", ECPGt_EOIT,
+ ECPGt_char, (var), (long) 25, (long) 1, (25) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 30 "show.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 30 "show.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 30 "show.pgc"
- printf("Transaction isolation level: %s\n", var);
+ printf("Transaction isolation level: %s\n", var);
- /* Do not ask for the user name, it may differ in a regression test */
- /* EXEC SQL SHOW SESSION AUTHORIZATION INTO :var; */
+ /* Do not ask for the user name, it may differ in a regression test */
+ /* EXEC SQL SHOW SESSION AUTHORIZATION INTO :var; */
- { ECPGdisconnect(__LINE__, "ALL");
+ {
+ ECPGdisconnect(__LINE__, "ALL");
#line 36 "show.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 36 "show.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 36 "show.pgc"
- return 0;
+ return 0;
}
diff --git a/src/interfaces/ecpg/test/expected/sql-update.c b/src/interfaces/ecpg/test/expected/sql-update.c
index 39e4ddd6f6..adfed5593d 100644
--- a/src/interfaces/ecpg/test/expected/sql-update.c
+++ b/src/interfaces/ecpg/test/expected/sql-update.c
@@ -22,119 +22,161 @@
#line 5 "update.pgc"
-int main(int argc, char* argv[]) {
- /* exec sql begin declare section */
-
-
+int
+main(int argc, char *argv[])
+{
+ /* exec sql begin declare section */
+
+
#line 9 "update.pgc"
- int i1 [ 3 ] , i2 [ 3 ] ;
+ int i1[3],
+ i2[3];
+
/* exec sql end declare section */
#line 10 "update.pgc"
- ECPGdebug(1, stderr);
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0); }
+ ECPGdebug(1, stderr);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
+ }
#line 13 "update.pgc"
- /* exec sql whenever sql_warning sqlprint ; */
+ /* exec sql whenever sql_warning sqlprint ; */
#line 15 "update.pgc"
- /* exec sql whenever sqlerror sqlprint ; */
+ /* exec sql whenever sqlerror sqlprint ; */
#line 16 "update.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create table test ( a int , b int ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table test ( a int , b int ) ", ECPGt_EOIT, ECPGt_EORT);
#line 18 "update.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 18 "update.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 18 "update.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( a , b ) values( 1 , 1 ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( a , b ) values( 1 , 1 ) ", ECPGt_EOIT, ECPGt_EORT);
#line 20 "update.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 20 "update.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 20 "update.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( a , b ) values( 2 , 2 ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( a , b ) values( 2 , 2 ) ", ECPGt_EOIT, ECPGt_EORT);
#line 21 "update.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 21 "update.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 21 "update.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( a , b ) values( 3 , 3 ) ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test ( a , b ) values( 3 , 3 ) ", ECPGt_EOIT, ECPGt_EORT);
#line 22 "update.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 22 "update.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 22 "update.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "update test set a = a + 1 ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "update test set a = a + 1 ", ECPGt_EOIT, ECPGt_EORT);
#line 24 "update.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 24 "update.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 24 "update.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "update test set ( a , b )=( 5 , 5 ) where a = 4 ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "update test set ( a , b )=( 5 , 5 ) where a = 4 ", ECPGt_EOIT, ECPGt_EORT);
#line 25 "update.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 25 "update.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 25 "update.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "update test set a = 4 where a = 3 ", ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "update test set a = 4 where a = 3 ", ECPGt_EOIT, ECPGt_EORT);
#line 26 "update.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 26 "update.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 26 "update.pgc"
-;
-
- { ECPGdo(__LINE__, 0, 1, NULL, "select a , b from test order by a", ECPGt_EOIT,
- ECPGt_int,(i1),(long)1,(long)3,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_int,(i2),(long)1,(long)3,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
+ ;
+
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select a , b from test order by a", ECPGt_EOIT,
+ ECPGt_int, (i1), (long) 1, (long) 3, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_int, (i2), (long) 1, (long) 3, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
#line 28 "update.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 28 "update.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 28 "update.pgc"
- printf("test\na b\n%d %d\n%d %d\n%d %d\n", i1[0], i2[0], i1[1], i2[1], i1[2], i2[2]);
+ printf("test\na b\n%d %d\n%d %d\n%d %d\n", i1[0], i2[0], i1[1], i2[1], i1[2], i2[2]);
- { ECPGdisconnect(__LINE__, "ALL");
+ {
+ ECPGdisconnect(__LINE__, "ALL");
#line 32 "update.pgc"
-if (sqlca.sqlwarn[0] == 'W') sqlprint();
+ if (sqlca.sqlwarn[0] == 'W')
+ sqlprint();
#line 32 "update.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 32 "update.pgc"
- return 0;
+ return 0;
}
diff --git a/src/interfaces/ecpg/test/expected/thread-thread.c b/src/interfaces/ecpg/test/expected/thread-thread.c
index 96be500f6f..f2d4b3ff7a 100644
--- a/src/interfaces/ecpg/test/expected/thread-thread.c
+++ b/src/interfaces/ecpg/test/expected/thread-thread.c
@@ -36,171 +36,215 @@ main(void)
#line 19 "thread.pgc"
-void *test_thread(void *arg);
+void *test_thread(void *arg);
-int nthreads = 10;
-int iterations = 20;
+int nthreads = 10;
+int iterations = 20;
-int main(int argc, char *argv[])
+int
+main(int argc, char *argv[])
{
- pthread_t *threads;
- int n;
- /* exec sql begin declare section */
-
-
+ pthread_t *threads;
+ int n;
+
+ /* exec sql begin declare section */
+
+
#line 31 "thread.pgc"
- int l_rows ;
+ int l_rows;
+
/* exec sql end declare section */
#line 32 "thread.pgc"
- /* Switch off debug output for regression tests. The threads get executed in
- * more or less random order */
- ECPGdebug(0, stderr);
+ /*
+ * Switch off debug output for regression tests. The threads get executed
+ * in more or less random order
+ */
+ ECPGdebug(0, stderr);
- /* setup test_thread table */
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0); }
+ /* setup test_thread table */
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
+ }
#line 41 "thread.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "drop table test_thread ", ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "drop table test_thread ", ECPGt_EOIT, ECPGt_EORT);
+ }
#line 42 "thread.pgc"
- /* DROP might fail */
- { ECPGtrans(__LINE__, NULL, "commit");}
+ /* DROP might fail */
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
+ }
#line 43 "thread.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create table test_thread ( tstamp timestamp not null default cast( timeofday () as timestamp ) , thread TEXT not null , iteration integer not null , primary key( thread , iteration ) ) ", ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table test_thread ( tstamp timestamp not null default cast( timeofday () as timestamp ) , thread TEXT not null , iteration integer not null , primary key( thread , iteration ) ) ", ECPGt_EOIT, ECPGt_EORT);
+ }
#line 48 "thread.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");}
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
+ }
#line 49 "thread.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 50 "thread.pgc"
- /* create, and start, threads */
- threads = calloc(nthreads, sizeof(pthread_t));
- if( threads == NULL )
- {
- fprintf(stderr, "Cannot alloc memory\n");
- return( 1 );
- }
- for( n = 0; n < nthreads; n++ )
- {
- pthread_create(&threads[n], NULL, test_thread, (void *) (n + 1));
- }
-
- /* wait for thread completion */
- for( n = 0; n < nthreads; n++ )
- {
- pthread_join(threads[n], NULL);
- }
- free(threads);
-
- /* and check results */
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0); }
+ /* create, and start, threads */
+ threads = calloc(nthreads, sizeof(pthread_t));
+ if (threads == NULL)
+ {
+ fprintf(stderr, "Cannot alloc memory\n");
+ return (1);
+ }
+ for (n = 0; n < nthreads; n++)
+ {
+ pthread_create(&threads[n], NULL, test_thread, (void *) (n + 1));
+ }
+
+ /* wait for thread completion */
+ for (n = 0; n < nthreads; n++)
+ {
+ pthread_join(threads[n], NULL);
+ }
+ free(threads);
+
+ /* and check results */
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
+ }
#line 72 "thread.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select count (*) from test_thread ", ECPGt_EOIT,
- ECPGt_int,&(l_rows),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select count (*) from test_thread ", ECPGt_EOIT,
+ ECPGt_int, &(l_rows), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
+ }
#line 73 "thread.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");}
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
+ }
#line 74 "thread.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 75 "thread.pgc"
- if( l_rows == (nthreads * iterations) )
- printf("Success.\n");
- else
- printf("ERROR: Failure - expecting %d rows, got %d.\n", nthreads * iterations, l_rows);
+ if (l_rows == (nthreads * iterations))
+ printf("Success.\n");
+ else
+ printf("ERROR: Failure - expecting %d rows, got %d.\n", nthreads * iterations, l_rows);
- return( 0 );
+ return (0);
}
-void *test_thread(void *arg)
+void *
+test_thread(void *arg)
{
- long threadnum = (long)arg;
- /* exec sql begin declare section */
-
-
-
+ long threadnum = (long) arg;
+
+ /* exec sql begin declare section */
+
+
+
#line 88 "thread.pgc"
- int l_i ;
-
+ int l_i;
+
#line 89 "thread.pgc"
- char l_connection [ 128 ] ;
+ char l_connection[128];
+
/* exec sql end declare section */
#line 90 "thread.pgc"
- /* build up connection name, and connect to database */
- snprintf(l_connection, sizeof(l_connection), "thread_%03ld", threadnum);
- /* exec sql whenever sqlerror sqlprint ; */
+ /* build up connection name, and connect to database */
+ snprintf(l_connection, sizeof(l_connection), "thread_%03ld", threadnum);
+ /* exec sql whenever sqlerror sqlprint ; */
#line 94 "thread.pgc"
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , l_connection, 0);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, l_connection, 0);
#line 95 "thread.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 95 "thread.pgc"
- if( sqlca.sqlcode != 0 )
- {
- printf("%s: ERROR: cannot connect to database!\n", l_connection);
- return( NULL );
- }
- { ECPGtrans(__LINE__, l_connection, "begin transaction ");
+ if (sqlca.sqlcode != 0)
+ {
+ printf("%s: ERROR: cannot connect to database!\n", l_connection);
+ return (NULL);
+ }
+ {
+ ECPGtrans(__LINE__, l_connection, "begin transaction ");
#line 101 "thread.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 101 "thread.pgc"
- /* insert into test_thread table */
- for( l_i = 1; l_i <= iterations; l_i++ )
- {
+ /* insert into test_thread table */
+ for (l_i = 1; l_i <= iterations; l_i++)
+ {
#ifdef DEBUG
- printf("%s: inserting %d\n", l_connection, l_i);
+ printf("%s: inserting %d\n", l_connection, l_i);
#endif
- { ECPGdo(__LINE__, 0, 1, l_connection, "insert into test_thread ( thread , iteration ) values( ? , ? ) ",
- ECPGt_char,(l_connection),(long)128,(long)1,(128)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_int,&(l_i),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, l_connection, "insert into test_thread ( thread , iteration ) values( ? , ? ) ",
+ ECPGt_char, (l_connection), (long) 128, (long) 1, (128) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_int, &(l_i), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 109 "thread.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 109 "thread.pgc"
#ifdef DEBUG
- if( sqlca.sqlcode == 0 )
- printf("%s: insert done\n", l_connection);
- else
- printf("%s: ERROR: insert failed!\n", l_connection);
+ if (sqlca.sqlcode == 0)
+ printf("%s: insert done\n", l_connection);
+ else
+ printf("%s: ERROR: insert failed!\n", l_connection);
#endif
- }
+ }
- /* all done */
- { ECPGtrans(__LINE__, l_connection, "commit");
+ /* all done */
+ {
+ ECPGtrans(__LINE__, l_connection, "commit");
#line 119 "thread.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 119 "thread.pgc"
- { ECPGdisconnect(__LINE__, l_connection);
+ {
+ ECPGdisconnect(__LINE__, l_connection);
#line 120 "thread.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 120 "thread.pgc"
#ifdef DEBUG
- printf("%s: done!\n", l_connection);
+ printf("%s: done!\n", l_connection);
#endif
- return( NULL );
+ return (NULL);
}
-#endif /* ENABLE_THREAD_SAFETY */
+
+#endif /* ENABLE_THREAD_SAFETY */
diff --git a/src/interfaces/ecpg/test/expected/thread-thread_implicit.c b/src/interfaces/ecpg/test/expected/thread-thread_implicit.c
index b2a95d5400..f7bf6fab76 100644
--- a/src/interfaces/ecpg/test/expected/thread-thread_implicit.c
+++ b/src/interfaces/ecpg/test/expected/thread-thread_implicit.c
@@ -37,171 +37,215 @@ main(void)
#line 20 "thread_implicit.pgc"
-void *test_thread(void *arg);
+void *test_thread(void *arg);
-int nthreads = 10;
-int iterations = 20;
+int nthreads = 10;
+int iterations = 20;
-int main(int argc, char *argv[])
+int
+main(int argc, char *argv[])
{
- pthread_t *threads;
- int n;
- /* exec sql begin declare section */
-
-
+ pthread_t *threads;
+ int n;
+
+ /* exec sql begin declare section */
+
+
#line 32 "thread_implicit.pgc"
- int l_rows ;
+ int l_rows;
+
/* exec sql end declare section */
#line 33 "thread_implicit.pgc"
- /* Switch off debug output for regression tests. The threads get executed in
- * more or less random order */
- ECPGdebug(0, stderr);
+ /*
+ * Switch off debug output for regression tests. The threads get executed
+ * in more or less random order
+ */
+ ECPGdebug(0, stderr);
- /* setup test_thread table */
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0); }
+ /* setup test_thread table */
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
+ }
#line 42 "thread_implicit.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "drop table test_thread ", ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "drop table test_thread ", ECPGt_EOIT, ECPGt_EORT);
+ }
#line 43 "thread_implicit.pgc"
- /* DROP might fail */
- { ECPGtrans(__LINE__, NULL, "commit");}
+ /* DROP might fail */
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
+ }
#line 44 "thread_implicit.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "create table test_thread ( tstamp timestamp not null default cast( timeofday () as timestamp ) , thread TEXT not null , iteration integer not null , primary key( thread , iteration ) ) ", ECPGt_EOIT, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "create table test_thread ( tstamp timestamp not null default cast( timeofday () as timestamp ) , thread TEXT not null , iteration integer not null , primary key( thread , iteration ) ) ", ECPGt_EOIT, ECPGt_EORT);
+ }
#line 49 "thread_implicit.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");}
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
+ }
#line 50 "thread_implicit.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 51 "thread_implicit.pgc"
- /* create, and start, threads */
- threads = calloc(nthreads, sizeof(pthread_t));
- if( threads == NULL )
- {
- fprintf(stderr, "Cannot alloc memory\n");
- return( 1 );
- }
- for( n = 0; n < nthreads; n++ )
- {
- pthread_create(&threads[n], NULL, test_thread, (void *) (n + 1));
- }
-
- /* wait for thread completion */
- for( n = 0; n < nthreads; n++ )
- {
- pthread_join(threads[n], NULL);
- }
- free(threads);
-
- /* and check results */
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , NULL, 0); }
+ /* create, and start, threads */
+ threads = calloc(nthreads, sizeof(pthread_t));
+ if (threads == NULL)
+ {
+ fprintf(stderr, "Cannot alloc memory\n");
+ return (1);
+ }
+ for (n = 0; n < nthreads; n++)
+ {
+ pthread_create(&threads[n], NULL, test_thread, (void *) (n + 1));
+ }
+
+ /* wait for thread completion */
+ for (n = 0; n < nthreads; n++)
+ {
+ pthread_join(threads[n], NULL);
+ }
+ free(threads);
+
+ /* and check results */
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
+ }
#line 73 "thread_implicit.pgc"
- { ECPGdo(__LINE__, 0, 1, NULL, "select count (*) from test_thread ", ECPGt_EOIT,
- ECPGt_int,&(l_rows),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "select count (*) from test_thread ", ECPGt_EOIT,
+ ECPGt_int, &(l_rows), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);
+ }
#line 74 "thread_implicit.pgc"
- { ECPGtrans(__LINE__, NULL, "commit");}
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
+ }
#line 75 "thread_implicit.pgc"
- { ECPGdisconnect(__LINE__, "CURRENT");}
+ {
+ ECPGdisconnect(__LINE__, "CURRENT");
+ }
#line 76 "thread_implicit.pgc"
- if( l_rows == (nthreads * iterations) )
- printf("Success.\n");
- else
- printf("ERROR: Failure - expecting %d rows, got %d.\n", nthreads * iterations, l_rows);
+ if (l_rows == (nthreads * iterations))
+ printf("Success.\n");
+ else
+ printf("ERROR: Failure - expecting %d rows, got %d.\n", nthreads * iterations, l_rows);
- return( 0 );
+ return (0);
}
-void *test_thread(void *arg)
+void *
+test_thread(void *arg)
{
- long threadnum = (long)arg;
- /* exec sql begin declare section */
-
-
-
+ long threadnum = (long) arg;
+
+ /* exec sql begin declare section */
+
+
+
#line 89 "thread_implicit.pgc"
- int l_i ;
-
+ int l_i;
+
#line 90 "thread_implicit.pgc"
- char l_connection [ 128 ] ;
+ char l_connection[128];
+
/* exec sql end declare section */
#line 91 "thread_implicit.pgc"
- /* build up connection name, and connect to database */
- snprintf(l_connection, sizeof(l_connection), "thread_%03ld", threadnum);
- /* exec sql whenever sqlerror sqlprint ; */
+ /* build up connection name, and connect to database */
+ snprintf(l_connection, sizeof(l_connection), "thread_%03ld", threadnum);
+ /* exec sql whenever sqlerror sqlprint ; */
#line 95 "thread_implicit.pgc"
- { ECPGconnect(__LINE__, 0, "regress1" , NULL,NULL , l_connection, 0);
+ {
+ ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, l_connection, 0);
#line 96 "thread_implicit.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 96 "thread_implicit.pgc"
- if( sqlca.sqlcode != 0 )
- {
- printf("%s: ERROR: cannot connect to database!\n", l_connection);
- return( NULL );
- }
- { ECPGtrans(__LINE__, NULL, "begin transaction ");
+ if (sqlca.sqlcode != 0)
+ {
+ printf("%s: ERROR: cannot connect to database!\n", l_connection);
+ return (NULL);
+ }
+ {
+ ECPGtrans(__LINE__, NULL, "begin transaction ");
#line 102 "thread_implicit.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 102 "thread_implicit.pgc"
- /* insert into test_thread table */
- for( l_i = 1; l_i <= iterations; l_i++ )
- {
+ /* insert into test_thread table */
+ for (l_i = 1; l_i <= iterations; l_i++)
+ {
#ifdef DEBUG
- printf("%s: inserting %d\n", l_connection, l_i);
+ printf("%s: inserting %d\n", l_connection, l_i);
#endif
- { ECPGdo(__LINE__, 0, 1, NULL, "insert into test_thread ( thread , iteration ) values( ? , ? ) ",
- ECPGt_char,(l_connection),(long)128,(long)1,(128)*sizeof(char),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
- ECPGt_int,&(l_i),(long)1,(long)1,sizeof(int),
- ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
+ {
+ ECPGdo(__LINE__, 0, 1, NULL, "insert into test_thread ( thread , iteration ) values( ? , ? ) ",
+ ECPGt_char, (l_connection), (long) 128, (long) 1, (128) * sizeof(char),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L,
+ ECPGt_int, &(l_i), (long) 1, (long) 1, sizeof(int),
+ ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
#line 110 "thread_implicit.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 110 "thread_implicit.pgc"
#ifdef DEBUG
- if( sqlca.sqlcode == 0 )
- printf("%s: insert done\n", l_connection);
- else
- printf("%s: ERROR: insert failed!\n", l_connection);
+ if (sqlca.sqlcode == 0)
+ printf("%s: insert done\n", l_connection);
+ else
+ printf("%s: ERROR: insert failed!\n", l_connection);
#endif
- }
+ }
- /* all done */
- { ECPGtrans(__LINE__, NULL, "commit");
+ /* all done */
+ {
+ ECPGtrans(__LINE__, NULL, "commit");
#line 120 "thread_implicit.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 120 "thread_implicit.pgc"
- { ECPGdisconnect(__LINE__, l_connection);
+ {
+ ECPGdisconnect(__LINE__, l_connection);
#line 121 "thread_implicit.pgc"
-if (sqlca.sqlcode < 0) sqlprint();}
+ if (sqlca.sqlcode < 0)
+ sqlprint();
+ }
#line 121 "thread_implicit.pgc"
#ifdef DEBUG
- printf("%s: done!\n", l_connection);
+ printf("%s: done!\n", l_connection);
#endif
- return( NULL );
+ return (NULL);
}
-#endif /* ENABLE_THREAD_SAFETY */
+
+#endif /* ENABLE_THREAD_SAFETY */
diff --git a/src/interfaces/libpq/fe-auth.c b/src/interfaces/libpq/fe-auth.c
index bcc4c570bf..7725f52f35 100644
--- a/src/interfaces/libpq/fe-auth.c
+++ b/src/interfaces/libpq/fe-auth.c
@@ -10,7 +10,7 @@
* exceed INITIAL_EXPBUFFER_SIZE (currently 256 bytes).
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/interfaces/libpq/fe-auth.c,v 1.120 2006/09/22 21:39:58 tgl Exp $
+ * $PostgreSQL: pgsql/src/interfaces/libpq/fe-auth.c,v 1.121 2006/10/04 00:30:12 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -100,7 +100,7 @@ pg_an_to_ln(char *aname)
* Various krb5 state which is not connection specific, and a flag to
* indicate whether we have initialised it yet.
*/
-/*
+/*
static int pg_krb5_initialised;
static krb5_context pg_krb5_context;
static krb5_ccache pg_krb5_ccache;
@@ -110,16 +110,16 @@ static char *pg_krb5_name;
struct krb5_info
{
- int pg_krb5_initialised;
- krb5_context pg_krb5_context;
- krb5_ccache pg_krb5_ccache;
- krb5_principal pg_krb5_client;
- char *pg_krb5_name;
+ int pg_krb5_initialised;
+ krb5_context pg_krb5_context;
+ krb5_ccache pg_krb5_ccache;
+ krb5_principal pg_krb5_client;
+ char *pg_krb5_name;
};
static int
-pg_krb5_init(char *PQerrormsg, struct krb5_info *info)
+pg_krb5_init(char *PQerrormsg, struct krb5_info * info)
{
krb5_error_code retval;
@@ -175,8 +175,8 @@ pg_krb5_init(char *PQerrormsg, struct krb5_info *info)
return STATUS_OK;
}
-static void
-pg_krb5_destroy(struct krb5_info *info)
+static void
+pg_krb5_destroy(struct krb5_info * info)
{
krb5_free_principal(info->pg_krb5_context, info->pg_krb5_client);
krb5_cc_close(info->pg_krb5_context, info->pg_krb5_ccache);
@@ -193,8 +193,9 @@ pg_krb5_destroy(struct krb5_info *info)
static char *
pg_krb5_authname(char *PQerrormsg)
{
- char *tmp_name;
+ char *tmp_name;
struct krb5_info info;
+
info.pg_krb5_initialised = 0;
if (pg_krb5_init(PQerrormsg, &info) != STATUS_OK)
@@ -219,6 +220,7 @@ pg_krb5_sendauth(char *PQerrormsg, int sock, const char *hostname, const char *s
krb5_auth_context auth_context = NULL;
krb5_error *err_ret = NULL;
struct krb5_info info;
+
info.pg_krb5_initialised = 0;
if (!hostname)
@@ -519,7 +521,7 @@ char *
pg_fe_getauthname(char *PQerrormsg)
{
#ifdef KRB5
- char *krb5_name = NULL;
+ char *krb5_name = NULL;
#endif
const char *name = NULL;
char *authn;
@@ -545,10 +547,12 @@ pg_fe_getauthname(char *PQerrormsg)
pglock_thread();
#ifdef KRB5
- /* pg_krb5_authname gives us a strdup'd value that we need
- * to free later, however, we don't want to free 'name' directly
- * in case it's *not* a Kerberos login and we fall through to
- * name = pw->pw_name; */
+
+ /*
+ * pg_krb5_authname gives us a strdup'd value that we need to free later,
+ * however, we don't want to free 'name' directly in case it's *not* a
+ * Kerberos login and we fall through to name = pw->pw_name;
+ */
krb5_name = pg_krb5_authname(PQerrormsg);
name = krb5_name;
#endif
@@ -583,7 +587,7 @@ pg_fe_getauthname(char *PQerrormsg)
*
* This is intended to be used by client applications that wish to send
* commands like ALTER USER joe PASSWORD 'pwd'. The password need not
- * be sent in cleartext if it is encrypted on the client side. This is
+ * be sent in cleartext if it is encrypted on the client side. This is
* good because it ensures the cleartext password won't end up in logs,
* pg_stat displays, etc. We export the function so that clients won't
* be dependent on low-level details like whether the enceyption is MD5
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index 0dca43803f..fd08023aae 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.336 2006/09/27 15:41:24 tgl Exp $
+ * $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.337 2006/10/04 00:30:12 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -66,7 +66,7 @@
typedef struct timeval LDAP_TIMEVAL;
#endif
static int ldapServiceLookup(const char *purl, PQconninfoOption *options,
- PQExpBuffer errorMessage);
+ PQExpBuffer errorMessage);
#endif
#include "libpq/ip.h"
@@ -513,9 +513,9 @@ connectOptions2(PGconn *conn)
conn->sslmode = strdup(DefaultSSLMode);
/*
- * Only if we get this far is it appropriate to try to connect.
- * (We need a state flag, rather than just the boolean result of
- * this function, in case someone tries to PQreset() the PGconn.)
+ * Only if we get this far is it appropriate to try to connect. (We need a
+ * state flag, rather than just the boolean result of this function, in
+ * case someone tries to PQreset() the PGconn.)
*/
conn->options_valid = true;
@@ -2385,13 +2385,31 @@ static int
ldapServiceLookup(const char *purl, PQconninfoOption *options,
PQExpBuffer errorMessage)
{
- int port = LDAP_DEF_PORT, scope, rc, msgid, size, state, oldstate, i;
+ int port = LDAP_DEF_PORT,
+ scope,
+ rc,
+ msgid,
+ size,
+ state,
+ oldstate,
+ i;
bool found_keyword;
- char *url, *hostname, *portstr, *endptr, *dn, *scopestr, *filter,
- *result, *p, *p1 = NULL, *optname = NULL, *optval = NULL;
+ char *url,
+ *hostname,
+ *portstr,
+ *endptr,
+ *dn,
+ *scopestr,
+ *filter,
+ *result,
+ *p,
+ *p1 = NULL,
+ *optname = NULL,
+ *optval = NULL;
char *attrs[2] = {NULL, NULL};
LDAP *ld = NULL;
- LDAPMessage *res, *entry;
+ LDAPMessage *res,
+ *entry;
struct berval **values;
LDAP_TIMEVAL time = {PGLDAP_TIMEOUT, 0};
@@ -2402,9 +2420,9 @@ ldapServiceLookup(const char *purl, PQconninfoOption *options,
}
/*
- * Parse URL components, check for correctness. Basically, url has
- * '\0' placed at component boundaries and variables are pointed
- * at each component.
+ * Parse URL components, check for correctness. Basically, url has '\0'
+ * placed at component boundaries and variables are pointed at each
+ * component.
*/
if (pg_strncasecmp(url, LDAP_URL, strlen(LDAP_URL)) != 0)
@@ -2417,26 +2435,26 @@ ldapServiceLookup(const char *purl, PQconninfoOption *options,
/* hostname */
hostname = url + strlen(LDAP_URL);
- if (*hostname == '/') /* no hostname? */
- hostname = "localhost"; /* the default */
+ if (*hostname == '/') /* no hostname? */
+ hostname = "localhost"; /* the default */
/* dn, "distinguished name" */
- p = strchr(url + strlen(LDAP_URL), '/');
+ p = strchr(url + strlen(LDAP_URL), '/');
if (p == NULL || *(p + 1) == '\0' || *(p + 1) == '?')
{
printfPQExpBuffer(errorMessage, libpq_gettext(
- "bad LDAP URL \"%s\": missing distinguished name\n"), purl);
+ "bad LDAP URL \"%s\": missing distinguished name\n"), purl);
free(url);
return 3;
}
- *p = '\0'; /* terminate hostname */
+ *p = '\0'; /* terminate hostname */
dn = p + 1;
/* attribute */
if ((p = strchr(dn, '?')) == NULL || *(p + 1) == '\0' || *(p + 1) == '?')
{
printfPQExpBuffer(errorMessage, libpq_gettext(
- "bad LDAP URL \"%s\": must have exactly one attribute\n"), purl);
+ "bad LDAP URL \"%s\": must have exactly one attribute\n"), purl);
free(url);
return 3;
}
@@ -2447,7 +2465,7 @@ ldapServiceLookup(const char *purl, PQconninfoOption *options,
if ((p = strchr(attrs[0], '?')) == NULL || *(p + 1) == '\0' || *(p + 1) == '?')
{
printfPQExpBuffer(errorMessage, libpq_gettext(
- "bad LDAP URL \"%s\": must have search scope (base/one/sub)\n"), purl);
+ "bad LDAP URL \"%s\": must have search scope (base/one/sub)\n"), purl);
free(url);
return 3;
}
@@ -2479,7 +2497,7 @@ ldapServiceLookup(const char *purl, PQconninfoOption *options,
if (*portstr == '\0' || *endptr != '\0' || errno || lport < 0 || lport > 65535)
{
printfPQExpBuffer(errorMessage, libpq_gettext(
- "bad LDAP URL \"%s\": invalid port number\n"), purl);
+ "bad LDAP URL \"%s\": invalid port number\n"), purl);
free(url);
return 3;
}
@@ -2490,7 +2508,7 @@ ldapServiceLookup(const char *purl, PQconninfoOption *options,
if (strchr(attrs[0], ',') != NULL)
{
printfPQExpBuffer(errorMessage, libpq_gettext(
- "bad LDAP URL \"%s\": must have exactly one attribute\n"), purl);
+ "bad LDAP URL \"%s\": must have exactly one attribute\n"), purl);
free(url);
return 3;
}
@@ -2505,7 +2523,7 @@ ldapServiceLookup(const char *purl, PQconninfoOption *options,
else
{
printfPQExpBuffer(errorMessage, libpq_gettext(
- "bad LDAP URL \"%s\": must have search scope (base/one/sub)\n"), purl);
+ "bad LDAP URL \"%s\": must have search scope (base/one/sub)\n"), purl);
free(url);
return 3;
}
@@ -2520,8 +2538,8 @@ ldapServiceLookup(const char *purl, PQconninfoOption *options,
}
/*
- * Initialize connection to the server. We do an explicit bind because
- * we want to return 2 if the bind fails.
+ * Initialize connection to the server. We do an explicit bind because we
+ * want to return 2 if the bind fails.
*/
if ((msgid = ldap_simple_bind(ld, NULL, NULL)) == -1)
{
@@ -2655,8 +2673,8 @@ ldapServiceLookup(const char *purl, PQconninfoOption *options,
else if (ld_is_nl_cr(*p))
{
printfPQExpBuffer(errorMessage, libpq_gettext(
- "missing \"=\" after \"%s\" in connection info string\n"),
- optname);
+ "missing \"=\" after \"%s\" in connection info string\n"),
+ optname);
return 3;
}
else if (*p == '=')
@@ -2673,8 +2691,8 @@ ldapServiceLookup(const char *purl, PQconninfoOption *options,
else if (!ld_is_sp_tab(*p))
{
printfPQExpBuffer(errorMessage, libpq_gettext(
- "missing \"=\" after \"%s\" in connection info string\n"),
- optname);
+ "missing \"=\" after \"%s\" in connection info string\n"),
+ optname);
return 3;
}
break;
@@ -2737,7 +2755,7 @@ ldapServiceLookup(const char *purl, PQconninfoOption *options,
{
printfPQExpBuffer(errorMessage,
libpq_gettext("invalid connection option \"%s\"\n"),
- optname);
+ optname);
return 1;
}
optname = NULL;
@@ -2749,7 +2767,7 @@ ldapServiceLookup(const char *purl, PQconninfoOption *options,
if (state == 5 || state == 6)
{
printfPQExpBuffer(errorMessage, libpq_gettext(
- "unterminated quoted string in connection info string\n"));
+ "unterminated quoted string in connection info string\n"));
return 3;
}
@@ -2854,7 +2872,8 @@ parseServiceInfo(PQconninfoOption *options, PQExpBuffer errorMessage)
#ifdef USE_LDAP
if (strncmp(line, "ldap", 4) == 0)
{
- int rc = ldapServiceLookup(line, options, errorMessage);
+ int rc = ldapServiceLookup(line, options, errorMessage);
+
/* if rc = 2, go on reading for fallback */
switch (rc)
{
@@ -3376,10 +3395,10 @@ PQsetClientEncoding(PGconn *conn, const char *encoding)
else
{
/*
- * In protocol 2 we have to assume the setting will stick, and
- * adjust our state immediately. In protocol 3 and up we can
- * rely on the backend to report the parameter value, and we'll
- * change state at that time.
+ * In protocol 2 we have to assume the setting will stick, and adjust
+ * our state immediately. In protocol 3 and up we can rely on the
+ * backend to report the parameter value, and we'll change state at
+ * that time.
*/
if (PG_PROTOCOL_MAJOR(conn->pversion) < 3)
pqSaveParameterStatus(conn, "client_encoding", encoding);
@@ -3547,14 +3566,14 @@ PasswordFromFile(char *hostname, char *port, char *dbname, char *username)
if (hostname == NULL)
hostname = DefaultHost;
else if (is_absolute_path(hostname))
+
/*
- * We should probably use canonicalize_path(), but then
- * we have to bring path.c into libpq, and it doesn't
- * seem worth it.
+ * We should probably use canonicalize_path(), but then we have to
+ * bring path.c into libpq, and it doesn't seem worth it.
*/
if (strcmp(hostname, DEFAULT_PGSOCKET_DIR) == 0)
hostname = DefaultHost;
-
+
if (port == NULL)
port = DEF_PGPORT_STR;
diff --git a/src/interfaces/libpq/fe-exec.c b/src/interfaces/libpq/fe-exec.c
index 71d9c02eb1..5a7adb2ff8 100644
--- a/src/interfaces/libpq/fe-exec.c
+++ b/src/interfaces/libpq/fe-exec.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/interfaces/libpq/fe-exec.c,v 1.190 2006/08/18 19:52:39 tgl Exp $
+ * $PostgreSQL: pgsql/src/interfaces/libpq/fe-exec.c,v 1.191 2006/10/04 00:30:13 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -45,7 +45,7 @@ char *const pgresStatus[] = {
* values that result in backward-compatible behavior
*/
static int static_client_encoding = PG_SQL_ASCII;
-static bool static_std_strings = false;
+static bool static_std_strings = false;
static bool PQsendQueryStart(PGconn *conn);
@@ -61,8 +61,8 @@ static int PQsendQueryGuts(PGconn *conn,
static void parseInput(PGconn *conn);
static bool PQexecStart(PGconn *conn);
static PGresult *PQexecFinish(PGconn *conn);
-static int PQsendDescribe(PGconn *conn, char desc_type,
- const char *desc_target);
+static int PQsendDescribe(PGconn *conn, char desc_type,
+ const char *desc_target);
/* ----------------
@@ -626,11 +626,11 @@ pqSaveParameterStatus(PGconn *conn, const char *name, const char *value)
}
/*
- * Special hacks: remember client_encoding and standard_conforming_strings,
- * and convert server version to a numeric form. We keep the first two of
- * these in static variables as well, so that PQescapeString and
- * PQescapeBytea can behave somewhat sanely (at least in single-
- * connection-using programs).
+ * Special hacks: remember client_encoding and
+ * standard_conforming_strings, and convert server version to a numeric
+ * form. We keep the first two of these in static variables as well, so
+ * that PQescapeString and PQescapeBytea can behave somewhat sanely (at
+ * least in single- connection-using programs).
*/
if (strcmp(name, "client_encoding") == 0)
{
@@ -1483,7 +1483,7 @@ PQexecFinish(PGconn *conn)
* If the query was not even sent, return NULL; conn->errorMessage is set to
* a relevant message.
* If the query was sent, a new PGresult is returned (which could indicate
- * either success or failure). On success, the PGresult contains status
+ * either success or failure). On success, the PGresult contains status
* PGRES_COMMAND_OK, and its parameter and column-heading fields describe
* the statement's inputs and outputs respectively.
* The user is responsible for freeing the PGresult via PQclear()
@@ -1549,8 +1549,8 @@ PQsendDescribePortal(PGconn *conn, const char *portal)
* Common code to send a Describe command
*
* Available options for desc_type are
- * 'S' to describe a prepared statement; or
- * 'P' to describe a portal.
+ * 'S' to describe a prepared statement; or
+ * 'P' to describe a portal.
* Returns 1 on success and 0 on failure.
*/
static int
@@ -1661,11 +1661,11 @@ PQputCopyData(PGconn *conn, const char *buffer, int nbytes)
/*
* Process any NOTICE or NOTIFY messages that might be pending in the
- * input buffer. Since the server might generate many notices during
- * the COPY, we want to clean those out reasonably promptly to prevent
- * indefinite expansion of the input buffer. (Note: the actual read
- * of input data into the input buffer happens down inside pqSendSome,
- * but it's not authorized to get rid of the data again.)
+ * input buffer. Since the server might generate many notices during the
+ * COPY, we want to clean those out reasonably promptly to prevent
+ * indefinite expansion of the input buffer. (Note: the actual read of
+ * input data into the input buffer happens down inside pqSendSome, but
+ * it's not authorized to get rid of the data again.)
*/
parseInput(conn);
@@ -2134,7 +2134,7 @@ check_param_number(const PGresult *res, int param_num)
param_num, res->numParameters - 1);
return FALSE;
}
-
+
return TRUE;
}
@@ -2377,7 +2377,8 @@ PQoidValue(const PGresult *res)
char *
PQcmdTuples(PGresult *res)
{
- char *p, *c;
+ char *p,
+ *c;
if (!res)
return "";
@@ -2389,7 +2390,7 @@ PQcmdTuples(PGresult *res)
while (*p && *p != ' ')
p++;
if (*p == 0)
- goto interpret_error; /* no space? */
+ goto interpret_error; /* no space? */
p++;
}
else if (strncmp(res->cmdStatus, "DELETE ", 7) == 0 ||
@@ -2413,7 +2414,7 @@ PQcmdTuples(PGresult *res)
goto interpret_error;
return p;
-
+
interpret_error:
pqInternalNotice(&res->noticeHooks,
"could not interpret result from server: %s",
@@ -2462,7 +2463,7 @@ PQgetisnull(const PGresult *res, int tup_num, int field_num)
}
/* PQnparams:
- * returns the number of input parameters of a prepared statement.
+ * returns the number of input parameters of a prepared statement.
*/
int
PQnparams(const PGresult *res)
@@ -2473,7 +2474,7 @@ PQnparams(const PGresult *res)
}
/* PQparamtype:
- * returns type Oid of the specified statement parameter.
+ * returns type Oid of the specified statement parameter.
*/
Oid
PQparamtype(const PGresult *res, int param_num)
@@ -2612,9 +2613,9 @@ PQescapeStringInternal(PGconn *conn,
while (remaining > 0 && *source != '\0')
{
- char c = *source;
- int len;
- int i;
+ char c = *source;
+ int len;
+ int i;
/* Fast path for plain ASCII */
if (!IS_HIGHBIT_SET(c))
@@ -2643,9 +2644,9 @@ PQescapeStringInternal(PGconn *conn,
/*
* If we hit premature end of string (ie, incomplete multibyte
- * character), try to pad out to the correct length with spaces.
- * We may not be able to pad completely, but we will always be able
- * to insert at least one pad space (since we'd not have quoted a
+ * character), try to pad out to the correct length with spaces. We
+ * may not be able to pad completely, but we will always be able to
+ * insert at least one pad space (since we'd not have quoted a
* multibyte character). This should be enough to make a string that
* the server will error out on.
*/
@@ -2655,7 +2656,7 @@ PQescapeStringInternal(PGconn *conn,
*error = 1;
if (conn)
printfPQExpBuffer(&conn->errorMessage,
- libpq_gettext("incomplete multibyte character\n"));
+ libpq_gettext("incomplete multibyte character\n"));
for (; i < len; i++)
{
if (((size_t) (target - to)) / 2 >= length)
diff --git a/src/interfaces/libpq/fe-lobj.c b/src/interfaces/libpq/fe-lobj.c
index 998a564899..10e8a91ed3 100644
--- a/src/interfaces/libpq/fe-lobj.c
+++ b/src/interfaces/libpq/fe-lobj.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/interfaces/libpq/fe-lobj.c,v 1.59 2006/09/07 15:37:25 momjian Exp $
+ * $PostgreSQL: pgsql/src/interfaces/libpq/fe-lobj.c,v 1.60 2006/10/04 00:30:13 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -479,10 +479,10 @@ lo_import(PGconn *conn, const char *filename)
if (tmp != nbytes)
{
/*
- * If lo_write() failed, we are now in an aborted transaction
- * so there's no need for lo_close(); furthermore, if we tried
- * it we'd overwrite the useful error result with a useless one.
- * So just nail the doors shut and get out of town.
+ * If lo_write() failed, we are now in an aborted transaction so
+ * there's no need for lo_close(); furthermore, if we tried it
+ * we'd overwrite the useful error result with a useless one. So
+ * just nail the doors shut and get out of town.
*/
(void) close(fd);
return InvalidOid;
@@ -492,7 +492,7 @@ lo_import(PGconn *conn, const char *filename)
if (nbytes < 0)
{
printfPQExpBuffer(&conn->errorMessage,
- libpq_gettext("could not read from file \"%s\": %s\n"),
+ libpq_gettext("could not read from file \"%s\": %s\n"),
filename, pqStrerror(errno, sebuf, sizeof(sebuf)));
lobjOid = InvalidOid;
}
@@ -565,10 +565,10 @@ lo_export(PGconn *conn, Oid lobjId, const char *filename)
}
/*
- * If lo_read() failed, we are now in an aborted transaction
- * so there's no need for lo_close(); furthermore, if we tried
- * it we'd overwrite the useful error result with a useless one.
- * So skip lo_close() if we got a failure result.
+ * If lo_read() failed, we are now in an aborted transaction so there's no
+ * need for lo_close(); furthermore, if we tried it we'd overwrite the
+ * useful error result with a useless one. So skip lo_close() if we got a
+ * failure result.
*/
if (nbytes < 0 ||
lo_close(conn, lobj) != 0)
diff --git a/src/interfaces/libpq/fe-misc.c b/src/interfaces/libpq/fe-misc.c
index 2c76dfdde3..635c3f0674 100644
--- a/src/interfaces/libpq/fe-misc.c
+++ b/src/interfaces/libpq/fe-misc.c
@@ -23,7 +23,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/interfaces/libpq/fe-misc.c,v 1.129 2006/07/14 05:28:29 tgl Exp $
+ * $PostgreSQL: pgsql/src/interfaces/libpq/fe-misc.c,v 1.130 2006/10/04 00:30:13 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -62,7 +62,7 @@
static int pqPutMsgBytes(const void *buf, size_t len, PGconn *conn);
static int pqSendSome(PGconn *conn, int len);
-static int pqSocketCheck(PGconn *conn, int forRead, int forWrite,
+static int pqSocketCheck(PGconn *conn, int forRead, int forWrite,
time_t end_time);
static int pqSocketPoll(int sock, int forRead, int forWrite, time_t end_time);
diff --git a/src/interfaces/libpq/fe-print.c b/src/interfaces/libpq/fe-print.c
index 0ecbcf4ad0..9ae7a1fa07 100644
--- a/src/interfaces/libpq/fe-print.c
+++ b/src/interfaces/libpq/fe-print.c
@@ -10,7 +10,7 @@
* didn't really belong there.
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/interfaces/libpq/fe-print.c,v 1.72 2006/07/14 16:59:19 tgl Exp $
+ * $PostgreSQL: pgsql/src/interfaces/libpq/fe-print.c,v 1.73 2006/10/04 00:30:13 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -276,7 +276,7 @@ PQprint(FILE *fout, const PGresult *res, const PQprintOpt *po)
{
if (po->caption)
fprintf(fout,
- "<table %s><caption align=\"top\">%s</caption>\n",
+ "<table %s><caption align=\"top\">%s</caption>\n",
po->tableOpt ? po->tableOpt : "",
po->caption);
else
diff --git a/src/interfaces/libpq/fe-protocol3.c b/src/interfaces/libpq/fe-protocol3.c
index 1feae23a43..8f75577c85 100644
--- a/src/interfaces/libpq/fe-protocol3.c
+++ b/src/interfaces/libpq/fe-protocol3.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/interfaces/libpq/fe-protocol3.c,v 1.28 2006/10/01 22:25:48 tgl Exp $
+ * $PostgreSQL: pgsql/src/interfaces/libpq/fe-protocol3.c,v 1.29 2006/10/04 00:30:13 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -52,7 +52,7 @@ static int getNotify(PGconn *conn);
static int getCopyStart(PGconn *conn, ExecStatusType copytype);
static int getReadyForQuery(PGconn *conn);
static void reportErrorPosition(PQExpBuffer msg, const char *query,
- int loc, int encoding);
+ int loc, int encoding);
static int build_startup_packet(const PGconn *conn, char *packet,
const PQEnvironmentOption *options);
@@ -270,9 +270,10 @@ pqParseInput3(PGconn *conn)
/* First 'T' in a query sequence */
if (getRowDescriptions(conn))
return;
+
/*
- * If we're doing a Describe, we're ready to pass
- * the result back to the client.
+ * If we're doing a Describe, we're ready to pass the
+ * result back to the client.
*/
if (conn->queryclass == PGQUERY_DESCRIBE)
conn->asyncStatus = PGASYNC_READY;
@@ -301,9 +302,10 @@ pqParseInput3(PGconn *conn)
if (conn->result == NULL)
conn->result = PQmakeEmptyPGresult(conn,
PGRES_COMMAND_OK);
+
/*
- * If we're doing a Describe, we're ready to pass
- * the result back to the client.
+ * If we're doing a Describe, we're ready to pass the
+ * result back to the client.
*/
if (conn->queryclass == PGQUERY_DESCRIBE)
conn->asyncStatus = PGASYNC_READY;
@@ -443,9 +445,9 @@ getRowDescriptions(PGconn *conn)
int i;
/*
- * When doing Describe for a prepared statement, there'll already be
- * a PGresult created by getParamDescriptions, and we should fill
- * data into that. Otherwise, create a new, empty PGresult.
+ * When doing Describe for a prepared statement, there'll already be a
+ * PGresult created by getParamDescriptions, and we should fill data into
+ * that. Otherwise, create a new, empty PGresult.
*/
if (conn->queryclass == PGQUERY_DESCRIBE)
{
@@ -527,14 +529,15 @@ getRowDescriptions(PGconn *conn)
return 0;
failure:
+
/*
* Discard incomplete result, unless it's from getParamDescriptions.
*
* Note that if we hit a bufferload boundary while handling the
* describe-statement case, we'll forget any PGresult space we just
- * allocated, and then reallocate it on next try. This will bloat
- * the PGresult a little bit but the space will be freed at PQclear,
- * so it doesn't seem worth trying to be smarter.
+ * allocated, and then reallocate it on next try. This will bloat the
+ * PGresult a little bit but the space will be freed at PQclear, so it
+ * doesn't seem worth trying to be smarter.
*/
if (result != conn->result)
PQclear(result);
@@ -553,10 +556,10 @@ failure:
static int
getParamDescriptions(PGconn *conn)
{
- PGresult *result;
- int nparams;
- int i;
-
+ PGresult *result;
+ int nparams;
+ int i;
+
result = PQmakeEmptyPGresult(conn, PGRES_COMMAND_OK);
if (!result)
goto failure;
@@ -580,8 +583,8 @@ getParamDescriptions(PGconn *conn)
/* get parameter info */
for (i = 0; i < nparams; i++)
{
- int typid;
-
+ int typid;
+
if (pqGetInt(&typid, 4, conn))
goto failure;
result->paramDescs[i].typid = typid;
@@ -910,7 +913,7 @@ reportErrorPosition(PQExpBuffer msg, const char *query, int loc, int encoding)
/*
* Each character might occupy multiple physical bytes in the string, and
* in some Far Eastern character sets it might take more than one screen
- * column as well. We compute the starting byte offset and starting
+ * column as well. We compute the starting byte offset and starting
* screen column of each logical character, and store these in qidx[] and
* scridx[] respectively.
*/
@@ -936,13 +939,13 @@ reportErrorPosition(PQExpBuffer msg, const char *query, int loc, int encoding)
mb_encoding = (pg_encoding_max_length(encoding) != 1);
/*
- * Within the scanning loop, cno is the current character's logical number,
- * qoffset is its offset in wquery, and scroffset is its starting logical
- * screen column (all indexed from 0). "loc" is the logical character
- * number of the error location. We scan to determine loc_line (the
- * 1-based line number containing loc) and ibeg/iend (first character
- * number and last+1 character number of the line containing loc).
- * Note that qidx[] and scridx[] are filled only as far as iend.
+ * Within the scanning loop, cno is the current character's logical
+ * number, qoffset is its offset in wquery, and scroffset is its starting
+ * logical screen column (all indexed from 0). "loc" is the logical
+ * character number of the error location. We scan to determine loc_line
+ * (the 1-based line number containing loc) and ibeg/iend (first character
+ * number and last+1 character number of the line containing loc). Note
+ * that qidx[] and scridx[] are filled only as far as iend.
*/
qoffset = 0;
scroffset = 0;
@@ -952,7 +955,7 @@ reportErrorPosition(PQExpBuffer msg, const char *query, int loc, int encoding)
for (cno = 0; wquery[qoffset] != '\0'; cno++)
{
- char ch = wquery[qoffset];
+ char ch = wquery[qoffset];
qidx[cno] = qoffset;
scridx[cno] = scroffset;
@@ -966,8 +969,8 @@ reportErrorPosition(PQExpBuffer msg, const char *query, int loc, int encoding)
wquery[qoffset] = ' ';
/*
- * If end-of-line, count lines and mark positions. Each \r or \n counts
- * as a line except when \r \n appear together.
+ * If end-of-line, count lines and mark positions. Each \r or \n
+ * counts as a line except when \r \n appear together.
*/
else if (ch == '\r' || ch == '\n')
{
@@ -992,7 +995,7 @@ reportErrorPosition(PQExpBuffer msg, const char *query, int loc, int encoding)
/* Advance */
if (mb_encoding)
{
- int w;
+ int w;
w = pg_encoding_dsplen(encoding, &wquery[qoffset]);
/* treat any non-tab control chars as width 1 */
@@ -1069,7 +1072,7 @@ reportErrorPosition(PQExpBuffer msg, const char *query, int loc, int encoding)
scroffset = 0;
for (; i < msg->len; i += pg_encoding_mblen(encoding, &msg->data[i]))
{
- int w = pg_encoding_dsplen(encoding, &msg->data[i]);
+ int w = pg_encoding_dsplen(encoding, &msg->data[i]);
if (w <= 0)
w = 1;
diff --git a/src/interfaces/libpq/fe-secure.c b/src/interfaces/libpq/fe-secure.c
index d886179f6d..859df9acf8 100644
--- a/src/interfaces/libpq/fe-secure.c
+++ b/src/interfaces/libpq/fe-secure.c
@@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/interfaces/libpq/fe-secure.c,v 1.87 2006/09/27 15:41:24 tgl Exp $
+ * $PostgreSQL: pgsql/src/interfaces/libpq/fe-secure.c,v 1.88 2006/10/04 00:30:13 momjian Exp $
*
* NOTES
* [ Most of these notes are wrong/obsolete, but perhaps not all ]
@@ -782,7 +782,7 @@ initialize_SSL(PGconn *conn)
if (stat(fnbuf, &buf) == 0)
{
X509_STORE *cvstore;
-
+
if (!SSL_CTX_load_verify_locations(SSL_context, fnbuf, NULL))
{
char *err = SSLerrmessage();
@@ -800,13 +800,13 @@ initialize_SSL(PGconn *conn)
if (X509_STORE_load_locations(cvstore, ROOT_CRL_FILE, NULL) != 0)
/* OpenSSL 0.96 does not support X509_V_FLAG_CRL_CHECK */
#ifdef X509_V_FLAG_CRL_CHECK
- X509_STORE_set_flags(cvstore,
- X509_V_FLAG_CRL_CHECK|X509_V_FLAG_CRL_CHECK_ALL);
+ X509_STORE_set_flags(cvstore,
+ X509_V_FLAG_CRL_CHECK | X509_V_FLAG_CRL_CHECK_ALL);
/* if not found, silently ignore; we do not require CRL */
#else
{
char *err = SSLerrmessage();
-
+
printfPQExpBuffer(&conn->errorMessage,
libpq_gettext("Installed SSL library does not support CRL certificates, file \"%s\"\n"),
fnbuf);
@@ -815,7 +815,7 @@ initialize_SSL(PGconn *conn)
}
#endif
}
-
+
SSL_CTX_set_verify(SSL_context, SSL_VERIFY_PEER, verify_cb);
}
}
diff --git a/src/interfaces/libpq/libpq-fe.h b/src/interfaces/libpq/libpq-fe.h
index 135791a4f1..daa29cc3b1 100644
--- a/src/interfaces/libpq/libpq-fe.h
+++ b/src/interfaces/libpq/libpq-fe.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/interfaces/libpq/libpq-fe.h,v 1.133 2006/09/07 15:37:25 momjian Exp $
+ * $PostgreSQL: pgsql/src/interfaces/libpq/libpq-fe.h,v 1.134 2006/10/04 00:30:13 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -410,8 +410,8 @@ extern int PQnparams(const PGresult *res);
extern Oid PQparamtype(const PGresult *res, int param_num);
/* Describe prepared statements and portals */
-extern PGresult *PQdescribePrepared(PGconn *conn, const char *stmt);
-extern PGresult *PQdescribePortal(PGconn *conn, const char *portal);
+extern PGresult *PQdescribePrepared(PGconn *conn, const char *stmt);
+extern PGresult *PQdescribePortal(PGconn *conn, const char *portal);
extern int PQsendDescribePrepared(PGconn *conn, const char *stmt);
extern int PQsendDescribePortal(PGconn *conn, const char *portal);
@@ -437,13 +437,14 @@ extern PGresult *PQmakeEmptyPGresult(PGconn *conn, ExecStatusType status);
/* Quoting strings before inclusion in queries. */
extern size_t PQescapeStringConn(PGconn *conn,
- char *to, const char *from, size_t length,
- int *error);
+ char *to, const char *from, size_t length,
+ int *error);
extern unsigned char *PQescapeByteaConn(PGconn *conn,
const unsigned char *from, size_t from_length,
size_t *to_length);
extern unsigned char *PQunescapeBytea(const unsigned char *strtext,
size_t *retbuflen);
+
/* These forms are deprecated! */
extern size_t PQescapeString(char *to, const char *from, size_t length);
extern unsigned char *PQescapeBytea(const unsigned char *from, size_t from_length,
diff --git a/src/interfaces/libpq/libpq-int.h b/src/interfaces/libpq/libpq-int.h
index e3532fbf6f..e69200f5af 100644
--- a/src/interfaces/libpq/libpq-int.h
+++ b/src/interfaces/libpq/libpq-int.h
@@ -12,7 +12,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/interfaces/libpq/libpq-int.h,v 1.115 2006/08/18 19:52:39 tgl Exp $
+ * $PostgreSQL: pgsql/src/interfaces/libpq/libpq-int.h,v 1.116 2006/10/04 00:30:13 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -285,7 +285,7 @@ struct pg_conn
/* Status indicators */
ConnStatusType status;
PGAsyncStatusType asyncStatus;
- PGTransactionStatusType xactStatus; /* never changes to ACTIVE */
+ PGTransactionStatusType xactStatus; /* never changes to ACTIVE */
PGQueryClass queryclass;
char *last_query; /* last SQL command, or NULL if unknown */
bool options_valid; /* true if OK to attempt connection */
diff --git a/src/interfaces/libpq/win32.c b/src/interfaces/libpq/win32.c
index 2867aba2d5..a4ec2ebb70 100644
--- a/src/interfaces/libpq/win32.c
+++ b/src/interfaces/libpq/win32.c
@@ -29,7 +29,7 @@
#include "win32.h"
-/* Declared here to avoid pulling in all includes, which causes name collissions */
+/* Declared here to avoid pulling in all includes, which causes name collissions */
#ifdef ENABLE_NLS
extern char *
libpq_gettext(const char *msgid)
diff --git a/src/pl/plperl/plperl.c b/src/pl/plperl/plperl.c
index 0906d3186a..d683e42cf5 100644
--- a/src/pl/plperl/plperl.c
+++ b/src/pl/plperl/plperl.c
@@ -1,7 +1,7 @@
/**********************************************************************
* plperl.c - perl as a procedural language for PostgreSQL
*
- * $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.118 2006/08/27 23:47:58 tgl Exp $
+ * $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.119 2006/10/04 00:30:13 momjian Exp $
*
**********************************************************************/
@@ -64,11 +64,11 @@ typedef struct plperl_proc_desc
typedef struct plperl_call_data
{
plperl_proc_desc *prodesc;
- FunctionCallInfo fcinfo;
- Tuplestorestate *tuple_store;
- TupleDesc ret_tdesc;
- AttInMetadata *attinmeta;
- MemoryContext tmp_cxt;
+ FunctionCallInfo fcinfo;
+ Tuplestorestate *tuple_store;
+ TupleDesc ret_tdesc;
+ AttInMetadata *attinmeta;
+ MemoryContext tmp_cxt;
} plperl_call_data;
/**********************************************************************
@@ -244,13 +244,13 @@ plperl_init_interp(void)
#ifdef WIN32
- /*
+ /*
* The perl library on startup does horrible things like call
- * setlocale(LC_ALL,""). We have protected against that on most
- * platforms by setting the environment appropriately. However, on
- * Windows, setlocale() does not consult the environment, so we need
- * to save the existing locale settings before perl has a chance to
- * mangle them and restore them after its dirty deeds are done.
+ * setlocale(LC_ALL,""). We have protected against that on most platforms
+ * by setting the environment appropriately. However, on Windows,
+ * setlocale() does not consult the environment, so we need to save the
+ * existing locale settings before perl has a chance to mangle them and
+ * restore them after its dirty deeds are done.
*
* MSDN ref:
* http://msdn.microsoft.com/library/en-us/vclib/html/_crt_locale.asp
@@ -259,26 +259,29 @@ plperl_init_interp(void)
* subsequent calls to the interpreter don't mess with the locale
* settings.
*
- * We restore them using Perl's POSIX::setlocale() function so that
- * Perl doesn't have a different idea of the locale from Postgres.
+ * We restore them using Perl's POSIX::setlocale() function so that Perl
+ * doesn't have a different idea of the locale from Postgres.
*
*/
- char *loc;
- char *save_collate, *save_ctype, *save_monetary, *save_numeric, *save_time;
- char buf[1024];
+ char *loc;
+ char *save_collate,
+ *save_ctype,
+ *save_monetary,
+ *save_numeric,
+ *save_time;
+ char buf[1024];
- loc = setlocale(LC_COLLATE,NULL);
+ loc = setlocale(LC_COLLATE, NULL);
save_collate = loc ? pstrdup(loc) : NULL;
- loc = setlocale(LC_CTYPE,NULL);
+ loc = setlocale(LC_CTYPE, NULL);
save_ctype = loc ? pstrdup(loc) : NULL;
- loc = setlocale(LC_MONETARY,NULL);
+ loc = setlocale(LC_MONETARY, NULL);
save_monetary = loc ? pstrdup(loc) : NULL;
- loc = setlocale(LC_NUMERIC,NULL);
+ loc = setlocale(LC_NUMERIC, NULL);
save_numeric = loc ? pstrdup(loc) : NULL;
- loc = setlocale(LC_TIME,NULL);
+ loc = setlocale(LC_TIME, NULL);
save_time = loc ? pstrdup(loc) : NULL;
-
#endif
plperl_interp = perl_alloc();
@@ -294,44 +297,43 @@ plperl_init_interp(void)
#ifdef WIN32
- eval_pv("use POSIX qw(locale_h);", TRUE); /* croak on failure */
+ eval_pv("use POSIX qw(locale_h);", TRUE); /* croak on failure */
if (save_collate != NULL)
{
- snprintf(buf, sizeof(buf),"setlocale(%s,'%s');",
- "LC_COLLATE",save_collate);
- eval_pv(buf,TRUE);
+ snprintf(buf, sizeof(buf), "setlocale(%s,'%s');",
+ "LC_COLLATE", save_collate);
+ eval_pv(buf, TRUE);
pfree(save_collate);
}
if (save_ctype != NULL)
{
- snprintf(buf, sizeof(buf),"setlocale(%s,'%s');",
- "LC_CTYPE",save_ctype);
- eval_pv(buf,TRUE);
+ snprintf(buf, sizeof(buf), "setlocale(%s,'%s');",
+ "LC_CTYPE", save_ctype);
+ eval_pv(buf, TRUE);
pfree(save_ctype);
}
if (save_monetary != NULL)
{
- snprintf(buf, sizeof(buf),"setlocale(%s,'%s');",
- "LC_MONETARY",save_monetary);
- eval_pv(buf,TRUE);
+ snprintf(buf, sizeof(buf), "setlocale(%s,'%s');",
+ "LC_MONETARY", save_monetary);
+ eval_pv(buf, TRUE);
pfree(save_monetary);
}
if (save_numeric != NULL)
{
- snprintf(buf, sizeof(buf),"setlocale(%s,'%s');",
- "LC_NUMERIC",save_numeric);
- eval_pv(buf,TRUE);
+ snprintf(buf, sizeof(buf), "setlocale(%s,'%s');",
+ "LC_NUMERIC", save_numeric);
+ eval_pv(buf, TRUE);
pfree(save_numeric);
}
if (save_time != NULL)
{
- snprintf(buf, sizeof(buf),"setlocale(%s,'%s');",
- "LC_TIME",save_time);
- eval_pv(buf,TRUE);
+ snprintf(buf, sizeof(buf), "setlocale(%s,'%s');",
+ "LC_TIME", save_time);
+ eval_pv(buf, TRUE);
pfree(save_time);
}
-
#endif
}
@@ -1011,8 +1013,8 @@ plperl_func_handler(PG_FUNCTION_ARGS)
SV *array_ret = NULL;
/*
- * Create the call_data beforing connecting to SPI, so that it is
- * not allocated in the SPI memory context
+ * Create the call_data beforing connecting to SPI, so that it is not
+ * allocated in the SPI memory context
*/
current_call_data = (plperl_call_data *) palloc0(sizeof(plperl_call_data));
current_call_data->fcinfo = fcinfo;
@@ -1160,8 +1162,8 @@ plperl_trigger_handler(PG_FUNCTION_ARGS)
HV *hvTD;
/*
- * Create the call_data beforing connecting to SPI, so that it is
- * not allocated in the SPI memory context
+ * Create the call_data beforing connecting to SPI, so that it is not
+ * allocated in the SPI memory context
*/
current_call_data = (plperl_call_data *) palloc0(sizeof(plperl_call_data));
current_call_data->fcinfo = fcinfo;
@@ -1285,7 +1287,7 @@ compile_plperl_function(Oid fn_oid, bool is_trigger)
{
bool uptodate;
- prodesc = INT2PTR( plperl_proc_desc *, SvUV(*svp));
+ prodesc = INT2PTR(plperl_proc_desc *, SvUV(*svp));
/************************************************************
* If it's present, must check whether it's still up to date.
@@ -1483,7 +1485,7 @@ compile_plperl_function(Oid fn_oid, bool is_trigger)
}
hv_store(plperl_proc_hash, internal_proname, proname_len,
- newSVuv( PTR2UV( prodesc)), 0);
+ newSVuv(PTR2UV(prodesc)), 0);
}
ReleaseSysCache(procTup);
@@ -1690,14 +1692,14 @@ plperl_return_next(SV *sv)
if (!current_call_data->ret_tdesc)
{
- TupleDesc tupdesc;
+ TupleDesc tupdesc;
Assert(!current_call_data->tuple_store);
Assert(!current_call_data->attinmeta);
/*
- * This is the first call to return_next in the current
- * PL/Perl function call, so memoize some lookups
+ * This is the first call to return_next in the current PL/Perl
+ * function call, so memoize some lookups
*/
if (prodesc->fn_retistuple)
(void) get_call_result_type(fcinfo, NULL, &tupdesc);
@@ -1720,14 +1722,13 @@ plperl_return_next(SV *sv)
}
MemoryContextSwitchTo(old_cxt);
- }
+ }
/*
* Producing the tuple we want to return requires making plenty of
- * palloc() allocations that are not cleaned up. Since this
- * function can be called many times before the current memory
- * context is reset, we need to do those allocations in a
- * temporary context.
+ * palloc() allocations that are not cleaned up. Since this function can
+ * be called many times before the current memory context is reset, we
+ * need to do those allocations in a temporary context.
*/
if (!current_call_data->tmp_cxt)
{
@@ -1801,15 +1802,15 @@ plperl_spi_query(char *query)
/* Create a cursor for the query */
plan = SPI_prepare(query, 0, NULL);
- if ( plan == NULL)
+ if (plan == NULL)
elog(ERROR, "SPI_prepare() failed:%s",
- SPI_result_code_string(SPI_result));
+ SPI_result_code_string(SPI_result));
portal = SPI_cursor_open(NULL, plan, NULL, NULL, false);
- SPI_freeplan( plan);
- if ( portal == NULL)
+ SPI_freeplan(plan);
+ if (portal == NULL)
elog(ERROR, "SPI_cursor_open() failed:%s",
- SPI_result_code_string(SPI_result));
+ SPI_result_code_string(SPI_result));
cursor = newSVpv(portal->name, 0);
/* Commit the inner transaction, return to outer xact context */
@@ -1942,13 +1943,14 @@ plperl_spi_fetchrow(char *cursor)
void
plperl_spi_cursor_close(char *cursor)
{
- Portal p = SPI_cursor_find(cursor);
+ Portal p = SPI_cursor_find(cursor);
+
if (p)
SPI_cursor_close(p);
}
SV *
-plperl_spi_prepare(char* query, int argc, SV ** argv)
+plperl_spi_prepare(char *query, int argc, SV **argv)
{
plperl_query_desc *qdesc;
void *plan;
@@ -1965,11 +1967,11 @@ plperl_spi_prepare(char* query, int argc, SV ** argv)
************************************************************/
qdesc = (plperl_query_desc *) malloc(sizeof(plperl_query_desc));
MemSet(qdesc, 0, sizeof(plperl_query_desc));
- snprintf(qdesc-> qname, sizeof(qdesc-> qname), "%lx", (long) qdesc);
- qdesc-> nargs = argc;
- qdesc-> argtypes = (Oid *) malloc(argc * sizeof(Oid));
- qdesc-> arginfuncs = (FmgrInfo *) malloc(argc * sizeof(FmgrInfo));
- qdesc-> argtypioparams = (Oid *) malloc(argc * sizeof(Oid));
+ snprintf(qdesc->qname, sizeof(qdesc->qname), "%lx", (long) qdesc);
+ qdesc->nargs = argc;
+ qdesc->argtypes = (Oid *) malloc(argc * sizeof(Oid));
+ qdesc->arginfuncs = (FmgrInfo *) malloc(argc * sizeof(FmgrInfo));
+ qdesc->argtypioparams = (Oid *) malloc(argc * sizeof(Oid));
PG_TRY();
{
@@ -2000,7 +2002,7 @@ plperl_spi_prepare(char* query, int argc, SV ** argv)
if (plan == NULL)
elog(ERROR, "SPI_prepare() failed:%s",
- SPI_result_code_string(SPI_result));
+ SPI_result_code_string(SPI_result));
/************************************************************
* Save the plan into permanent memory (right now it's in the
@@ -2008,8 +2010,8 @@ plperl_spi_prepare(char* query, int argc, SV ** argv)
************************************************************/
qdesc->plan = SPI_saveplan(plan);
if (qdesc->plan == NULL)
- elog(ERROR, "SPI_saveplan() failed: %s",
- SPI_result_code_string(SPI_result));
+ elog(ERROR, "SPI_saveplan() failed: %s",
+ SPI_result_code_string(SPI_result));
/* Release the procCxt copy to avoid within-function memory leak */
SPI_freeplan(plan);
@@ -2018,19 +2020,20 @@ plperl_spi_prepare(char* query, int argc, SV ** argv)
ReleaseCurrentSubTransaction();
MemoryContextSwitchTo(oldcontext);
CurrentResourceOwner = oldowner;
+
/*
- * AtEOSubXact_SPI() should not have popped any SPI context,
- * but just in case it did, make sure we remain connected.
+ * AtEOSubXact_SPI() should not have popped any SPI context, but just
+ * in case it did, make sure we remain connected.
*/
SPI_restore_connection();
}
PG_CATCH();
{
ErrorData *edata;
-
- free(qdesc-> argtypes);
- free(qdesc-> arginfuncs);
- free(qdesc-> argtypioparams);
+
+ free(qdesc->argtypes);
+ free(qdesc->arginfuncs);
+ free(qdesc->argtypioparams);
free(qdesc);
/* Save error info */
@@ -2044,9 +2047,9 @@ plperl_spi_prepare(char* query, int argc, SV ** argv)
CurrentResourceOwner = oldowner;
/*
- * If AtEOSubXact_SPI() popped any SPI context of the subxact,
- * it will have left us in a disconnected state. We need this
- * hack to return to connected state.
+ * If AtEOSubXact_SPI() popped any SPI context of the subxact, it will
+ * have left us in a disconnected state. We need this hack to return
+ * to connected state.
*/
SPI_restore_connection();
@@ -2062,24 +2065,26 @@ plperl_spi_prepare(char* query, int argc, SV ** argv)
* Insert a hashtable entry for the plan and return
* the key to the caller.
************************************************************/
- hv_store( plperl_query_hash, qdesc->qname, strlen(qdesc->qname), newSVuv( PTR2UV( qdesc)), 0);
+ hv_store(plperl_query_hash, qdesc->qname, strlen(qdesc->qname), newSVuv(PTR2UV(qdesc)), 0);
- return newSVpv( qdesc->qname, strlen(qdesc->qname));
-}
+ return newSVpv(qdesc->qname, strlen(qdesc->qname));
+}
HV *
-plperl_spi_exec_prepared(char* query, HV * attr, int argc, SV ** argv)
+plperl_spi_exec_prepared(char *query, HV *attr, int argc, SV **argv)
{
HV *ret_hv;
- SV **sv;
- int i, limit, spi_rv;
- char * nulls;
+ SV **sv;
+ int i,
+ limit,
+ spi_rv;
+ char *nulls;
Datum *argvalues;
plperl_query_desc *qdesc;
/*
- * Execute the query inside a sub-transaction, so we can cope with
- * errors sanely
+ * Execute the query inside a sub-transaction, so we can cope with errors
+ * sanely
*/
MemoryContext oldcontext = CurrentMemoryContext;
ResourceOwner oldowner = CurrentResourceOwner;
@@ -2094,54 +2099,54 @@ plperl_spi_exec_prepared(char* query, HV * attr, int argc, SV ** argv)
* Fetch the saved plan descriptor, see if it's o.k.
************************************************************/
sv = hv_fetch(plperl_query_hash, query, strlen(query), 0);
- if ( sv == NULL)
+ if (sv == NULL)
elog(ERROR, "spi_exec_prepared: Invalid prepared query passed");
- if ( *sv == NULL || !SvOK( *sv))
+ if (*sv == NULL || !SvOK(*sv))
elog(ERROR, "spi_exec_prepared: panic - plperl_query_hash value corrupted");
- qdesc = INT2PTR( plperl_query_desc *, SvUV(*sv));
- if ( qdesc == NULL)
+ qdesc = INT2PTR(plperl_query_desc *, SvUV(*sv));
+ if (qdesc == NULL)
elog(ERROR, "spi_exec_prepared: panic - plperl_query_hash value vanished");
- if ( qdesc-> nargs != argc)
- elog(ERROR, "spi_exec_prepared: expected %d argument(s), %d passed",
- qdesc-> nargs, argc);
-
+ if (qdesc->nargs != argc)
+ elog(ERROR, "spi_exec_prepared: expected %d argument(s), %d passed",
+ qdesc->nargs, argc);
+
/************************************************************
* Parse eventual attributes
************************************************************/
limit = 0;
- if ( attr != NULL)
+ if (attr != NULL)
{
- sv = hv_fetch( attr, "limit", 5, 0);
- if ( *sv && SvIOK( *sv))
- limit = SvIV( *sv);
+ sv = hv_fetch(attr, "limit", 5, 0);
+ if (*sv && SvIOK(*sv))
+ limit = SvIV(*sv);
}
/************************************************************
* Set up arguments
************************************************************/
- if (argc > 0)
+ if (argc > 0)
{
nulls = (char *) palloc(argc);
argvalues = (Datum *) palloc(argc * sizeof(Datum));
- }
- else
+ }
+ else
{
nulls = NULL;
argvalues = NULL;
}
- for (i = 0; i < argc; i++)
+ for (i = 0; i < argc; i++)
{
- if (SvTYPE(argv[i]) != SVt_NULL)
+ if (SvTYPE(argv[i]) != SVt_NULL)
{
argvalues[i] = InputFunctionCall(&qdesc->arginfuncs[i],
SvPV(argv[i], PL_na),
qdesc->argtypioparams[i],
-1);
nulls[i] = ' ';
- }
- else
+ }
+ else
{
argvalues[i] = InputFunctionCall(&qdesc->arginfuncs[i],
NULL,
@@ -2154,23 +2159,24 @@ plperl_spi_exec_prepared(char* query, HV * attr, int argc, SV ** argv)
/************************************************************
* go
************************************************************/
- spi_rv = SPI_execute_plan(qdesc-> plan, argvalues, nulls,
+ spi_rv = SPI_execute_plan(qdesc->plan, argvalues, nulls,
current_call_data->prodesc->fn_readonly, limit);
ret_hv = plperl_spi_execute_fetch_result(SPI_tuptable, SPI_processed,
spi_rv);
- if ( argc > 0)
+ if (argc > 0)
{
- pfree( argvalues);
- pfree( nulls);
+ pfree(argvalues);
+ pfree(nulls);
}
/* Commit the inner transaction, return to outer xact context */
ReleaseCurrentSubTransaction();
MemoryContextSwitchTo(oldcontext);
CurrentResourceOwner = oldowner;
+
/*
- * AtEOSubXact_SPI() should not have popped any SPI context,
- * but just in case it did, make sure we remain connected.
+ * AtEOSubXact_SPI() should not have popped any SPI context, but just
+ * in case it did, make sure we remain connected.
*/
SPI_restore_connection();
}
@@ -2189,9 +2195,9 @@ plperl_spi_exec_prepared(char* query, HV * attr, int argc, SV ** argv)
CurrentResourceOwner = oldowner;
/*
- * If AtEOSubXact_SPI() popped any SPI context of the subxact,
- * it will have left us in a disconnected state. We need this
- * hack to return to connected state.
+ * If AtEOSubXact_SPI() popped any SPI context of the subxact, it will
+ * have left us in a disconnected state. We need this hack to return
+ * to connected state.
*/
SPI_restore_connection();
@@ -2207,19 +2213,19 @@ plperl_spi_exec_prepared(char* query, HV * attr, int argc, SV ** argv)
}
SV *
-plperl_spi_query_prepared(char* query, int argc, SV ** argv)
+plperl_spi_query_prepared(char *query, int argc, SV **argv)
{
- SV **sv;
- int i;
- char * nulls;
+ SV **sv;
+ int i;
+ char *nulls;
Datum *argvalues;
plperl_query_desc *qdesc;
- SV *cursor;
- Portal portal = NULL;
+ SV *cursor;
+ Portal portal = NULL;
/*
- * Execute the query inside a sub-transaction, so we can cope with
- * errors sanely
+ * Execute the query inside a sub-transaction, so we can cope with errors
+ * sanely
*/
MemoryContext oldcontext = CurrentMemoryContext;
ResourceOwner oldowner = CurrentResourceOwner;
@@ -2234,44 +2240,44 @@ plperl_spi_query_prepared(char* query, int argc, SV ** argv)
* Fetch the saved plan descriptor, see if it's o.k.
************************************************************/
sv = hv_fetch(plperl_query_hash, query, strlen(query), 0);
- if ( sv == NULL)
+ if (sv == NULL)
elog(ERROR, "spi_query_prepared: Invalid prepared query passed");
- if ( *sv == NULL || !SvOK( *sv))
+ if (*sv == NULL || !SvOK(*sv))
elog(ERROR, "spi_query_prepared: panic - plperl_query_hash value corrupted");
- qdesc = INT2PTR( plperl_query_desc *, SvUV(*sv));
- if ( qdesc == NULL)
+ qdesc = INT2PTR(plperl_query_desc *, SvUV(*sv));
+ if (qdesc == NULL)
elog(ERROR, "spi_query_prepared: panic - plperl_query_hash value vanished");
- if ( qdesc-> nargs != argc)
- elog(ERROR, "spi_query_prepared: expected %d argument(s), %d passed",
- qdesc-> nargs, argc);
-
+ if (qdesc->nargs != argc)
+ elog(ERROR, "spi_query_prepared: expected %d argument(s), %d passed",
+ qdesc->nargs, argc);
+
/************************************************************
* Set up arguments
************************************************************/
- if (argc > 0)
+ if (argc > 0)
{
nulls = (char *) palloc(argc);
argvalues = (Datum *) palloc(argc * sizeof(Datum));
- }
- else
+ }
+ else
{
nulls = NULL;
argvalues = NULL;
}
- for (i = 0; i < argc; i++)
+ for (i = 0; i < argc; i++)
{
- if (SvTYPE(argv[i]) != SVt_NULL)
+ if (SvTYPE(argv[i]) != SVt_NULL)
{
argvalues[i] = InputFunctionCall(&qdesc->arginfuncs[i],
SvPV(argv[i], PL_na),
qdesc->argtypioparams[i],
-1);
nulls[i] = ' ';
- }
- else
+ }
+ else
{
argvalues[i] = InputFunctionCall(&qdesc->arginfuncs[i],
NULL,
@@ -2284,16 +2290,16 @@ plperl_spi_query_prepared(char* query, int argc, SV ** argv)
/************************************************************
* go
************************************************************/
- portal = SPI_cursor_open(NULL, qdesc-> plan, argvalues, nulls,
- current_call_data->prodesc->fn_readonly);
- if ( argc > 0)
+ portal = SPI_cursor_open(NULL, qdesc->plan, argvalues, nulls,
+ current_call_data->prodesc->fn_readonly);
+ if (argc > 0)
{
- pfree( argvalues);
- pfree( nulls);
+ pfree(argvalues);
+ pfree(nulls);
}
- if ( portal == NULL)
+ if (portal == NULL)
elog(ERROR, "SPI_cursor_open() failed:%s",
- SPI_result_code_string(SPI_result));
+ SPI_result_code_string(SPI_result));
cursor = newSVpv(portal->name, 0);
@@ -2301,9 +2307,10 @@ plperl_spi_query_prepared(char* query, int argc, SV ** argv)
ReleaseCurrentSubTransaction();
MemoryContextSwitchTo(oldcontext);
CurrentResourceOwner = oldowner;
+
/*
- * AtEOSubXact_SPI() should not have popped any SPI context,
- * but just in case it did, make sure we remain connected.
+ * AtEOSubXact_SPI() should not have popped any SPI context, but just
+ * in case it did, make sure we remain connected.
*/
SPI_restore_connection();
}
@@ -2322,9 +2329,9 @@ plperl_spi_query_prepared(char* query, int argc, SV ** argv)
CurrentResourceOwner = oldowner;
/*
- * If AtEOSubXact_SPI() popped any SPI context of the subxact,
- * it will have left us in a disconnected state. We need this
- * hack to return to connected state.
+ * If AtEOSubXact_SPI() popped any SPI context of the subxact, it will
+ * have left us in a disconnected state. We need this hack to return
+ * to connected state.
*/
SPI_restore_connection();
@@ -2342,29 +2349,30 @@ plperl_spi_query_prepared(char* query, int argc, SV ** argv)
void
plperl_spi_freeplan(char *query)
{
- SV ** sv;
- void * plan;
+ SV **sv;
+ void *plan;
plperl_query_desc *qdesc;
sv = hv_fetch(plperl_query_hash, query, strlen(query), 0);
- if ( sv == NULL)
+ if (sv == NULL)
elog(ERROR, "spi_exec_freeplan: Invalid prepared query passed");
- if ( *sv == NULL || !SvOK( *sv))
+ if (*sv == NULL || !SvOK(*sv))
elog(ERROR, "spi_exec_freeplan: panic - plperl_query_hash value corrupted");
- qdesc = INT2PTR( plperl_query_desc *, SvUV(*sv));
- if ( qdesc == NULL)
+ qdesc = INT2PTR(plperl_query_desc *, SvUV(*sv));
+ if (qdesc == NULL)
elog(ERROR, "spi_exec_freeplan: panic - plperl_query_hash value vanished");
/*
- * free all memory before SPI_freeplan, so if it dies, nothing will be left over
- */
+ * free all memory before SPI_freeplan, so if it dies, nothing will be
+ * left over
+ */
hv_delete(plperl_query_hash, query, strlen(query), G_DISCARD);
- plan = qdesc-> plan;
- free(qdesc-> argtypes);
- free(qdesc-> arginfuncs);
- free(qdesc-> argtypioparams);
+ plan = qdesc->plan;
+ free(qdesc->argtypes);
+ free(qdesc->arginfuncs);
+ free(qdesc->argtypioparams);
free(qdesc);
- SPI_freeplan( plan);
+ SPI_freeplan(plan);
}
diff --git a/src/pl/plperl/plperl.h b/src/pl/plperl/plperl.h
index 53c7b164fa..8feccb45cd 100644
--- a/src/pl/plperl/plperl.h
+++ b/src/pl/plperl/plperl.h
@@ -1,14 +1,14 @@
/*-------------------------------------------------------------------------
*
* plperl.h
- * Common include file for PL/Perl files
+ * Common include file for PL/Perl files
*
* This should be included _AFTER_ postgres.h and system include files
*
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1995, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/pl/plperl/plperl.h,v 1.4 2006/03/05 16:40:51 adunstan Exp $
+ * $PostgreSQL: pgsql/src/pl/plperl/plperl.h,v 1.5 2006/10/04 00:30:13 momjian Exp $
*/
#ifndef PL_PERL_H
@@ -17,14 +17,14 @@
/* stop perl headers from hijacking stdio and other stuff on Windows */
#ifdef WIN32
#define WIN32IO_IS_STDIO
-/*
+/*
* isnan is defined in both the perl and mingw headers. We don't use it,
* so this just clears up the compile warning.
*/
#ifdef isnan
#undef isnan
#endif
-#endif
+#endif
/* required for perl API */
#include "EXTERN.h"
@@ -51,12 +51,12 @@ HV *plperl_spi_exec(char *, int);
void plperl_return_next(SV *);
SV *plperl_spi_query(char *);
SV *plperl_spi_fetchrow(char *);
-SV *plperl_spi_prepare(char *, int, SV **);
-HV *plperl_spi_exec_prepared(char *, HV *, int, SV **);
-SV *plperl_spi_query_prepared(char *, int, SV **);
-void plperl_spi_freeplan(char *);
-void plperl_spi_cursor_close(char *);
+SV *plperl_spi_prepare(char *, int, SV **);
+HV *plperl_spi_exec_prepared(char *, HV *, int, SV **);
+SV *plperl_spi_query_prepared(char *, int, SV **);
+void plperl_spi_freeplan(char *);
+void plperl_spi_cursor_close(char *);
-#endif /* PL_PERL_H */
+#endif /* PL_PERL_H */
diff --git a/src/pl/plpgsql/src/pl_comp.c b/src/pl/plpgsql/src/pl_comp.c
index 6670ac6571..654e8ccf43 100644
--- a/src/pl/plpgsql/src/pl_comp.c
+++ b/src/pl/plpgsql/src/pl_comp.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.107 2006/07/11 17:26:59 momjian Exp $
+ * $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.108 2006/10/04 00:30:13 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -587,14 +587,14 @@ do_compile(FunctionCallInfo fcinfo,
true);
function->tg_table_name_varno = var->dno;
-
+
/* add variable tg_table_schema */
var = plpgsql_build_variable("tg_table_schema", 0,
plpgsql_build_datatype(NAMEOID, -1),
true);
function->tg_table_schema_varno = var->dno;
-
+
/* Add the variable tg_nargs */
var = plpgsql_build_variable("tg_nargs", 0,
plpgsql_build_datatype(INT4OID, -1),
diff --git a/src/pl/plpgsql/src/pl_exec.c b/src/pl/plpgsql/src/pl_exec.c
index c5e036ccb7..c28c2c6c8f 100644
--- a/src/pl/plpgsql/src/pl_exec.c
+++ b/src/pl/plpgsql/src/pl_exec.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.179 2006/09/22 21:39:58 tgl Exp $
+ * $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.180 2006/10/04 00:30:13 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -257,7 +257,7 @@ plpgsql_exec_function(PLpgSQL_function *func, FunctionCallInfo fcinfo)
* Let the instrumentation plugin peek at this function
*/
if (*plugin_ptr && (*plugin_ptr)->func_beg)
- ((*plugin_ptr)->func_beg)(&estate, func);
+ ((*plugin_ptr)->func_beg) (&estate, func);
/*
* Now call the toplevel block of statements
@@ -325,9 +325,9 @@ plpgsql_exec_function(PLpgSQL_function *func, FunctionCallInfo fcinfo)
if (estate.retistuple)
{
/*
- * We have to check that the returned tuple actually matches
- * the expected result type. XXX would be better to cache the
- * tupdesc instead of repeating get_call_result_type()
+ * We have to check that the returned tuple actually matches the
+ * expected result type. XXX would be better to cache the tupdesc
+ * instead of repeating get_call_result_type()
*/
TupleDesc tupdesc;
@@ -342,12 +342,13 @@ plpgsql_exec_function(PLpgSQL_function *func, FunctionCallInfo fcinfo)
errmsg("returned record type does not match expected record type")));
break;
case TYPEFUNC_RECORD:
+
/*
* Failed to determine actual type of RECORD. We could
- * raise an error here, but what this means in practice
- * is that the caller is expecting any old generic
- * rowtype, so we don't really need to be restrictive.
- * Pass back the generated result type, instead.
+ * raise an error here, but what this means in practice is
+ * that the caller is expecting any old generic rowtype,
+ * so we don't really need to be restrictive. Pass back
+ * the generated result type, instead.
*/
tupdesc = estate.rettupdesc;
if (tupdesc == NULL) /* shouldn't happen */
@@ -360,8 +361,8 @@ plpgsql_exec_function(PLpgSQL_function *func, FunctionCallInfo fcinfo)
}
/*
- * Copy tuple to upper executor memory, as a tuple Datum.
- * Make sure it is labeled with the caller-supplied tuple type.
+ * Copy tuple to upper executor memory, as a tuple Datum. Make
+ * sure it is labeled with the caller-supplied tuple type.
*/
estate.retval =
PointerGetDatum(SPI_returntuple((HeapTuple) (estate.retval),
@@ -398,7 +399,7 @@ plpgsql_exec_function(PLpgSQL_function *func, FunctionCallInfo fcinfo)
* Let the instrumentation plugin peek at this function
*/
if (*plugin_ptr && (*plugin_ptr)->func_end)
- ((*plugin_ptr)->func_end)(&estate, func);
+ ((*plugin_ptr)->func_end) (&estate, func);
/* Clean up any leftover temporary memory */
FreeExprContext(estate.eval_econtext);
@@ -561,9 +562,9 @@ plpgsql_exec_trigger(PLpgSQL_function *func,
var = (PLpgSQL_var *) (estate.datums[func->tg_table_schema_varno]);
var->value = DirectFunctionCall1(namein,
CStringGetDatum(
- get_namespace_name(
- RelationGetNamespace(
- trigdata->tg_relation))));
+ get_namespace_name(
+ RelationGetNamespace(
+ trigdata->tg_relation))));
var->isnull = false;
var->freeval = true;
@@ -597,7 +598,7 @@ plpgsql_exec_trigger(PLpgSQL_function *func,
* Let the instrumentation plugin peek at this function
*/
if (*plugin_ptr && (*plugin_ptr)->func_beg)
- ((*plugin_ptr)->func_beg)(&estate, func);
+ ((*plugin_ptr)->func_beg) (&estate, func);
/*
* Now call the toplevel block of statements
@@ -656,7 +657,7 @@ plpgsql_exec_trigger(PLpgSQL_function *func,
* Let the instrumentation plugin peek at this function
*/
if (*plugin_ptr && (*plugin_ptr)->func_end)
- ((*plugin_ptr)->func_end)(&estate, func);
+ ((*plugin_ptr)->func_end) (&estate, func);
/* Clean up any leftover temporary memory */
FreeExprContext(estate.eval_econtext);
@@ -1064,7 +1065,7 @@ exec_stmt(PLpgSQL_execstate *estate, PLpgSQL_stmt *stmt)
/* Let the plugin know that we are about to execute this statement */
if (*plugin_ptr && (*plugin_ptr)->stmt_beg)
- ((*plugin_ptr)->stmt_beg)(estate, stmt);
+ ((*plugin_ptr)->stmt_beg) (estate, stmt);
CHECK_FOR_INTERRUPTS();
@@ -1153,7 +1154,7 @@ exec_stmt(PLpgSQL_execstate *estate, PLpgSQL_stmt *stmt)
/* Let the plugin know that we have finished executing this statement */
if (*plugin_ptr && (*plugin_ptr)->stmt_end)
- ((*plugin_ptr)->stmt_end)(estate, stmt);
+ ((*plugin_ptr)->stmt_end) (estate, stmt);
estate->err_stmt = save_estmt;
@@ -1439,7 +1440,7 @@ exec_stmt_fori(PLpgSQL_execstate *estate, PLpgSQL_stmt_fori *stmt)
exec_eval_cleanup(estate);
/*
- * Get the by value
+ * Get the by value
*/
by_value = exec_eval_expr(estate, stmt->by, &isnull, &valtype);
by_value = exec_cast_value(by_value, valtype, var->datatype->typoid,
@@ -2158,10 +2159,10 @@ plpgsql_estate_setup(PLpgSQL_execstate *estate,
estate->eval_econtext = CreateExprContext(simple_eval_estate);
/*
- * Let the plugin see this function before we initialize any
- * local PL/pgSQL variables - note that we also give the plugin
- * a few function pointers so it can call back into PL/pgSQL
- * for doing things like variable assignments and stack traces
+ * Let the plugin see this function before we initialize any local
+ * PL/pgSQL variables - note that we also give the plugin a few function
+ * pointers so it can call back into PL/pgSQL for doing things like
+ * variable assignments and stack traces
*/
if (*plugin_ptr)
{
@@ -2169,7 +2170,7 @@ plpgsql_estate_setup(PLpgSQL_execstate *estate,
(*plugin_ptr)->assign_expr = exec_assign_expr;
if ((*plugin_ptr)->func_setup)
- ((*plugin_ptr)->func_setup)(estate, func);
+ ((*plugin_ptr)->func_setup) (estate, func);
}
}
@@ -2278,8 +2279,8 @@ exec_stmt_execsql(PLpgSQL_execstate *estate,
PLpgSQL_expr *expr = stmt->sqlstmt;
/*
- * On the first call for this statement generate the plan, and
- * detect whether the statement is INSERT/UPDATE/DELETE
+ * On the first call for this statement generate the plan, and detect
+ * whether the statement is INSERT/UPDATE/DELETE
*/
if (expr->plan == NULL)
{
@@ -2295,7 +2296,7 @@ exec_stmt_execsql(PLpgSQL_execstate *estate,
foreach(l2, (List *) lfirst(l))
{
- Query *q = (Query *) lfirst(l2);
+ Query *q = (Query *) lfirst(l2);
Assert(IsA(q, Query));
if (q->canSetTag)
@@ -2330,15 +2331,15 @@ exec_stmt_execsql(PLpgSQL_execstate *estate,
}
/*
- * If we have INTO, then we only need one row back ... but if we have
- * INTO STRICT, ask for two rows, so that we can verify the statement
- * returns only one. INSERT/UPDATE/DELETE are always treated strictly.
- * Without INTO, just run the statement to completion (tcount = 0).
+ * If we have INTO, then we only need one row back ... but if we have INTO
+ * STRICT, ask for two rows, so that we can verify the statement returns
+ * only one. INSERT/UPDATE/DELETE are always treated strictly. Without
+ * INTO, just run the statement to completion (tcount = 0).
*
- * We could just ask for two rows always when using INTO, but there
- * are some cases where demanding the extra row costs significant time,
- * eg by forcing completion of a sequential scan. So don't do it unless
- * we need to enforce strictness.
+ * We could just ask for two rows always when using INTO, but there are
+ * some cases where demanding the extra row costs significant time, eg by
+ * forcing completion of a sequential scan. So don't do it unless we need
+ * to enforce strictness.
*/
if (stmt->into)
{
@@ -2358,7 +2359,7 @@ exec_stmt_execsql(PLpgSQL_execstate *estate,
/*
* Check for error, and set FOUND if appropriate (for historical reasons
- * we set FOUND only for certain query types). Also Assert that we
+ * we set FOUND only for certain query types). Also Assert that we
* identified the statement type the same as SPI did.
*/
switch (rc)
@@ -2404,7 +2405,7 @@ exec_stmt_execsql(PLpgSQL_execstate *estate,
if (tuptab == NULL)
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
- errmsg("INTO used with a command that cannot return data")));
+ errmsg("INTO used with a command that cannot return data")));
/* Determine if we assign to a record or a row */
if (stmt->rec != NULL)
@@ -2415,9 +2416,9 @@ exec_stmt_execsql(PLpgSQL_execstate *estate,
elog(ERROR, "unsupported target");
/*
- * If SELECT ... INTO specified STRICT, and the query didn't
- * find exactly one row, throw an error. If STRICT was not specified,
- * then allow the query to find any number of rows.
+ * If SELECT ... INTO specified STRICT, and the query didn't find
+ * exactly one row, throw an error. If STRICT was not specified, then
+ * allow the query to find any number of rows.
*/
if (n == 0)
{
@@ -2474,8 +2475,8 @@ exec_stmt_dynexecute(PLpgSQL_execstate *estate,
int exec_res;
/*
- * First we evaluate the string expression after the EXECUTE keyword.
- * Its result is the querystring we have to execute.
+ * First we evaluate the string expression after the EXECUTE keyword. Its
+ * result is the querystring we have to execute.
*/
query = exec_eval_expr(estate, stmt->query, &isnull, &restype);
if (isnull)
@@ -2575,7 +2576,7 @@ exec_stmt_dynexecute(PLpgSQL_execstate *estate,
if (tuptab == NULL)
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
- errmsg("INTO used with a command that cannot return data")));
+ errmsg("INTO used with a command that cannot return data")));
/* Determine if we assign to a record or a row */
if (stmt->rec != NULL)
@@ -2586,9 +2587,9 @@ exec_stmt_dynexecute(PLpgSQL_execstate *estate,
elog(ERROR, "unsupported target");
/*
- * If SELECT ... INTO specified STRICT, and the query didn't
- * find exactly one row, throw an error. If STRICT was not specified,
- * then allow the query to find any number of rows.
+ * If SELECT ... INTO specified STRICT, and the query didn't find
+ * exactly one row, throw an error. If STRICT was not specified, then
+ * allow the query to find any number of rows.
*/
if (n == 0)
{
@@ -3951,7 +3952,7 @@ exec_eval_simple_expr(PLpgSQL_execstate *estate,
paramLI = (ParamListInfo)
MemoryContextAlloc(econtext->ecxt_per_tuple_memory,
sizeof(ParamListInfoData) +
- (expr->nparams - 1) * sizeof(ParamExternData));
+ (expr->nparams - 1) *sizeof(ParamExternData));
paramLI->numParams = expr->nparams;
for (i = 0; i < expr->nparams; i++)
@@ -4462,7 +4463,7 @@ exec_simple_check_node(Node *node)
case T_RowCompareExpr:
{
- RowCompareExpr *expr = (RowCompareExpr *) node;
+ RowCompareExpr *expr = (RowCompareExpr *) node;
if (!exec_simple_check_node((Node *) expr->largs))
return FALSE;
diff --git a/src/pl/plpgsql/src/pl_handler.c b/src/pl/plpgsql/src/pl_handler.c
index a0f2cb4655..5f08107f91 100644
--- a/src/pl/plpgsql/src/pl_handler.c
+++ b/src/pl/plpgsql/src/pl_handler.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_handler.c,v 1.31 2006/08/15 19:01:17 tgl Exp $
+ * $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_handler.c,v 1.32 2006/10/04 00:30:13 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -162,7 +162,7 @@ plpgsql_validator(PG_FUNCTION_ARGS)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("plpgsql functions cannot take type %s",
- format_type_be(argtypes[i]))));
+ format_type_be(argtypes[i]))));
}
}
diff --git a/src/pl/plpgsql/src/plpgsql.h b/src/pl/plpgsql/src/plpgsql.h
index 206f9b9875..051dd9e3c4 100644
--- a/src/pl/plpgsql/src/plpgsql.h
+++ b/src/pl/plpgsql/src/plpgsql.h
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/pl/plpgsql/src/plpgsql.h,v 1.80 2006/08/15 19:01:17 tgl Exp $
+ * $PostgreSQL: pgsql/src/pl/plpgsql/src/plpgsql.h,v 1.81 2006/10/04 00:30:14 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -178,6 +178,7 @@ typedef struct PLpgSQL_expr
/* fields for "simple expression" fast-path execution: */
Expr *expr_simple_expr; /* NULL means not a simple expr */
Oid expr_simple_type;
+
/*
* if expr is simple AND in use in current xact, expr_simple_state is
* valid. Test validity by seeing if expr_simple_xid matches current XID.
@@ -570,8 +571,8 @@ typedef struct PLpgSQL_function
int tg_op_varno;
int tg_relid_varno;
int tg_relname_varno;
- int tg_table_name_varno;
- int tg_table_schema_varno;
+ int tg_table_name_varno;
+ int tg_table_schema_varno;
int tg_nargs_varno;
int ndatums;
@@ -629,42 +630,42 @@ typedef struct
* We expect that a plugin would do this at library load time (_PG_init()).
* It must also be careful to set the rendezvous variable back to NULL
* if it is unloaded (_PG_fini()).
- *
+ *
* This structure is basically a collection of function pointers --- at
* various interesting points in pl_exec.c, we call these functions
* (if the pointers are non-NULL) to give the plugin a chance to watch
* what we are doing.
*
- * func_setup is called when we start a function, before we've initialized
- * the local variables defined by the function.
+ * func_setup is called when we start a function, before we've initialized
+ * the local variables defined by the function.
*
- * func_beg is called when we start a function, after we've initialized
- * the local variables.
+ * func_beg is called when we start a function, after we've initialized
+ * the local variables.
*
- * func_end is called at the end of a function.
+ * func_end is called at the end of a function.
*
- * stmt_beg and stmt_end are called before and after (respectively) each
- * statement.
+ * stmt_beg and stmt_end are called before and after (respectively) each
+ * statement.
*
* Also, immediately before any call to func_setup, PL/pgSQL fills in the
* error_callback and assign_expr fields with pointers to its own
- * plpgsql_exec_error_callback and exec_assign_expr functions. This is
+ * plpgsql_exec_error_callback and exec_assign_expr functions. This is
* a somewhat ad-hoc expedient to simplify life for debugger plugins.
*/
typedef struct
{
/* Function pointers set up by the plugin */
- void (*func_setup) (PLpgSQL_execstate *estate, PLpgSQL_function *func);
- void (*func_beg) (PLpgSQL_execstate *estate, PLpgSQL_function *func);
- void (*func_end) (PLpgSQL_execstate *estate, PLpgSQL_function *func);
- void (*stmt_beg) (PLpgSQL_execstate *estate, PLpgSQL_stmt *stmt);
- void (*stmt_end) (PLpgSQL_execstate *estate, PLpgSQL_stmt *stmt);
+ void (*func_setup) (PLpgSQL_execstate *estate, PLpgSQL_function *func);
+ void (*func_beg) (PLpgSQL_execstate *estate, PLpgSQL_function *func);
+ void (*func_end) (PLpgSQL_execstate *estate, PLpgSQL_function *func);
+ void (*stmt_beg) (PLpgSQL_execstate *estate, PLpgSQL_stmt *stmt);
+ void (*stmt_end) (PLpgSQL_execstate *estate, PLpgSQL_stmt *stmt);
/* Function pointers set by PL/pgSQL itself */
- void (*error_callback) (void *arg);
- void (*assign_expr) (PLpgSQL_execstate *estate, PLpgSQL_datum *target,
- PLpgSQL_expr *expr);
+ void (*error_callback) (void *arg);
+ void (*assign_expr) (PLpgSQL_execstate *estate, PLpgSQL_datum *target,
+ PLpgSQL_expr *expr);
} PLpgSQL_plugin;
diff --git a/src/pl/plpython/plpython.c b/src/pl/plpython/plpython.c
index 1a80a74d82..6445837ac9 100644
--- a/src/pl/plpython/plpython.c
+++ b/src/pl/plpython/plpython.c
@@ -1,7 +1,7 @@
/**********************************************************************
* plpython.c - python as a procedural language for PostgreSQL
*
- * $PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.88 2006/09/16 13:35:49 tgl Exp $
+ * $PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.89 2006/10/04 00:30:14 momjian Exp $
*
*********************************************************************
*/
@@ -122,9 +122,9 @@ typedef struct PLyProcedure
bool fn_readonly;
PLyTypeInfo result; /* also used to store info for trigger tuple
* type */
- bool is_setof; /* true, if procedure returns result set */
- PyObject *setof; /* contents of result set. */
- char **argnames; /* Argument names */
+ bool is_setof; /* true, if procedure returns result set */
+ PyObject *setof; /* contents of result set. */
+ char **argnames; /* Argument names */
PLyTypeInfo args[FUNC_MAX_ARGS];
int nargs;
PyObject *code; /* compiled procedure code */
@@ -150,7 +150,7 @@ typedef struct PLyResultObject
{
PyObject_HEAD
/* HeapTuple *tuples; */
- PyObject *nrows; /* number of rows returned by query */
+ PyObject * nrows; /* number of rows returned by query */
PyObject *rows; /* data rows, or None if no data returned */
PyObject *status; /* query status, SPI_OK_*, or SPI_ERR_* */
} PLyResultObject;
@@ -391,7 +391,7 @@ PLy_trigger_handler(FunctionCallInfo fcinfo, PLyProcedure * proc)
if (!PyString_Check(plrv))
ereport(ERROR,
(errcode(ERRCODE_DATA_EXCEPTION),
- errmsg("unexpected return value from trigger procedure"),
+ errmsg("unexpected return value from trigger procedure"),
errdetail("Expected None or a String.")));
srv = PyString_AsString(plrv);
@@ -410,12 +410,12 @@ PLy_trigger_handler(FunctionCallInfo fcinfo, PLyProcedure * proc)
else if (pg_strcasecmp(srv, "OK") != 0)
{
/*
- * accept "OK" as an alternative to None; otherwise,
- * raise an error
+ * accept "OK" as an alternative to None; otherwise, raise an
+ * error
*/
ereport(ERROR,
(errcode(ERRCODE_DATA_EXCEPTION),
- errmsg("unexpected return value from trigger procedure"),
+ errmsg("unexpected return value from trigger procedure"),
errdetail("Expected None, \"OK\", \"SKIP\", or \"MODIFY\".")));
}
}
@@ -513,7 +513,7 @@ PLy_modify_tuple(PLyProcedure * proc, PyObject * pltd, TriggerData *tdata,
modvalues[i] =
InputFunctionCall(&proc->result.out.r.atts[atti].typfunc,
src,
- proc->result.out.r.atts[atti].typioparam,
+ proc->result.out.r.atts[atti].typioparam,
tupdesc->attrs[atti]->atttypmod);
modnulls[i] = ' ';
@@ -525,7 +525,7 @@ PLy_modify_tuple(PLyProcedure * proc, PyObject * pltd, TriggerData *tdata,
modvalues[i] =
InputFunctionCall(&proc->result.out.r.atts[atti].typfunc,
NULL,
- proc->result.out.r.atts[atti].typioparam,
+ proc->result.out.r.atts[atti].typioparam,
tupdesc->attrs[atti]->atttypmod);
modnulls[i] = 'n';
}
@@ -575,9 +575,9 @@ PLy_trigger_build_args(FunctionCallInfo fcinfo, PLyProcedure * proc, HeapTuple *
*pltevent,
*pltwhen,
*pltlevel,
- *pltrelid,
- *plttablename,
- *plttableschema;
+ *pltrelid,
+ *plttablename,
+ *plttableschema;
PyObject *pltargs,
*pytnew,
*pytold;
@@ -606,13 +606,13 @@ PLy_trigger_build_args(FunctionCallInfo fcinfo, PLyProcedure * proc, HeapTuple *
PyDict_SetItemString(pltdata, "table_name", plttablename);
Py_DECREF(plttablename);
pfree(stroid);
-
+
stroid = SPI_getnspname(tdata->tg_relation);
plttableschema = PyString_FromString(stroid);
PyDict_SetItemString(pltdata, "table_schema", plttableschema);
Py_DECREF(plttableschema);
pfree(stroid);
-
+
if (TRIGGER_FIRED_BEFORE(tdata->tg_event))
pltwhen = PyString_FromString("BEFORE");
@@ -762,7 +762,11 @@ PLy_function_handler(FunctionCallInfo fcinfo, PLyProcedure * proc)
plargs = PLy_function_build_args(fcinfo, proc);
plrv = PLy_procedure_call(proc, "args", plargs);
if (!proc->is_setof)
- /* SETOF function parameters will be deleted when last row is returned */
+
+ /*
+ * SETOF function parameters will be deleted when last row is
+ * returned
+ */
PLy_function_delete_args(proc);
Assert(plrv != NULL);
Assert(!PLy_error_in_progress);
@@ -779,14 +783,14 @@ PLy_function_handler(FunctionCallInfo fcinfo, PLyProcedure * proc)
if (proc->is_setof)
{
- bool has_error = false;
- ReturnSetInfo *rsi = (ReturnSetInfo *)fcinfo->resultinfo;
+ bool has_error = false;
+ ReturnSetInfo *rsi = (ReturnSetInfo *) fcinfo->resultinfo;
if (proc->setof == NULL)
{
/* first time -- do checks and setup */
if (!rsi || !IsA(rsi, ReturnSetInfo) ||
- (rsi->allowedModes & SFRM_ValuePerCall) == 0)
+ (rsi->allowedModes & SFRM_ValuePerCall) == 0)
{
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
@@ -803,7 +807,7 @@ PLy_function_handler(FunctionCallInfo fcinfo, PLyProcedure * proc)
ereport(ERROR,
(errcode(ERRCODE_DATATYPE_MISMATCH),
errmsg("returned object can not be iterated"),
- errdetail("SETOF must be returned as iterable object")));
+ errdetail("SETOF must be returned as iterable object")));
}
/* Fetch next from iterator */
@@ -831,26 +835,25 @@ PLy_function_handler(FunctionCallInfo fcinfo, PLyProcedure * proc)
if (has_error)
ereport(ERROR,
(errcode(ERRCODE_DATA_EXCEPTION),
- errmsg("error fetching next item from iterator")));
+ errmsg("error fetching next item from iterator")));
fcinfo->isnull = true;
- return (Datum)NULL;
+ return (Datum) NULL;
}
}
/*
- * If the function is declared to return void, the Python
- * return value must be None. For void-returning functions, we
- * also treat a None return value as a special "void datum"
- * rather than NULL (as is the case for non-void-returning
- * functions).
+ * If the function is declared to return void, the Python return value
+ * must be None. For void-returning functions, we also treat a None
+ * return value as a special "void datum" rather than NULL (as is the
+ * case for non-void-returning functions).
*/
if (proc->result.out.d.typoid == VOIDOID)
{
if (plrv != Py_None)
ereport(ERROR,
(errcode(ERRCODE_DATATYPE_MISMATCH),
- errmsg("invalid return value from plpython function"),
+ errmsg("invalid return value from plpython function"),
errdetail("Functions returning type \"void\" must return None.")));
fcinfo->isnull = false;
@@ -861,16 +864,16 @@ PLy_function_handler(FunctionCallInfo fcinfo, PLyProcedure * proc)
fcinfo->isnull = true;
if (proc->result.is_rowtype < 1)
rv = InputFunctionCall(&proc->result.out.d.typfunc,
- NULL,
- proc->result.out.d.typioparam,
- -1);
+ NULL,
+ proc->result.out.d.typioparam,
+ -1);
else
/* Tuple as None */
rv = (Datum) NULL;
}
else if (proc->result.is_rowtype >= 1)
{
- HeapTuple tuple = NULL;
+ HeapTuple tuple = NULL;
if (PySequence_Check(plrv))
/* composite type as sequence (tuple, list etc) */
@@ -1017,8 +1020,8 @@ PLy_function_build_args(FunctionCallInfo fcinfo, PLyProcedure * proc)
}
if (PyList_SetItem(args, i, arg) == -1 ||
- (proc->argnames &&
- PyDict_SetItemString(proc->globals, proc->argnames[i], arg) == -1))
+ (proc->argnames &&
+ PyDict_SetItemString(proc->globals, proc->argnames[i], arg) == -1))
PLy_elog(ERROR, "problem setting up arguments for \"%s\"", proc->proname);
arg = NULL;
}
@@ -1037,14 +1040,14 @@ PLy_function_build_args(FunctionCallInfo fcinfo, PLyProcedure * proc)
static void
-PLy_function_delete_args(PLyProcedure *proc)
+PLy_function_delete_args(PLyProcedure * proc)
{
- int i;
+ int i;
if (!proc->argnames)
return;
- for (i = 0; i < proc->nargs; i++)
+ for (i = 0; i < proc->nargs; i++)
PyDict_DelItemString(proc->globals, proc->argnames[i]);
}
@@ -1120,8 +1123,8 @@ PLy_procedure_create(FunctionCallInfo fcinfo, Oid tgreloid,
int i,
rv;
Datum argnames;
- Datum *elems;
- int nelems;
+ Datum *elems;
+ int nelems;
procStruct = (Form_pg_proc) GETSTRUCT(procTup);
@@ -1193,7 +1196,10 @@ PLy_procedure_create(FunctionCallInfo fcinfo, Oid tgreloid,
if (rvTypeStruct->typtype == 'c')
{
- /* Tuple: set up later, during first call to PLy_function_handler */
+ /*
+ * Tuple: set up later, during first call to
+ * PLy_function_handler
+ */
proc->result.out.d.typoid = procStruct->prorettype;
proc->result.is_rowtype = 2;
}
@@ -1215,8 +1221,8 @@ PLy_procedure_create(FunctionCallInfo fcinfo, Oid tgreloid,
}
/*
- * now get information required for input conversion of the procedure's
- * arguments.
+ * now get information required for input conversion of the
+ * procedure's arguments.
*/
proc->nargs = fcinfo->nargs;
if (proc->nargs)
@@ -1225,12 +1231,12 @@ PLy_procedure_create(FunctionCallInfo fcinfo, Oid tgreloid,
if (!isnull)
{
deconstruct_array(DatumGetArrayTypeP(argnames), TEXTOID, -1, false, 'i',
- &elems, NULL, &nelems);
+ &elems, NULL, &nelems);
if (nelems != proc->nargs)
elog(ERROR,
- "proargnames must have the same number of elements "
- "as the function has arguments");
- proc->argnames = (char **) PLy_malloc(sizeof(char *)*proc->nargs);
+ "proargnames must have the same number of elements "
+ "as the function has arguments");
+ proc->argnames = (char **) PLy_malloc(sizeof(char *) * proc->nargs);
}
}
for (i = 0; i < fcinfo->nargs; i++)
@@ -1306,8 +1312,8 @@ PLy_procedure_compile(PLyProcedure * proc, const char *src)
proc->globals = PyDict_Copy(PLy_interp_globals);
/*
- * SD is private preserved data between calls. GD is global data
- * shared by all functions
+ * SD is private preserved data between calls. GD is global data shared by
+ * all functions
*/
proc->statics = PyDict_New();
PyDict_SetItemString(proc->globals, "SD", proc->statics);
@@ -1674,13 +1680,13 @@ PLyDict_FromTuple(PLyTypeInfo * info, HeapTuple tuple, TupleDesc desc)
static HeapTuple
-PLyMapping_ToTuple(PLyTypeInfo *info, PyObject *mapping)
+PLyMapping_ToTuple(PLyTypeInfo * info, PyObject * mapping)
{
TupleDesc desc;
HeapTuple tuple;
- Datum *values;
- char *nulls;
- int i;
+ Datum *values;
+ char *nulls;
+ int i;
Assert(PyMapping_Check(mapping));
@@ -1690,13 +1696,13 @@ PLyMapping_ToTuple(PLyTypeInfo *info, PyObject *mapping)
Assert(info->is_rowtype == 1);
/* Build tuple */
- values = palloc(sizeof(Datum)*desc->natts);
- nulls = palloc(sizeof(char)*desc->natts);
- for (i = 0; i < desc->natts; ++i)
+ values = palloc(sizeof(Datum) * desc->natts);
+ nulls = palloc(sizeof(char) * desc->natts);
+ for (i = 0; i < desc->natts; ++i)
{
- char *key;
- PyObject *value,
- *so;
+ char *key;
+ PyObject *value,
+ *so;
key = NameStr(desc->attrs[i]->attname);
value = so = NULL;
@@ -1710,7 +1716,7 @@ PLyMapping_ToTuple(PLyTypeInfo *info, PyObject *mapping)
}
else if (value)
{
- char *valuestr;
+ char *valuestr;
so = PyObject_Str(value);
if (so == NULL)
@@ -1718,9 +1724,9 @@ PLyMapping_ToTuple(PLyTypeInfo *info, PyObject *mapping)
valuestr = PyString_AsString(so);
values[i] = InputFunctionCall(&info->out.r.atts[i].typfunc
- , valuestr
- , info->out.r.atts[i].typioparam
- , -1);
+ ,valuestr
+ ,info->out.r.atts[i].typioparam
+ ,-1);
Py_DECREF(so);
so = NULL;
nulls[i] = ' ';
@@ -1730,7 +1736,7 @@ PLyMapping_ToTuple(PLyTypeInfo *info, PyObject *mapping)
(errcode(ERRCODE_UNDEFINED_COLUMN),
errmsg("no mapping found with key \"%s\"", key),
errhint("to return null in specific column, "
- "add value None to map with key named after column")));
+ "add value None to map with key named after column")));
Py_XDECREF(value);
value = NULL;
@@ -1754,38 +1760,38 @@ PLyMapping_ToTuple(PLyTypeInfo *info, PyObject *mapping)
static HeapTuple
-PLySequence_ToTuple(PLyTypeInfo *info, PyObject *sequence)
+PLySequence_ToTuple(PLyTypeInfo * info, PyObject * sequence)
{
TupleDesc desc;
HeapTuple tuple;
- Datum *values;
- char *nulls;
- int i;
+ Datum *values;
+ char *nulls;
+ int i;
Assert(PySequence_Check(sequence));
/*
* Check that sequence length is exactly same as PG tuple's. We actually
- * can ignore exceeding items or assume missing ones as null but to
- * avoid plpython developer's errors we are strict here
+ * can ignore exceeding items or assume missing ones as null but to avoid
+ * plpython developer's errors we are strict here
*/
desc = lookup_rowtype_tupdesc(info->out.d.typoid, -1);
if (PySequence_Length(sequence) != desc->natts)
ereport(ERROR,
(errcode(ERRCODE_DATATYPE_MISMATCH),
- errmsg("returned sequence's length must be same as tuple's length")));
+ errmsg("returned sequence's length must be same as tuple's length")));
if (info->is_rowtype == 2)
PLy_output_tuple_funcs(info, desc);
Assert(info->is_rowtype == 1);
/* Build tuple */
- values = palloc(sizeof(Datum)*desc->natts);
- nulls = palloc(sizeof(char)*desc->natts);
- for (i = 0; i < desc->natts; ++i)
+ values = palloc(sizeof(Datum) * desc->natts);
+ nulls = palloc(sizeof(char) * desc->natts);
+ for (i = 0; i < desc->natts; ++i)
{
- PyObject *value,
- *so;
+ PyObject *value,
+ *so;
value = so = NULL;
PG_TRY();
@@ -1799,16 +1805,16 @@ PLySequence_ToTuple(PLyTypeInfo *info, PyObject *sequence)
}
else if (value)
{
- char *valuestr;
+ char *valuestr;
so = PyObject_Str(value);
if (so == NULL)
PLy_elog(ERROR, "can't convert sequence type");
valuestr = PyString_AsString(so);
values[i] = InputFunctionCall(&info->out.r.atts[i].typfunc
- , valuestr
- , info->out.r.atts[i].typioparam
- , -1);
+ ,valuestr
+ ,info->out.r.atts[i].typioparam
+ ,-1);
Py_DECREF(so);
so = NULL;
nulls[i] = ' ';
@@ -1836,13 +1842,13 @@ PLySequence_ToTuple(PLyTypeInfo *info, PyObject *sequence)
static HeapTuple
-PLyObject_ToTuple(PLyTypeInfo *info, PyObject *object)
+PLyObject_ToTuple(PLyTypeInfo * info, PyObject * object)
{
TupleDesc desc;
HeapTuple tuple;
- Datum *values;
- char *nulls;
- int i;
+ Datum *values;
+ char *nulls;
+ int i;
desc = lookup_rowtype_tupdesc(info->out.d.typoid, -1);
if (info->is_rowtype == 2)
@@ -1850,13 +1856,13 @@ PLyObject_ToTuple(PLyTypeInfo *info, PyObject *object)
Assert(info->is_rowtype == 1);
/* Build tuple */
- values = palloc(sizeof(Datum)*desc->natts);
- nulls = palloc(sizeof(char)*desc->natts);
- for (i = 0; i < desc->natts; ++i)
+ values = palloc(sizeof(Datum) * desc->natts);
+ nulls = palloc(sizeof(char) * desc->natts);
+ for (i = 0; i < desc->natts; ++i)
{
- char *key;
- PyObject *value,
- *so;
+ char *key;
+ PyObject *value,
+ *so;
key = NameStr(desc->attrs[i]->attname);
value = so = NULL;
@@ -1870,16 +1876,16 @@ PLyObject_ToTuple(PLyTypeInfo *info, PyObject *object)
}
else if (value)
{
- char *valuestr;
+ char *valuestr;
so = PyObject_Str(value);
if (so == NULL)
PLy_elog(ERROR, "can't convert object type");
valuestr = PyString_AsString(so);
values[i] = InputFunctionCall(&info->out.r.atts[i].typfunc
- , valuestr
- , info->out.r.atts[i].typioparam
- , -1);
+ ,valuestr
+ ,info->out.r.atts[i].typioparam
+ ,-1);
Py_DECREF(so);
so = NULL;
nulls[i] = ' ';
@@ -1889,8 +1895,8 @@ PLyObject_ToTuple(PLyTypeInfo *info, PyObject *object)
(errcode(ERRCODE_UNDEFINED_COLUMN),
errmsg("no attribute named \"%s\"", key),
errhint("to return null in specific column, "
- "let returned object to have attribute named "
- "after column with value None")));
+ "let returned object to have attribute named "
+ "after column with value None")));
Py_XDECREF(value);
value = NULL;
@@ -2450,7 +2456,7 @@ PLy_spi_execute_plan(PyObject * ob, PyObject * list, long limit)
PG_TRY();
{
- char *sv = PyString_AsString(so);
+ char *sv = PyString_AsString(so);
plan->values[i] =
InputFunctionCall(&(plan->args[i].out.d.typfunc),
diff --git a/src/pl/tcl/pltcl.c b/src/pl/tcl/pltcl.c
index 44b2e405f3..c6efa75331 100644
--- a/src/pl/tcl/pltcl.c
+++ b/src/pl/tcl/pltcl.c
@@ -2,7 +2,7 @@
* pltcl.c - PostgreSQL support for Tcl as
* procedural language (PL)
*
- * $PostgreSQL: pgsql/src/pl/tcl/pltcl.c,v 1.107 2006/08/27 23:47:58 tgl Exp $
+ * $PostgreSQL: pgsql/src/pl/tcl/pltcl.c,v 1.108 2006/10/04 00:30:14 momjian Exp $
*
**********************************************************************/
@@ -652,15 +652,15 @@ pltcl_trigger_handler(PG_FUNCTION_ARGS)
pfree(stroid);
/* The name of the table the trigger is acting on: TG_table_name */
- stroid = SPI_getrelname(trigdata->tg_relation);
+ stroid = SPI_getrelname(trigdata->tg_relation);
Tcl_DStringAppendElement(&tcl_cmd, stroid);
- pfree(stroid);
-
+ pfree(stroid);
+
/* The schema of the table the trigger is acting on: TG_table_schema */
- stroid = SPI_getnspname(trigdata->tg_relation);
+ stroid = SPI_getnspname(trigdata->tg_relation);
Tcl_DStringAppendElement(&tcl_cmd, stroid);
- pfree(stroid);
-
+ pfree(stroid);
+
/* A list of attribute names for argument TG_relatts */
Tcl_DStringAppendElement(&tcl_trigtup, "");
for (i = 0; i < tupdesc->natts; i++)
@@ -878,9 +878,9 @@ pltcl_trigger_handler(PG_FUNCTION_ARGS)
fmgr_info(typinput, &finfo);
UTF_BEGIN;
modvalues[attnum - 1] = InputFunctionCall(&finfo,
- (char *) UTF_U2E(ret_value),
+ (char *) UTF_U2E(ret_value),
typioparam,
- tupdesc->attrs[attnum - 1]->atttypmod);
+ tupdesc->attrs[attnum - 1]->atttypmod);
UTF_END;
}
@@ -2062,7 +2062,7 @@ pltcl_SPI_execute_plan(ClientData cdata, Tcl_Interp *interp,
{
UTF_BEGIN;
argvalues[j] = InputFunctionCall(&qdesc->arginfuncs[j],
- (char *) UTF_U2E(callargs[j]),
+ (char *) UTF_U2E(callargs[j]),
qdesc->argtypioparams[j],
-1);
UTF_END;
diff --git a/src/port/dirent.c b/src/port/dirent.c
index 18e8d84f69..b267896639 100644
--- a/src/port/dirent.c
+++ b/src/port/dirent.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/port/dirent.c,v 1.2 2006/06/26 12:58:17 momjian Exp $
+ * $PostgreSQL: pgsql/src/port/dirent.c,v 1.3 2006/10/04 00:30:14 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -17,20 +17,22 @@
#include <dirent.h>
-struct DIR {
- char *dirname;
- struct dirent ret; /* Used to return to caller */
- HANDLE handle;
+struct DIR
+{
+ char *dirname;
+ struct dirent ret; /* Used to return to caller */
+ HANDLE handle;
};
-DIR* opendir(const char *dirname)
+DIR *
+opendir(const char *dirname)
{
- DWORD attr;
- DIR *d;
+ DWORD attr;
+ DIR *d;
/* Make sure it is a directory */
attr = GetFileAttributes(dirname);
- if (attr == INVALID_FILE_ATTRIBUTES)
+ if (attr == INVALID_FILE_ATTRIBUTES)
{
errno = ENOENT;
return NULL;
@@ -47,7 +49,7 @@ DIR* opendir(const char *dirname)
errno = ENOMEM;
return NULL;
}
- d->dirname = malloc(strlen(dirname)+4);
+ d->dirname = malloc(strlen(dirname) + 4);
if (!d->dirname)
{
errno = ENOMEM;
@@ -55,18 +57,20 @@ DIR* opendir(const char *dirname)
return NULL;
}
strcpy(d->dirname, dirname);
- if (d->dirname[strlen(d->dirname)-1] != '/' &&
- d->dirname[strlen(d->dirname)-1] != '\\')
- strcat(d->dirname,"\\"); /* Append backslash if not already there */
- strcat(d->dirname,"*"); /* Search for entries named anything */
+ if (d->dirname[strlen(d->dirname) - 1] != '/' &&
+ d->dirname[strlen(d->dirname) - 1] != '\\')
+ strcat(d->dirname, "\\"); /* Append backslash if not already
+ * there */
+ strcat(d->dirname, "*"); /* Search for entries named anything */
d->handle = INVALID_HANDLE_VALUE;
- d->ret.d_ino = 0; /* no inodes on win32 */
- d->ret.d_reclen = 0; /* not used on win32 */
+ d->ret.d_ino = 0; /* no inodes on win32 */
+ d->ret.d_reclen = 0; /* not used on win32 */
return d;
}
-struct dirent* readdir(DIR * d)
+struct dirent *
+readdir(DIR *d)
{
WIN32_FIND_DATA fd;
@@ -79,7 +83,7 @@ struct dirent* readdir(DIR * d)
return NULL;
}
}
- else
+ else
{
if (!FindNextFile(d->handle, &fd))
{
@@ -93,12 +97,14 @@ struct dirent* readdir(DIR * d)
return NULL;
}
}
- strcpy(d->ret.d_name, fd.cFileName); /* Both strings are MAX_PATH long */
+ strcpy(d->ret.d_name, fd.cFileName); /* Both strings are MAX_PATH
+ * long */
d->ret.d_namlen = strlen(d->ret.d_name);
return &d->ret;
}
-int closedir(DIR *d)
+int
+closedir(DIR *d)
{
if (d->handle != INVALID_HANDLE_VALUE)
FindClose(d->handle);
diff --git a/src/port/getaddrinfo.c b/src/port/getaddrinfo.c
index 6ebfdc926a..b25db737a1 100644
--- a/src/port/getaddrinfo.c
+++ b/src/port/getaddrinfo.c
@@ -16,7 +16,7 @@
* Copyright (c) 2003-2006, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/port/getaddrinfo.c,v 1.25 2006/07/16 20:28:01 tgl Exp $
+ * $PostgreSQL: pgsql/src/port/getaddrinfo.c,v 1.26 2006/10/04 00:30:14 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -329,7 +329,8 @@ gai_strerror(int errcode)
return "Not enough memory";
#endif
#ifdef EAI_NODATA
-#ifndef WIN32_ONLY_COMPILER /* MSVC complains because another case has the same value */
+#ifndef WIN32_ONLY_COMPILER /* MSVC complains because another case has the
+ * same value */
case EAI_NODATA:
return "No host data of that type was found";
#endif
diff --git a/src/port/isinf.c b/src/port/isinf.c
index d08e99c645..809361b55d 100644
--- a/src/port/isinf.c
+++ b/src/port/isinf.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/port/isinf.c,v 1.9 2006/03/05 15:59:10 momjian Exp $
+ * $PostgreSQL: pgsql/src/port/isinf.c,v 1.10 2006/10/04 00:30:14 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -73,4 +73,5 @@ isinf(double x)
return 0;
}
#endif
+
#endif
diff --git a/src/port/open.c b/src/port/open.c
index 125cad0550..83fc1ca281 100644
--- a/src/port/open.c
+++ b/src/port/open.c
@@ -6,7 +6,7 @@
*
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/port/open.c,v 1.16 2006/10/03 20:44:18 momjian Exp $
+ * $PostgreSQL: pgsql/src/port/open.c,v 1.17 2006/10/04 00:30:14 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -108,7 +108,7 @@ pgwin32_open(const char *fileName, int fileFlags,...)
if ((fd = _open_osfhandle((long) h, fileFlags & O_APPEND)) < 0)
CloseHandle(h); /* will not affect errno */
else if (fileFlags & (O_TEXT | O_BINARY) &&
- _setmode(fd, fileFlags & (O_TEXT | O_BINARY)) < 0)
+ _setmode(fd, fileFlags & (O_TEXT | O_BINARY)) < 0)
{
_close(fd);
return -1;
@@ -120,9 +120,9 @@ pgwin32_open(const char *fileName, int fileFlags,...)
FILE *
pgwin32_fopen(const char *fileName, const char *mode)
{
- int openmode = 0;
- int fd;
-
+ int openmode = 0;
+ int fd;
+
if (strstr(mode, "r+"))
openmode |= O_RDWR;
else if (strchr(mode, 'r'))
@@ -138,7 +138,7 @@ pgwin32_fopen(const char *fileName, const char *mode)
openmode |= O_BINARY;
if (strchr(mode, 't'))
openmode |= O_TEXT;
-
+
fd = pgwin32_open(fileName, openmode);
if (fd == -1)
return NULL;
diff --git a/src/port/path.c b/src/port/path.c
index a7d5ec7c45..28608e979c 100644
--- a/src/port/path.c
+++ b/src/port/path.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/port/path.c,v 1.69 2006/09/27 18:40:10 tgl Exp $
+ * $PostgreSQL: pgsql/src/port/path.c,v 1.70 2006/10/04 00:30:14 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -388,8 +388,8 @@ path_is_prefix_of_path(const char *path1, const char *path2)
const char *
get_progname(const char *argv0)
{
- const char *nodir_name;
- char *progname;
+ const char *nodir_name;
+ char *progname;
nodir_name = last_dir_separator(argv0);
if (nodir_name)
@@ -398,20 +398,20 @@ get_progname(const char *argv0)
nodir_name = skip_drive(argv0);
/*
- * Make a copy in case argv[0] is modified by ps_status.
- * Leaks memory, but called only once.
+ * Make a copy in case argv[0] is modified by ps_status. Leaks memory, but
+ * called only once.
*/
progname = strdup(nodir_name);
if (progname == NULL)
{
fprintf(stderr, "%s: out of memory\n", nodir_name);
- exit(1); /* This could exit the postmaster */
+ exit(1); /* This could exit the postmaster */
}
#if defined(__CYGWIN__) || defined(WIN32)
/* strip ".exe" suffix, regardless of case */
if (strlen(progname) > sizeof(EXE) - 1 &&
- pg_strcasecmp(progname + strlen(progname) - (sizeof(EXE) - 1), EXE) == 0)
+ pg_strcasecmp(progname + strlen(progname) - (sizeof(EXE) - 1), EXE) == 0)
progname[strlen(progname) - (sizeof(EXE) - 1)] = '\0';
#endif
@@ -502,7 +502,7 @@ make_relative_path(char *ret_path, const char *target_path,
*/
tail_start = (int) strlen(ret_path) - tail_len;
if (tail_start > 0 &&
- IS_DIR_SEP(ret_path[tail_start-1]) &&
+ IS_DIR_SEP(ret_path[tail_start - 1]) &&
dir_strcmp(ret_path + tail_start, bin_path + prefix_len) == 0)
{
ret_path[tail_start] = '\0';
diff --git a/src/port/pgsleep.c b/src/port/pgsleep.c
index b003d3494d..595812b356 100644
--- a/src/port/pgsleep.c
+++ b/src/port/pgsleep.c
@@ -6,7 +6,7 @@
*
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/port/pgsleep.c,v 1.8 2006/07/16 20:17:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/port/pgsleep.c,v 1.9 2006/10/04 00:30:14 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -47,4 +47,4 @@ pg_usleep(long microsec)
}
}
-#endif /* defined(FRONTEND) || !defined(WIN32) */
+#endif /* defined(FRONTEND) || !defined(WIN32) */
diff --git a/src/port/qsort_arg.c b/src/port/qsort_arg.c
index ac7b149b5f..9e69462f0a 100644
--- a/src/port/qsort_arg.c
+++ b/src/port/qsort_arg.c
@@ -9,7 +9,7 @@
*
* CAUTION: if you change this file, see also qsort.c
*
- * $PostgreSQL: pgsql/src/port/qsort_arg.c,v 1.1 2006/10/03 22:18:23 tgl Exp $
+ * $PostgreSQL: pgsql/src/port/qsort_arg.c,v 1.2 2006/10/04 00:30:14 momjian Exp $
*/
/* $NetBSD: qsort.c,v 1.13 2003/08/07 16:43:42 agc Exp $ */
@@ -47,7 +47,7 @@
static char *med3(char *a, char *b, char *c,
- qsort_arg_comparator cmp, void *arg);
+ qsort_arg_comparator cmp, void *arg);
static void swapfunc(char *, char *, size_t, int);
#define min(a, b) ((a) < (b) ? (a) : (b))
diff --git a/src/port/snprintf.c b/src/port/snprintf.c
index dffe0fe359..e4472e5bdb 100644
--- a/src/port/snprintf.c
+++ b/src/port/snprintf.c
@@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $PostgreSQL: pgsql/src/port/snprintf.c,v 1.31 2005/12/05 21:57:00 tgl Exp $
+ * $PostgreSQL: pgsql/src/port/snprintf.c,v 1.32 2006/10/04 00:30:14 momjian Exp $
*/
#include "c.h"
@@ -70,7 +70,7 @@
* platforms. This implementation is compatible with the Single Unix Spec:
*
* 1. -1 is returned only if processing is abandoned due to an invalid
- * parameter, such as incorrect format string. (Although not required by
+ * parameter, such as incorrect format string. (Although not required by
* the spec, this happens only when no characters have yet been transmitted
* to the destination.)
*
@@ -146,7 +146,7 @@ static int dopr(PrintfTarget *target, const char *format, va_list args);
int
pg_vsnprintf(char *str, size_t count, const char *fmt, va_list args)
{
- PrintfTarget target;
+ PrintfTarget target;
if (str == NULL || count == 0)
return 0;
@@ -179,7 +179,7 @@ pg_snprintf(char *str, size_t count, const char *fmt,...)
static int
pg_vsprintf(char *str, const char *fmt, va_list args)
{
- PrintfTarget target;
+ PrintfTarget target;
if (str == NULL)
return 0;
@@ -212,7 +212,7 @@ pg_sprintf(char *str, const char *fmt,...)
static int
pg_vfprintf(FILE *stream, const char *fmt, va_list args)
{
- PrintfTarget target;
+ PrintfTarget target;
char buffer[1024]; /* size is arbitrary */
if (stream == NULL)
@@ -262,7 +262,7 @@ pg_printf(const char *fmt,...)
static void
flushbuffer(PrintfTarget *target)
{
- size_t nc = target->bufptr - target->bufstart;
+ size_t nc = target->bufptr - target->bufstart;
if (nc > 0)
target->nchars += fwrite(target->bufstart, 1, nc, target->stream);
@@ -278,8 +278,8 @@ static void fmtint(int64 value, char type, int forcesign,
PrintfTarget *target);
static void fmtchar(int value, int leftjust, int minlen, PrintfTarget *target);
static void fmtfloat(double value, char type, int forcesign,
- int leftjust, int minlen, int zpad, int precision, int pointflag,
- PrintfTarget *target);
+ int leftjust, int minlen, int zpad, int precision, int pointflag,
+ PrintfTarget *target);
static void dostr(const char *str, int slen, PrintfTarget *target);
static void dopr_outch(int c, PrintfTarget *target);
static int adjust_sign(int is_negative, int forcesign, int *signvalue);
@@ -317,8 +317,8 @@ dopr(PrintfTarget *target, const char *format, va_list args)
double fvalue;
char *strvalue;
int i;
- PrintfArgType argtypes[NL_ARGMAX+1];
- PrintfArgValue argvalues[NL_ARGMAX+1];
+ PrintfArgType argtypes[NL_ARGMAX + 1];
+ PrintfArgValue argvalues[NL_ARGMAX + 1];
/*
* Parse the format string to determine whether there are %n$ format
@@ -335,7 +335,7 @@ dopr(PrintfTarget *target, const char *format, va_list args)
longflag = longlongflag = pointflag = 0;
fmtpos = accum = 0;
afterstar = false;
- nextch1:
+nextch1:
ch = *format++;
if (ch == '\0')
break; /* illegal, but we don't complain */
@@ -362,7 +362,7 @@ dopr(PrintfTarget *target, const char *format, va_list args)
goto nextch1;
case '*':
if (afterstar)
- have_non_dollar = true; /* multiple stars */
+ have_non_dollar = true; /* multiple stars */
afterstar = true;
accum = 0;
goto nextch1;
@@ -462,6 +462,7 @@ dopr(PrintfTarget *target, const char *format, va_list args)
case '%':
break;
}
+
/*
* If we finish the spec with afterstar still set, there's a
* non-dollar star in there.
@@ -516,7 +517,7 @@ dopr(PrintfTarget *target, const char *format, va_list args)
longflag = longlongflag = pointflag = 0;
fmtpos = accum = 0;
have_star = afterstar = false;
- nextch2:
+nextch2:
ch = *format++;
if (ch == '\0')
break; /* illegal, but we don't complain */
@@ -561,7 +562,7 @@ dopr(PrintfTarget *target, const char *format, va_list args)
else
{
/* fetch and process value now */
- int starval = va_arg(args, int);
+ int starval = va_arg(args, int);
if (pointflag)
{
@@ -586,7 +587,7 @@ dopr(PrintfTarget *target, const char *format, va_list args)
if (afterstar)
{
/* fetch and process star value */
- int starval = argvalues[accum].i;
+ int starval = argvalues[accum].i;
if (pointflag)
{
@@ -854,7 +855,7 @@ fmtint(int64 value, char type, int forcesign, int leftjust,
else
{
/* make integer string */
- uint64 uvalue = (uint64) value;
+ uint64 uvalue = (uint64) value;
do
{
@@ -932,17 +933,17 @@ dostr(const char *str, int slen, PrintfTarget *target)
{
while (slen > 0)
{
- int avail;
+ int avail;
if (target->bufend != NULL)
avail = target->bufend - target->bufptr;
- else
+ else
avail = slen;
if (avail <= 0)
{
/* buffer full, can we dump to stream? */
if (target->stream == NULL)
- return; /* no, lose the data */
+ return; /* no, lose the data */
flushbuffer(target);
continue;
}
diff --git a/src/port/sprompt.c b/src/port/sprompt.c
index eff3fa5ad1..8681fb20dc 100644
--- a/src/port/sprompt.c
+++ b/src/port/sprompt.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/port/sprompt.c,v 1.17 2006/06/14 16:49:03 tgl Exp $
+ * $PostgreSQL: pgsql/src/port/sprompt.c,v 1.18 2006/10/04 00:30:14 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -64,7 +64,7 @@ simple_prompt(const char *prompt, int maxlen, bool echo)
termout = fopen(DEVTTY, "w");
if (!termin || !termout
#ifdef WIN32
- /* See DEVTTY comment for msys */
+ /* See DEVTTY comment for msys */
|| (getenv("OSTYPE") && strcmp(getenv("OSTYPE"), "msys") == 0)
#endif
)
diff --git a/src/port/strlcpy.c b/src/port/strlcpy.c
index aef53da2fa..00738bfef8 100644
--- a/src/port/strlcpy.c
+++ b/src/port/strlcpy.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/port/strlcpy.c,v 1.2 2006/10/02 23:58:59 momjian Exp $
+ * $PostgreSQL: pgsql/src/port/strlcpy.c,v 1.3 2006/10/04 00:30:14 momjian Exp $
*
* This file was taken from OpenBSD and is used on platforms that don't
* provide strlcpy(). The OpenBSD copyright terms follow.
@@ -36,33 +36,36 @@
/*
- * Copy src to string dst of size siz. At most siz-1 characters
- * will be copied. Always NUL terminates (unless siz == 0).
+ * Copy src to string dst of size siz. At most siz-1 characters
+ * will be copied. Always NUL terminates (unless siz == 0).
* Returns strlen(src); if retval >= siz, truncation occurred.
* Function creation history: http://www.gratisoft.us/todd/papers/strlcpy.html
*/
size_t
strlcpy(char *dst, const char *src, size_t siz)
{
- char *d = dst;
+ char *d = dst;
const char *s = src;
- size_t n = siz;
+ size_t n = siz;
/* Copy as many bytes as will fit */
- if (n != 0) {
- while (--n != 0) {
+ if (n != 0)
+ {
+ while (--n != 0)
+ {
if ((*d++ = *s++) == '\0')
break;
}
}
/* Not enough room in dst, add NUL and traverse rest of src */
- if (n == 0) {
+ if (n == 0)
+ {
if (siz != 0)
- *d = '\0'; /* NUL-terminate dst */
+ *d = '\0'; /* NUL-terminate dst */
while (*s++)
;
}
- return(s - src - 1); /* count does not include NUL */
+ return (s - src - 1); /* count does not include NUL */
}
diff --git a/src/port/strtol.c b/src/port/strtol.c
index 0a9a4e7134..2f4fac1fd6 100644
--- a/src/port/strtol.c
+++ b/src/port/strtol.c
@@ -52,7 +52,7 @@ static char sccsid[] = "@(#)strtol.c 5.4 (Berkeley) 2/23/91";
* before calling this function, and then errno != 0 can be tested
* after the function completes.
*/
-
+
/*
* Convert a string to a long integer.
*
diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c
index de70348815..5daf28a666 100644
--- a/src/test/regress/pg_regress.c
+++ b/src/test/regress/pg_regress.c
@@ -11,7 +11,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/test/regress/pg_regress.c,v 1.22 2006/09/24 17:10:18 tgl Exp $
+ * $PostgreSQL: pgsql/src/test/regress/pg_regress.c,v 1.23 2006/10/04 00:30:14 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -39,17 +39,17 @@
/* simple list of strings */
typedef struct _stringlist
{
- char *str;
+ char *str;
struct _stringlist *next;
-} _stringlist;
+} _stringlist;
/* for resultmap we need a list of pairs of strings */
typedef struct _resultmap
{
- char *test;
- char *resultfile;
+ char *test;
+ char *resultfile;
struct _resultmap *next;
-} _resultmap;
+} _resultmap;
/*
* Values obtained from pg_config_paths.h and Makefile. The PG installation
@@ -63,6 +63,7 @@ static char *libdir = LIBDIR;
static char *datadir = PGSHAREDIR;
static char *host_platform = HOST_TUPLE;
static char *makeprog = MAKEPROG;
+
#ifndef WIN32 /* not used in WIN32 case */
static char *shellprog = SHELLPROG;
#endif
@@ -77,17 +78,17 @@ static bool debug = false;
static char *inputdir = ".";
static char *outputdir = ".";
static _stringlist *loadlanguage = NULL;
-static int max_connections = 0;
+static int max_connections = 0;
static char *encoding = NULL;
static _stringlist *schedulelist = NULL;
static _stringlist *extra_tests = NULL;
static char *temp_install = NULL;
static char *top_builddir = NULL;
-static int temp_port = 65432;
+static int temp_port = 65432;
static bool nolocale = false;
static char *psqldir = NULL;
static char *hostname = NULL;
-static int port = -1;
+static int port = -1;
static char *user = NULL;
/* internal variables */
@@ -101,9 +102,9 @@ static _resultmap *resultmap = NULL;
static PID_TYPE postmaster_pid = INVALID_PID;
static bool postmaster_running = false;
-static int success_count = 0;
-static int fail_count = 0;
-static int fail_ignore_count = 0;
+static int success_count = 0;
+static int fail_count = 0;
+static int fail_ignore_count = 0;
static void
header(const char *fmt,...)
@@ -116,7 +117,7 @@ status(const char *fmt,...)
the supplied arguments. */
__attribute__((format(printf, 1, 2)));
static void
-psql_command(const char *database, const char *query, ...)
+psql_command(const char *database, const char *query,...)
/* This extension allows gcc to check the format string for consistency with
the supplied arguments. */
__attribute__((format(printf, 2, 3)));
@@ -126,7 +127,7 @@ __attribute__((format(printf, 2, 3)));
* Add an item at the end of a stringlist.
*/
static void
-add_stringlist_item(_stringlist **listhead, const char *str)
+add_stringlist_item(_stringlist ** listhead, const char *str)
{
_stringlist *newentry = malloc(sizeof(_stringlist));
_stringlist *oldentry;
@@ -138,7 +139,7 @@ add_stringlist_item(_stringlist **listhead, const char *str)
else
{
for (oldentry = *listhead; oldentry->next; oldentry = oldentry->next)
- /*skip*/;
+ /* skip */ ;
oldentry->next = newentry;
}
}
@@ -202,7 +203,7 @@ stop_postmaster(void)
if (postmaster_running)
{
/* We use pg_ctl to issue the kill and wait for stop */
- char buf[MAXPGPATH * 2];
+ char buf[MAXPGPATH * 2];
/* On Windows, system() seems not to force fflush, so... */
fflush(stdout);
@@ -304,24 +305,24 @@ string_matches_pattern(const char *str, const char *pattern)
* Scan resultmap file to find which platform-specific expected files to use.
*
* The format of each line of the file is
- * testname/hostplatformpattern=substitutefile
+ * testname/hostplatformpattern=substitutefile
* where the hostplatformpattern is evaluated per the rules of expr(1),
* namely, it is a standard regular expression with an implicit ^ at the start.
* (We currently support only a very limited subset of regular expressions,
* see string_matches_pattern() above.) What hostplatformpattern will be
- * matched against is the config.guess output. (In the shell-script version,
+ * matched against is the config.guess output. (In the shell-script version,
* we also provided an indication of whether gcc or another compiler was in
* use, but that facility isn't used anymore.)
*/
static void
load_resultmap(void)
{
- char buf[MAXPGPATH];
- FILE *f;
+ char buf[MAXPGPATH];
+ FILE *f;
/* scan the file ... */
snprintf(buf, sizeof(buf), "%s/resultmap", inputdir);
- f = fopen(buf,"r");
+ f = fopen(buf, "r");
if (!f)
{
/* OK if it doesn't exist, else complain */
@@ -334,13 +335,13 @@ load_resultmap(void)
while (fgets(buf, sizeof(buf), f))
{
- char *platform;
- char *expected;
- int i;
+ char *platform;
+ char *expected;
+ int i;
/* strip trailing whitespace, especially the newline */
i = strlen(buf);
- while (i > 0 && isspace((unsigned char) buf[i-1]))
+ while (i > 0 && isspace((unsigned char) buf[i - 1]))
buf[--i] = '\0';
/* parse out the line fields */
@@ -362,10 +363,10 @@ load_resultmap(void)
*expected++ = '\0';
/*
- * if it's for current platform, save it in resultmap list.
- * Note: by adding at the front of the list, we ensure that in
- * ambiguous cases, the last match in the resultmap file is used.
- * This mimics the behavior of the old shell script.
+ * if it's for current platform, save it in resultmap list. Note: by
+ * adding at the front of the list, we ensure that in ambiguous cases,
+ * the last match in the resultmap file is used. This mimics the
+ * behavior of the old shell script.
*/
if (string_matches_pattern(host_platform, platform))
{
@@ -386,7 +387,7 @@ load_resultmap(void)
static void
doputenv(const char *var, const char *val)
{
- char *s = malloc(strlen(var)+strlen(val)+2);
+ char *s = malloc(strlen(var) + strlen(val) + 2);
sprintf(s, "%s=%s", var, val);
putenv(s);
@@ -399,8 +400,8 @@ doputenv(const char *var, const char *val)
static void
add_to_path(const char *pathname, char separator, const char *addval)
{
- char *oldval = getenv(pathname);
- char *newval;
+ char *oldval = getenv(pathname);
+ char *newval;
if (!oldval || !oldval[0])
{
@@ -411,7 +412,7 @@ add_to_path(const char *pathname, char separator, const char *addval)
else
{
newval = malloc(strlen(pathname) + strlen(addval) + strlen(oldval) + 3);
- sprintf(newval,"%s=%s%c%s",pathname,addval,separator,oldval);
+ sprintf(newval, "%s=%s%c%s", pathname, addval, separator, oldval);
}
putenv(newval);
}
@@ -422,7 +423,7 @@ add_to_path(const char *pathname, char separator, const char *addval)
static void
initialize_environment(void)
{
- char *tmp;
+ char *tmp;
/*
* Clear out any non-C locale settings
@@ -458,12 +459,12 @@ initialize_environment(void)
if (temp_install)
{
/*
- * Clear out any environment vars that might cause psql to connect
- * to the wrong postmaster, or otherwise behave in nondefault ways.
- * (Note we also use psql's -X switch consistently, so that ~/.psqlrc
- * files won't mess things up.) Also, set PGPORT to the temp port,
- * and set or unset PGHOST depending on whether we are using TCP or
- * Unix sockets.
+ * Clear out any environment vars that might cause psql to connect to
+ * the wrong postmaster, or otherwise behave in nondefault ways. (Note
+ * we also use psql's -X switch consistently, so that ~/.psqlrc files
+ * won't mess things up.) Also, set PGPORT to the temp port, and set
+ * or unset PGHOST depending on whether we are using TCP or Unix
+ * sockets.
*/
unsetenv("PGDATABASE");
unsetenv("PGUSER");
@@ -479,10 +480,10 @@ initialize_environment(void)
unsetenv("PGHOSTADDR");
if (port != -1)
{
- char s[16];
+ char s[16];
- sprintf(s,"%d",port);
- doputenv("PGPORT",s);
+ sprintf(s, "%d", port);
+ doputenv("PGPORT", s);
}
/*
@@ -507,10 +508,10 @@ initialize_environment(void)
* Set up shared library paths to include the temp install.
*
* LD_LIBRARY_PATH covers many platforms. DYLD_LIBRARY_PATH works on
- * Darwin, and maybe other Mach-based systems. LIBPATH is for AIX.
+ * Darwin, and maybe other Mach-based systems. LIBPATH is for AIX.
* Windows needs shared libraries in PATH (only those linked into
- * executables, not dlopen'ed ones).
- * Feel free to account for others as well.
+ * executables, not dlopen'ed ones). Feel free to account for others
+ * as well.
*/
add_to_path("LD_LIBRARY_PATH", ':', libdir);
add_to_path("DYLD_LIBRARY_PATH", ':', libdir);
@@ -535,10 +536,10 @@ initialize_environment(void)
}
if (port != -1)
{
- char s[16];
+ char s[16];
- sprintf(s,"%d",port);
- doputenv("PGPORT",s);
+ sprintf(s, "%d", port);
+ doputenv("PGPORT", s);
}
if (user != NULL)
doputenv("PGUSER", user);
@@ -572,14 +573,14 @@ initialize_environment(void)
* Since we use system(), this doesn't return until the operation finishes
*/
static void
-psql_command(const char *database, const char *query, ...)
+psql_command(const char *database, const char *query,...)
{
- char query_formatted[1024];
- char query_escaped[2048];
- char psql_cmd[MAXPGPATH + 2048];
- va_list args;
- char *s;
- char *d;
+ char query_formatted[1024];
+ char query_escaped[2048];
+ char psql_cmd[MAXPGPATH + 2048];
+ va_list args;
+ char *s;
+ char *d;
/* Generate the query with insertion of sprintf arguments */
va_start(args, query);
@@ -621,10 +622,10 @@ static PID_TYPE
spawn_process(const char *cmdline)
{
#ifndef WIN32
- pid_t pid;
+ pid_t pid;
/*
- * Must flush I/O buffers before fork. Ideally we'd use fflush(NULL) here
+ * Must flush I/O buffers before fork. Ideally we'd use fflush(NULL) here
* ... does anyone still care about systems where that doesn't work?
*/
fflush(stdout);
@@ -644,11 +645,11 @@ spawn_process(const char *cmdline)
/*
* In child
*
- * Instead of using system(), exec the shell directly, and tell it
- * to "exec" the command too. This saves two useless processes
- * per parallel test case.
+ * Instead of using system(), exec the shell directly, and tell it to
+ * "exec" the command too. This saves two useless processes per
+ * parallel test case.
*/
- char *cmdline2 = malloc(strlen(cmdline) + 6);
+ char *cmdline2 = malloc(strlen(cmdline) + 6);
sprintf(cmdline2, "exec %s", cmdline);
execl(shellprog, shellprog, "-c", cmdline2, NULL);
@@ -659,7 +660,7 @@ spawn_process(const char *cmdline)
/* in parent */
return pid;
#else
- char *cmdline2;
+ char *cmdline2;
STARTUPINFO si;
PROCESS_INFORMATION pi;
@@ -689,10 +690,10 @@ spawn_process(const char *cmdline)
static PID_TYPE
psql_start_test(const char *testname)
{
- PID_TYPE pid;
- char infile[MAXPGPATH];
- char outfile[MAXPGPATH];
- char psql_cmd[MAXPGPATH * 3];
+ PID_TYPE pid;
+ char infile[MAXPGPATH];
+ char outfile[MAXPGPATH];
+ char psql_cmd[MAXPGPATH * 3];
snprintf(infile, sizeof(infile), "%s/sql/%s.sql",
inputdir, testname);
@@ -725,8 +726,8 @@ psql_start_test(const char *testname)
static long
file_size(const char *file)
{
- long r;
- FILE *f = fopen(file,"r");
+ long r;
+ FILE *f = fopen(file, "r");
if (!f)
{
@@ -746,9 +747,9 @@ file_size(const char *file)
static int
file_line_count(const char *file)
{
- int c;
- int l = 0;
- FILE *f = fopen(file,"r");
+ int c;
+ int l = 0;
+ FILE *f = fopen(file, "r");
if (!f)
{
@@ -768,7 +769,7 @@ file_line_count(const char *file)
static bool
file_exists(const char *file)
{
- FILE *f = fopen(file, "r");
+ FILE *f = fopen(file, "r");
if (!f)
return false;
@@ -806,7 +807,7 @@ make_directory(const char *dir)
static int
run_diff(const char *cmd, const char *filename)
{
- int r;
+ int r;
r = system(cmd);
if (!WIFEXITED(r) || WEXITSTATUS(r) > 1)
@@ -815,9 +816,10 @@ run_diff(const char *cmd, const char *filename)
exit_nicely(2);
}
#ifdef WIN32
+
/*
- * On WIN32, if the 'diff' command cannot be found, system() returns
- * 1, but produces nothing to stdout, so we check for that here.
+ * On WIN32, if the 'diff' command cannot be found, system() returns 1,
+ * but produces nothing to stdout, so we check for that here.
*/
if (WEXITSTATUS(r) == 1 && file_size(filename) <= 0)
{
@@ -825,7 +827,7 @@ run_diff(const char *cmd, const char *filename)
exit_nicely(2);
}
#endif
-
+
return WEXITSTATUS(r);
}
@@ -839,17 +841,17 @@ static bool
results_differ(const char *testname)
{
const char *expectname;
- char resultsfile[MAXPGPATH];
- char expectfile[MAXPGPATH];
- char diff[MAXPGPATH];
- char cmd[MAXPGPATH * 3];
- char best_expect_file[MAXPGPATH];
+ char resultsfile[MAXPGPATH];
+ char expectfile[MAXPGPATH];
+ char diff[MAXPGPATH];
+ char cmd[MAXPGPATH * 3];
+ char best_expect_file[MAXPGPATH];
_resultmap *rm;
- FILE *difffile;
- int best_line_count;
- int i;
- int l;
-
+ FILE *difffile;
+ int best_line_count;
+ int i;
+ int l;
+
/* Check in resultmap if we should be looking at a different file */
expectname = testname;
for (rm = resultmap; rm != NULL; rm = rm->next)
@@ -915,9 +917,9 @@ results_differ(const char *testname)
}
}
- /*
- * fall back on the canonical results file if we haven't tried it yet
- * and haven't found a complete match yet.
+ /*
+ * fall back on the canonical results file if we haven't tried it yet and
+ * haven't found a complete match yet.
*/
if (strcmp(expectname, testname) != 0)
@@ -946,8 +948,8 @@ results_differ(const char *testname)
}
/*
- * Use the best comparison file to generate the "pretty" diff, which
- * we append to the diffs summary file.
+ * Use the best comparison file to generate the "pretty" diff, which we
+ * append to the diffs summary file.
*/
snprintf(cmd, sizeof(cmd),
SYSTEMQUOTE "diff %s \"%s\" \"%s\" >> \"%s\"" SYSTEMQUOTE,
@@ -975,13 +977,13 @@ results_differ(const char *testname)
* Note: it's OK to scribble on the pids array, but not on the names array
*/
static void
-wait_for_tests(PID_TYPE *pids, char **names, int num_tests)
+wait_for_tests(PID_TYPE * pids, char **names, int num_tests)
{
- int tests_left;
- int i;
+ int tests_left;
+ int i;
#ifdef WIN32
- PID_TYPE *active_pids = malloc(num_tests * sizeof(PID_TYPE));
+ PID_TYPE *active_pids = malloc(num_tests * sizeof(PID_TYPE));
memcpy(active_pids, pids, num_tests * sizeof(PID_TYPE));
#endif
@@ -989,7 +991,7 @@ wait_for_tests(PID_TYPE *pids, char **names, int num_tests)
tests_left = num_tests;
while (tests_left > 0)
{
- PID_TYPE p;
+ PID_TYPE p;
#ifndef WIN32
p = wait(NULL);
@@ -1001,7 +1003,7 @@ wait_for_tests(PID_TYPE *pids, char **names, int num_tests)
exit_nicely(2);
}
#else
- int r;
+ int r;
r = WaitForMultipleObjects(tests_left, active_pids, FALSE, INFINITE);
if (r < WAIT_OBJECT_0 || r >= WAIT_OBJECT_0 + tests_left)
@@ -1013,9 +1015,9 @@ wait_for_tests(PID_TYPE *pids, char **names, int num_tests)
p = active_pids[r - WAIT_OBJECT_0];
/* compact the active_pids array */
active_pids[r - WAIT_OBJECT_0] = active_pids[tests_left - 1];
-#endif /* WIN32 */
+#endif /* WIN32 */
- for (i=0; i < num_tests; i++)
+ for (i = 0; i < num_tests; i++)
{
if (p == pids[i])
{
@@ -1043,12 +1045,12 @@ static void
run_schedule(const char *schedule)
{
#define MAX_PARALLEL_TESTS 100
- char *tests[MAX_PARALLEL_TESTS];
- PID_TYPE pids[MAX_PARALLEL_TESTS];
+ char *tests[MAX_PARALLEL_TESTS];
+ PID_TYPE pids[MAX_PARALLEL_TESTS];
_stringlist *ignorelist = NULL;
- char scbuf[1024];
- FILE *scf;
- int line_num = 0;
+ char scbuf[1024];
+ FILE *scf;
+ int line_num = 0;
scf = fopen(schedule, "r");
if (!scf)
@@ -1060,17 +1062,17 @@ run_schedule(const char *schedule)
while (fgets(scbuf, sizeof(scbuf), scf))
{
- char *test = NULL;
- char *c;
- int num_tests;
- bool inword;
- int i;
+ char *test = NULL;
+ char *c;
+ int num_tests;
+ bool inword;
+ int i;
line_num++;
/* strip trailing whitespace, especially the newline */
i = strlen(scbuf);
- while (i > 0 && isspace((unsigned char) scbuf[i-1]))
+ while (i > 0 && isspace((unsigned char) scbuf[i - 1]))
scbuf[--i] = '\0';
if (scbuf[0] == '\0' || scbuf[0] == '#')
@@ -1083,10 +1085,11 @@ run_schedule(const char *schedule)
while (*c && isspace((unsigned char) *c))
c++;
add_stringlist_item(&ignorelist, c);
+
/*
* Note: ignore: lines do not run the test, they just say that
- * failure of this test when run later on is to be ignored.
- * A bit odd but that's how the shell-script version did it.
+ * failure of this test when run later on is to be ignored. A bit
+ * odd but that's how the shell-script version did it.
*/
continue;
}
@@ -1137,7 +1140,7 @@ run_schedule(const char *schedule)
}
else if (max_connections > 0 && max_connections < num_tests)
{
- int oldest = 0;
+ int oldest = 0;
status(_("parallel group (%d tests, in groups of %d): "),
num_tests, max_connections);
@@ -1172,7 +1175,7 @@ run_schedule(const char *schedule)
if (results_differ(tests[i]))
{
- bool ignore = false;
+ bool ignore = false;
_stringlist *sl;
for (sl = ignorelist; sl != NULL; sl = sl->next)
@@ -1213,7 +1216,7 @@ run_schedule(const char *schedule)
static void
run_single_test(const char *test)
{
- PID_TYPE pid;
+ PID_TYPE pid;
status(_("test %-20s ... "), test);
pid = psql_start_test(test);
@@ -1238,8 +1241,8 @@ run_single_test(const char *test)
static void
open_result_files(void)
{
- char file[MAXPGPATH];
- FILE *difffile;
+ char file[MAXPGPATH];
+ FILE *difffile;
/* create the log file (copy of running status output) */
snprintf(file, sizeof(file), "%s/regression.out", outputdir);
@@ -1313,10 +1316,10 @@ int
main(int argc, char *argv[])
{
_stringlist *sl;
- int c;
- int i;
- int option_index;
- char buf[MAXPGPATH * 4];
+ int c;
+ int i;
+ int option_index;
+ char buf[MAXPGPATH * 4];
static struct option long_options[] = {
{"help", no_argument, NULL, 'h'},
@@ -1388,7 +1391,7 @@ main(int argc, char *argv[])
temp_install = strdup(optarg);
else
{
- char cwdbuf[MAXPGPATH];
+ char cwdbuf[MAXPGPATH];
if (!getcwd(cwdbuf, sizeof(cwdbuf)))
{
@@ -1396,7 +1399,7 @@ main(int argc, char *argv[])
exit_nicely(2);
}
temp_install = malloc(strlen(cwdbuf) + strlen(optarg) + 2);
- sprintf(temp_install,"%s/%s", cwdbuf, optarg);
+ sprintf(temp_install, "%s/%s", cwdbuf, optarg);
}
canonicalize_path(temp_install);
break;
@@ -1408,7 +1411,7 @@ main(int argc, char *argv[])
break;
case 12:
{
- int p = atoi(optarg);
+ int p = atoi(optarg);
/* Since Makefile isn't very bright, check port range */
if (p >= 1024 && p <= 65535)
@@ -1470,7 +1473,7 @@ main(int argc, char *argv[])
if (directory_exists(temp_install))
{
header(_("removing existing temp installation"));
- rmtree(temp_install,true);
+ rmtree(temp_install, true);
}
header(_("creating temporary installation"));
@@ -1526,9 +1529,9 @@ main(int argc, char *argv[])
}
/*
- * Wait till postmaster is able to accept connections (normally only
- * a second or so, but Cygwin is reportedly *much* slower). Don't
- * wait forever, however.
+ * Wait till postmaster is able to accept connections (normally only a
+ * second or so, but Cygwin is reportedly *much* slower). Don't wait
+ * forever, however.
*/
snprintf(buf, sizeof(buf),
SYSTEMQUOTE "\"%s/psql\" -X postgres <%s 2>%s" SYSTEMQUOTE,
@@ -1559,9 +1562,9 @@ main(int argc, char *argv[])
fprintf(stderr, _("\n%s: postmaster did not respond within 60 seconds\nExamine %s/log/postmaster.log for the reason\n"), progname, outputdir);
/*
- * If we get here, the postmaster is probably wedged somewhere
- * in startup. Try to kill it ungracefully rather than leaving
- * a stuck postmaster that might interfere with subsequent test
+ * If we get here, the postmaster is probably wedged somewhere in
+ * startup. Try to kill it ungracefully rather than leaving a
+ * stuck postmaster that might interfere with subsequent test
* attempts.
*/
#ifndef WIN32
@@ -1590,21 +1593,22 @@ main(int argc, char *argv[])
* pre-existing database.
*/
header(_("dropping database \"%s\""), dbname);
- psql_command("postgres","DROP DATABASE IF EXISTS \"%s\"", dbname);
+ psql_command("postgres", "DROP DATABASE IF EXISTS \"%s\"", dbname);
}
/*
* Create the test database
*
- * We use template0 so that any installation-local cruft in template1
- * will not mess up the tests.
+ * We use template0 so that any installation-local cruft in template1 will
+ * not mess up the tests.
*/
header(_("creating database \"%s\""), dbname);
if (encoding)
psql_command("postgres",
- "CREATE DATABASE \"%s\" TEMPLATE=template0 ENCODING='%s'",
+ "CREATE DATABASE \"%s\" TEMPLATE=template0 ENCODING='%s'",
dbname, encoding);
- else /* use installation default */
+ else
+ /* use installation default */
psql_command("postgres",
"CREATE DATABASE \"%s\" TEMPLATE=template0",
dbname);
@@ -1614,7 +1618,7 @@ main(int argc, char *argv[])
"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';",
+ "ALTER DATABASE \"%s\" SET timezone_abbreviations TO 'Default';",
dbname, dbname, dbname, dbname, dbname);
/*
@@ -1659,22 +1663,23 @@ main(int argc, char *argv[])
snprintf(buf, sizeof(buf),
_(" All %d tests passed. "),
success_count);
- else if (fail_count == 0) /* fail_count=0, fail_ignore_count>0 */
+ else if (fail_count == 0) /* fail_count=0, fail_ignore_count>0 */
snprintf(buf, sizeof(buf),
_(" %d of %d tests passed, %d failed test(s) ignored. "),
success_count,
success_count + fail_ignore_count,
fail_ignore_count);
- else if (fail_ignore_count == 0) /* fail_count>0 && fail_ignore_count=0 */
+ else if (fail_ignore_count == 0) /* fail_count>0 && fail_ignore_count=0 */
snprintf(buf, sizeof(buf),
_(" %d of %d tests failed. "),
fail_count,
- success_count+fail_count);
- else /* fail_count>0 && fail_ignore_count>0 */
+ success_count + fail_count);
+ else
+ /* fail_count>0 && fail_ignore_count>0 */
snprintf(buf, sizeof(buf),
_(" %d of %d tests failed, %d of these failures ignored. "),
- fail_count+fail_ignore_count,
- success_count + fail_count+fail_ignore_count,
+ fail_count + fail_ignore_count,
+ success_count + fail_count + fail_ignore_count,
fail_ignore_count);
putchar('\n');
diff --git a/src/timezone/pgtz.c b/src/timezone/pgtz.c
index c11eb5b9b2..6f9d4225b5 100644
--- a/src/timezone/pgtz.c
+++ b/src/timezone/pgtz.c
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/timezone/pgtz.c,v 1.45 2006/09/16 20:14:34 tgl Exp $
+ * $PostgreSQL: pgsql/src/timezone/pgtz.c,v 1.46 2006/10/04 00:30:14 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -787,7 +787,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",
@@ -1148,26 +1148,28 @@ pg_timezone_initialize(void)
*/
#define MAX_TZDIR_DEPTH 10
-struct pg_tzenum {
- int baselen;
- int depth;
- DIR *dirdesc[MAX_TZDIR_DEPTH];
- char *dirname[MAX_TZDIR_DEPTH];
- struct pg_tz tz;
+struct pg_tzenum
+{
+ int baselen;
+ int depth;
+ DIR *dirdesc[MAX_TZDIR_DEPTH];
+ char *dirname[MAX_TZDIR_DEPTH];
+ struct pg_tz tz;
};
+
/* typedef pg_tzenum is declared in pgtime.h */
pg_tzenum *
-pg_tzenumerate_start(void)
+pg_tzenumerate_start(void)
{
- pg_tzenum *ret = (pg_tzenum *) palloc0(sizeof(pg_tzenum));
- char *startdir = pstrdup(pg_TZDIR());
+ pg_tzenum *ret = (pg_tzenum *) palloc0(sizeof(pg_tzenum));
+ char *startdir = pstrdup(pg_TZDIR());
ret->baselen = strlen(startdir) + 1;
ret->depth = 0;
ret->dirname[0] = startdir;
ret->dirdesc[0] = AllocateDir(startdir);
- if (!ret->dirdesc[0])
+ if (!ret->dirdesc[0])
ereport(ERROR,
(errcode_for_file_access(),
errmsg("could not open directory \"%s\": %m", startdir)));
@@ -1192,7 +1194,7 @@ pg_tzenumerate_next(pg_tzenum *dir)
while (dir->depth >= 0)
{
struct dirent *direntry;
- char fullname[MAXPGPATH];
+ char fullname[MAXPGPATH];
struct stat statbuf;
direntry = ReadDir(dir->dirdesc[dir->depth], dir->dirname[dir->depth]);
@@ -1219,13 +1221,13 @@ pg_tzenumerate_next(pg_tzenum *dir)
if (S_ISDIR(statbuf.st_mode))
{
/* Step into the subdirectory */
- if (dir->depth >= MAX_TZDIR_DEPTH-1)
+ if (dir->depth >= MAX_TZDIR_DEPTH - 1)
ereport(ERROR,
(errmsg("timezone directory stack overflow")));
dir->depth++;
dir->dirname[dir->depth] = pstrdup(fullname);
dir->dirdesc[dir->depth] = AllocateDir(fullname);
- if (!dir->dirdesc[dir->depth])
+ if (!dir->dirdesc[dir->depth])
ereport(ERROR,
(errcode_for_file_access(),
errmsg("could not open directory \"%s\": %m",
@@ -1236,8 +1238,8 @@ pg_tzenumerate_next(pg_tzenum *dir)
}
/*
- * Load this timezone using tzload() not pg_tzset(),
- * so we don't fill the cache
+ * Load this timezone using tzload() not pg_tzset(), so we don't fill
+ * the cache
*/
if (tzload(fullname + dir->baselen, &dir->tz.state) != 0)
{