summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2003-03-27New \d format:Bruce Momjian
Example: test=# \d test Table "public.test" Column | Type | Modifiers --------+---------+----------- a | integer | not null Indexes: "test_pkey" PRIMARY KEY btree (a) Check Constraints: "$2" CHECK (a > 1) Foreign Key Constraints: "$1" FOREIGN KEY (a) REFERENCES parent(b) Rules: myrule AS ON INSERT TO test DO INSTEAD NOTHING Triggers: "asdf asdf" AFTER INSERT OR DELETE ON test FOR EACH STATEMENT EXECUTE PROCEDURE update_pg_pwd_and_pg_group(), mytrigger AFTER INSERT OR DELETE ON test FOR EACH ROW EXECUTE PROCEDURE update_pg_pwd_and_pg_group() I have minimised the double quoting of identifiers as much as I could easily, and I will submit another patch when I have time to work on it that will use a 'fmtId' function to determine it exactly. I think it's a significant improvement in legibility... Obviously the table example above is slightly degenerate in that not many tables in production have heaps of (non-constraint) triggers and rules. Christopher Kings-Lynne
2003-03-27Add new file.Bruce Momjian
2003-03-27Add new files.Bruce Momjian
2003-03-27This patch implements holdable cursors, following the proposalBruce Momjian
(materialization into a tuple store) discussed on pgsql-hackers earlier. I've updated the documentation and the regression tests. Notes on the implementation: - I needed to change the tuple store API slightly -- it assumes that it won't be used to hold data across transaction boundaries, so the temp files that it uses for on-disk storage are automatically reclaimed at end-of-transaction. I added a flag to tuplestore_begin_heap() to control this behavior. Is changing the tuple store API in this fashion OK? - in order to store executor results in a tuple store, I added a new CommandDest. This works well for the most part, with one exception: the current DestFunction API doesn't provide enough information to allow the Executor to store results into an arbitrary tuple store (where the particular tuple store to use is chosen by the call site of ExecutorRun). To workaround this, I've temporarily hacked up a solution that works, but is not ideal: since the receiveTuple DestFunction is passed the portal name, we can use that to lookup the Portal data structure for the cursor and then use that to get at the tuple store the Portal is using. This unnecessarily ties the Portal code with the tupleReceiver code, but it works... The proper fix for this is probably to change the DestFunction API -- Tom suggested passing the full QueryDesc to the receiveTuple function. In that case, callers of ExecutorRun could "subclass" QueryDesc to add any additional fields that their particular CommandDest needed to get access to. This approach would work, but I'd like to think about it for a little bit longer before deciding which route to go. In the mean time, the code works fine, so I don't think a fix is urgent. - (semi-related) I added a NO SCROLL keyword to DECLARE CURSOR, and adjusted the behavior of SCROLL in accordance with the discussion on -hackers. - (unrelated) Cleaned up some SGML markup in sql.sgml, copy.sgml Neil Conway
2003-03-27Attached are two patches for psql's tab-completion.c.Bruce Momjian
The first cleans up a couple of minor errors and ommissions and adds tab completion support to more slash commands, e.g. \dv. The second is an attempt to add tab completion for schemas and fully qualified relation names (e.g. public.mytable ). I think this covers the TODO-item: "Allow psql to do table completion for SELECT * FROM schema_part and table completion for SELECT * FROM schema_name." This happens via union selects querying: - relation_name in current search path; - schema_name; - schema.relation_name matching the current input string. E.g: SELECT p[TAB] will produce a list of all appropriate relation names in the current search path which begin with 'p', and also all schema names which begin with 'p'; \d pub[TAB] will produce any relation names in the current search path and also any schema names beginning with 'pub'; \d public.[TAB] will produce a list of all relations in the schema 'public'; \d public.my[TAB] produces all relation names beginning with 'my' in schema 'public'. It seems to work for me; comments, suggestions, particularly regarding the coding and queries, are very welcome. Note that tables, indexes, views and sequences relations in the 'pg_catalog' namespace are excluded even though they are in the current search path. I found not doing this produced annoying behaviour when expanding names beginning with 'p'. People who work with system tables a lot may not like this though; I can look for another solution if necessary. Ian Barwick
2003-03-27AddsBruce Momjian
ALTER TABLE foo CLUSTER ON bar; In pg_dumps, to preserve cluster settings. Christopher Kings-Lynne
2003-03-27Reorder language creation to restore constistently.Bruce Momjian
Laurent FAILLIE
2003-03-27to_char fixes, Karel ZakBruce Momjian
2003-03-27GetTupleForTrigger must use outer transaction's command counter for timeTom Lane
qual checking, not GetCurrentCommandId. Per test case from Steve Wolfe.
2003-03-27More changes to pgtypeslib and set optimization to -O1.Michael Meskes
2003-03-25Merge documentation into one book. (Build with "make html".) ReplacePeter Eisentraut
vague cross-references with real links.
2003-03-25plpgsql can assign to subscripted variables now, e.g.Tom Lane
x[42] := whatever; The facility is pretty primitive because it doesn't do array slicing and it has the same semantics as array update in SQL (array must already be non-null, etc). But it's a start.
2003-03-25patch to notify listeners on error from Csaba NagyDave Cramer
2003-03-25Use PQfreemem() consistently, and document its use for Notify.Bruce Momjian
Keep PQfreeNotify() around for binary compatibility.
2003-03-25added DISTINCT to the query to get cross reference. This is required when ↵Dave Cramer
two columns in a table are both foreign keys to another table. From Peter Royal proyal@pace2020.com
2003-03-25fixed problem where information from previous updates was leaking into ↵Dave Cramer
subsequent updates patch from Shawn Green, slightly modified
2003-03-25Factor out duplicate code for computing values of PLpgSQL_datum items.Tom Lane
This is to help localize the changes needed for adding a new kind of PLpgSQL_datum (like, say, an array element...)
2003-03-24Ignore SIGXFSZ (if platform has it), so that ulimit violations work likeTom Lane
disk-full conditions instead of provoking a backend crash. Per suggestion from Frederic Surleau.
2003-03-24Modify keys_are_unique optimization to release buffer pins before itTom Lane
returns NULL. This avoids out-of-buffers failures during many-way indexscans, as in Shraibman's complaint of 21-Mar.
2003-03-24Add comment to postgresql.conf:Bruce Momjian
#search_path = '$user,public' # schema names
2003-03-24Prevent multiple queries in a single string into a single transactionBruce Momjian
when autocommit is off, and document grouping when autocommit is on.
2003-03-24New build numberBarry Lind
2003-03-24Fix bug in reading acls (didn't treat null acl as meaning the table owner hadBarry Lind
full privs), also updated the regression test for this case. Modified Files: jdbc/org/postgresql/jdbc1/AbstractJdbc1DatabaseMetaData.java jdbc/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java
2003-03-23Adjust amrescan code so that it's allowed to call index_rescan with aTom Lane
NULL key pointer, indicating that the existing scan key should be reused. This behavior isn't used yet but will be needed for my planned fix to the keys_are_unique code.
2003-03-23Instead of storing pg_statistic stavalues entries as text strings, storeTom Lane
them as arrays of the internal datatype. This requires treating the stavalues columns as 'anyarray' rather than 'text[]', which is not 100% kosher but seems to work fine for the purposes we need for pg_statistic. Perhaps in the future 'anyarray' will be allowed more generally.
2003-03-23Tweak selectivity and related routines to cope with domains. Per reportTom Lane
from Andreas Pflug.
2003-03-22Remove ecpg #warning with approval from Michael.Bruce Momjian
2003-03-22Add missing #include for calloc in ecpg.Bruce Momjian
2003-03-22Department of second thoughts: probably shouldn't use nth() to get theTom Lane
appropriate targetlist entry out of the subquery. Use an explicit search like we do everywhere else.
2003-03-22Fix comment-only query to return Null result set, rather than nothing.Bruce Momjian
Cleans up blank query handling to be more consistent.
2003-03-22Add PQfreemem() call for Win32.Bruce Momjian
2003-03-22Back out to_char fixes until regression tests are fixed.Bruce Momjian
2003-03-22Adjust subquery qual pushdown rules to be more forgiving: if a qualTom Lane
refers to a non-DISTINCT output column of a DISTINCT ON subquery, or if it refers to a function-returning-set, we cannot push it down. But the old implementation refused to push down *any* quals if the subquery had any such 'dangerous' outputs. Now we just look at the output columns actually referenced by each qual expression. More code than before, but probably no slower since we don't make unnecessary checks.
2003-03-21Fix compile warning.Tom Lane
2003-03-21Add hostmask() function:Bruce Momjian
+ <entry><function>hostmask</function>(<type>inet</type>)</entry> + <entry><type>inet</type></entry> + <entry>construct hostmask for network</entry> + <entry><literal>hostmask('192.168.23.20/30')</literal></entry> + <entry><literal>0.0.0.3</literal></entry> Greg Wickham
2003-03-21Make "win" a separate port from "cygwin". This means you can nowPeter Eisentraut
configure under native Windows (MinGW that is), but you won't get very far compiling yet. The dynaloader files are from Jan Wieck's patch set.
2003-03-21Fix ALTER TABLE / CLUSTER ON breakage.Bruce Momjian
Alvaro Herrera1
2003-03-21Do not free prepares statements at the end of a transaction.Michael Meskes
2003-03-21Changes to the parser to accept new datatypes.Michael Meskes
2003-03-21Allow error query to start transaction in autocommit off mode.Bruce Momjian
2003-03-21Fix sequence casting.Bruce Momjian
2003-03-21Improve psql comment coding.Bruce Momjian
2003-03-21Reimplement NUMERIC datatype using base-10000 arithmetic; also improveTom Lane
some of the algorithms for higher functions. I see about a factor of ten speedup on the 'numeric' regression test, but it's unlikely that that test is representative of real-world applications. initdb forced due to change of on-disk representation for NUMERIC.
2003-03-20Fix multiline C comments in psql.Bruce Momjian
2003-03-20Update for new serial functionality.Bruce Momjian
2003-03-20This patch creates a function named pg_get_triggerdef that takes the oid ofBruce Momjian
a trigger as its parameter. It is basically copied from the pg_dump code. Christopher Kings-Lynne
2003-03-20Now that the CLUSTER ALL machinery is in place, the clusterdb script canBruce Momjian
be simplified (I'd thought that it can even be removed). This patch does that. Alvaro Herrera
2003-03-20Add ALTER TABLE <tablename> CLUSTER ON <indexname>Bruce Momjian
Alvaro Herrera
2003-03-20It would also be handy if users could see their own pg_stat_activityBruce Momjian
queries while the rest remain blank. Kevin Brown
2003-03-20Started adding date and timestamp.Michael Meskes