aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Fix bogus coding of SET DEFAULT ri triggers ... or at least make it lessTom Lane2003-03-27
| | | | bogus than it was. Per bug report from Adrian Pop.
* Add <stdlib> to add calloc() prototype.Bruce Momjian2003-03-27
|
* Fix syntax error in to_char fixes --- was defining variable in main codeBruce Momjian2003-03-27
| | | | block, ala C++.
* It may not be obvious to you, but the plpython regression testsBruce Momjian2003-03-27
| | | | | | | | | | | include output that vary depending on the python build one is running. Basically, the order of keys in a dictionary is non-deterministic, and that part of the test fails for me regularly. I rewrote the test to work around this problem, and include a patch file with that change and the change to the expected otuput as well. Mike Meyer
* New \d format:Bruce Momjian2003-03-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add new file.Bruce Momjian2003-03-27
|
* Add new files.Bruce Momjian2003-03-27
|
* This patch implements holdable cursors, following the proposalBruce Momjian2003-03-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (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
* Attached are two patches for psql's tab-completion.c.Bruce Momjian2003-03-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* AddsBruce Momjian2003-03-27
| | | | | | | | ALTER TABLE foo CLUSTER ON bar; In pg_dumps, to preserve cluster settings. Christopher Kings-Lynne
* Reorder language creation to restore constistently.Bruce Momjian2003-03-27
| | | | Laurent FAILLIE
* to_char fixes, Karel ZakBruce Momjian2003-03-27
|
* GetTupleForTrigger must use outer transaction's command counter for timeTom Lane2003-03-27
| | | | qual checking, not GetCurrentCommandId. Per test case from Steve Wolfe.
* More changes to pgtypeslib and set optimization to -O1.Michael Meskes2003-03-27
|
* Merge documentation into one book. (Build with "make html".) ReplacePeter Eisentraut2003-03-25
| | | | vague cross-references with real links.
* plpgsql can assign to subscripted variables now, e.g.Tom Lane2003-03-25
| | | | | | | 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.
* patch to notify listeners on error from Csaba NagyDave Cramer2003-03-25
|
* Use PQfreemem() consistently, and document its use for Notify.Bruce Momjian2003-03-25
| | | | Keep PQfreeNotify() around for binary compatibility.
* added DISTINCT to the query to get cross reference. This is required when ↵Dave Cramer2003-03-25
| | | | two columns in a table are both foreign keys to another table. From Peter Royal proyal@pace2020.com
* fixed problem where information from previous updates was leaking into ↵Dave Cramer2003-03-25
| | | | subsequent updates patch from Shawn Green, slightly modified
* Factor out duplicate code for computing values of PLpgSQL_datum items.Tom Lane2003-03-25
| | | | | This is to help localize the changes needed for adding a new kind of PLpgSQL_datum (like, say, an array element...)
* Ignore SIGXFSZ (if platform has it), so that ulimit violations work likeTom Lane2003-03-24
| | | | | disk-full conditions instead of provoking a backend crash. Per suggestion from Frederic Surleau.
* Modify keys_are_unique optimization to release buffer pins before itTom Lane2003-03-24
| | | | | returns NULL. This avoids out-of-buffers failures during many-way indexscans, as in Shraibman's complaint of 21-Mar.
* Add comment to postgresql.conf:Bruce Momjian2003-03-24
| | | | #search_path = '$user,public' # schema names
* Prevent multiple queries in a single string into a single transactionBruce Momjian2003-03-24
| | | | when autocommit is off, and document grouping when autocommit is on.
* New build numberBarry Lind2003-03-24
|
* Fix bug in reading acls (didn't treat null acl as meaning the table owner hadBarry Lind2003-03-24
| | | | | | | | 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
* Adjust amrescan code so that it's allowed to call index_rescan with aTom Lane2003-03-23
| | | | | | 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.
* Instead of storing pg_statistic stavalues entries as text strings, storeTom Lane2003-03-23
| | | | | | | 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.
* Tweak selectivity and related routines to cope with domains. Per reportTom Lane2003-03-23
| | | | from Andreas Pflug.
* Remove ecpg #warning with approval from Michael.Bruce Momjian2003-03-22
|
* Add missing #include for calloc in ecpg.Bruce Momjian2003-03-22
|
* Department of second thoughts: probably shouldn't use nth() to get theTom Lane2003-03-22
| | | | | appropriate targetlist entry out of the subquery. Use an explicit search like we do everywhere else.
* Fix comment-only query to return Null result set, rather than nothing.Bruce Momjian2003-03-22
| | | | Cleans up blank query handling to be more consistent.
* Add PQfreemem() call for Win32.Bruce Momjian2003-03-22
|
* Back out to_char fixes until regression tests are fixed.Bruce Momjian2003-03-22
|
* Adjust subquery qual pushdown rules to be more forgiving: if a qualTom Lane2003-03-22
| | | | | | | | | 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.
* Fix compile warning.Tom Lane2003-03-21
|
* Add hostmask() function:Bruce Momjian2003-03-21
| | | | | | | | | | + <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
* Make "win" a separate port from "cygwin". This means you can nowPeter Eisentraut2003-03-21
| | | | | 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.
* Fix ALTER TABLE / CLUSTER ON breakage.Bruce Momjian2003-03-21
| | | | Alvaro Herrera1
* Do not free prepares statements at the end of a transaction.Michael Meskes2003-03-21
|
* Changes to the parser to accept new datatypes.Michael Meskes2003-03-21
|
* Allow error query to start transaction in autocommit off mode.Bruce Momjian2003-03-21
|
* Fix sequence casting.Bruce Momjian2003-03-21
|
* Improve psql comment coding.Bruce Momjian2003-03-21
|
* Reimplement NUMERIC datatype using base-10000 arithmetic; also improveTom Lane2003-03-21
| | | | | | | 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.
* Fix multiline C comments in psql.Bruce Momjian2003-03-20
|
* Update for new serial functionality.Bruce Momjian2003-03-20
|
* This patch creates a function named pg_get_triggerdef that takes the oid ofBruce Momjian2003-03-20
| | | | | | | a trigger as its parameter. It is basically copied from the pg_dump code. Christopher Kings-Lynne