1. 01 May, 2005 1 commit
    • Tom Lane's avatar
      Change CREATE TYPE to require datatype output and send functions to have · 6c412f06
      Tom Lane authored
      only one argument.  (Per recent discussion, the option to accept multiple
      arguments is pretty useless for user-defined types, and would be a likely
      source of security holes if it was used.)  Simplify call sites of
      output/send functions to not bother passing more than one argument.
      6c412f06
  2. 14 Apr, 2005 1 commit
  3. 11 Apr, 2005 1 commit
  4. 31 Mar, 2005 1 commit
  5. 29 Mar, 2005 1 commit
    • Tom Lane's avatar
      Convert oidvector and int2vector into variable-length arrays. This · 70c9763d
      Tom Lane authored
      change saves a great deal of space in pg_proc and its primary index,
      and it eliminates the former requirement that INDEX_MAX_KEYS and
      FUNC_MAX_ARGS have the same value.  INDEX_MAX_KEYS is still embedded
      in the on-disk representation (because it affects index tuple header
      size), but FUNC_MAX_ARGS is not.  I believe it would now be possible
      to increase FUNC_MAX_ARGS at little cost, but haven't experimented yet.
      There are still a lot of vestigial references to FUNC_MAX_ARGS, which
      I will clean up in a separate pass.  However, getting rid of it
      altogether would require changing the FunctionCallInfoData struct,
      and I'm not sure I want to buy into that.
      70c9763d
  6. 27 Jan, 2005 1 commit
  7. 31 Dec, 2004 1 commit
    • PostgreSQL Daemon's avatar
      · 2ff50159
      PostgreSQL Daemon authored
      Tag appropriate files for rc3
      
      Also performed an initial run through of upgrading our Copyright date to
      extend to 2005 ... first run here was very simple ... change everything
      where: grep 1996-2004 && the word 'Copyright' ... scanned through the
      generated list with 'less' first, and after, to make sure that I only
      picked up the right entries ...
      2ff50159
  8. 05 Nov, 2004 1 commit
    • Tom Lane's avatar
      Create 'default_tablespace' GUC variable that supplies a TABLESPACE · 98e8b480
      Tom Lane authored
      clause implicitly whenever one is not given explicitly.  Remove concept
      of a schema having an associated tablespace, and simplify the rules for
      selecting a default tablespace for a table or index.  It's now just
      (a) explicit TABLESPACE clause; (b) default_tablespace if that's not an
      empty string; (c) database's default.  This will allow pg_dump to use
      SET commands instead of tablespace clauses to determine object locations
      (but I didn't actually make it do so).  All per recent discussions.
      98e8b480
  9. 20 Oct, 2004 1 commit
  10. 29 Aug, 2004 2 commits
  11. 18 Jun, 2004 1 commit
  12. 06 Jun, 2004 1 commit
    • Tom Lane's avatar
      Infrastructure for I/O of composite types: arrange for the I/O routines · c541bb86
      Tom Lane authored
      of a composite type to get that type's OID as their second parameter,
      in place of typelem which is useless.  The actual changes are mostly
      centralized in getTypeInputInfo and siblings, but I had to fix a few
      places that were fetching pg_type.typelem for themselves instead of
      using the lsyscache.c routines.  Also, I renamed all the related variables
      from 'typelem' to 'typioparam' to discourage people from assuming that
      they necessarily contain array element types.
      c541bb86
  13. 03 Dec, 2003 1 commit
  14. 29 Nov, 2003 1 commit
    • PostgreSQL Daemon's avatar
      · 55b11325
      PostgreSQL Daemon authored
      make sure the $Id tags are converted to $PostgreSQL as well ...
      55b11325
  15. 12 Nov, 2003 1 commit
    • Tom Lane's avatar
      Cross-data-type comparisons are now indexable by btrees, pursuant to my · fa5c8a05
      Tom Lane authored
      pghackers proposal of 8-Nov.  All the existing cross-type comparison
      operators (int2/int4/int8 and float4/float8) have appropriate support.
      The original proposal of storing the right-hand-side datatype as part of
      the primary key for pg_amop and pg_amproc got modified a bit in the event;
      it is easier to store zero as the 'default' case and only store a nonzero
      when the operator is actually cross-type.  Along the way, remove the
      long-since-defunct bigbox_ops operator class.
      fa5c8a05
  16. 09 Nov, 2003 1 commit
    • Tom Lane's avatar
      Add operator strategy and comparison-value datatype fields to ScanKey. · c1d62bfd
      Tom Lane authored
      Remove the 'strategy map' code, which was a large amount of mechanism
      that no longer had any use except reverse-mapping from procedure OID to
      strategy number.  Passing the strategy number to the index AM in the
      first place is simpler and faster.
      This is a preliminary step in planned support for cross-datatype index
      operations.  I'm committing it now since the ScanKeyEntryInitialize()
      API change touches quite a lot of files, and I want to commit those
      changes before the tree drifts under me.
      c1d62bfd
  17. 04 Oct, 2003 1 commit
  18. 17 Aug, 2003 1 commit
    • Tom Lane's avatar
      Create a 'type cache' that keeps track of the data needed for any particular · ec646dbc
      Tom Lane authored
      datatype by array_eq and array_cmp; use this to solve problems with memory
      leaks in array indexing support.  The parser's equality_oper and ordering_oper
      routines also use the cache.  Change the operator search algorithms to look
      for appropriate btree or hash index opclasses, instead of assuming operators
      named '<' or '=' have the right semantics.  (ORDER BY ASC/DESC now also look
      at opclasses, instead of assuming '<' and '>' are the right things.)  Add
      several more index opclasses so that there is no regression in functionality
      for base datatypes.  initdb forced due to catalog additions.
      ec646dbc
  19. 11 Aug, 2003 1 commit
  20. 08 Aug, 2003 1 commit
  21. 04 Aug, 2003 2 commits
  22. 01 Jul, 2003 1 commit
  23. 27 Jun, 2003 1 commit
    • Tom Lane's avatar
      Create real array comparison functions (that use the element datatype's · b3c0551e
      Tom Lane authored
      comparison functions), replacing the highly bogus bitwise array_eq.  Create
      a btree index opclass for ANYARRAY --- it is now possible to create indexes
      on array columns.
      Arrange to cache the results of catalog lookups across multiple array
      operations, instead of repeating the lookups on every call.
      Add string_to_array and array_to_string functions.
      Remove singleton_array, array_accum, array_assign, and array_subscript
      functions, since these were for proof-of-concept and not intended to become
      supported functions.
      Minor adjustments to behavior in some corner cases with empty or
      zero-dimensional arrays.
      
      Joe Conway (with some editorializing by Tom Lane).
      b3c0551e
  24. 25 Jun, 2003 2 commits
  25. 24 Jun, 2003 1 commit
  26. 22 Jun, 2003 1 commit
    • Tom Lane's avatar
      Revise hash join and hash aggregation code to use the same datatype- · bff0422b
      Tom Lane authored
      specific hash functions used by hash indexes, rather than the old
      not-datatype-aware ComputeHashFunc routine.  This makes it safe to do
      hash joining on several datatypes that previously couldn't use hashing.
      The sets of datatypes that are hash indexable and hash joinable are now
      exactly the same, whereas before each had some that weren't in the other.
      bff0422b
  27. 26 May, 2003 1 commit
    • Tom Lane's avatar
      Cause CHAR(n) to TEXT or VARCHAR conversion to automatically strip trailing · f45df8c0
      Tom Lane authored
      blanks, in hopes of reducing the surprise factor for newbies.  Remove
      redundant operators for VARCHAR (it depends wholly on TEXT operations now).
      Clean up resolution of ambiguous operators/functions to avoid surprising
      choices for domains: domains are treated as equivalent to their base types
      and binary-coercibility is no longer considered a preference item when
      choosing among multiple operators/functions.  IsBinaryCoercible now correctly
      reflects the notion that you need *only* relabel the type to get from type
      A to type B: that is, a domain is binary-coercible to its base type, but
      not vice versa.  Various marginal cleanup, including merging the essentially
      duplicate resolution code in parse_func.c and parse_oper.c.  Improve opr_sanity
      regression test to understand about binary compatibility (using pg_cast),
      and fix a couple of small errors in the catalogs revealed thereby.
      Restructure "special operator" handling to fetch operators via index opclasses
      rather than hardwiring assumptions about names (cleans up the pattern_ops
      stuff a little).
      f45df8c0
  28. 09 May, 2003 1 commit
  29. 08 Apr, 2003 1 commit
  30. 03 Feb, 2003 1 commit
  31. 15 Jan, 2003 1 commit
    • Tom Lane's avatar
      Allow merge and hash joins to occur on arbitrary expressions (anything not · de97072e
      Tom Lane authored
      containing a volatile function), rather than only on 'Var = Var' clauses
      as before.  This makes it practical to do flatten_join_alias_vars at the
      start of planning, which in turn eliminates a bunch of klugery inside the
      planner to deal with alias vars.  As a free side effect, we now detect
      implied equality of non-Var expressions; for example in
      	SELECT ... WHERE a.x = b.y and b.y = 42
      we will deduce a.x = 42 and use that as a restriction qual on a.  Also,
      we can remove the restriction introduced 12/5/02 to prevent pullup of
      subqueries whose targetlists contain sublinks.
      Still TODO: make statistical estimation routines in selfuncs.c and costsize.c
      smarter about expressions that are more complex than plain Vars.  The need
      for this is considerably greater now that we have to be able to estimate
      the suitability of merge and hash join techniques on such expressions.
      de97072e
  32. 01 Dec, 2002 1 commit
    • Tom Lane's avatar
      Teach planner to expand sufficiently simple SQL-language functions · 8e3a87fb
      Tom Lane authored
      ('SELECT expression') inline, like macros, during the constant-folding
      phase of planning.  The actual expansion is not difficult, but checking
      that we're not changing the semantics of the call turns out to be more
      subtle than one might think; in particular must pay attention to
      permissions issues, strictness, and volatility.
      8e3a87fb
  33. 19 Sep, 2002 1 commit
  34. 18 Sep, 2002 1 commit
    • Tom Lane's avatar
      Extend pg_cast castimplicit column to a three-way value; this allows us · b26dfb95
      Tom Lane authored
      to be flexible about assignment casts without introducing ambiguity in
      operator/function resolution.  Introduce a well-defined promotion hierarchy
      for numeric datatypes (int2->int4->int8->numeric->float4->float8).
      Change make_const to initially label numeric literals as int4, int8, or
      numeric (never float8 anymore).
      Explicitly mark Func and RelabelType nodes to indicate whether they came
      from a function call, explicit cast, or implicit cast; use this to do
      reverse-listing more accurately and without so many heuristics.
      Explicit casts to char, varchar, bit, varbit will truncate or pad without
      raising an error (the pre-7.2 behavior), while assigning to a column without
      any explicit cast will still raise an error for wrong-length data like 7.3.
      This more nearly follows the SQL spec than 7.2 behavior (we should be
      reporting a 'completion condition' in the explicit-cast cases, but we have
      no mechanism for that, so just do silent truncation).
      Fix some problems with enforcement of typmod for array elements;
      it didn't work at all in 'UPDATE ... SET array[n] = foo', for example.
      Provide a generalized array_length_coerce() function to replace the
      specialized per-array-type functions that used to be needed (and were
      missing for NUMERIC as well as all the datetime types).
      Add missing conversions int8<->float4, text<->numeric, oid<->int8.
      initdb forced.
      b26dfb95
  35. 04 Sep, 2002 1 commit
  36. 31 Aug, 2002 1 commit
    • Tom Lane's avatar
      Code review for domain-constraints patch. Use a new ConstraintTest node · 845a6c3a
      Tom Lane authored
      type for runtime constraint checks, instead of misusing the parse-time
      Constraint node for the purpose.  Fix some damage introduced into type
      coercion logic; in particular ensure that a coerced expression tree will
      read out the correct result type when inspected (patch had broken some
      RelabelType cases).  Enforce domain NOT NULL constraints against columns
      that are omitted from an INSERT.
      845a6c3a
  37. 29 Aug, 2002 1 commit