1. 01 Sep, 2005 4 commits
  2. 30 Aug, 2005 9 commits
  3. 29 Aug, 2005 5 commits
  4. 28 Aug, 2005 8 commits
  5. 27 Aug, 2005 8 commits
    • Tom Lane's avatar
      cost_agg really ought to charge something per output tuple; else there · 974e3cf3
      Tom Lane authored
      are cases where it appears to have zero run cost.
      974e3cf3
    • Tom Lane's avatar
      Change the division of labor between grouping_planner and query_planner · 4e5fbb34
      Tom Lane authored
      so that the latter estimates the number of groups that grouping will
      produce.  This is needed because it is primarily query_planner that
      makes the decision between fast-start and fast-finish plans, and in the
      original coding it was unable to make more than a crude rule-of-thumb
      choice when the query involved grouping.  This revision helps us make
      saner choices for queries like SELECT ... GROUP BY ... LIMIT, as in a
      recent example from Mark Kirkwood.  Also move the responsibility for
      canonicalizing sort_pathkeys and group_pathkeys into query_planner;
      this information has to be available anyway to support the first change,
      and doing it this way lets us get rid of compare_noncanonical_pathkeys
      entirely.
      4e5fbb34
    • Tom Lane's avatar
    • Tom Lane's avatar
      Fix two separate bugs in setrefs.c. set_subqueryscan_references needs · 5a7d3697
      Tom Lane authored
      to copy the whole plan tree before invoking adjust_plan_varnos(); else
      if there is any multiply-linked substructure, the latter might increment
      some Var's varno twice.  Previously there were some retail copyObject
      calls inside adjust_plan_varnos, but it seems a lot safer to just dup the
      whole tree first.  Also, set_inner_join_references was trying to avoid
      work by not recursing if a BitmapHeapScan's bitmapqualorig contained no
      outer references; which was OK at the time the code was written, I think,
      but now that create_bitmap_scan_plan removes duplicate clauses from
      bitmapqualorig it is possible for that field to be NULL while outer
      references still remain in the qpqual and/or contained indexscan nodes.
      For safety, always recurse even if the BitmapHeapScan looks to be outer
      reference free.  Per reports from Michael Fuhr and Oleg Bartunov.
      5a7d3697
    • Tom Lane's avatar
      Get the MIPS assembler syntax right. Also add a separate sync command; · 5824d021
      Tom Lane authored
      the reference I consulted yesterday said SC does a SYNC, but apparently
      this is not true on newer MIPS processors, so be safe.
      5824d021
    • Bruce Momjian's avatar
      Fix typo: · 338e28e2
      Bruce Momjian authored
      sql_information_info -> sql_implementation_info
      
      Robert Treat
      338e28e2
    • Bruce Momjian's avatar
      Add: · a1a19bb8
      Bruce Momjian authored
      > * Allow user-defined types to specify a type modifier at table creation
      >   time
      a1a19bb8
    • Bruce Momjian's avatar
      Update: · 542faa82
      Bruce Momjian authored
      >
      >   Another issue is whether underlying table changes should be reflected
      >   in the view, e.g. should SELECT * show additional columns if they
      >   are added after the view is created.
      542faa82
  6. 26 Aug, 2005 6 commits
    • Tom Lane's avatar
      Another try at the inlined MIPS spinlock code. Can't test this myself, · 846319db
      Tom Lane authored
      but for sure it's not any more broken than the prior version.
      846319db
    • Bruce Momjian's avatar
      Add: · f9244df7
      Bruce Momjian authored
      > 	o Issue a warning if a change-on-restart-only postgresql.conf value
      > 	  is modified  and the server config files are reloaded
      > 	o Mark change-on-restart-only values in postgresql.conf
      205a209
      > 	o Fix SELECT '0.01 years'::interval, '0.01 months'::interval
      f9244df7
    • Bruce Momjian's avatar
      Add description and item: · acba287a
      Bruce Momjian authored
      >
      > 	  Currently, while \e saves a single query as one entry, interactive
      > 	  queries are saved one line at a time.  Ideally all queries
      > 	  whould be saved like \e does.
      >
      > 	o Allow multi-line column values to align in the proper columns
      >
      > 	  If the second output column value is 'a\nb', the 'b' should appear
      > 	  in the second display column, rather than the first column as it
      > 	  does now.
      acba287a
    • Bruce Momjian's avatar
      Update based on user comments: · cad7f831
      Bruce Momjian authored
      <   in PL/PgSQL is to use EXECUTE.
      >   in PL/PgSQL is to use EXECUTE.  One complexity is that a function
      >   might itself drop and recreate dependent tables, causing it to
      >   invalidate its own query plan.
      cad7f831
    • Bruce Momjian's avatar
      Update constraint_exclusion items: · bdfa8e5e
      Bruce Momjian authored
      <   inheritance, and allow it to work for UPDATE and DELETE queries
      >   inheritance, allow it to work for UPDATE and DELETE queries, and allow
      >   it to be used for all queries with little performance impact
      < * Allow constraint_elimination to be automatically performed
      <
      <   This requires additional code to reduce the performance loss caused by
      <   constraint elimination.
      bdfa8e5e
    • Bruce Momjian's avatar
      Remove completed items: · 88d7b711
      Bruce Momjian authored
      < * -Allow limits on per-db/role connections
      43d41
      < * -Prevent dropping user that still owns objects, or auto-drop the objects
      49d46
      < * -Add the client IP address and port to pg_stat_activity
      < * -Add session start time and last statement time to pg_stat_activity
      < * -Add a function that returns the start time of the postmaster
      230d224
      < 	o -Allow MIN()/MAX() on arrays
      < 	o -Modify array literal representation to handle array index lower bound
      < 	  of other than one
      253d244
      < * -Add function to return compressed length of TOAST data values
      < * -Prevent to_char() on interval from returning meaningless values
      <
      <   For example, to_char('1 month', 'mon') is meaningless.  Basically,
      <   most date-related parameters to to_char() are meaningless for
      <   intervals because interval is not anchored to a date.
      <
      < * -Have views on temporary tables exist in the temporary namespace
      < * -Allow temporary views on non-temporary tables
      329d311
      < * -Add BETWEEN SYMMETRIC/ASYMMETRIC
      < * -Add E'' escape string marker so eventually ordinary strings can treat
      <   backslashes literally, for portability
      <
      < * -Allow additional tables to be specified in DELETE for joins
      <
      <   UPDATE already allows this (UPDATE...FROM) but we need similar
      <   functionality in DELETE.  It's been agreed that the keyword should
      <   be USING, to avoid anything as confusing as DELETE FROM a FROM b.
      <
      341d313
      < * -Allow REINDEX to rebuild all database indexes
      < * -Add an option to automatically use savepoints for each statement in a
      <   multi-statement transaction.
      <
      <   When enabled, this would allow errors in multi-statement transactions
      <   to be automatically ignored.
      <
      426d391
      < 	o -Allow FOR UPDATE queries to do NOWAIT locks
      473d437
      < 	o -Allow COPY to understand \x as a hex byte
      < 	o -Allow COPY to optionally include column headings in the first line
      < 	o -Allow COPY FROM ... CSV to interpret newlines and carriage
      < 	  returns in data
      525d485
      < 	o -Have SHOW ALL show descriptions for server-side variables
      < 	o -Allow PL/PgSQL's RAISE function to take expressions
      <
      < 	  Currently only constants are supported.
      <
      < 	o -Change PL/PgSQL to use palloc() instead of malloc()
      545d499
      < 	o -Allow PL/pgSQL EXECUTE query_var INTO record_var;
      550d503
      < 	o -Pass arrays natively instead of as text between plperl and postgres
      598d550
      < 	o -Add dumping and restoring of LOB comments
      638d589
      < * -Implement shared row locks and use them in RI triggers
      642d592
      < * -Allow triggers to be disabled
      < * -Add two-phase commit
      <
      <
      < * -Prevent inherited tables from expanding temporary subtables of other
      <   sessions
      < * -Use indexes for MIN() and MAX()
      <
      <   MIN/MAX queries can already be rewritten as SELECT col FROM tab ORDER
      <   BY col {DESC} LIMIT 1. Completing this item involves doing this
      <   transformation automatically.
      <
      < * -Use index to restrict rows returned by multi-key index when used with
      <   non-consecutive keys to reduce heap accesses
      <
      <   For an index on col1,col2,col3, and a WHERE clause of col1 = 5 and
      <   col3 = 9, spin though the index checking for col1 and col3 matches,
      <   rather than just col1; also called skip-scanning.
      <
      < * -Fetch heap pages matching index entries in sequential order
      <
      <   Rather than randomly accessing heap pages based on index entries, mark
      <   heap pages needing access in a bitmap and do the lookups in sequential
      <   order. Another method would be to sort heap ctids matching the index
      <   before accessing the heap rows.
      <
      < * -Allow non-bitmap indexes to be combined by creating bitmaps in memory
      <
      <   This feature allows separate indexes to be ANDed or ORed together.  This
      <   is particularly useful for data warehousing applications that need to
      <   query the database in an many permutations.  This feature scans an index
      <   and creates an in-memory bitmap, and allows that bitmap to be combined
      <   with other bitmap created in a similar way.  The bitmap can either index
      <   all TIDs, or be lossy, meaning it records just page numbers and each
      <   page tuple has to be checked for validity in a separate pass.
      <
      < * -Fix incorrect rtree results due to wrong assumptions about "over"
      <   operator semantics
      782d694
      < 	o -Add concurrency to GIST
      813d724
      < * -Allow multiple blocks to be written to WAL with one write()
      < * -Consider use of open/fcntl(O_DIRECT) to minimize OS caching,
      <   for WAL writes
      <
      <   O_DIRECT doesn't have the same media write guarantees as fsync, so it
      <   is in addition to the fsync method, not in place of it.
      <
      < * -Cache last known per-tuple offsets to speed long tuple access
      < * -Allow the size of the buffer cache used by temporary objects to be
      <   specified as a GUC variable
      <
      <   Larger local buffer cache sizes requires more efficient handling of
      <   local cache lookups.
      <
      < * -Improve the background writer
      <
      <   Allow the background writer to more efficiently write dirty buffers
      <   from the end of the LRU cache and use a clock sweep algorithm to
      <   write other dirty buffers to reduced checkpoint I/O
      <
      897d788
      < * -Add a warning when the free space map is too small
      917d807
      < 	o -Move into the backend code
      < * -Make locking of shared data structures more fine-grained
      <
      <   This requires that more locks be acquired but this would reduce lock
      <   contention, improving concurrency.
      <
      < * -Improve SMP performance on i386 machines
      <
      <   i386-based SMP machines can generate excessive context switching
      <   caused by lock failure in high concurrency situations. This may be
      <   caused by CPU cache line invalidation inefficiencies.
      <
      979d857
      < 	o  -Add ability to turn off full page writes
      < * -Eliminate WAL logging for CREATE TABLE AS when not doing WAL archiving
      < * -Change WAL to use 32-bit CRC, for performance reasons
      <
      < * -Use CHECK constraints to influence optimizer decisions
      <
      <   CHECK constraints contain information about the distribution of values
      <   within the table. This is also useful for implementing subtables where
      <   a tables content is distributed across several subtables.
      <
      1045d913
      < * -ANALYZE should record a pg_statistic entry for an all-NULL column
      1099d966
      < * -Remove kerberos4 from source tree
      1103d969
      < * -Make src/port/snprintf.c thread-safe
      1118d983
      < * -Add C code on Unix to copy directories for use in creating new databases
      1133d997
      < 	o -Improve dlerror() reporting string
      88d7b711