8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-29 03:23:03 +01:00
Commit Graph

454 Commits

Author SHA1 Message Date
dimitr
2f8c56b330 Fixed types convertion. 2003-09-28 12:05:10 +00:00
dimitr
f1cde7d613 Slightly reworked my labels implementation. 2003-09-28 11:12:03 +00:00
brodsom
4c9f386bd2 Macro cleaning 2003-09-28 00:36:28 +00:00
skidder
ad60c5b70b Make RIGHT JOIN symmetrical to LEFT JOIN at DSQL layer.
This fixes a couple issues when engine rejected correct RIGHT JOINs
or accepted incorrect and failed subsequentally during query execution
2003-09-21 17:49:16 +00:00
arnobrinkman
71b17588d9 Added ORDER BY support on derived tables. (Suggested by Dmitry Yemanov) 2003-09-15 21:21:40 +00:00
dimitr
f7aa490111 The final part of my little PLAN enhancement. 2003-09-14 15:37:05 +00:00
arnobrinkman
74380ab714 Don't forget unnamed derived tables 2003-09-04 21:40:21 +00:00
brodsom
a4416db52a -Replace BOOLEAN, TRUE and FALSE 2003-09-04 21:26:15 +00:00
brodsom
f51c931f6d Correction 2003-09-04 15:26:53 +00:00
arnobrinkman
4a37161c8d Changed internally derived-table support to better readable/understanding code 2003-09-04 15:02:22 +00:00
brodsom
c4179f6e13 Fix cast warning 2003-09-04 13:45:06 +00:00
arnobrinkman
f691e5d79c Change types that were used as booleans to the real bool type 2003-09-03 23:52:47 +00:00
arnobrinkman
e5574959ad Change BOOLEAN to bool type 2003-09-01 23:22:22 +00:00
brodsom
8624a7c209 -Use NULL instead 0 for null pointers
-Remove unneeded casts
2003-09-01 07:58:04 +00:00
dimitr
eb6acae759 Cleanup variable names. 2003-08-30 16:49:15 +00:00
brodsom
602c201989 -Remove NULL_PTR
-Remove unneeded NULL casts
-Remove (void) function return cast
2003-08-28 13:07:29 +00:00
dimitr
323bae2372 1. MAP renamed to DSQL_MAP
2. Minor cleanup
3. Fixed BREAK/LEAVE code to support FOR EXECUTE STATEMENT loops
4. Added support for loop labels and LEAVE <label> statement
5. Fixed SUBSTRING to support value expressions as its arguments
2003-08-26 07:13:33 +00:00
arnobrinkman
11b4fcf5b7 1) Make COALESCE/CASE output descriptor more SQL-standard.
Exception is that we allow mixing datatypes with (var)char (except blob), because all datatypes are convertable to character-type and because this functionallity was available from 1st day COALESCE is introduced inside Firebird.
2) Fix bug with expressions without fields inside aggregate-functions.
Example :
  SELECT
    (SELECT Count(1) FROM RDB$DATABASE)
  FROM
    RDB$RELATIONS
2003-08-25 23:35:30 +00:00
arnobrinkman
79c10074c0 Already fix COALESCE/CASE output-descriptor behaviour inside HEAD branch to conform with SQL-standard.
FB1.5_RELEASE will follow when error-message is added
2003-08-24 22:15:23 +00:00
arnobrinkman
9cf1f386fa fix bad behaviour with auto-union-cast 2003-08-24 15:22:11 +00:00
arnobrinkman
006070b331 added comment and nested derived table fix 2003-08-24 02:56:53 +00:00
arnobrinkman
c61cbdc5ca fix some derived tables problems 2003-08-24 02:36:46 +00:00
arnobrinkman
9b4b90d606 bugfix nested derived tables 2003-08-19 23:56:28 +00:00
arnobrinkman
05d343bda8 Oops missed something 2003-08-19 23:47:07 +00:00
arnobrinkman
506b858567 Added PLAN support for derived tables 2003-08-19 23:34:23 +00:00
arnobrinkman
f5002b3f5b Code clean-up and re-apply comments as suggested by Claudio V. 2003-08-18 21:37:47 +00:00
arnobrinkman
9e82b6d20b Fixed ambiguous columnname problems with derived tables.
Added support for unnamed derived tables.
2003-08-16 00:36:54 +00:00
arnobrinkman
0d203a2c36 derived table support 2003-08-15 00:02:18 +00:00
arnobrinkman
77d9804ed0 Support all expressions directly in GROUP BY clause 2003-08-10 15:19:43 +00:00
arnobrinkman
f81b831315 2nd RC4 bugfix, but much better tracking of supported nested aggregates. 2003-07-29 00:29:17 +00:00
arnobrinkman
0df22b0b31 bugfix RC4: a higher context was supported with nested aggregates, but this isn't possible.
Only a lower context is possible with nested aggregates.
2003-07-28 19:22:56 +00:00
skidder
905670f5f9 Separate DSQL cursors management and explicit locks as suggested by Ivan Prenosil 2003-07-11 22:36:05 +00:00
skidder
e9d8645824 Forbid pessimistic locks in queries with DISTINCT clause 2003-06-30 14:31:00 +00:00
skidder
c4727d695b Add checks to allow explicit pessimistic locks only in cases when we really support them 2003-06-29 20:36:52 +00:00
dimitr
b41fee4014 New error messages for:
- gbak
  - DSQL layer (aggregate tracking)
  - JRD layer (EXECUTE STATEMENT)
  - config stuff
2003-06-13 07:56:08 +00:00
dimitr
c1c723103f Disallowed explicit locking for aggregate queries.
The same should be done for stored procedure streams (joins require some work too).
2003-06-12 09:38:01 +00:00
dimitr
112c7022b6 Fixed (hopefully) savepoints implementation:
1) RELEASE SAVEPOINT statement is added
2) SAVEPOINT statement now re-establishes existing savepoint with the same name
3) all savepoint stuff is changed to use single BLR verb
2003-06-10 13:40:19 +00:00
dimitr
43aaa45d42 Enabled BREAK/LEAVE and EXITcommands in non-system triggers. 2003-05-14 08:15:25 +00:00
skidder
f16736b802 Use explicit pessimistic locks only if WITH LOCK clause is specified 2003-05-11 19:32:41 +00:00
arnobrinkman
192ba388d4 1) bugfix RC1: Aggregates from a different parent_context where not allowed in the HAVING clause.
2) Enabled aggregate-functions from different parent_context (with lower scope_level) to be used inside another aggregate-function

Example:
SELECT
  MAX((SELECT COUNT(*) FROM RDB$RELATIONS))
FROM
  RDB$RELATIONS
2003-05-07 01:57:18 +00:00
arnobrinkman
962b5e21a3 fixed a typo and changed some comments 2003-05-04 22:02:42 +00:00
alexpeshkoff
8a6430c352 Fixed server crash in EXECUTE STATEMENT combined with exceptions handling block 2003-05-02 15:20:17 +00:00
arnobrinkman
a819ccb060 bugfix: stored procedure with input parameters and aggregate tracking/validating methods failed 2003-04-17 20:58:36 +00:00
arnobrinkman
975638783a bugfix: Parameters from stored procedures in a sub-select where not remaped to the good context in a aggregate query.
example:
SELECT
  (SELECT sp.x FROM SP_TEST(T1.ID) sp)
FROM
  Table1 T1
GROUP BY
  T1.ID
2003-04-16 22:49:41 +00:00
aafemt
b3436b5cd7 STATUS -> ISC_STATUS 2003-04-10 06:32:58 +00:00
brodsom
42ef1314ec DSQL warning fixes. 2003-04-08 00:31:20 +00:00
dimitr
be5247dc1c 1. Cleanup
2. ROWS_AFFECTED is renamed to ROW_COUNT
(see SQL2002 specification)
3. CONNECTION_ID/TRANSACTION_ID are renamed to CURRENT_CONNECTION/CURRENT_TRANSACTION
(see SQL2002 recommendations for context functions)
4. Solved most of the shift/reduce conflicts and all reduce/reduce conflicts in the grammar
5. Fixed ambiguity in ORDER BY clause, when both the value and the clause itself could contain COLLATE word
(now explicit collation sequence of the value is used in the ordering logic)
6. Some of newly introduced tokens are made non-reserved
7. Added code to enable ORDER/GROUP BY ordinal when asterisk is used in the select list
(not sure which version it should go, so it's commented out so far)
2003-04-06 11:20:24 +00:00
brodsom
2c329ec811 - Spli macro to avoid not used warnings
- Minor code formatting
2003-04-03 09:29:10 +00:00
arnobrinkman
f83a6084ed bugfix:
1) bug with sub-selects inside COALESCE function.
2) bug with parameter ordering.
2003-03-31 19:11:55 +00:00
arnobrinkman
b099026cdc corrected mistake in previous commit. 2003-03-10 23:30:53 +00:00
arnobrinkman
f1ca8aed80 bugfix: A bug left with using a aggregate sub-query inside a IN clause. 2003-03-10 21:38:22 +00:00
alexpeshkoff
878b0b6091 Fixed EXECUTE STATEMENT to support INTO clause 2003-03-01 19:19:23 +00:00
arnobrinkman
f890eca4ea bugfix: DISTINCT with sub-selects (context already in use (BLR error)). Distinct items are now correctly parsed and not just copied from the select-list. 2003-02-23 01:36:22 +00:00
hippoman
1cb0c17ace * Formated comments to make Doxygen Happy.. 2003-02-15 03:01:51 +00:00
hippoman
ad14320d0e * formated dsql.h comments to make Doxygen happy..
* changed DSQL_debug values as follow..
/*! \var unsigned DSQL_debug
    \brief Debug level

    0       No output
    1       Display output tree in PASS1_statment
    2       Display input tree in PASS1_statment
    4       Display ddl BLR
    8       Display BLR
    16      Display PASS1_rse input tree
    32      Display SQL input string
    64      Display BLR in dsql/prepare
    > 256   Display yacc parser output level = DSQL_level>>8
*/
2003-02-15 02:05:10 +00:00
tamlin
bc383ff498 A bit const correctness added and some reinterpret_casts removed.
Changed DSQL's str to actually hold char.
2003-02-12 19:28:13 +00:00
arnobrinkman
bd7a1b6bed bugfix: wrong context was used with FieldX IN (sub-select) predicate.
Caused by me by an other bugfix SF BUG # [ 213859 ]
2003-01-30 22:14:02 +00:00
arnobrinkman
9b5c62d89c bugfix: It wasn't possible to use non-aggregate related-fields from a aggregate query inside an sub-query.
Example (this failed) :
SELECT
  Count(T1.F1),
  SUM((SELECT T2.F2 FROM Table2 T2 WHERE T2.F1 = T1.F1))
FROM
  Table1 T1
2003-01-30 13:30:15 +00:00
skidder
3622fc966f Fix intermittent bug in aggregate reference tracking 2003-01-17 12:47:19 +00:00
dimitr
55ed1b6444 1. Reworked internal info stuff once more.
2. Added DSQL support for parametrized events.
3. Fixed bug with cursors in triggers.
4. Added support for runtime trigger action checks (INSERTING/UPDATING/DELETING).
5. Fixed bug with concatenation and trashed RDB$FIELD_LENGTH.
2003-01-15 12:00:33 +00:00
arnobrinkman
3dcc0600c8 bugfix: SF BUG # [ 213859 ] Subquery connected with 'IN' clause 2003-01-12 20:27:00 +00:00
arnobrinkman
411c18bbf2 bugfix on my latest commits 2003-01-12 16:29:59 +00:00
arnobrinkman
1b552b007e Introduce backwards compatibilty within aggregates.
Deepest field inside aggregate determine where an aggregate-context should belong too.
2003-01-11 02:49:13 +00:00
skidder
2975b16cce Allow arbitrary expressions in ORDER-BY clause 2003-01-09 16:50:24 +00:00
dimitr
9dc68b4a7b Fixed bug with BREAK and partially implemented labels and LEAVE statement. 2002-12-18 15:01:50 +00:00
dimitr
6e51db6e6e 1. Implemented ORDER BY clause in subqueries.
2. Disallowed FIRST/SKIP for views.
3. Allowed zero as valid argument for FIRST.
2002-12-03 18:04:36 +00:00
hippoman
9a8f0768b9 Changed struct fld and FLD to local module names 2002-11-30 17:45:02 +00:00
arnobrinkman
97caf1f635 bugfix: allow use of other outer-references in a aggregated sub-select 2002-11-25 20:29:39 +00:00
skidder
2b995ac2ab Make SQLDA parameter mapping consistent with order and number of parameters in source SQL string 2002-11-24 15:22:03 +00:00
arnobrinkman
2ea3a3664a no message 2002-11-24 13:03:51 +00:00
skidder
f13636d29c Fixed nulls first/last and collation handling in "order by" clause of unions 2002-11-22 15:27:59 +00:00
hippoman
7387e6fb70 changed nod,tra,req,trg,rel,ctx,prc struct names to local module names 2002-11-20 23:18:16 +00:00
dimitr
776c54bdac Renamed MSG to DSQL_MSG. 2002-11-19 12:35:28 +00:00
hippoman
62cf7d7a88 change TRA,REQ,TRG,REL,CTX or PRC, to module local names. 2002-11-17 00:04:19 +00:00
hippoman
c75a6d3019 * Changed NOD struct name to DSQL_NOD. 2002-11-11 19:08:37 +00:00
dimitr
7aaa9dc9ee Let's report real statement, not it's internal meaning. 2002-10-31 12:22:05 +00:00
dimitr
1b2fc90266 Disallowed Nickolay's SAVEPOINT feature for SPs/triggers. 2002-10-31 12:01:53 +00:00
skidder
8e6622a20e Merging changes from skidder branch - explicit locks, savepoints, build system changes 2002-10-29 20:20:44 +00:00
dimitr
5c8530579d Re-allowed plans in triggers. 2002-10-25 08:29:12 +00:00
arnobrinkman
38a4597423 AB: "cosmetic changes" 2002-10-19 00:56:25 +00:00
arnobrinkman
ed61fc2a36 AB: bug fixed with sub-select and group by clause and cosmetic changes 2002-10-19 00:32:23 +00:00
arnobrinkman
8b7c1e763e AB: Fixed bug with alias and GROUP BY clause 2002-10-04 17:53:35 +00:00
arnobrinkman
5d6efbeae8 AB: Fix error-message bug with aggregate only in sub-select 2002-10-01 00:34:29 +00:00
arnobrinkman
dd6b72d89e AB: Adding better error-handeling and support for subqueries with group_by clause 2002-09-28 23:52:36 +00:00
dimitr
536d8c0552 1. Reworked internal_info implementation in both DSQL and JRD.
New helper class created to serve it properly.
2. Added exception re-raise semantics.
Syntax: EXCEPTION;
If there was handled exception, re-initiate it, otherwise evaluate to no-op.
3. Implemented run-time exception messages.
Syntax: EXCEPTION <exception_name> [<value>];
If <value> is specified, evaluate it and use instead of RDB$EXCEPTION_MESSAGE.
4. Added new SQLCODE and GDSCODE system variables.
Available in procedures/triggers only.
If there wasn't any exception raised, return zero (success), otherwise return an error code.
5. Implemented ROWS_AFFECTED system variable.
Available in procedures/triggers only.
Count rows affected by the last INSERT/UPDATE/DELETE statement.
For any other statement, result is always zero.
2002-09-28 14:04:35 +00:00
skidder
6d64014e57 Changed engine to store source file name/line number information for EVERY allocation when DEBUG_GDS_ALLOC is defined. All allocation should be done using FB_NEW or FB_NEW_RPT macros instead of keyword new since now 2002-09-25 17:12:16 +00:00
skidder
f8006cb881 added nulls first/last syntax support 2002-09-10 18:28:23 +00:00
dimitr
b36015e6e9 - allowed user-defined index names for PK/FK/UK constraints
- fixed ugly hardcoded name checks for primary/foreign keys
- implemented RECREATE VIEW statement
2002-09-01 15:49:03 +00:00
dimitr
b45eb004a2 Implemented CREATE OR ALTER statement for procedures/triggers/views. 2002-08-27 07:48:34 +00:00
arnobrinkman
d757d31ed4 Added code in pass1_simple_case for handeling parameters in case_operand together with when_operands.
The method used to get the derciber for parameters is taken from MAKE_desc_from_list in make.cpp
Example : SELECT CASE FieldA WHEN :param1 THEN 1 WHEN 2 THEN 2 ELSE NULL END FROM TableA
Note : At least one "know describer" must be in the list else no describer could be guested (logic but...) !
2002-08-26 19:40:59 +00:00
dimitr
7922269845 1. BIGINT is now the only keyword for the 64-bit exact numerics and it's available
in dialect 3 only.
2. BREAK statement has been disabled in triggers (like EXIT) because of the known
   BLR limitations. I hope it can be safely used in stored procedures though, hence
   I'd prefer to have it officially documented.
3. More complete implementation of the GROUP BY clause. You can group by internal
   functions and have ability to use more complex grouping conditions than before.
   By Arno Brinkman.
4. Allowed declaring and defining local variables at the same time.
   By Claudio Valderrama.
   Syntax: declare [variable] <var_name> <var_type> [{= | default} <default_value>]
5. Allowed ordinals to be used in the GROUP BY clause (like ORDER BY).
   By Arno Brinkman.
   Example: select extract(month from order_date), sum(order_sum) from orders group by 1
6. The first approach to the ALTER VIEW statement. Only high-level implementation so far.
   A lot of work in dfw.epp, metd.epp, etc. still required.
   By Dmitry Yemanov.
2002-08-11 08:04:54 +00:00
dimitr
15a9015236 1) Implemented CASE, NULLIF, COALESCE
2) Allowed grouping by internal functions (some work in pass1.cpp still required)
Thanks to Arno Brinkman.
2002-08-03 15:27:20 +00:00
skywalker
89e06a1b43 Merge final changes from fb1 tree. 2002-07-06 05:32:02 +00:00
dimitr
88edfc0714 Merging changes from fb1 (stage 2 - fixing porting errors). 2002-07-02 12:20:50 +00:00
skywalker
ae266af6d1 Merging changes from fb1. 2002-06-29 06:56:51 +00:00
dimitr
745d1093a2 Enabled support for empty BEGIN...END blocks 2002-06-20 11:42:15 +00:00
dimitr
95281ccf25 1. New system variables - CONNECTION_ID and TRANSACTION_ID
2. Universal triggers
(parser changes are not very nice, but at least it works;
perhaps it should be polished up a bit later)
2002-06-14 12:07:20 +00:00
bellardo
5993ece95e Fixed some ugly code I committed yesterday. 2002-04-04 16:41:41 +00:00
dimitr
8463265fc1 Implemented 'EXECUTE VARCHAR' command. 2002-04-04 13:53:20 +00:00
bellardo
e68de5f1bc Can't BLKCHK stack variables anymore. Fixed one such occurance in pass1.cpp 2002-04-02 17:10:34 +00:00
skywalker
a887af3646 Changes to make it compile on linux.
and work through a few issues.
2002-01-04 11:34:22 +00:00
tamlin
80f7fb6dd4 New C++ memory pool 2001-12-24 02:51:06 +00:00
skywalker
4c4bc9a95c Global changes for new Makefile and firebird2 compile on linux 2001-07-29 23:43:24 +00:00
tamlin
9a776a604e First steps towards a C++ conversion. 2001-05-23 13:26:42 +00:00