Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
8afae114
Commit
8afae114
authored
Feb 28, 1998
by
Bruce Momjian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update for 6.3 release.
parent
4af1e537
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
926 additions
and
1033 deletions
+926
-1033
HISTORY
HISTORY
+2
-3
doc/FAQ
doc/FAQ
+779
-933
doc/TODO
doc/TODO
+145
-97
No files found.
HISTORY
View file @
8afae114
...
@@ -7,9 +7,6 @@ previous releases of PostgreSQL.
...
@@ -7,9 +7,6 @@ previous releases of PostgreSQL.
* The migration/6.2.1_to_6.3 file contains a detailed description
* The migration/6.2.1_to_6.3 file contains a detailed description
* of the feature changes in this release, and is recommended reading.
* of the feature changes in this release, and is recommended reading.
CHANGES IN THE 6.3 RELEASE
--------------------------
Bug Fixes
Bug Fixes
---------
---------
Fix binary cursors broken by MOVE implementation(Vadim)
Fix binary cursors broken by MOVE implementation(Vadim)
...
@@ -43,6 +40,8 @@ Allow multiple-argument functions in constraint clauses(Thomas)
...
@@ -43,6 +40,8 @@ Allow multiple-argument functions in constraint clauses(Thomas)
Check boolean input literals for 'true','false','yes','no','1','0'
Check boolean input literals for 'true','false','yes','no','1','0'
and throw elog(ERROR) if unrecognized(Thomas)
and throw elog(ERROR) if unrecognized(Thomas)
Major large objects fix
Major large objects fix
Fix for GROUP BY showing duplicates(Vadim)
Fix for index scans in MergeJion(Vadim)
Enhancements
Enhancements
------------
------------
...
...
doc/FAQ
View file @
8afae114
<HTML>
<HEAD>
Frequently Asked Questions (FAQ) for PostgreSQL
<TITLE>PostgreSQL FAQ</title>
</HEAD>
Last updated: Sat Feb 28 10:04:28 EST 1998
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#FF0000" VLINK="#A00000" ALINK="#0
000FF">
Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us)
<H1>
Frequently Asked Questions (FAQ) for PostgreSQL
The most recent version of this document can be viewed at the
</H1>
postgreSQL Web site, http://postgreSQL.org.
<P>
Last updated: Wed Feb 25 14:37:07 EST 1998
Linux-specific questions are answered in
<P>
http://postgreSQL.org/docs/faq-linux.shtml.
Current maintainer: Bruce Momjian (<a
href="mailto:maillist@candle.pha.pa.us">maillist@candle.pha.pa.us</a>)<BR>
Irix-specific questions are answered in
<P>
http://postgreSQL.org/docs/faq-irix.shtml.
The most recent version of this document can be viewed at
_________________________________________________________________
the postgreSQL Web site, <a
href="http://postgreSQL.org">http://postgreSQL.org</a>.
Questions answered:
<P>
Linux-specific questions are answered in
1) General questions
<a href="http://postgreSQL.org/docs/faq-linux.shtml">http://postgreSQL.org/docs
/faq-linux.shtml</a>.
1.1) What is PostgreSQL?
<P>
1.2) What does PostgreSQL run on?
Irix-specific questions are answered in
1.3) Where can I get PostgreSQL?
<a href="http://postgreSQL.org/docs/faq-irix.shtml">http://postgreSQL.org/docs/
1.4) What's the copyright on PostgreSQL?
faq-irix.shtml</a>.
1.5) Support for PostgreSQL
<P>
1.6) Latest release of PostgreSQL
<HR>
1.7) Is there a commercial version of PostgreSQL?
<P>
1.8) What documentation is available for PostgreSQL?
<H2>Questions answered:</H2>
1.9) What version of SQL does PostgreSQL use?
<H3> 1) General questions</H3>
1.10) Does PostgreSQL work with databases from earlier versions of
<a href="#1.1">1.1</a>) What is PostgreSQL?<BR>
postgres?
<a href="#1.2">1.2</a>) What does PostgreSQL run on?<BR>
1.11) Are there ODBC drivers for PostgreSQL?
<a href="#1.3">1.3</a>) Where can I get PostgreSQL?<BR>
1.12) What tools are available for hooking postgres to Web pages?
<a href="#1.4">1.4</a>) What's the copyright on PostgreSQL?<BR>
1.13) Does PostgreSQL have a graphical user interface? A report
<a href="#1.5">1.5</a>) Support for PostgreSQL<BR>
generator? A embedded query language interface?
<a href="#1.6">1.6</a>) Latest release of PostgreSQL<BR>
1.14) What is a good book to learn SQL?
<a href="#1.7">1.7</a>) Is there a commercial version of PostgreSQL?<BR>
<a href="#1.8">1.8</a>) What documentation is available for PostgreSQL?<BR>
2) Installation/Configuration questions
<a href="#1.9">1.9</a>) What version of SQL does PostgreSQL use?<BR>
<a href="#1.10">1.10</a>) Does PostgreSQL work with databases from
2.1) initdb doesn't run
earlier versions of postgres?<BR>
2.2) when I start up the postmaster, I get "FindBackend: could not
<a href="#1.11">1.11</a>) Are there ODBC drivers for
find a backend to execute..." "postmaster: could not find backend to
PostgreSQL?<BR>
execute..."
<a href="#1.12">1.12</a>) What tools are available for hooking
2.3) The system seems to be confused about commas, decimal points, and
postgres to Web pages?<BR>
date formats.
<a href="#1.13">1.13</a>) Does PostgreSQL have a graphical user interface
2.4) How do I install PostgreSQL somewhere other than
?
/usr/local/pgsql?
A report generator? A embedded query language interface?<BR>
2.5) When I run postmaster, I get a Bad System Call core dumped
<a href="#1.14">1.14</a>) What is a good book to learn SQL?<BR>
message.
2.6) When I try to start the postmaster, I get IpcMemoryCreate errors.
<H3> 2) Installation/Configuration questions</H3>
2.7) I have changed a source file, but a recompile does not see the
<a href="#2.1">2.1</a>) initdb doesn't run<BR>
change?
<a href="#2.2">2.2</a>) when I start up the postmaster, I get
2.8) How do I prevent other hosts from accessing my PostgreSQL
"FindBackend: could not find a backend to execute..."
2.9) I can't access the database as the 'root' user.
"postmaster: could not find backend to execute..."<BR>
2.10) All my servers crash under concurrent table access. Why?
<a href="#2.3">2.3</a>) The system seems to be confused about commas,
2.11) How do I tune the database engine for better performance?
decimal points, and date formats.<BR>
2.12) What debugging features are available in PostgreSQL?
<a href="#2.4">2.4</a>) How do I install PostgreSQL somewhere other than
2.13) How do I enable more than 32 concurrent backends?
/usr/local/pgsql?<BR>
<a href="#2.5">2.5</a>) When I run postmaster, I get a Bad System Call
3) Operational questions
core dumped message.<BR>
<a href="#2.6">2.6</a>) When I try to start the postmaster, I get
3.1) Does PostgreSQL support nested subqueries?
IpcMemoryCreate errors.<BR>
3.2) I've having a lot of problems using rules.
<a href="#2.7">2.7</a>) I have changed a source file, but a
3.3) I can't seem to write into the middle of large objects reliably.
recompile does not see the change?<BR>
3.4) How can I write client applications to PostgreSQL?
<a href="#2.8">2.8</a>) How do I prevent other hosts from accessing my
3.5) How do I set up a pg_group?
PostgreSQL<BR>
3.6) What is the exact difference between binary cursors and normal
<a href="#2.9">2.9</a>) I can't access the database as the
cursors?
'root' user.<BR>
3.7) What is a R-tree index and what is it used for?
<a href="#2.10">2.10</a>) All my servers crash under concurrent
3.8) What is the maximum size for a tuple?
table access. Why?<BR>
3.9) I defined indices but my queries don't seem to make use of them.
<a href="#2.11">2.11</a>) How do I tune the database engine for
Why?
better performance?<BR>
3.10) How do I do regular expression searches? case-insensitive regexp
<a href="#2.12">2.12</a>) What debugging features are available in
searching?
PostgreSQL?<BR>
3.11) I experienced a server crash during a vacuum. How do I remove
<a href="#2.13">2.13</a>) How do I enable more than 32 concurrent
the lock file?
backends?
3.12) What is the difference between the various character types?
<H3> 3) Operational questions</H3>
3.13) In a query, how do I detect if a field is NULL?
<a href="#3.1">3.1</a>) Does PostgreSQL support nested subqueries?<BR>
3.14) How do I see how the query optimizer is evaluating my query?
<a href="#3.2">3.2</a>) I've having a lot of problems using rules.<BR>
3.15) How do I create a serial field?
<a href="#3.3">3.3</a>) I can't seem to write into the middle of large
3.16) What are the pg_psort.XXX files in my database directory?
objects reliably.<BR>
3.17) Why can't I connect to my database from another machine?
<a href="#3.4">3.4</a>) How can I write client applications to
3.18) How do I find out what indexes or operations are defined in the
PostgreSQL?<BR>
database?
<a href="#3.5">3.5</a>) How do I set up a pg_group?<BR>
3.19) What is the time-warp feature and how does it relate to vacuum?
<a href="#3.6">3.6</a>) What is the exact difference between
3.20) What is an oid? What is a tid?
binary cursors and normal cursors?<BR>
3.21) What is the meaning of some of the terms used in Postgres?
<a href="#3.7">3.7</a>) What is a R-tree index and what is it
3.22) What is Genetic Query Optimization?
used for?<BR>
3.23) How do you remove a column from a table?
<a href="#3.8">3.8</a>) What is the maximum size for a
3.24) How do SELECT only the first few rows of a query?
tuple?<BR>
3.25) Why can't I create a column named "time"?
<a href="#3.9">3.9</a>) I defined indices but my queries don't
3.26) How much database disk space is required to store data from a
seem to make use of them. Why?<BR>
typical flat file?
<a href="#3.10">3.10</a>) How do I do regular expression searches?
case-insensitive regexp searching?<BR>
4) Questions about extending PostgreSQL
<a href="#3.11">3.11</a>) I experienced a server crash during a
vacuum. How do I remove the lock file?<BR>
4.1) I wrote a user-defined function and when I run it in psql, it
<a href="#3.12">3.12</a>) What is the difference between the
dumps core.
various character types?<BR>
4.2) I get messages of the type NOTICE:PortalHeapMemoryFree:
<a href="#3.13">3.13</a>) In a query, how do I detect if a field
0x402251d0
is NULL?<BR>
4.3) I've written some nifty new types and functions for PostgreSQL.
<a href="#3.14">3.14</a>) How do I see how the query optimizer is
4.4) How do I write a C function to return a tuple?
evaluating my query?<BR>
<a href="#3.15">3.15</a>) How do I create a serial field?<BR>
5) Bugs
<a href="#3.16">3.16</a>) What are the pg_psort.XXX files in my
database directory?<BR>
5.1) How do I make a bug report?
<a href="#3.17">3.17</a>) Why can't I connect to my database from
_________________________________________________________________
another machine?<BR>
<a href="#3.18">3.18</a>) How do I find out what indexes or
Section 1: General Questions
operations are defined in the database?<BR>
<a href="#3.19">3.19</a>) What is the time-warp feature and how
1.1) What is PostgreSQL?
does it relate to vacuum?<BR>
<a href="#3.20">3.20</a>) What is an oid? What is a tid?<BR>
PostgreSQL is an enhancement of the POSTGRES database management
<a href="#3.21">3.21</a>) What is the meaning of some of the terms
system, a next-generation DBMS research prototype. While PostgreSQL
used in Postgres?<BR>
retains the powerful data model and rich data types of POSTGRES, it
<a href="#3.22">3.22</a>) What is Genetic Query Optimization?<BR>
replaces the PostQuel query language with an extended subset of SQL.
<a href="#3.23">3.23</a>) How do you remove a column from a table?<BR>
PostgreSQL is free and the complete source is available.
<a href="#3.24">3.24</a>) How do SELECT only the first few rows of
a query?<BR>
PostgreSQL development is being performed by a team of Internet
<a href="#3.25">3.25</a>) Why can't I create a column named "time"?<BR>
developers who all subscribe to the PostgreSQL development mailing
<a href="#3.26">3.26</a>) How much database disk space is required
list. The current coordinator is Marc G. Fournier
to store data from a typical flat file?<BR>
(scrappy@postgreSQL.org). (See below on how to join). This team is now
<H3> 4) Questions about extending PostgreSQL</H3>
responsible for all current and future development of PostgreSQL.
<a href="#4.1">4.1</a>) I wrote a user-defined function and when I run
it in psql, it dumps core.<BR>
The authors of PostgreSQL 1.01 were Andrew Yu and Jolly Chen. Many
<a href="#4.2">4.2</a>) I get messages of the type
others have contributed to the porting, testing, debugging and
NOTICE:PortalHeapMemoryFree: 0x402251d0<BR>
enhancement of the code. The original Postgres code, from which
<a href="#4.3">4.3</a>) I've written some nifty new types and functions
PostgreSQL is derived, was the effort of many graduate students,
for PostgreSQL.<BR>
undergraduate students, and staff programmers working under the
<a href="#4.4">4.4</a>) How do I write a C function to return a
direction of Professor Michael Stonebraker at the University of
tuple?<BR>
California, Berkeley.
<H3> 5) Bugs</H3>
<a href="#5.1">5.1</a>) How do I make a bug report?
The original name of the software at Berkeley was Postgres. When SQL
<P>
functionality was added in 1995, its name was changed to Postgres95.
The name was changed at the end of 1996 to PostgreSQL.
<HR>
<H2> Section 1: General Questions</H2> <H3><a
1.2) What does PostgreSQL run on?
name="1.1">1.1</a>) What is PostgreSQL?</H3>
<P>
The authors have compiled and tested PostgreSQL on the following
PostgreSQL is an enhancement of the POSTGRES database management system,
platforms(some of these compiles require gcc 2.7.0):
a next-generation DBMS research prototype. While PostgreSQL retains the
* aix - IBM on AIX 3.2.5 or 4.x
powerful data model and rich data types of POSTGRES, it replaces the
* alpha - DEC Alpha AXP on Digital Unix 2.0, 3.2, 4.0
PostQuel query language with an extended subset of SQL. PostgreSQL is
* BSD44_derived - OSs derived from 4.4-lite BSD (NetBSD, FreeBSD)
free and the complete source is available.
* bsdi - BSD/OS 2.0, 2.01, 2.1, 3.0
<P>
* dgux - DG/UX 5.4R4.11
PostgreSQL development is being performed by a team of Internet
* hpux - HP PA-RISC on HP-UX 9.0, 10
developers who all subscribe to the PostgreSQL development mailing list.
* i386_solaris - i386 Solaris
The current coordinator is Marc G. Fournier (<a
* irix5 - SGI MIPS on IRIX 5.3
href="mailto:scrappy@postgreSQL.org">scrappy@postgreSQL.org</a>). (See
* linux - Intel x86 on Linux 2.0 and Linux ELF SPARC on Linux ELF
below on how to join). This team is now responsible for all current and
PPC on Linux Elf (For non-ELF Linux, see LINUX_ELF below).
future development of PostgreSQL.
* sco - SCO 3.2v5
<P>
* sparc_solaris - SUN SPARC on Solaris 2.4, 2.5, 2.5.1
The authors of PostgreSQL 1.01 were Andrew Yu and Jolly Chen. Many
* sunos4 - SUN SPARC on SunOS 4.1.3
others have contributed to the porting, testing, debugging and
* svr4 - Intel x86 on Intel SVR4 and MIPS
enhancement of the code. The original Postgres code, from which
* ultrix4 - DEC MIPS on Ultrix 4.4
PostgreSQL is derived, was the effort of many graduate students,
undergraduate students, and staff programmers working under the
The following platforms have known problems/bugs:
direction of Professor Michael Stonebraker at the University of
* nextstep - Motorola MC68K or Intel x86 on NeXTSTEP 3.2
California, Berkeley.
<P>
1.3) Where can I get PostgreSQL?
The original name of the software at Berkeley was Postgres. When SQL
functionality was added in 1995, its name was changed to Postgres95. The
The primary anonymous ftp site for PostgreSQL is:
name was changed at the end of 1996 to PostgreSQL.
* ftp://ftp.postgreSQL.org/pub
<P>
<H3><a name="1.2">1.2</a>) What does PostgreSQL run
A mirror site exists at:
on?</H3>
* ftp://postgres95.vnet.net/pub/postgres95
<P>
* ftp://ftp.luga.or.at/pub/postgres95
The authors have compiled and tested PostgreSQL on the following
* ftp://cal011111.student.utwente.nl/pub/postgres95
platforms(some of these compiles require gcc 2.7.0):
* ftp://ftp.uni-trier.de/pub/database/rdbms/postgres/postgres95
<UL>
* ftp://rocker.sch.bme.hu
<LI> aix - IBM on AIX 3.2.5 or 4.x
<LI> alpha - DEC Alpha AXP on Digital Unix 2.0, 3.2, 4.0
1.4) What's the copyright on PostgreSQL?
<LI> BSD44_derived - OSs derived from 4.4-lite BSD (NetBSD, FreeBSD)
<LI> bsdi - BSD/OS 2.0, 2.01, 2.1, 3.0
PostgreSQL is subject to the following COPYRIGHT.
<LI> dgux - DG/UX 5.4R4.11
<LI> hpux - HP PA-RISC on HP-UX 9.0, 10
PostgreSQL Data Base Management System
<LI> i386_solaris - i386 Solaris
<LI> irix5 - SGI MIPS on IRIX 5.3
Copyright (c) 1994-6 Regents of the University of California
<LI> linux - Intel x86 on Linux 2.0 and Linux ELF
SPARC on Linux ELF
Permission to use, copy, modify, and distribute this software and its
PPC on Linux Elf
documentation for any purpose, without fee, and without a written
(For non-ELF Linux, see LINUX_ELF below).
agreement is hereby granted, provided that the above copyright notice
<LI> sco - SCO 3.2v5
and this paragraph and the following two paragraphs appear in all
<LI> sparc_solaris - SUN SPARC on Solaris 2.4, 2.5, 2.5.1
copies.
<LI> sunos4 - SUN SPARC on SunOS 4.1.3
<LI> svr4 - Intel x86 on Intel SVR4 and MIPS
IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
<LI> ultrix4 - DEC MIPS on Ultrix 4.4
FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
</UL>
INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND
The following platforms have known problems/bugs:
ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN
<UL>
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<LI> nextstep - Motorola MC68K or Intel x86 on NeXTSTEP 3.2
</UL>
THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
<P>
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
<H3><a name="1.3">1.3</a>) Where can I get PostgreSQL?</H3>
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
<P> The primary anonymous ftp site for PostgreSQL is:
PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
<UL>
CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
<LI> <a
UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
href="ftp://ftp.postgreSQL.org/pub">ftp://ftp.postgreSQL.org/pub</a>
</UL>
1.5) Support for PostgreSQL
<P> A mirror site exists at:
<UL>
There is no official support for PostgreSQL from the original
<LI> <a
maintainers or from University of California, Berkeley. It is
href="ftp://postgres95.vnet.net/pub/postgres95">ftp://postgres95.vnet.net/pub/p
maintained through volunteer effort only.
ostgres95</a>
<LI> <a
The main mailing list is: questions@postgreSQL.org. It is available
href="ftp://ftp.luga.or.at/pub/postgres95">ftp://ftp.luga.or.at/pub/postgres95<
for discussion o f matters pertaining to PostgreSQL, including but not
/a>
limited to bug reports and fixes. For info on how to subscribe, send a
<LI> <a
mail with the lines in the body (not the subject line)
href="ftp://cal011111.student.utwente.nl/pub/postgres95">ftp://cal011111.studen
t.utwente.nl/pub/postgres95</a>
<LI> <a
href="ftp://ftp.uni-trier.de/pub/database/rdbms/postgres/postgres95">ftp://ftp.
uni-trier.de/pub/database/rdbms/postgres/postgres95</a>
<LI> <a
href="ftp://rocker.sch.bme.hu">ftp://rocker.sch.bme.hu</a>
</UL>
<H3><a name="1.4">1.4</a>) What's the copyright on
PostgreSQL?</H3>
<P>
PostgreSQL is subject to the following COPYRIGHT.
<P>
PostgreSQL Data Base Management System
<P>
Copyright (c) 1994-6 Regents of the University of California
<P>
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without a written
agreement is hereby granted, provided that the above copyright notice
and this paragraph and the following two paragraphs appear in all
copies.
<P>
IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
<P>
THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER
IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO
OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
MODIFICATIONS.
<P>
<H3><a name="1.5">1.5</a>) Support for PostgreSQL </H3>
<P>
There is no official support for PostgreSQL from the original
maintainers or from University of California, Berkeley. It is
maintained through volunteer effort only.
<P>
The main mailing list is: <a
href="mailto:questions@postgreSQL.org">questions@postgreSQL.org</a>. It
is available for discussion o f matters pertaining to PostgreSQL,
including but not limited to bug reports and fixes. For info on how to
subscribe, send a mail with the lines in the body (not the subject line)
<PRE>
<CODE>
subscribe
subscribe
end
end
</CODE>
</PRE>
to questions-request@postgreSQL.org.
<P>
to <a
There is also a digest list available. To subscribe to this list, send
href="mailto:questions-request@postgreSQL.org">questions-request@postgreSQL.org
email to: questions-digest-request@postgreSQL.org with a BODY of:
</a>.
<P>
There is also a digest list available. To subscribe to this list, send
email to:
<a
href="mailto:questions-digest-request@postgreSQL.org">
questions-digest-request@postgreSQL.org</a> with a BODY of:
<PRE>
<KBD>
subscribe
subscribe
end
end
</KBD>
</PRE>
Digests are sent out to members of this list whenever the main list
Digests are sent out to members of this list whenever the main list has
has received around 30k of messages.
received around 30k of messages.
<P>
There is a bugs mailing list available. To subscribe to this list,
There is a bugs mailing list available. To subscribe to this
send email to bugs-request@postgreSQL.org with a BODY of:
list, send email to <a
href="mailto:bugs-request@postgreSQL.org">bugs-request@postgreSQL.org</a>
There is also a developers discussion mailing list available. To
with a BODY of:
subscribe to this list, send email to hackers-request@postgreSQL.org
<P>
with a BODY of:
There is also a developers discussion mailing list available. To subscribe to
this
list, send email to <a
href="mailto:hackers-request@postgreSQL.org">hackers-request@postgreSQL.org</a>
with a BODY of:
<P>
<PRE>
<KBD>
subscribe
subscribe
end
end
</KBD>
</PRE>
Additional information about PostgreSQL can be found via the
<P>
PostgreSQL WWW home page at:
Additional information about PostgreSQL can be found via the PostgreSQL
WWW home page at:
http://postgreSQL.org
<BLOCKQUOTE>
<a
1.6) Latest release of PostgreSQL
href="http://postgreSQL.org">http://postgreSQL.org</a>
</BLOCKQUOTE>
The latest release of PostgreSQL is version 6.3, which was released on
<P>
March 1st, 1998.
<H3><a name="1.6">1.6</a>) Latest release of PostgreSQL</H3>
<P>
We plan to have major releases every three months.
The latest release of PostgreSQL is version 6.2.1, which was released on
October 17th, 1997. We are testing 6.3 beta. For information about
1.7) Is there a commercial version of PostgreSQL?
what is new in 6.3, see our TODO list on our WWW page.
<P>
Illustra Information Technology (a wholly owned subsidiary of Informix
We plan to have major releases every three months.
Software, Inc.) sells an object-relational DBMS called Illustra that
<P>
was originally based on postgres. Illustra has cosmetic similarities
<H3><a name="1.7">1.7</a>) Is there a commercial version of PostgreSQL?</H
to PostgreSQL but has more features, is more robust, performs better,
3>
and offers real documentation and support. On the flip side, it costs
<P>
money. For more information, contact sales@illustra.com
Illustra Information Technology (a wholly owned subsidiary of Informix
Software, Inc.) sells an object-relational DBMS called Illustra that was
1.8) What documentation is available for PostgreSQL?
originally based on postgres. Illustra has cosmetic similarities to
PostgreSQL but has more features, is more robust, performs better, and
A user manual, manual pages, and some small test examples are included
offers real documentation and support. On the flip side, it costs
in the distribution. The sql and built-in manual pages are
money. For more information, contact <a
particularly important.
href="mailto:sales@illustra.com">sales@illustra.com</a>
<P>
The www page contains pointers to an implementation guide and five
<H3><a name="1.8">1.8</a>) What documentation is available for PostgreSQL?
papers written about postgres design concepts and features.
</H3>
<P>
1.9) What version of SQL does PostgreSQL use?
A user manual, manual pages, and some small test examples are included
in the distribution. The sql and built-in manual pages are particularly
PostgreSQL supports a subset of SQL-92. It has most of the important
important.
constructs but lacks some of the functionality. The most visible
<P>
differences are:
The www page contains pointers to an implementation guide and five
* no HAVING clause under a GROUP BY
papers written about postgres design concepts and features.
<P>
On the other hand, you get to create user-defined types, functions,
<H3><a name="1.9">1.9</a>) What version of SQL does PostgreSQL use?</H3>
inheritance etc.
<P>
PostgreSQL supports a subset of SQL-92. It has most of the important
1.10) Does PostgreSQL work with databases from earlier versions of postgres?
constructs but lacks some of the functionality. The most visible
differences are:
PostgreSQL v1.09 is compatible with databases created with v1.01.
<UL>
<LI> no HAVING clause under a GROUP BY
Upgrading to 6.3 from earlier releases requires a dump and restore.
</UL>
<P>
Upgrading to 6.2.1 from pre-6.2 requires a dump and restore.
On the other hand, you get to create user-defined types, functions,
inheritance etc.
Upgrading to 6.2.1 from 6.2 does not require a dump, but see the
<P>
appropriate /migration file in the distribution.
<H3><a name="1.10">1.10</a>) Does PostgreSQL work with databases from
earlier versions of postgres?</H3>
Those ugrading from versions earlier than 1.09 must upgrade to 1.09
<P>
first without a dump/reload, then dump the data from 1.09, and then
PostgreSQL v1.09 is compatible with databases created with v1.01.
load it into 6.2.1 or 6.3 beta.
<P>
Upgrading to 6.3 from earlier releases requires a dump and restore.
1.11) Are there ODBC drivers for PostgreSQL?
<P>
Upgrading to 6.2.1 from pre-6.2 requires a dump and restore.
There are two ODBC drivers available, PostODBC and OpenLink ODBC.
<P>
Upgrading to 6.2.1 from 6.2 does not require a dump, but see the
PostODBC is included in the distribution. For all people being
appropriate /migration file in the distribution.
interested in PostODBC, there are now two mailing lists devoted to the
<P>
discussion of PostODBC. The mailing lists are:
Those ugrading from versions earlier than 1.09 must upgrade to 1.09
* postodbc-users@listserv.direct. net
first without a dump/reload, then dump the data from 1.09, and then load
* postodbc-developers@listse rv.direct.net
it into 6.2.1 or 6.3 beta.
<P>
these lists are ordinary majordomo mailing lists. You can subscribe by
<H3><a name="1.11">1.11</a>) Are there ODBC drivers for PostgreSQL?</H3>
sending a mail to:
<P>
* majordomo@listserv.direct.net
There are two ODBC drivers available, PostODBC and OpenLink ODBC.
<P>
OpenLink ODBC is very popular. You can get it from
PostODBC is included in the distribution.
http://www.openlinksw.com/postgres.html. It works with our standard
For all people being interested in PostODBC, there are now two mailing
ODBC client software so you'll have Postgres ODBC available on every
lists devoted to the discussion of PostODBC. The mailing lists are:
client platform we support (Win, Mac, Unix, VMS).
<UL>
<LI> <a
We will probably be selling this product to people who need
href="mailto:postodbc-users@listserv.direct.net">postodbc-users@listserv.direct
commercial-quality support, but a freeware version will always be
.
available. Questions to postgres95@openlink.co.uk.
net</a>
<LI> <a
1.12) What tools are available for hooking postgres to Web pages?
href="mailto:postodbc-developers@listserv.direct.net">postodbc-developers@lists
e
A nice introduction to Database-backed Web pages can be seen at:
rv.direct.net</a>
http://www.webtools.com
</UL>
<P>
For web integration, PHP is an excellent interface. The URL for that
these lists are ordinary majordomo mailing lists. You can subscribe by
is http://www.php.net
sending a mail to:
<UL>
PHP is great for simple stuff, but for more complex stuff, some still
<LI> <a
use the perl interface and CGI.pm.
href="mailto:majordomo@listserv.direct.net">majordomo@listserv.direct.net</a>
</UL>
An WWW gatway based on WDB using perl can be downloaded from:
<P>
* http://www.eol.ists.ca/~dunlop/wdb -p95
OpenLink ODBC is very popular. You can get it from <a
href="http://www.openlinksw.com/">
1.13) Does PostgreSQL have a graphical user interface? A report generator? A
http://www.openlinksw.com/postgres.html</a>. It works with our standard
embedded query language interface?
ODBC client software so you'll have Postgres ODBC available on every
client platform we support (Win, Mac, Unix, VMS).
We have a nice graphical user interface called pgaccess, which is
<P>
shipped as part of the distribtion. Pgaccess also has a report
We will probably be selling this product to people who need
generator.
commercial-quality support, but a freeware version will always be
available. Questions to <a
We also have ecpg, which is an embedded SQL query language interface
href="mailto:postgres95@openlink.co.uk">postgres95@openlink.co.uk</a>.
for C. This is also included.
<P>
<H3><a name="1.12">1.12</a>) What tools are available for hooking
1.14) What is a good book to learn SQL?
postgres to Web pages?</H3>
<P>
Many of our users like The Practical SQL Handbook, Bowman et al,
A nice introduction to Database-backed Web pages can be seen at:
Addison Wesley.
<a href="http://www.webtools.com">http://www.webtools.com</a>
_________________________________________________________________
<P>
For web integration, PHP is an excellent interface. The URL for that
Section 2: Installation Questions
is <a href="http://www.php.net">http://www.php.net</a>
<P>
2.1) initdb doesn't run
PHP is great for simple stuff, but for more complex stuff, some still
use the perl interface and CGI.pm.
* check to see that you have the proper paths set
<P>
* check that the 'postgres' user owns all the right files
An WWW gatway based on WDB using perl can be downloaded from:
* ensure that there are files in $PGDATA/files, and that they are
<UL>
non-empty. If they aren't, then "gmake install" failed for some
<LI>
reason
<a
href="http://www.eol.ists.ca/~dunlop/wdb-p95">http://www.eol.ists.ca/~dunlop/wd
2.2) when I start up the postmaster, I get "FindBackend: could not find a
b
backend to execute..." "postmaster: could not find backend to execute..."
-p95</a>
</UL>
You probably do not have the right path set up. The 'postgres'
<H3><a name="1.13">1.13</a>) Does PostgreSQL have a graphical user interface
executable needs to be in your path.
?
A report generator? A embedded query language interface?</H3>
2.3) The system seems to be confused about commas, decimal points, and date
<P>
formats.
We have a nice graphical user interface called pgaccess, which is
shipped as part of the distribtion. Pgaccess also has a report
Check your locale configuration. PostgreSQL uses the locale settings
generator.
of the user that ran the postmaster process. Set those accordingly for
<P>
your operating environment.
We also have ecpg, which is an embedded SQL query language interface for
C. This is also included.
2.4) How do I install PostgreSQL somewhere other than /usr/local/pgsql?
<P>
<H3><a name="1.14">1.14</a>) What is a good book to learn SQL?</H3>
You need to edit Makefile.global and change POSTGRESDIR accordingly,
<P>
or create a Makefile.custom and define POSTGRESDIR there.
Many of our users like <I>The Practical SQL Handbook</I>,
Bowman et al, Addison Wesley.
2.5) When I run postmaster, I get a Bad System Call core dumped message.
<P>
It could be a variety of problems, but first check to see that you
<HR>
have system V extensions installed on your kernel. PostgreSQL requires
<H2> Section 2: Installation Questions
kernel support for shared memory.
</H2>
<P>
2.6) When I try to start the postmaster, I get IpcMemoryCreate errors.
<H3><a name="2.1">2.1</a>) initdb doesn't run</H3>
<P>
You either do not have shared memory configured properly in kernel or
<UL>
you need to enlarge the shared memory available in the kernel. The
<LI> check to see that you have the proper paths set
exact amount you need depends on your architecture and how many
<LI> check that the 'postgres' user owns all the right files
buffers you configure postmaster to run with. For most systems, with
<LI> ensure that there are files in $PGDATA/files, and that they
default buffer sizes, you need a minimum of ~760K.
are non-empty. If they aren't, then "gmake install" failed for
some reason
2.7) I have changed a source file, but a recompile does not see the change?
</UL>
<P>
The Makefiles do not have the proper dependencies for include files.
<H3><a name="2.2">2.2</a>) when I start up the postmaster, I get
You have to do a 'make clean' and then another 'make'.
"FindBackend: could not find a backend to execute..."
"postmaster: could not find backend to execute..."</H3>
2.8) How do I prevent other hosts from accessing my PostgreSQL backend?
<P>
You probably do not have the right path set up. The 'postgres'
By default, PostgreSQL only allows connections from the local machine
executable needs to be in your path.
using unix domain. You must add the -i flag to the postmaster, and
<P>
enable host-based authentication by modifying the file $PGDATA/pg_hba
<H3><a name="2.3">2.3</a>) The system seems to be confused about commas,
accordingly.
decimal points, and date formats.</H3>
<P>
2.9) I can't access the database as the 'root' user.
Check your locale configuration. PostgreSQL uses the locale settings of
the user that ran the postmaster process. Set those accordingly for
You should not create database users with user id 0(root). They will
your operating environment.
be unable to access the database. This is a security precaution
<P>
because of the ability of any user to dynamically link object modules
<H3><a name="2.4">2.4</a>) How do I install PostgreSQL somewhere other tha
into the database engine.
n
/usr/local/pgsql?</H3>
2.10) All my servers crash under concurrent table access. Why?
<P>
You need to edit Makefile.global and change POSTGRESDIR accordingly, or
This problem can be caused by a kernel that is not configured to
create a Makefile.custom and define POSTGRESDIR there.
support semaphores.
<P>
<H3><a name="2.5">2.5</a>) When I run postmaster, I get a Bad System
2.11) How do I tune the database engine for better performance?
Call core dumped message.</H3>
<P>
There are two things that can be done. You can disable fsync() by
It could be a variety of problems, but first check to see that you have
starting the postmaster with a '-o -F' option. This will prevent
system V extensions installed on your kernel. PostgreSQL requires kernel
fsync()'s from flushing to disk after every transaction.
support for shared memory.
<P>
You can also use the postmaster -B option to increase the number of
<H3><a name="2.6">2.6</a>) When I try to start the postmaster, I get
shared memory buffers shared among the backend processes. If you make
IpcMemoryCreate errors.</H3>
this parameter too high, the process will not start or crash
<P>
unexpectedly. Each buffer is 8K and the defualt is 64 buffers.
You either do not have shared memory configured properly in kernel or
you need to enlarge the shared memory available in the kernel. The
You can also use the postgres -S option to increase the maximum amount
exact amount you need depends on your architecture and how many buffers
of memory used by each backend process for temporary sorts. Each
you configure postmaster to run with. For most systems, with default
buffer is 1K and the defualt is 512 buffers.
buffer sizes, you need a minimum of ~760K.
<P>
2.12) What debugging features are available in PostgreSQL?
<H3><a name="2.7">2.7</a>) I have changed a source file, but a
recompile does not see the change?</H3>
PostgreSQL has several features that report status information that
<P>
can be valuable for debugging purposes.
The Makefiles do not have the proper dependencies for include files. You
have to do a 'make clean' and then another 'make'.
First, by running configure with the -enable-cassert option, many
<P>
assert()'s monitor the progress of the backend and halt the program
<H3><a name="2.8">2.8</a>) How do I prevent other hosts from accessing my
when something unexpected occurs.
PostgreSQL backend?</H3>
<P>
Both postmaster and postgres have several debug options available.
By default, PostgreSQL only allows connections from the local machine
First, whenever you start the postmaster, make sure you send the
using unix domain. You must add the -i flag to the postmaster, and
standard output and error to a log file, like:
enable host-based authentication by modifying the file $PGDATA/pg_hba
accordingly.
<P>
<H3><a name="2.9">2.9</a>) I can't access the database as the 'root'
user.</H3>
<P>
You should not create database users with user id 0(root). They will be
unable to access the database. This is a security precaution because
of the ability of any user to dynamically link object modules into the
database engine.
<P>
<H3><a name="2.10">2.10</a>) All my servers crash under concurrent table
access. Why?</H3>
<P>
This problem can be caused by a kernel that is not configured to support
semaphores.
<P>
<H3><a name="2.11">2.11</a>) How do I tune the database engine for
better performance?</H3>
<P>
There are two things that can be done. You can disable fsync() by
starting the postmaster with a '-o -F' option. This
will prevent fsync()'s from flushing to disk after every transaction.
<P>
You can also use the postmaster -B option to increase the number of
shared memory buffers shared among the backend processes. If you make
this parameter too high, the process will not start or crash
unexpectedly. Each buffer is 8K and the defualt is 64 buffers.
<P>
You can also use the postgres -S option to increase the maximum
amount of memory used by each backend process for temporary sorts.
Each buffer is 1K and the defualt is 512 buffers.
<P>
<H3><a name="2.12">2.12</a>) What debugging features are available in
PostgreSQL?</H3>
<P>
PostgreSQL has several features that report status information that can
be valuable for debugging purposes.
<P>
First, by running configure with the -enable-cassert option,
many assert()'s monitor the progress of the backend and halt the
program when something unexpected occurs.
<P>
Both postmaster and postgres have several debug options available.
First, whenever you start the postmaster, make sure you send the
standard output and error to a log file, like:
<PRE>
<KBD>
cd /usr/local/pgsql
cd /usr/local/pgsql
./bin/postmaster >server.log 2>&1 &
./bin/postmaster >server.log 2>&1 &
</KBD>
</PRE>
This will put a server.log file in the top-level PostgreSQL directory.
<P>
This file can contain useful information about problems or errors
This will put a server.log file in the top-level PostgreSQL directory.
encountered by the server. Postmaster has a -d option that allows even
This file can contain useful information about problems or errors
more detailed information to be reported. The -d option takes a number
encountered by the server. Postmaster has a -d option that allows even
1-3 that specifies the debug level. Be warned that a debug level of 3
more detailed information to be reported. The -d option takes a number
generates large log files.
1-3 that specifies the debug level. Be warned that a debug level
of 3 generates large log files.
You can actuall run the postgres backend from the command line, and
<P>
type your SQL statement directly. This is recommended ONLY for
You can actuall run the postgres backend from the command line, and type
debugging purposes. Note that a newline terminates the query, not a
your SQL statement directly. This is recommended ONLY for debugging
semicolon. If you have compiled with debugging symbols, you can use a
purposes. Note that a newline terminates the query, not a semicolon. If
debugger to see what is happening. Because the backend was not started
you have compiled with debugging symbols, you can use a debugger
from the postmaster, it is not running in an identical environment and
to see what is happening. Because the backend was not started from the
locking/backend interaction problems may not be duplicated. Some
postmaster, it is not running in an identical environment and
operating system can attach to a running backend directly to diagnose
locking/backend interaction problems may not be duplicated. Some
problems.
operating system can attach to a running backend directly to diagnose
problems.
The postgres program has a -s, -A, -t options that can be very usefull
<P>
for debugging and performance measurements.
The postgres program has a -s, -A, -t options that can be very usefull
for debugging and performance measurements.
You can also compile with profiling to see what functions are taking
<P>
execution time. The backend profile files will be deposited in the
You can also compile with profiling to see what functions are taking
pgsql/data/base/dbname directory. The client profile file will be put
execution time. The backend profile files will be deposited in the
in the current directory.
pgsql/data/base/dbname directory. The client profile file will be put
in the current directory.
The EXPLAIN command (see this FAQ) allows you to see how PostgreSQL is
<P>
interpreting your query.
The EXPLAIN command (see this FAQ) allows you to see how PostgreSQL is
interpreting your query.
2.13) How do I enable more than 32 concurrent backends?
<P>
<H3><a name="2.13">2.13</a>) How do I enable more than 32 concurrent
Edit include/storage/sinvaladt.h, and change the value of
backends?</H3>
MaxBackendId. In the future, we plan to make this a configurable
<P>
prameter.
Edit include/storage/sinvaladt.h, and change the value of MaxBackendId.
_________________________________________________________________
In the future, we plan to make this a configurable prameter.
<P>
Section 3: PostgreSQL Features
<HR>
3.1) Does PostgreSQL support nested subqueries?
<H2> Section 3: PostgreSQL Features
</H2>
Yes.
<P>
<H3><a name="3.1">3.1</a>) Does PostgreSQL support nested subqueries?</H3>
3.2) I've having a lot of problems using rules.
<P>
Yes.
Currently, the rule system in PostgreSQL has some limitations. It
<P>
works enough to support the view mechanism, but does not handle
<H3><a name="3.2">3.2</a>) I've having a lot of problems using rules.</H3>
Insert/Update/Delete well.
<P>
Currently, the rule system in PostgreSQL has some limitations. It works
3.3) I can't seem to write into the middle of large objects reliably.
enough to support the view mechanism, but does not handle
Insert/Update/Delete well.
The Inversion large object system now works perfectly. You should no
<P>
longer have problems with large objects.
<H3><a name="3.3">3.3</a>) I can't seem to write into the middle of large
objects reliably.</H3>
3.4) How can I write client applications to PostgreSQL?
<P>
The Inversion large object system now works perfectly. You should no
PostgreSQL supports a C-callable library interface called libpq as
longer have problems with large objects.
well as many others. See the /src/interfaces directory.
<P>
<H3><a name="3.4">3.4</a>) How can I write client applications to PostgreS
Others have contributed a perl interface and a WWW gateway to
QL?</H3>
PostgreSQL. See the PostgreSQL home pages for more details.
<P>
PostgreSQL supports a C-callable library interface called libpq as well
3.5) How do I set up a pg_group?
as many others. See the /src/interfaces directory.
<P>
Currently, there is no easy interface to set up user groups. You have
Others have contributed a perl interface and a WWW gateway to
to explicitly insert/update the pg_group table. For example:
PostgreSQL. See the PostgreSQL home pages for more details.
<P>
<H3><a name="3.5">3.5</a>) How do I set up a pg_group?</H3>
jolly=> insert into pg_group (groname, grosysid, grolist)
<P>
jolly=> values ('posthackers', '1234', '{5443, 8261}');
Currently, there is no easy interface to set up user groups. You have to
explicitly insert/update the pg_group table. For example:
<PRE>
<CODE>
jolly=> insert into pg_group (groname, grosysid, grolist)
jolly=> values ('posthackers', '1234', '{5443, 8261}');
INSERT 548224
INSERT 548224
jolly=
>
grant insert on foo to group posthackers;
jolly=
>
grant insert on foo to group posthackers;
CHANGE
CHANGE
jolly=>
jolly=>
</CODE>
</PRE>
<P>
The fields in pg_group are:
The fields in pg_group are:
<UL>
* groname: the group name. This a char16 and should be purely
<LI> groname: the group name. This a char16 and should
alphanumeric. Do not include underscores or other punctuation.
be purely alphanumeric. Do not include underscores
* grosysid: the group id. This is an int4. This should be unique for
or other punctuation.
each group.
<LI> grosysid: the group id. This is an int4.
* grolist: the list of pg_user id's that belong in the group. This
This should be unique for each group.
is an int4[].
<LI> grolist: the list of pg_user id's that belong in the group.
This is an int4[].
3.6) What is the exact difference between binary cursors and normal cursors?
</UL>
<P>
See the declare manual page for a description.
<H3><a name="3.6">3.6</a>) What is the exact difference between binary
cursors and normal cursors?</H3>
3.7) What is a R-tree index and what is it used for?
<P>
See the <I>declare</I> manual page for a description.
An r-tree index is used for indexing spatial data. A hash index can't
<P>
handle range searches. A B-tree index only handles range searches in a
<H3><a name="3.7">3.7</a>) What is a R-tree index and what is it used for?
single dimension. R-tree's can handle multi-dimensional data. For
</H3>
example, if a R-tree index can be built on an attribute of type
<P>
'point', the system can more efficient answer queries like select all
An r-tree index is used for indexing spatial data. A hash index can't
points within a bounding rectangle.
handle range searches. A B-tree index only handles range searches in a
single dimension. R-tree's can handle multi-dimensional data. For
The canonical paper that describes the original R-Tree design is:
example, if a R-tree index can be built on an attribute of type 'point',
the system can more efficient answer queries like select all points
Guttman, A. "R-Trees: A Dynamic Index Structure for Spatial
within a bounding rectangle.
Searching." Proc of the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data,
<P>
45-57.
The canonical paper that describes the original R-Tree design is:
<P>
You can also find this paper in Stonebraker's "Readings in Database
Guttman, A. "R-Trees: A Dynamic Index Structure for Spatial Searching."
Systems"
Proc of the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data, 45-57.
<P>
Builtin R-Trees can handle polygons and boxes. In theory, R-trees can
You can also find this paper in Stonebraker's "Readings in Database
be extended to handle higher number of dimensions. In practice,
Systems"
extending R-trees require a bit of work and we don't currently have
<P>
any documentation on how to do it.
Builtin R-Trees can handle polygons and boxes. In theory, R-trees can
be extended to handle higher number of dimensions. In practice,
3.8) What is the maximum size for a tuple?
extending R-trees require a bit of work and we don't currently have any
documentation on how to do it.
Tuples are limited to 8K bytes. Taking into account system attributes
<P>
and other overhead, one should stay well shy of 8,000 bytes to be on
<H3><a name="3.8">3.8</a>) What is the maximum size for a tuple?</H3>
the safe side. To use attributes larger than 8K, try using the large
<P>
objects interface.
Tuples are limited to 8K bytes. Taking into account system attributes
and other overhead, one should stay well shy of 8,000 bytes to be on the
Tuples do not cross 8k boundaries so a 5k tuple will require 8k of
safe side. To use attributes larger than 8K, try using the large
storage.
objects interface.
<P>
3.9) I defined indices but my queries don't seem to make use of them. Why?
Tuples do not cross 8k boundaries so a 5k tuple will require 8k of
storage.
PostgreSQL does not automatically maintain statistics. One has to make
<P>
an explicit 'vacuum' call to update the statistics. After statistics
<H3><a name="3.9">3.9</a>) I defined indices but my queries don't seem
are updated, the optimizer has a better shot at using indices. Note
to make use of them. Why?</H3>
that the optimizer is limited and does not use indices in some
<P>
circumstances (such as OR clauses). For column-specific optimization
PostgreSQL does not automatically maintain statistics. One has to make
statistics, use 'vacuum analyze'.
an explicit 'vacuum' call to update the statistics. After statistics
are updated, the optimizer has a better shot at using indices. Note
If the system still does not see the index, it is probably because you
that the optimizer is limited and does not use indices in some
have created an index on a field with the improper *_ops type. For
circumstances (such as OR clauses). For column-specific optimization
example, you have created a CHAR(4) field, but have specified a
statistics, use 'vacuum analyze'.
char_ops index type_class.
<P>
If the system still does not see the index, it is probably because you
See the create_index manual page for information on what type classes
have created an index on a field with the improper *_ops type. For
are available. It must match the field type.
example, you have created a CHAR(4) field, but have specified a char_ops
index type_class.
Postgres does not warn the user when the improper index is created.
<P>
See the create_index manual page for information on what type classes
Indexes not used for ORDER BY operations.
are available. It must match the field type.
<P>
3.10) How do I do regular expression searches? case-insensitive regexp
Postgres does not warn the user when the improper index is created.
searching?
<P>
Indexes not used for ORDER BY operations.
See the pgbuiltin manual page. Search for regular expression.
<P>
<H3><a name="3.10">3.10</a>) How do I do regular expression searches?
3.11) I experienced a server crash during a vacuum. How do I remove the lock
case-insensitive regexp searching?</H3>
file?
<P>
See the <I>pgbuiltin</I> manual page. Search for <I>regular expression.</I>
See the vacuum manual page.
<P>
<H3><a name="3.11">3.11</a>) I experienced a server crash during a
3.12) What is the difference between the various character types?
vacuum. How do I remove the lock file?</H3>
<P>
See the <I>vacuum</I> manual page.
<P>
<H3><a name="3.12">3.12</a>) What is the difference between the various
character types?</H3>
<PRE>
Type Internal Name Notes
Type Internal Name Notes
--------------------------------------------------
--------------------------------------------------
CHAR char 1 character }
CHAR char 1 character }
...
@@ -723,185 +603,166 @@ CHAR(#) bpchar blank padded to the specified fixed length
...
@@ -723,185 +603,166 @@ CHAR(#) bpchar blank padded to the specified fixed length
VARCHAR(#) varchar size specifies maximum length, no padding
VARCHAR(#) varchar size specifies maximum length, no padding
TEXT text length limited only by maximum tuple length
TEXT text length limited only by maximum tuple length
BYTEA bytea variable-length array of bytes
BYTEA bytea variable-length array of bytes
</PRE>
<P>
You need to use the internal name when doing internal operations.
You need to use the internal name when doing internal operations.
<P>
The last four types above are "varlena" types (i.e. the first four
The last four types above are "varlena" types (i.e. the first four bytes
bytes are the length, followed by the data). CHAR(#) allocates the
are the length, followed by the data). CHAR(#) allocates the maximum
maximum number of bytes no matter how much data is stored in the
number of bytes no matter how much data is stored in the field.
field. TEXT, VARCHAR(#), and BYTEA all have variable length on the
TEXT, VARCHAR(#), and BYTEA all have variable length on the disk, and
disk, and because of this, there is a small performance penalty for
because of this, there is a small performance penalty for using them.
using them. Specifically, the penalty is for access to any columns
Specifically, the penalty is for access to any columns after the first
after the first column of this type.
column of this type.
<P>
3.13) In a query, how do I detect if a field is NULL?
<H3><a name="3.13">3.13</a>) In a query, how do I detect if a field is NULL?
</H3>
You test the column with IS NULL and IS NOT NULL.
<P>
You test the column with IS NULL and IS NOT NULL.
3.14) How do I see how the query optimizer is evaluating my query?
<P>
<H3><a name="3.14">3.14</a>) How do I see how the query optimizer is
See the explain manual page.
evaluating my query?</H3>
<P>
3.15) How do I create a serial field?
See the <I>explain</I> manual page.
<P>
Postgres does not allow the user to specifiy a user column as type
<H3><a name="3.15">3.15</a>) How do I create a serial field?</H3>
SERIAL. Instead, you can use each row's oid field as a unique value.
<P>
However, if you need to dump and reload the database, you need to use
Postgres does not allow the user to specifiy a user column as type
pgdump's -o option or COPY's WITH OIDS option to preserver the oids.
SERIAL. Instead, you can use each row's oid field as a unique value.
However, if you need to dump and reload the database, you need to use
We also have a SEQUENCE function that is similar to SERIAL. See the
pgdump's -o option or COPY's WITH OIDS option to preserver the oids.
create_sequence manual page.
<P>
We also have a SEQUENCE function that is similar to SERIAL. See the
Another valid way of doing this is to create a function:
create_sequence manual page.
<P>
Another valid way of doing this is to create a function:
<PRE>
<CODE>
create table my_oids (f1 int4);
create table my_oids (f1 int4);
insert into my_oids values (1);
insert into my_oids values (1);
create function new_oid () returns int4 as
create function new_oid () returns int4 as
'update my_oids set f1 = f1 + 1; select f1 from my_oids; '
'update my_oids set f1 = f1 + 1; select f1 from my_oids; '
language 'sql';
language 'sql';
</CODE>
</PRE>
then:
<P>
then:
<PRE>
<CODE>
create table my_stuff (my_key int4, value text);
create table my_stuff (my_key int4, value text);
insert into my_stuff values (new_oid(), 'hello');
insert into my_stuff values (new_oid(), 'hello');
</CODE>
</PRE>
However, keep in mind there is a race condition here where one server
<P>
could do the update, then another one do an update, and they both
However, keep in mind there is a race condition here where one server
could select the same new id. This statement should be performed
could do the update, then another one do an update, and they both could
within a transaction.
select the same new id. This statement should be performed within a
transaction.
Yet another way is to use general trigger function autoinc() from
<P>
contrib/spi/autoinc.c.
Yet another way is to use general trigger function autoinc()
from contrib/spi/autoinc.c.
3.16) What are the pg_psort.XXX files in my database directory?
<P>
<H3><a name="3.16">3.16</a>) What are the pg_psort.XXX files in my database
They are temporary sort files generated by the query executor. For
directory?</H3>
example, if a sort needs to be done to satisfy an ORDER BY, some temp
<P>
files are generated as a result of the sort.
They are temporary sort files generated by the query executor.
For example, if a sort needs to be done to satisfy an ORDER BY,
If you have no transactions or sorts running at the time, it is safe
some temp files are generated as a result of the sort.
to delete the pg_psort.XXX files.
<P>
If you have no transactions or sorts running at the time, it is safe to
3.17) Why can't I connect to my database from another machine?
delete the pg_psort.XXX files.
<P>
The default configuration allows only unix domain socket connections
<H3><a name="3.17">3.17</a>) Why can't I connect to my database from
from the local machine. To enable TCP/IP connections, use the
another machine?</H3>
postmaster -i option You need to add a host entry to the file
<P>
pgsql/data/pg_hba. See the hba_conf manual page.
The default configuration allows only unix domain socket connections
from the local machine. To enable TCP/IP connections, use the
3.18) How do I find out what indexes or operations are defined in the
postmaster -i option You need to add a host entry to the file
database?
pgsql/data/pg_hba. See the <I>hba_conf</I> manual page.
<P>
psql has a variety of backslash commands to show such information. Use
<H3><a name="3.18">3.18</a>) How do I find out what indexes or
\? to see them.
operations are defined in the database?</H3>
<P>
Also try the file pgsql/src/tutorial/syscat.source. It illustrates
psql has a variety of backslash commands to show such information. Use
many of the 'select's needed to get information out of the database
\? to see them.
system tables.
<P>
Also try the file pgsql/src/tutorial/syscat.source. It illustrates many of
3.19) What is the time-warp feature and how does it relate to vacuum?
the 'select's needed to get information out of the database system
tables.
PostgreSQL no longer supports this feature. All support code has been
<P>
removed. This was done to improve performance and reduce disk storage
<H3><a name="3.19">3.19</a>) What is the time-warp feature and how does
overhead.
it relate to vacuum?</H3>
<P>
3.20) What is an oid? What is a tid?
PostgreSQL no longer supports this feature. All support code has been
removed. This was done to improve performance and reduce disk storage
Oids are Postgres's answer to unique row ids or serial columns. Every
overhead.
row that is created in Postgres gets a unique oid. All oids generated
<P>
by initdb are less than 16384 (from backend/access/transam.h). All
<H3><a name="3.20">3.20</a>) What is an oid? What is a tid?</H3>
post-initdb (user-created) oids are equal or greater that this. All
<P>
these oids are unique not only within a table, or database, but unique
Oids are Postgres's answer to unique row ids or serial columns. Every
within the entire postgres installation.
row that is created in Postgres gets a unique oid. All oids generated
by initdb are less than 16384 (from backend/access/transam.h). All
Postgres uses oids in its internal system tables to link rows in
post-initdb (user-created) oids are equal or greater that this. All
separate tables. These oids can be used to identify specific user rows
these oids are unique not only within a table, or database, but unique
and used in joins. It is recommended you use column type oid to store
within the entire postgres installation.
oid values. See the sql(l) manual page to see the other internal
<P>
columns. You can create an index on the oid field for faster access.
Postgres uses oids in its internal system tables to link rows in
separate tables. These oids can be used to identify specific user rows
Tids are used to indentify specific physical rows with block and
and used in joins. It is recommended you use column type oid to store
offset values. Tids change after rows are modified or reloaded. They
oid values. See the sql(l) manual page to see the other internal
are used by index entries to point to physical rows. They can not be
columns. You can create an index on the oid field for faster access.
accessed through sql.
<P>
Tids are used to indentify specific physical rows with block and offset
3.21) What is the meaning of some of the terms used in Postgres?
values. Tids change after rows are modified or reloaded. They are used
by index entries to point to physical rows. They can not be accessed
Some of the source code and older documentation use terms that have
through sql.
more common usage. Here are some:
<P>
* row, record, tuple
<H3><a name="3.21">3.21</a>) What is the meaning of some of the terms
* attribute, field, column
used in Postgres?</H3>
* table, class
<P>
* retrieve, select
Some of the source code and older documentation use terms that have more
* replace, update
common usage. Here are some:
* append, insert
<UL>
* oid, serial value
<LI> row, record, tuple
* portal, cursor
<LI> attribute, field, column
* range variable, table name, table alias
<LI> table, class
<LI> retrieve, select
Please let me know if you think of any more.
<LI> replace, update
<LI> append, insert
3.22) What is Genetic Query Optimization?
<LI> oid, serial value
<LI> portal, cursor
The GEQO module in PostgreSQL is intended to solve the query
<LI> range variable, table name, table alias
optimization problem of joining many tables by means of a Genetic
</UL>
Algorithm (GA). It allows the handling of large join queries through
<P>
non-exhaustive search.
Please let me know if you think of any more.
<P>
For further information see README.GEQO <utesch@aut.tu-freiberg.de>.
<H3><a name="3.22">3.22</a>) What is Genetic Query Optimization?</H3>
<P>
3.23) How do you remove a column from a table?
The GEQO module in PostgreSQL is intended to solve the query
optimization problem of joining many tables by means of a Genetic
We do not support ALTER TABLE DROP COLUMN, but do this:
Algorithm (GA). It allows the handling of large join queries through
non-exhaustive search.
<P>
For further information see README.GEQO <utesch@aut.tu-freiberg.de>.
<P>
<H3><a name="3.23">3.23</a>) How do you remove a column from a table?</H3>
We do not support ALTER TABLE DROP COLUMN, but do this:
<PRE>
<CODE>
SELECT ... -- select all columns but the one you want to remove
SELECT ... -- select all columns but the one you want to remove
INTO TABLE new_table
INTO TABLE new_table
FROM old_table;
FROM old_table;
DROP TABLE old_table;
DROP TABLE old_table;
ALTER TABLE new_table RENAME TO old_table;
ALTER TABLE new_table RENAME TO old_table;
</CODE>
</PRE>
3.24) How do SELECT only the first few rows of a query?
<P>
<H3><a name="3.24">3.24</a>) How do SELECT only the first few rows of
See the fetch manual page.
a query?</H3>
<P>
This only prevents all row results from being transfered to the
See the <I>fetch</I> manual page.
client. The entire query must be evaluated, even if you only want just
<P>
first few rows. Consider a query that has and ORDER BY. There is no
This only prevents all row results from being transfered to the client.
way to return any rows until the entire query is evaluated and sorted.
The entire query must be evaluated, even if you only want just first few
rows.
3.25) Why can't I create a column named "time"?
Consider a query that has and ORDER BY. There is no way to return any
rows until the entire query is evaluated and sorted.
6.2.1 has added some new restricted keywords as we make PostgreSQL
<P>
more ANSI-92 compilant. The next release will have this restriction
<H3><a name="3.25">3.25</a>) Why can't I create a column named
removed. There is a patch on ftp.postgresql.org that will allow this
"time"?<BR></H3>
feature now.
<P>
6.2.1 has added some new restricted keywords as we make PostgreSQL more
3.26)How much database disk space is required to store data from a typical
ANSI-92 compilant. The next release will have this restriction removed.
flat file?
There is a patch on ftp.postgresql.org that will allow this feature now.
<P>
Consider a file with 300,000 lines with two integers on each line. The
<H3><a name="3.26">3.26</a>)How much database disk space is required
flat file is 2.4MB. The size of the PostgreSQL database file
to store data from a typical flat file?<BR></H3>
containing this data can be estimated:
<P>
Consider a file with 300,000 lines with two integers on each line.
The flat file is 2.4MB. The size of the PostgreSQL database file
containing this data can be estimated:
<PRE>
40 bytes + each row header (approximate)
40 bytes + each row header (approximate)
8 bytes + two int fields @ 4 bytes each
8 bytes + two int fields @ 4 bytes each
4 bytes + pointer on page to tuple
4 bytes + pointer on page to tuple
...
@@ -919,67 +780,52 @@ The data page size in PostgreSQL is 8192(8k) bytes, so:
...
@@ -919,67 +780,52 @@ The data page size in PostgreSQL is 8192(8k) bytes, so:
157 rows per page
157 rows per page
1911 database pages * 8192 bytes per page = 15,654,912 or 15.5MB
1911 database pages * 8192 bytes per page = 15,654,912 or 15.5MB
<P>
Indexes do not contain as much overhead, but do contain the data that
Indexes do not contain as much overhead, but do contain the data that
is being indexed, so they can be large also.
is being indexed, so they can be large also.
</PRE>
_________________________________________________________________
<P>
<HR>
Section 4: Extending PostgreSQL
<H2> Section 4: Extending PostgreSQL
</H2>
4.1) I wrote a user-defined function and when I run it in psql, it dumps
<P>
core.
<H3><a name="4.1">4.1</a>) I wrote a user-defined function and when I run
it
The problem could be a number of things. Try testing your user-defined
in psql, it dumps core.</H3>
function in a stand alone test program first. Also, make sure you are
<P>
not sending elog NOTICES when the front-end is expecting data, such as
The problem could be a number of things. Try testing your user-defined
during a type_in() or type_out() functions
function in a stand alone test program first. Also, make sure you are
not sending elog NOTICES when the front-end is expecting data, such as
4.2) I get messages of the type NOTICE:PortalHeapMemoryFree: 0x402251d0 not
during a type_in() or type_out() functions
in alloc set!
<P>
<H3><a name="4.2">4.2</a>) I get messages of the type
You are pfree'ing something that was not palloc'ed. When writing
NOTICE:PortalHeapMemoryFree: 0x402251d0 not in alloc set!</H3>
user-defined functions, do not include the file "libpq-fe.h". Doing so
<P>
will cause your palloc to be a malloc instead of a free. Then, when
You are pfree'ing something that was not palloc'ed. When writing
the backend pfrees the storage, you get the notice message.
user-defined functions, do not include the file "libpq-fe.h". Doing so
will cause your palloc to be a malloc instead of a free. Then, when the
4.3) I've written some nifty new types and functions for PostgreSQL.
backend pfrees the storage, you get the notice message.
<P>
Please share them with other PostgreSQL users. Send your extensions to
<H3><a name="4.3">4.3</a>) I've written some nifty new types and functions
mailing list, and they will eventually end up in the contrib/
for
subdirectory.
PostgreSQL.</H3>
<P>
4.4) How do I write a C function to return a tuple?
Please share them with other PostgreSQL users. Send your extensions to
mailing list, and they will eventually end up in the contrib/
This requires extreme wizardry, so extreme that the authors have not
subdirectory.
ever tried it, though in principle it can be done. The short answer is
<P>
... you can't. This capability is forthcoming in the future.
<H3><a name="4.4">4.4</a>) How do I write a C function to return a tuple?<
_________________________________________________________________
/H3>
<P>
Section 5: Bugs
This requires extreme wizardry, so extreme that the authors have not
ever tried it, though in principle it can be done. The short answer is
5.1) How do I make a bug report?
... you can't. This capability is forthcoming in the future.
<P>
Check the current FAQ at http://postgreSQL.org
<HR>
Also check out our ftp site ftp://ftp.postgreSQL.org/pub to see if
<H2> Section 5: Bugs
there is a more recent PostgreSQL version.
</H2>
<P>
You can also fill out the "bug-template" file and send it to:
<H3><a name="5.1">5.1</a>) How do I make a bug report?</H3>
* bugs@postgreSQL.org
<P>
Check the current FAQ at <a
href="http://postgreSQL.org">http://postgreSQL.org</a>
<P>
Also check out our ftp site <a
href="ftp://ftp.postgreSQL.org/pub">ftp://ftp.postgreSQL.org/pub</a> to
see if there is a more recent PostgreSQL version.
<P>
You can also fill out the "bug-template" file and send it to:
<UL>
<LI> <a href="mailto:bugs@postgreSQL.org">bugs@postgreSQL.org</a>
</UL>
<P>
This is the address of the developers mailing list.
</BODY>
</HTML>
This is the address of the developers mailing list.
doc/TODO
View file @
8afae114
TODO list for PostgreSQL
TODO list for PostgreSQL
========================
========================
Last updated:
Fri Feb 27 13:32:53
EST 1998
Last updated:
Sat Feb 28 10:00:29
EST 1998
Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us)
Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us)
...
@@ -64,8 +64,7 @@ RELIABILITY
...
@@ -64,8 +64,7 @@ RELIABILITY
* Overhaul bufmgr/lockmgr/transaction manager
* Overhaul bufmgr/lockmgr/transaction manager
* -Fix CLUSTER
* -Fix CLUSTER
* Remove EXTEND?
* Remove EXTEND?
* -Aggregates on VIEW always returns zero (maybe because there is no oid for vi
* -Aggregates on VIEW always returns zero (maybe because there is no oid for views?)
ews?)
* CREATE VIEW requires super-user priviledge
* CREATE VIEW requires super-user priviledge
* Can lo_export()/lo_import() read/write anywhere, causing a security problem?
* Can lo_export()/lo_import() read/write anywhere, causing a security problem?
* Tables that start with xinv confused to be large objects
* Tables that start with xinv confused to be large objects
...
@@ -148,8 +147,7 @@ ENHANCEMENTS
...
@@ -148,8 +147,7 @@ ENHANCEMENTS
* add UNIQUE capability to non-btree indexes
* add UNIQUE capability to non-btree indexes
* make number of backends a config parameter, storage/sinvaladt.h:MaxBackendId
* make number of backends a config parameter, storage/sinvaladt.h:MaxBackendId
* certain indexes will not shrink, i.e. oid indexes with many inserts
* certain indexes will not shrink, i.e. oid indexes with many inserts
* make NULL's come out at the beginning or end depending on the ORDER BY direct
* make NULL's come out at the beginning or end depending on the ORDER BY direction
ion
* change the library/backend interface to use network byte order
* change the library/backend interface to use network byte order
* -allow unix domain sockets for local connections for performance and security
* -allow unix domain sockets for local connections for performance and security
* -Add PAGER for psql's \dt, \d, \z tablename
* -Add PAGER for psql's \dt, \d, \z tablename
...
@@ -182,8 +180,7 @@ ion
...
@@ -182,8 +180,7 @@ ion
PERFORMANCE
PERFORMANCE
-----------
-----------
* Use indexes in ORDER BY, min(), max()(Costin Oproiu)
* Use indexes in ORDER BY, min(), max()(Costin Oproiu)
* -Allow LIKE/wildcard matches to use indexes if the wildcard character is not
* -Allow LIKE/wildcard matches to use indexes if the wildcard character is not first
first
* Optimizing disjunctive queries
* Optimizing disjunctive queries
* Fix bushy-plans (Martin)
* Fix bushy-plans (Martin)
* Other optimizer bugs
* Other optimizer bugs
...
@@ -212,6 +209,59 @@ DOCUMENTATION
...
@@ -212,6 +209,59 @@ DOCUMENTATION
CHANGES IN THE 6.3 RELEASE
CHANGES IN THE 6.3 RELEASE
--------------------------
--------------------------
There are some general 6.3 issues that I want to mention. These are
only the big items that can not be described in one sentence.
First, we now have subselects. Now that we have them, I would like to
mention that without subselects, SQL is a very limited language.
Subselects are a major feature, and you should review your code for
places where subselects provide a better solution for your queries. I
think you will find that there are more uses for subselects than you may
think. Vadim has put us on the big SQL map with subselects, and fully
functional ones too. The only thing you can't do with subselects is to
use them in the target list.
Second, 6.3 uses unix domain sockets rather than TCP/IP by default. To
enable connections from other machines, you have to use the new
postmaster -i option, and of course edit pg_hba.conf. Also, for this
reason, the format of pg_hba.conf has changed.
Third, char() fields will now allow faster access than varchar() or
text. Specifically, the text and varchar() have a penalty for access to
any columns after the first column of this type. char() used to also
have this access penalty, but it no longer does. This may suggest that
you redesign some of your tables, especially if you have short character
columns that you have defined as varchar() or text. This and other
changes make 6.3 even faster than earlier releases.
We now have passwords definable independent of any Unix file. There are
new SQL USER commands. See the pg_hba.conf manual page for more
information. There is a new table, pg_shadow, which is used to store
user information and user passwords, and it by default only SELECT-able
by the postgres super-user. pg_user is now a view of pg_shadow, and is
SELECT-able by PUBLIC. You should keep using pg_user in your
application without changes.
User-created tables now no longer have SELECT permission to PUBLIC by
default. This was done because the ANSI standard requires it. You can
of course GRANT any permissions you want after the table is created.
System tables continue to be SELECT-able by PUBLIC.
We also have real deadlock detection code. No more sixty-second
timeouts. And the new locking code implements a FIFO better, so there
should be less resource starvation during heavy use. For performance
reasons, time travel is gone, but can be implemented using triggers (see
pgsql/contrib/spi/README). Please check out the new \d command for
types, operators, etc. Also, views have their own permissions now, not
based on the underlying tables, so permissions on them have to be set
separately. Check /pgsql/interfaces for some new ways to talk to
PostgreSQL.
This is the first release that really required an explaination for
existing users. In many ways, this was necessary because the new
release removes many limitations, and the work-arounds people were using
are no longer needed.
Bug Fixes
Bug Fixes
---------
---------
Fix binary cursors broken by MOVE implementation(Vadim)
Fix binary cursors broken by MOVE implementation(Vadim)
...
@@ -245,6 +295,8 @@ Allow multiple-argument functions in constraint clauses(Thomas)
...
@@ -245,6 +295,8 @@ Allow multiple-argument functions in constraint clauses(Thomas)
Check boolean input literals for 'true','false','yes','no','1','0'
Check boolean input literals for 'true','false','yes','no','1','0'
and throw elog(ERROR) if unrecognized(Thomas)
and throw elog(ERROR) if unrecognized(Thomas)
Major large objects fix
Major large objects fix
Fix for GROUP BY showing duplicates(Vadim)
Fix for index scans in MergeJion(Vadim)
Enhancements
Enhancements
------------
------------
...
@@ -257,15 +309,13 @@ Add SQL92 "constants" CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP,
...
@@ -257,15 +309,13 @@ Add SQL92 "constants" CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP,
Modify constraint syntax to be SQL92-compliant(Thomas)
Modify constraint syntax to be SQL92-compliant(Thomas)
Implement SQL92 PRIMARY KEY and UNIQUE clauses using indices(Thomas)
Implement SQL92 PRIMARY KEY and UNIQUE clauses using indices(Thomas)
Recognize SQL92 syntax for FOREIGN KEY. Throw elog notice(Thomas)
Recognize SQL92 syntax for FOREIGN KEY. Throw elog notice(Thomas)
Allow NOT NULL UNIQUE constraint clause (each allowed separately before)(Thomas
Allow NOT NULL UNIQUE constraint clause (each allowed separately before)(Thomas)
)
Allow Postgres-style casting ("::") of non-constants(Thomas)
Allow Postgres-style casting ("::") of non-constants(Thomas)
Add support for SQL3 TRUE and FALSE boolean constants(Thomas)
Add support for SQL3 TRUE and FALSE boolean constants(Thomas)
Support SQL92 syntax for IS TRUE/IS FALSE/IS NOT TRUE/IS NOT FALSE(Thomas)
Support SQL92 syntax for IS TRUE/IS FALSE/IS NOT TRUE/IS NOT FALSE(Thomas)
Allow shorter strings for boolean literals (e.g. "t", "tr", "tru")(Thomas)
Allow shorter strings for boolean literals (e.g. "t", "tr", "tru")(Thomas)
Allow SQL92 delimited identifiers(Thomas)
Allow SQL92 delimited identifiers(Thomas)
Implement SQL92 binary and hexadecimal string decoding (b'10' and x'1F')(Thomas
Implement SQL92 binary and hexadecimal string decoding (b'10' and x'1F')(Thomas)
)
Support SQL92 syntax for type coercion of literal strings
Support SQL92 syntax for type coercion of literal strings
(e.g. "DATETIME 'now'")(Thomas)
(e.g. "DATETIME 'now'")(Thomas)
Add conversions for int2, int4, and OID types to and from text(Thomas)
Add conversions for int2, int4, and OID types to and from text(Thomas)
...
@@ -287,8 +337,7 @@ Augment support for SQL92 SET TIME ZONE...(Thomas)
...
@@ -287,8 +337,7 @@ Augment support for SQL92 SET TIME ZONE...(Thomas)
SET/SHOW/RESET TIME ZONE uses TZ backend environment variable(Thomas)
SET/SHOW/RESET TIME ZONE uses TZ backend environment variable(Thomas)
Implement SET keyword = DEFAULT and SET TIME ZONE DEFAULT(Thomas)
Implement SET keyword = DEFAULT and SET TIME ZONE DEFAULT(Thomas)
Enable SET TIME ZONE using TZ environment variable(Thomas)
Enable SET TIME ZONE using TZ environment variable(Thomas)
Add PGDATESTYLE environment variable to frontend and backend initialization(Tho
Add PGDATESTYLE environment variable to frontend and backend initialization(Thomas)
mas)
Add PGTZ, PGCOSTHEAP, PGCOSTINDEX, PGRPLANS, PGGEQO
Add PGTZ, PGCOSTHEAP, PGCOSTINDEX, PGRPLANS, PGGEQO
frontend library initialization environment variables(Thomas)
frontend library initialization environment variables(Thomas)
Regression tests time zone automatically set with "setenv PGTZ PST8PDT"(Thomas)
Regression tests time zone automatically set with "setenv PGTZ PST8PDT"(Thomas)
...
@@ -377,4 +426,3 @@ Start a Cygnus port
...
@@ -377,4 +426,3 @@ Start a Cygnus port
Add string functions to regression suite(Thomas)
Add string functions to regression suite(Thomas)
Expand a few function names formerly truncated to 16 characters(Thomas)
Expand a few function names formerly truncated to 16 characters(Thomas)
Remove un-needed malloc() calls and replace with palloc()(Bruce)
Remove un-needed malloc() calls and replace with palloc()(Bruce)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment