8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-27 04:43:02 +01:00
Commit Graph

452 Commits

Author SHA1 Message Date
asfernandes
7b8a8065c4 More consts 2010-08-12 00:59:48 +00:00
asfernandes
dadc0f560c Const correction for EVL, EXE and they subsystems. Adjustments to CMP and OPT. 2010-08-09 15:48:51 +00:00
asfernandes
96b2ed0925 Hope this assumption to be correct 2010-08-07 15:49:53 +00:00
asfernandes
173b23109c 1) Better organization between request and statement. 2) Consts. 2010-08-05 15:55:49 +00:00
asfernandes
2e9f01a4e0 Fix DDL triggers 2010-08-05 00:44:58 +00:00
asfernandes
4763533669 Refactor jrd_req into JrdStatement (shared part) and jrd_req (execution of a statement).
Fixed some bugs found in the way.
2010-04-18 22:19:11 +00:00
dimitr
13ab14d888 We don't need this conditional limit. Windows SS is fine with 1000 levels of recursion. 2010-04-15 18:03:38 +00:00
dimitr
1e2edd445d Reworked the rsb/cursor logic a bit. Now I don't think sub-queries should be cursors. 2010-04-15 16:10:51 +00:00
alexpeshkoff
88b8a40a04 1. Cleaned up most of SUPERSERVER usage.
SUPERSERVER has 4 different meanings in our code:
- this is milticlient server (replaced with Config::getMultiClientServer())
- use shared data cache (replaced with Config::getSharedCache())
- use shared metadata cache (replaced with macro SHARED_METADATA_CACHE)
- database are NOT shared between processes (replaced with getSharedDatabase())

2. Use fb_smp_server as both superclassic and classic binary on posix
(xinetd autodecection is done).

3. Small posix build cleanup.
2010-04-15 14:40:27 +00:00
dimitr
871ffb24d3 Extending the message size limit from 64K to 4G. First stage. 2010-04-08 11:14:57 +00:00
robocop
8a1f9d5ecf Misc: be consistent with evl.cpp:205 and exe.cpp:952. 2010-04-07 13:10:27 +00:00
asfernandes
10f4b3cbb7 Simplify. This is always correctly aligned. 2010-04-06 15:54:29 +00:00
asfernandes
5ac2130415 Cleanup - switch from pointer arithmetics to sane way to get impure places 2010-04-05 21:20:08 +00:00
robocop
ac551e2b71 Cleanup. 2010-04-04 08:52:10 +00:00
robocop
08bedf3ae3 Style. 2010-04-04 08:51:31 +00:00
asfernandes
e1ba33a2ae Fix problem of the system transaction storing pointer to random or already deallocated attachment. Full build (or kind of) required. 2010-04-02 21:48:15 +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
b4e3452fc4 Addressed Adriano's and Claudio's worries re. different timestamps passed into different triggers.
I'm not sure it's really important, but anyway...
2010-03-08 16:16:30 +00:00
dimitr
7a33280cef Misc. 2010-02-26 06:54:44 +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
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
446097fe8e Be explicit, change "qualifier" to "package" in QualifiedName (needed anyway if/when schemas are added). 2010-01-27 04:32:27 +00:00
dimitr
5a22ba5662 Undo. Sorry for being so careless. This BLR is used by GPRE. 2010-01-15 08:08:41 +00:00
dimitr
4a69fa3754 Cleanup. 2010-01-15 08:03:33 +00:00
asfernandes
63f481da40 1) Refactor the EXCEPTION statement
2) Cleanup DSQL nod_abort
2010-01-05 17:32:42 +00:00
asfernandes
a5ab8a2b33 Make referencing and execution (try) of unimplemented packaged routines work correctly 2009-12-31 11:24:28 +00:00
robocop
a62efcde16 Misc. 2009-12-30 04:24:31 +00:00
asfernandes
82ccb81d3b Unify even more procedure and function handling. While at it, fix a wrong access to req_procedure when validating function. 2009-12-30 01:40:39 +00:00
asfernandes
d8c99a9be2 1) Make procedures and functions member of the same hierarchy (Routine class)
2) Some completion for external functions
2009-12-27 22:05:22 +00:00
asfernandes
d3ac9ac6cc More refactoring: name changes, accessors, consts, removed not good references (statement referencing scratch and metadata indirectly) 2009-12-23 00:57:08 +00:00
dimitr
debe65bcfb Support for PSQL functions (other JRD changes). Still work in progress. 2009-12-21 17:43:01 +00:00
dimitr
45b5fc2811 Cleanup. 2009-12-16 18:35:55 +00:00
asfernandes
b137cdfd80 Misc 2009-12-14 23:55:56 +00:00
dimitr
7600abf189 Fixed the build. 2009-12-10 05:20:20 +00:00
dimitr
7b14c3c3e2 Simplified the code, thanks to Adriano. 2009-12-10 05:11:43 +00:00
asfernandes
925bcc9cf6 Misc / warnings 2009-12-10 00:02:01 +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
7a78601ef2 1) Use metadata character set in DSQL cache
2) Make exceptions in metadata charset and convert them to the client charset - this should fix CORE-2431
3) Support for "internal" (engine) DSQL statements and use in COMMENT ON
2009-12-05 14:21:52 +00:00
robocop
579a456329 Style. 2009-11-25 08:38:52 +00:00
robocop
9af5ae7f8d Style. 2009-11-23 05:24:29 +00:00
uid32383
eca4ecba76 Comments. 2009-11-22 03:56:20 +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
4a3d198ade Misc 2009-10-31 01:46:06 +00:00
robocop
07dc116ed2 Misc. 2009-10-30 10:50:59 +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
dc5edd5aed Misc 2009-10-23 00:42:40 +00:00
asfernandes
b2f994c719 Use correct memory pools 2009-10-21 23:48:07 +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
de4be11750 Misc. 2009-07-13 10:00:43 +00:00
asfernandes
5dda9c1677 Misc 2009-06-27 03:03:56 +00:00
robocop
5dadf14ad0 Small cleanup. 2009-06-26 10:19:49 +00:00
robocop
0868cdd04e Apply the same trick as in evl.cpp for scrollable cursors' conditional code. 2009-06-25 15:58:09 +00:00
robocop
51d3c9b756 Let's use more typical #ifdef to test macros instead o #if. 2009-05-29 11:27:41 +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
alexpeshkoff
cef41b3286 1. Solaric/Sparc SunProCC port.
2. Cleanup SOLARIS_MT threading model.
2009-05-05 08:06:37 +00:00
asfernandes
9178fc4100 Misc 2009-05-01 02:46:18 +00:00
alexpeshkoff
8c983fec26 Fixed alignment issues with on-stack vary strings 2009-04-29 14:00:32 +00:00
robocop
2d7cb94844 Unused params
Some BLR checks
2009-04-28 13:08:04 +00:00
alexpeshkoff
58bdb6c241 Cleanup - unsupported port HP10 2009-04-10 15:36:58 +00:00
asfernandes
f6f364da49 Trim trailling spaces 2009-04-04 16:39:31 +00:00
robocop
a730fbf074 Get rid of more typedefs. 2009-04-03 10:07:55 +00:00
dimitr
ca94ba9d07 Restored the legacy logic that was zapping the output NULL descriptors to mimic some pseudo-empty values.
Just for symmetry, unconditionally applied the same logic to inputs (it was there for blobs only).
Finally, do the same in the original place, EXE_assignment(). A more complex original code that tried to care about character sets is removed.
2009-03-03 14:57:53 +00:00
dimitr
5792f04f98 Front ported CORE-2326: AV when committing a new view while trigger on rdb$relations is in place.
Actually, this fix is not required for v2.5 due to the DFW logic changes there, but it doesn't hurt either.
2009-02-23 14:07:28 +00:00
dimitr
22bd1345c5 Let's count user DSQL statements only. 2009-02-05 20:41:47 +00:00
hvlad
3e8de2ec7c Performance : move costly method out of the loop 2009-02-05 15:03:22 +00:00
asfernandes
612c108e3e Misc 2009-02-02 03:35:52 +00:00
hvlad
115602ff06 Trace services support 2009-02-01 22:10:12 +00:00
robocop
3689f15321 Style. 2009-01-20 08:33:59 +00:00
asfernandes
989d851fa3 Misc 2009-01-15 03:46:48 +00:00
robocop
582cdf185b Style. 2009-01-14 09:19:00 +00:00
robocop
77bd687168 Style. 2009-01-14 08:22:32 +00:00
robocop
5ccf313d65 Collapse two cases being exactly the same. 2008-12-21 10:57:23 +00:00
robocop
95292d1731 Style. 2008-12-20 08:12:19 +00:00
robocop
0a94d6fee8 Style. 2008-12-18 10:57:12 +00:00
asfernandes
8fbf0e8e8c Remove trailing spaces (.cpp files) 2008-12-05 01:20:14 +00:00
asfernandes
3dcddd6ed5 Misc 2008-11-30 02:23:01 +00:00
dimitr
c4c496b79c Fixed CORE-2017: I/O statistics for stored procedures is not accounted in monitoring tables.
This patch adds lazy statistics increments to the whole request call stack.
2008-11-06 16:04:20 +00:00
alexpeshkoff
d8ea120ded AIX port - use FB_ prefix for alignment constants 2008-11-05 11:26:23 +00:00
asfernandes
0793554269 Fixed CORE-2117 - Incorrect ROW_COUNT value with indexed retrieval and subquery 2008-10-11 15:46:43 +00:00
dimitr
a2eee6c085 Fixed CORE-2101: Bugcheck 249 when attempting to fetch outside the end-of-stream mark for the open PSQL cursor. 2008-10-08 11:59:56 +00:00
alexpeshkoff
a06ae8dd0c 1. Fixed illegal use of local variable in MET_trigger_msg() - thanks to Claudio.
2. Fixed minor bug - use of MetaName in PAR_symbol_to_gdscode() was illegal
cause maximum length of error name can be up to 32 symbols,
which does not fit into MetaName limit (31). And we already have 4 such names!
2008-09-03 11:23:00 +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
asfernandes
1899067660 Misc 2008-08-30 03:14:08 +00:00
asfernandes
7f55ecabda Fix Windows build 2008-08-28 15:54:21 +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
ddb042bbff Fixed CORE-2031 - Null in the first record in a condition on rdb$db_key 2008-08-05 15:16:58 +00:00
asfernandes
ce4bf91533 Misc 2008-07-01 01:12:02 +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
dimitr
e3375a845b Misc. 2008-05-05 04:39:09 +00:00
robocop
83d3ddd6cb Replace custom code by helper class ThreadStatusGuard. 2008-04-26 10:29:52 +00:00
hvlad
969a81f138 Lets cleanup status vector correctly. 2008-04-23 09:31:40 +00:00
hvlad
2c370b3dc8 Use new EXEC STMT implemetation for all three BLR verb's. 2008-04-17 11:06:48 +00:00
hvlad
d5aa346176 Make provider's registration not dependent from existance of EDS::Manager instance. Noted by Adriano. 2008-04-12 21:20:26 +00:00
robocop
a808a2bda2 const and style. 2008-04-12 11:56:32 +00:00
asfernandes
6e59d736df 1) Fix Linux build
2) Misc
2008-04-11 01:38:50 +00:00
hvlad
703bbdf4c1 Added missed check on req_null. Thanks to Adriano. 2008-04-10 06:48:22 +00:00
asfernandes
0e8febd6e3 Misc 2008-04-10 02:35:30 +00:00
hvlad
fe3f8c184b New EXECUTE STATEMENT with support of external data source implementation 2008-04-09 20:18:47 +00:00
asfernandes
21da64cca7 Link blobs of autonomous transaction with the outer transaction - to fix invalid BLOB ID errors. 2008-04-05 19:28:52 +00:00
robocop
cc72b37c9a Introduce more specific errors for date-time operations. 2008-03-28 13:21:59 +00:00
dimitr
b87b5032ef Changes in the TimeStamp class by Dmitry Kovalenko. 2008-03-26 10:21:04 +00:00
asfernandes
5496df8839 Misc 2008-03-26 02:13:34 +00:00
asfernandes
c25b340543 Fixed CORE-1797 - OLD/NEW.RDB$DB_KEY returns incorrect result in triggers 2008-03-25 19:41:13 +00:00
asfernandes
21a13650eb More problematic cases of CORE-1798 - thanks to Dmitry 2008-03-21 19:05:24 +00:00
asfernandes
827afb7aa4 Fixed CORE-1798 - RDB$DB_KEY evaluates to NULL in INSERT ... RETURNING 2008-03-21 17:05:21 +00:00
asfernandes
262dbadc4f Misc 2008-03-15 17:55:27 +00:00
asfernandes
c7ec88bee4 1) Created classes PreparedStatement and ResultSet
2) Changed EXECUTE STATEMENT to use these classes
3) Fixed CORE-1784 - Error with EXECUTE PROCEDURE inside EXECUTE STATEMENT
2008-03-13 16:37:20 +00:00
dimitr
ebad313cfd 1) Fixed CORE-1788.
2) Protected from other similar deadlocks.
3) Refactoring.
2008-03-13 14:20:32 +00:00
robocop
2b33eae4d1 Minimize casts. 2008-03-10 08:31:35 +00:00
robocop
3e9476e464 Misc. 2008-03-04 06:02:32 +00:00
dimitr
99caa91b85 DSQL integration into the engine. 2008-02-28 13:48:16 +00:00
robocop
e9e1ead67a Mostly style, constness, native memcpy and explicit constructors. 2008-02-02 17:04:06 +00:00
asfernandes
ed51d0728b DSQL sync. changes 2008-02-01 20:18:11 +00:00
dimitr
a38b327886 Cleanup. Get rid of the JrdMemoryPool. 2008-01-29 10:11:52 +00:00
dimitr
8f742ba52c Major synchronization changes. Description of the commit will be posted to fb-devel. 2008-01-26 12:57:52 +00:00
alexpeshkoff
39896cb955 Fixed CORE-1671: atexit() calls in client libraries cause segfaults
and CORE-1079: Every attach of fbclient/fbembed library leaks 64KB of memory

To do it:
- created new template GlobalPtr, controlling access to destructors of global objects.
- applied it to global objects.

Also some related cleanup.
2008-01-23 15:52:40 +00:00
dimitr
48e81dd58a The merge is being fixed. 2008-01-16 12:22:11 +00:00
dimitr
1fa56f4cd7 The merge is being fixed. 2008-01-16 12:10:43 +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
asfernandes
41faeba3cc Misc 2007-12-05 00:03:15 +00:00
alexpeshkoff
2bc1225320 Fixed possible tdbb state restore problem, noticed by Claudio 2007-12-04 13:44:56 +00:00
alexpeshkoff
eea9070f48 Optimized RuntimeStaticstics (and related part of ThreadDb) for performance - some tests run 25faster 2007-12-03 15:46:39 +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
7903960607 Reset the statistics for every sub-request (aka call) execution. 2007-09-25 12:09:54 +00:00
asfernandes
810e9fef6c Misc 2007-06-27 02:08:25 +00:00
asfernandes
81f1f817e2 Fixed CORE-1331 - Charset transliterations don't work with EXECUTE STATEMENT 2007-06-23 18:48:27 +00:00
alexpeshkoff
ea8ba3370d Cleaned up mutexes - removed MUTX_T and related macros 2007-06-06 12:37:24 +00:00
asfernandes
d34c0cacc5 Misc 2007-05-24 00:39:38 +00:00
asfernandes
2e663f91b5 Improvement CORE-1280 - Verify well-formedness of text blobs 2007-05-23 02:26:27 +00:00
alexpeshkoff
f0d465bf34 Fixed gcc warnings, general (un)signed usage cleanup 2007-04-11 09:28:50 +00:00
asfernandes
266af4e84a Fixed crashes while restoring - reported privately by Alex 2007-03-28 02:16:52 +00:00
asfernandes
032a4b170c Don't leak memory after conversion to blob for store the value in a variable or parameter 2007-03-24 03:00:22 +00:00
asfernandes
23dba8075c Fix problem where a temporary blob could not be returned to the client throwing "invalid BLOB ID" 2007-03-22 01:42:33 +00:00
hvlad
b3dcfede36 Close external table's file when relation is not used by the engine.
This is simplest fix for bug CORE-132 (Restore fails on external table) and CORE-961(Free external tables)
2007-03-19 21:34:52 +00:00
dimitr
57c02cc754 Front-ported fix for CORE-1140. 2007-03-09 08:16:37 +00:00
asfernandes
2fa7a76177 Misc 2007-03-06 02:29:48 +00:00
robocop
230614bb17 Totally misc. 2007-03-05 06:30:23 +00:00
asfernandes
083c81bfd4 Fixed a problem reported by Dmitry where UPDATE and DELETE was not working with views with triggers. 2007-03-04 20:33:28 +00:00
asfernandes
2100a06c84 Make MOV_move know how to move blobs.
This fixes CORE-1147: Blobs are not converted to string in UDF parameters.
2007-03-02 00:46:03 +00:00
asfernandes
2d26b3f5f8 Allow BLOBs in EXECUTE STATEMENT and possibly in others unkown cases 2007-02-27 02:36:20 +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
alexpeshkoff
d66281291f 1. Make classic server close shutdown normally when killed by signals 2 & 15.
2. Don't leave running instances of fb_inet_server after database shutdown.
3. To make all this possible - reworked Y-Valve in general.
2007-01-20 14:45:45 +00:00
asfernandes
be9e3a8a84 1) Correction for input parameters
2) Correct message for constraint violation in CAST
3) Display parameter/variable number when there is no debug info
2007-01-17 23:59:23 +00:00
asfernandes
aca179f398 Full domain support and NOT NULL in PSQL 2007-01-17 01:19:01 +00:00
dimitr
99c2df56b6 Changed cancellation implementation to work at the transaction level as being more efficient. 2007-01-07 15:15:06 +00:00
dimitr
4ed6c7d2b6 Misc. 2006-12-06 08:22:40 +00:00