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

213 Commits

Author SHA1 Message Date
asfernandes
d515370b9d Thread safety: do not write in request shared place during execution. 2010-04-07 15:31:32 +00:00
asfernandes
fe9bf02848 Refactor user and system functions nodes 2010-04-05 18:43:11 +00:00
dimitr
90b128d6b6 Fixed CORE-2890: SQLSTATE should also be available as a PSQL context variable like GDSCODE/SQLCODE.
To be later backported into v2.5.1, I suppose.
2010-03-21 07:29:58 +00:00
dimitr
437ea7a1f6 Cleanup. 2010-03-19 20:10:19 +00:00
dimitr
63bedffa71 Refactored the sorter into a proper class.
Removed some dead code and unused files.
2010-03-16 11:19:29 +00:00
asfernandes
82fe06ed9a Refactor FOR statement and SELECT...INTO. Indirectly (blr_for), JRD side of standard SELECT is affected as well. 2010-02-22 16:00:49 +00:00
robocop
7740b3953a Misc. 2010-02-14 10:50:01 +00:00
asfernandes
c737d6a807 Create ExprNode class hierarchy.
Convert CONCATENATE and aggregate functions to it.

Fix some bugs:
- select sum(n) over (order by n2), sum(n) over (), n, n2 from x1;
- select (select 1 from x1 b where list(1, a.n) = 1) from x1 a;
2010-02-13 20:29:29 +00:00
robocop
3b5a0fdae5 The way AccessItem instances were ordered was a hack that sooner or later would fail when adding more object types (that now have ACLs but we still don't enfornce them). Further, comparing numbers is faster than comparing strings. 2010-02-13 08:31:16 +00:00
robocop
0da76615ab Fix misinterpretation of MET_get_dependencies's parameters done years ago with Alex' conversion to MetaName class. 2010-01-26 08:29:03 +00:00
asfernandes
b68658534f Feature CORE-2823 - Support the ORDER BY subclause for current aggregate functions (except LIST) 2010-01-23 03:02:53 +00:00
asfernandes
7fbee2c76b Feature OVER (PARTITION BY ...) clause for window functions 2010-01-18 21:37:47 +00:00
asfernandes
9c1bab1793 Feature CORE-1385 Identity columns - in its basic form 2010-01-13 19:14:15 +00:00
dimitr
7d7aef4228 Cleanup and refactoring in the optimizer (mostly related to rivers and sort/merge). 2010-01-13 11:46:16 +00:00
dimitr
debe65bcfb Support for PSQL functions (other JRD changes). Still work in progress. 2009-12-21 17:43:01 +00:00
dimitr
d09fba5ebd Fixed (hopefully) CORE-2798: Incomplete plan output (lack of view names) when selecting from views containing procedures inside. 2009-12-10 14:47:52 +00:00
dimitr
11495a55fb Refactored the whole RSB stuff into classes. They're inside the /recsrc sub-directory now.
Fixed the layering for WITH LOCK and (partially) ANY/ALL predicates.
Cleaned up the outdated code that never worked (mapping DISTINCT to an index, some VMS remainings).
Wiped out a lot of the pre-ODS11 optimizer logic. Some minor adjustments there.
Re-implemented the full outer join from scratch. This resolves CORE-2678 (full outer join cannot use available indices).
Resolved CORE-2796: DB_KEY is always zero for external tables.
Implemented the core part of the scrollable PSQL cursors. Implementation is still incomplete, but ready for testing.
Some other changes I don't recall at the moment ;-)

WARNING! The engine may be unstable. Please email me about any issues found.
2009-12-09 18:45:44 +00:00
asfernandes
218f419b5c Fixed related issues:
CORE-1518 - Adding a non-null restricted column to a populated table renders the table inconsistent
CORE-2696 - "alter table" command can add a field which has "not null" definition
CORE-1748 - Unrestorable backup
CORE-1355 - Zero display instead of NULL
2009-11-18 14:24:47 +00:00
asfernandes
d59001341c Misc 2009-10-31 17:31:48 +00:00
dimitr
e6909de7f7 Wipe out the SCROLLABLE_CURSORS code + minor cleanup.
Also, surfaced scrollability for PSQL cursors (without internal support yet).
2009-10-31 06:25:01 +00:00
asfernandes
b31aaf0129 Some statements nodes refactor - creation of IfNode, ExitNode, SuspendNode, PostEventNode and SavePointNode. 2009-10-24 17:45:33 +00:00
asfernandes
ed0e0daeb3 - External Engines implementation.
- Plugins API.

- Feature CORE-2700 - UDR (User Defined Routines) Engine - C++ API supporting functions, triggers and stored procedures.
- Feature CORE-2470 - Support for alternate format of strings literals.
- Feature CORE-2310 - DDL triggers.
- Feature CORE-2312 - PSQL Packages.
- Feature CORE-1209 - CONTINUE statement.
- Feature CORE-1180 - DDL syntax to change (not) nullable state of columns.
- Feature CORE-2090 - Support OVER () clause with current aggregate functions.

- Fixed CORE-2699 - Common table expression context could be used with parameters.

- Introduce ODS 12.0.

- Work in progress in type-safe parser.
- Refactor some DDL commands (procedures and triggers) from DYN to DdlNodes.
- Refactor virtual tables to use a class hierarchy instead of namespaces. This is basic thing, not based on the changes done in Vulcan. Window functions is based on this work.
- Refactor COMMENT ON and DROP FUNCTION from DYN to DdlNodes. COMMENT ON do not use GDML anymore, it uses DSQL with PreparedStatement class.
- Refactor EXECUTE BLOCK to StmtNodes.
- Refactor the IUDF to SysFunctions. That eliminates RDB$GET_CONTEXT and RDB$SET_CONTEXT from RDB$FUNCTIONS.
2009-10-21 00:42:38 +00:00
robocop
d9a35f4a47 Misc: cardinality is double. 2009-10-16 07:05:51 +00:00
asfernandes
870e35d120 Argh. Fix for the second time problem with line endings 2009-10-15 16:13:40 +00:00
asfernandes
da2f4c2b6d Added some debug code to cmp 2009-10-15 16:06:22 +00:00
dimitr
d60030074d Just a consistency with other variables. 2009-10-05 16:06:44 +00:00
asfernandes
398975b940 Misc 2009-08-20 01:32:24 +00:00
robocop
1816523040 Comments. 2009-08-16 06:23:19 +00:00
asfernandes
4759973045 Fixed CORE-2576 - Server may crash parsing wrong or truncated BLR
Full rebuild required - CMP_compile2 prototype changed
2009-08-02 04:10:07 +00:00
hvlad
9a749a272f Implement improvement CORE-2452 : Add Role Name in input parameters for EXECUTE STATEMENT 2009-05-14 10:21:47 +00:00
asfernandes
9e0c4f06f2 Misc 2009-04-04 16:28:33 +00:00
robocop
a730fbf074 Get rid of more typedefs. 2009-04-03 10:07:55 +00:00
robocop
95292d1731 Style. 2008-12-20 08:12:19 +00:00
asfernandes
ff5f8745fb Remove trailing spaces (.h files) 2008-12-05 00:56:15 +00:00
asfernandes
cf7ae27db5 Fixed CORE-1432 - Collation not propagated between record formats 2008-11-30 18:55:52 +00:00
asfernandes
3ed6c880b9 Misc 2008-09-10 15:46:58 +00:00
asfernandes
b550749a47 Fixed CORE-1246 - Incorrect column values with outer joins and derived tables 2008-09-07 19:44:48 +00:00
asfernandes
9150e6f4f2 This should fix regressions related to fixes of:
CORE-501 - Optimization problem with COALESCE
CORE-1343 - Bug with a simple case and a subquery
CORE-2041 - update or insert with gen_id() with wrong generator value

And should fix this one (snapshot build bug):
CORE-2051 - don't work subquery in COALESCE
2008-09-01 13:18:02 +00:00
alexpeshkoff
13a15d4bfe 1. Final fix for CORE-1964 - finished vararg cleanup in jrd.
2. Generic cleanup of error reporting functions all around engine.
2008-08-27 12:20:47 +00:00
asfernandes
84da641b55 Fixed CORE-2034 - Problems related to CORE-1254 (Problem with DISTINCT and insensitive collations) re. UNICODE insensitive collations with DISTINCT or GROUP BY. 2008-08-08 01:44:42 +00:00
alexpeshkoff
a2e416210b Fixed CORE-1964: Use of 0 instead of isc_arg_end to terminate list of ERR_post's (and cousines) arguments is invalid.
Also cleaned up use of gds__log() in a few places.
2008-06-26 09:47:59 +00:00
hvlad
5d9c430674 Implemented improvement CORE-1928 : Allow EXECUTE STATEMENT to inherit access privileges of caller stored procedure or trigger.
Allow to specify EXECUTE STATEMENToptional clauses in any (not fixed) order.
Use INTERNAL_PROVIDER for access to the current database by another user too.
2008-06-08 20:42:27 +00:00
asfernandes
d52dc96278 1) Move the new Node classes to appropriate files
2) Creation of StmtNode
3) Conversion of IN AUTONOMOUS TRANSACTION to InAutonomousTransactionNode (inherited from StmtNode) - it makes this feature almost self-contained

Please do a boot build or at least run blr_table.
2008-05-19 13:47:48 +00:00
asfernandes
4343cbfeba Do the same kind of cleanup in jrd/pass1 as done for "proc_flag" in dsql/pass1 - recursive passing the same parameters that is changed in specific situations makes difficult to understand the logic. 2008-05-18 01:02:35 +00:00
robocop
e44a99f339 Style and minor cleanup. 2008-05-10 03:44:57 +00:00
hvlad
5f8774827c Better and simpler fix for bug CORE-1884. 2008-05-06 12:15:09 +00:00
hvlad
c3e8b5c75b Fixed bug CORE-1884 : Random AVs using stored procedures with expressions as default values of input parameters 2008-05-06 07:06:06 +00:00
asfernandes
53a2090f65 Misc 2008-04-27 02:39:51 +00:00
robocop
b70fc21329 Collapse some lines of repetitive code. 2008-04-24 10:56:57 +00:00
hvlad
fe3f8c184b New EXECUTE STATEMENT with support of external data source implementation 2008-04-09 20:18:47 +00:00
dimitr
f5659c0b70 1) Major cleanup of the old-style blk and allocator-based blk_type.
2) Added synchronization for the JRD locks.
2008-03-19 16:19:56 +00:00
robocop
b4091ac9a6 Make them explicit. 2008-03-10 08:16:57 +00:00
robocop
e39885c7fb Misc. 2008-03-02 08:45:41 +00:00
dimitr
99caa91b85 DSQL integration into the engine. 2008-02-28 13:48:16 +00:00
asfernandes
46c115411a Fixed CORE-1254 - Problem with DISTINCT and insensitive collations 2008-02-09 15:19:21 +00:00
dimitr
e3128c2479 The merge continued. 2008-01-16 08:54:50 +00:00
alexpeshkoff
bd51630b00 Optimized code for domain-based variables (and procedure arguments) 2007-12-08 13:41:26 +00:00
hvlad
2b47bbe55b Revert files back after wrong commit 2007-11-19 00:21:18 +00:00
hvlad
86f1141328 Execute statement with support of external data source 2007-11-18 22:59:20 +00:00
dimitr
914ddbb957 Fixed CORE-1549. 2007-10-29 17:56:28 +00:00
robocop
fa1538a1ae Minor changes in MetaName usage. 2007-08-26 09:05:29 +00:00
hvlad
671e59e993 Fixed bug CORE-1373 : Incorrect result of recursive CTE query when recursive member's SELECT list contains expression using self-referenced fields 2007-07-21 21:28:56 +00:00
asfernandes
0f4663dc1a Fixed CORE-1318 - Error "Identifier ... is too long using multiple (nested) derived tables.
Front-ported fix done by Alex in 2.0.
2007-06-13 01:53:00 +00:00
asfernandes
c97d57013e Fixed CORE-1253 - LIST(DISTINCT) concatenate VARCHAR values as CHAR 2007-05-11 02:07:36 +00:00
asfernandes
cfe0ad95cf Fixed CORE-1227 - LIST() function seems not work if used twice or more in a query 2007-05-05 19:28:46 +00:00
asfernandes
f7b7f2b96f Some changes as per Claudio comments 2007-04-16 15:31:28 +00:00
asfernandes
166fc0b865 Misc 2007-04-13 01:37:44 +00:00
asfernandes
8c7076b67f Port of Yaffil builtin functions 2007-04-12 15:56:34 +00:00
asfernandes
05e6ebd58c Check constraints when reading variables/parameters only if it's the first read and it's wasn't assigned yet 2007-02-06 14:25:10 +00:00
robocop
8a06c80028 Simplification and indentation. 2007-01-21 07:46:41 +00:00
asfernandes
f30ee6b63e Use debug informations in EXECUTE BLOCK 2007-01-20 14:18:18 +00:00
alexpeshkoff
e79660bca6 fixed gcc warning 2007-01-20 14:07:18 +00:00
asfernandes
aca179f398 Full domain support and NOT NULL in PSQL 2007-01-17 01:19:01 +00:00
dimitr
8ea7c4f915 A bit different fix for CORE-1004 in HEAD. Experimental. 2006-12-12 16:12:15 +00:00
hvlad
58d381edd7 1. Remove blr_src_info code as it is prevents database downgrade from ODS 11.1
2. Put debug information (mapping between blr offset and source line\column and names of local variables) into new blob field RDB$DEBUG_INFO
This is first step to implement native SQL debugger i believe
2006-10-30 20:58:06 +00:00
asfernandes
1d422a8330 1) Refactor intl_classes.h and intl.cpp
2) Make conversions from CharSet1->UTF16->CharSet2 job of CsConvert class
2006-10-10 19:40:33 +00:00
asfernandes
55ec30965d REPLACE statement 2006-09-03 01:09:23 +00:00
asfernandes
e538061c38 Implementation of CREATE/DROP COLLATION and ISQL show/extraction of collations 2006-08-07 16:39:21 +00:00
hvlad
b20aa92714 Common table expressions implementation 2006-08-01 20:37:58 +00:00
hvlad
8e14bc4f1e Move relation stuff from jrd.h\vio.cpp into new Relation.h\Relation.cpp
by request of Claudio and Dmitry
2006-05-30 13:29:24 +00:00
asfernandes
3b54c24652 Let LOWER/UPPER (blob) work - returning a blob 2006-04-16 18:45:40 +00:00
dimitr
d2f823b821 Fixed yet another bug in cursors. Will this ever end? :-) 2006-03-29 17:47:50 +00:00
dimitr
6c1e162151 Fixed a minor regression in the permission checking logic.
Let's first check the relation privileges and only then the column ones.
2006-03-28 09:36:22 +00:00
alexpeshkoff
95911b4842 fixed memory leak - SF#1422471 2006-03-10 17:46:18 +00:00
dimitr
8da75613c4 Fixed yet another bug in explicit cursors.
Unfortunately, BLR compatibility is not provided, so users have to recompile their SPs/triggers.
2006-03-07 17:52:33 +00:00
robocop
1f84bac700 Mark unused data members, discover more code associated to conditional compilation, clean some places, replace custom loops by memcpy and memset when possible, etc. 2006-02-23 05:08:26 +00:00
robocop
3389149564 The files rng.cpp, rng.h, rng_proto.h, bookmark.cpp and bookmark.h belong exclusively to PC_ENGINE, that's obsolete functionality.
Tenth step: some code was tagged PC_ENGINE but was for SCROLLABLE_CURSORS instead, hence restore it. Also, clean unused data members, obsolete BLR verbs and the like.
2006-02-07 08:08:49 +00:00
robocop
eb9bec4b32 More scrollable cursors related code. 2006-02-03 08:37:14 +00:00
robocop
29a6749c22 Misc. 2006-02-02 07:40:42 +00:00
robocop
f00fc0ff56 1.- Make "vec" type safe and get rid of several code contortions. Fix some small bugs meanwhile.
2.- Put inside PC_ENGINE several data members that belong to that feature.
3.- Put inside PC_ENGINE the code that does cleanup on those unused data members.
2005-12-02 07:35:34 +00:00
dimitr
868a5bb21f Better (and more honest) diagnostics. 2005-10-21 09:43:26 +00:00
dimitr
e5a151aff8 1) Fixed csb_validation which was defined in a wrong flags group.
2) Renumbering and cleanup.
2005-09-08 10:08:18 +00:00
dimitr
15874a6ed9 Added optional seconds precision to CURRENT_TIME and CURRENT_TIMESTAMP
as agreed with Ann and others times ago.
2005-08-24 09:16:19 +00:00
asfernandes
559ce29c51 1) Replace length_ to strlen as noted by Claudio and Dmitry
2) Change USHORT to ULONG in intl.cpp
2005-06-06 18:14:10 +00:00
asfernandes
59213efe7e Merge INTL branch into HEAD 2005-05-27 22:45:31 +00:00
alexpeshkoff
5729790ed6 1. Applied class MetaName
2. Small generic cleanup
2005-05-12 18:28:04 +00:00
dimitr
4ec439dd14 1) Deliver trigger type to the compiler level
2) Disallow NEW context assignments for POST-triggers
2005-03-28 21:52:55 +00:00
dimitr
4cf01bd4a2 Cleanup. 2005-02-01 20:05:02 +00:00
robocop
73c5351bb7 1.- Misc.
2.- Use constants instead of harcoded positions in node's arguments.
2005-01-21 08:36:06 +00:00
robocop
4012106884 Misc. 2004-12-25 09:44:03 +00:00