Commit Graph

57 Commits

Author SHA1 Message Date
a1627a1d64 From: David Hartwig <daybee@bellatlantic.net>
I have attached a patch to allow GROUP BY and/or ORDER BY function or
expressions.  Note worthy items:

1. The expression or function need not be in the target list.
Example:
            SELECT  name FROM foo GROUP BY lower(name);

2.   Simplified the grammar to use expressions only.

3.  Cleaned up earlier patch in this area to make use of existing
utility functions.

3.  Reduced some of the members in the SortGroupBy parse node.   The
original data members were redundant with the new expression node.
(MUST do a "make clean" now)

4.  Added a new parse node "JoinUsing".   The JOIN USING clause was
overloading this SortGroupBy structure.   With the afore mentioned
reduction of members, the two clauses lost all their commonality.

5.  A bug still exist where, if a function or expression is GROUPed BY,
and an aggregate function does not include a attribute from the
expression or function, the backend crashes.   (or something like
that)   The bug pre-dates this patch.    Example:

    SELECT lower(a) AS lowcase, count(b) FROM foo GROUP BY lowcase;
                 *** BOOM  ***

    --Also when not in target list
    SELECT  count(b) FROM foo GROUP BY lower(a);
                *** BOOM  AGAIN ***
1998-08-05 04:49:19 +00:00
683f399391 Change atttypmod from int16 to int32, for Thomas. 1998-07-12 21:29:40 +00:00
33dd5c444f Include int8 as a built-in data type.
Merge "resjunk" handling with automatic type conversion
 when selecting from another column.
1998-07-08 14:18:45 +00:00
2e6159311a I made several adjustments to my earlier patch to handle the
condition where the target label is ambiguous.
1998-06-05 03:49:20 +00:00
2d4c6cab96 Define new routines oper_exact() and oper_inexact().
Add coerce_target_expr().
1998-05-29 14:07:50 +00:00
d2404c17c9 Add func_select_candidate() to allow use in unary operator parsing. 1998-05-29 14:03:08 +00:00
3671cb3a32 Add NAMEOID as built-in type.
Change ordering of IS_BUILTIN_TYPE() macro to optimize lookup.
Make CASH type _not_ equivalent to INT4.
 CASH is passed by reference rather than passed by value.
1998-05-29 14:02:28 +00:00
9f3d63936b From: David Hartwig <daveh@insightdist.com>
Here is a patch to remove the requirement that ORDER/GROUP BY clause
identifiers be included in the target list.
1998-05-21 03:53:51 +00:00
3ace5fd082 Add capabilities for automatic type conversion. 1998-05-09 23:31:34 +00:00
a32450a585 pgindent run before 6.3 release, with Thomas' requested changes. 1998-02-26 04:46:47 +00:00
edd3668895 Atttypmod cleanup. 1998-02-13 19:46:22 +00:00
0386a50f31 Pass around typmod as int16. 1998-02-10 16:04:38 +00:00
2c482cdbf2 Pass attypmod through to executor by adding to Var and Resdom. 1998-02-10 04:02:59 +00:00
7b6cbd53f7 func_error() changed so that if caller is passed with NULL value, its
output at least doesn't appear that its missing something.

wasn't particularly confident with removing 'caller' altogether :(
1998-02-05 04:08:44 +00:00
48ad446c04 Fix up this so that it also doesn't use a caller variable... 1998-02-05 03:40:10 +00:00
726c3854cb Inline fastgetattr and others so data access does not use function
calls.
1998-01-31 04:39:26 +00:00
7f31669bea Add Var.varlevelup to code. More parser cleanup. 1998-01-20 22:12:17 +00:00
412a5e6539 Parser cleanup.
Add lock to i386 asm.
1998-01-20 05:05:08 +00:00
588867bd7b Create SubLink nodes in parser for Vadim. 1998-01-19 05:06:41 +00:00
b37bc65f44 Creates the SubLink structure, and the Query->hasSubLink field,
with supporting code.

Creates SubLink node in gram.y.

psql.c patch for newatttypmod field.
1998-01-17 04:53:46 +00:00
c65ea0e040 New pg_attribute.atttypmod for type-specific information like
varchar length.

Cleans up code so attlen is always length.

Removed varchar() hack added earlier.

Will fix bug in selecting varchar() fields, and varchar() can be
variable length.
1998-01-16 23:21:07 +00:00
763ff8aef8 Remove Query->qry_aggs and qry_numaggs and replace with Query->hasAggs.
Pass List* of Aggregs into executor, and create needed array there.
No longer need to double-processs Aggregs with second copy in Query.

Fix crash when doing:

	select sum(x+1) from test where 1 > 0;
1998-01-15 19:00:16 +00:00
4b05912f0b Fix for count(*), aggs with views and multiple tables and sum(3). 1998-01-04 04:31:43 +00:00
a1dd409053 Fix for ORDER BY in UNION. 1997-12-29 04:31:50 +00:00
a01b085c78 Cleanup of UNION ALL fix. Manual page updates. 1997-12-29 01:13:37 +00:00
b704426618 Make parser functions static where possible. 1997-11-26 03:43:18 +00:00
598e86f3b3 Cleanup up include files. 1997-11-26 01:14:33 +00:00
4a5b781d71 Break parser functions into smaller files, group together. 1997-11-25 22:07:18 +00:00
49656346b8 Move dbcommands.c to commands/. It should not be in the parser directory. 1997-11-24 05:32:56 +00:00
195f78e43c More archive cleanup. 1997-11-21 19:12:41 +00:00
629e27284d Remove unused files. 1997-11-21 18:22:04 +00:00
e9e1ff226f Remove all time travel stuff. Small parser cleanup. 1997-11-20 23:24:03 +00:00
7d1f2f8a27 Support alternate database locations. 1997-11-07 06:38:51 +00:00
32cd09ac6d Good Bye, Time Travel! 1997-11-02 15:27:14 +00:00
59f6a57e59 Used modified version of indent that understands over 100 typedefs. 1997-09-08 21:56:23 +00:00
319dbfa736 Another PGINDENT run that changes variable indenting and case label indenting. Also static variable indenting. 1997-09-08 02:41:22 +00:00
1ccd423235 Massive commit to run PGINDENT on all *.c and *.h files. 1997-09-07 05:04:48 +00:00
11ac1bf268 More NOT_USEDs 1997-08-20 14:54:35 +00:00
1d8bbfd2e7 Make functions static where possible, enclose unused functions in #ifdef NOT_USED. 1997-08-19 21:40:56 +00:00
5e7c0a0b9a From: Darren King <aixssd!darrenk@abs.net>
Subject: [PATCHES] DROP AGGREGATE patch/fix.


Here's a patch that fixes the DROP AGGREGATE command to delete
the desired aggregate for a specific type.
1997-05-22 00:17:24 +00:00
2300ac0dc4 Add attribute optimization statistics. 1997-02-07 16:24:12 +00:00
84876289cc Cast constants to the type of the other binary operand.
Invalidate vacuum relation cache to use new row counts from vacuum.
1997-01-22 01:44:02 +00:00
7439ba64b1 Use "Oid" type where applicable and %ud instead of %d. Thanks Darren King. 1996-12-11 03:18:12 +00:00
63df35e249 This patch changes quite a few instances of references of Oid's
as ints and longs.  Touches on quite a few function args as
well.  Most other files look ok as far as Oids go...still checking
though...

Since Oids are type'd as unsigned ints, they should prolly be used
with the %ud format string in elog and sprintf messages.  Not sure
what kind of strangeness that could produce.

Darren King
1996-11-30 18:07:02 +00:00
aaeef4d17d All external function definitions now have prototypes that are checked. 1996-11-10 03:06:38 +00:00
c9c0e111b8 More compile cleanups 1996-11-08 20:46:33 +00:00
1d0dd471fa Okay...this pretty much cleans out the include files.
I'm able to get through a 'make' of the backend with no errors except
the occasional 'might not be initialized error', which is nothing major,
just annoying.

Have a few patches from D'Arcy to incorporate, but am waiting until I can
get a clean compile first, which I'm hoping to have before bed, or sometime
tomorrow.
1996-11-06 10:31:02 +00:00
d2746c65b5 Make sure all the cleaned includes are commited 1996-11-04 12:12:52 +00:00
ff36ebc922 More cleans of the inter-dependencies in the #include files 1996-11-03 12:13:35 +00:00
727c840754 typo fix on include file. 1996-10-31 18:33:09 +00:00