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

46 Commits

Author SHA1 Message Date
AlexPeshkoff
359d4b89b3 Fixed build after changes in AutoPtr 2023-10-18 11:47:21 +03:00
AlexPeshkoff
23648019d8 Fixed #7510: Firebird regularly crashes soon after unload of udr_engine plugin
(cherry picked from commit aed9464ddc)
2023-03-27 16:53:51 +03:00
Adriano dos Santos Fernandes
98f678d4ee Rename class jrd_req to Request. 2022-02-13 10:51:30 -03:00
Adriano dos Santos Fernandes
2d2b2a195a Replace FB_FINAL by final. 2022-01-06 10:10:56 -03:00
Alexander Peshkov
cb6fee68eb
Small meta name (#271)
Keep metadata name strings in hash table having just a pointer to a hash table member in all places where metadata name is needed in order to save RAM. Hash table of metadata names is almost lock-less: mutex is used only when new segment of memory is needed or hash table should be grown.

Co-authored-by: hvlad <hvlad@users.sourceforge.net>
2020-06-16 19:22:15 +03:00
Adriano dos Santos Fernandes
f0e9c4eb3d Fixed CORE-5972 - External engine trigger crashing server if table have computed field. 2019-01-21 13:06:01 -02:00
Adriano dos Santos Fernandes
3c4c8e781d Support for system packages and RDB$TIME_ZONE_UTIL system package implementation. 2018-11-12 13:18:00 -02:00
Adriano dos Santos Fernandes
a6bd7a56b1 Fixed CORE-5645 - Wrong transaction can be passed to external engine. 2017-10-26 15:14:08 +00:00
asfernandes
2a857cb415 Misc. 2015-01-15 01:17:27 +00:00
asfernandes
b99311dd1e Make the API usable with different type of IStatus classes, throwing (what class?) or not throwing. Builtin are CheckStatusWrapper (no throw) and ThrowStatusWrapper (throws FbException). 2015-01-12 00:21:38 +00:00
asfernandes
d8a0ff5f4b Generate interfaces with I-prefix. 2014-12-19 15:24:44 +00:00
asfernandes
49d1a73994 Get rid of upgradeInterface API method and some adjustments. To be continued. 2014-11-10 14:45:40 +00:00
asfernandes
69c4a3e5ae Remove obsolete header file. 2014-10-15 15:43:32 +00:00
alexpeshkoff
153de0f271 Language independent API 2014-09-29 11:03:47 +00:00
asfernandes
3a87224281 Warnings and make Linux debug build compile. 2014-02-18 01:49:07 +00:00
alexpeshkoff
83db69c849 Fixed new gcc 4.7 warning "deleting object of polymorphic class" in many places. Adjusted use of interface types (reference counted vs just vesrioned). Avoided some hacks caused by badly chosen interface type. 2013-11-18 12:20:23 +00:00
asfernandes
e0567463bf Revert external routines to request-based (*) code, but now using a totally different internal approach.
* This is not ideal IMO, but much more easier to currently support stack traces, and domain's defaults and validations.
2013-04-11 15:44:17 +00:00
asfernandes
ee953572eb Work in progress standardizing the external engines API. 2013-03-25 15:34:15 +00:00
asfernandes
b9bc308a72 Work in progress fixing external triggers. 2013-03-23 21:12:27 +00:00
asfernandes
48fd751c6e Fixing FB_MESSAGE macro and external functions and procedures.
Isolate external routines them from request-based ones.
2013-03-04 01:42:58 +00:00
alexpeshkoff
fc12495d0e Modified IStatement interface in our API:
1. Never allocate empty statement - always use att->prepare() to create statement interface
2. Separated IStatement into 2 parts - statement itself and resultset.
3. Added stmt->openCursor() (and att->openCursor() for unprepared statements) to create IResultSet.
4. Always use IMessageMetadata (former IParametersMetadata) to pass message fromat info from client,
   therefore avoiding need in BLR generation in client applications.
2013-02-17 12:08:53 +00:00
asfernandes
491fdd82b2 Unifying the external engines API with the new ones. 2013-02-15 02:48:54 +00:00
asfernandes
dc8e42e9bb Migrate external triggers to the new message-based style. 2013-01-29 01:21:32 +00:00
alexpeshkoff
4e795f4047 Include platform definitions file common.h in firebird.h. Use OS-specific ThreadId instead artificial FB_THREAD_ID, avoiding unneeded casts in the code. This should fix BSD and MAC ports. 2012-03-01 08:55:43 +00:00
asfernandes
cd7c8dee95 Use the BLR message definition of external procedures and functions. 2011-07-10 01:23:53 +00:00
robocop
5ad96271e6 Misc. 2011-06-24 06:34:16 +00:00
asfernandes
5ffa6c77c8 Move v3 public include files to src/include/firebird. 2011-06-02 15:57:08 +00:00
asfernandes
7ad98cd292 Work in progress on the external engines API changes. 2011-06-01 01:44:54 +00:00
alexpeshkoff
4641d2de68 Better interfaces hierarchy: all of them are derived from IVersioned 2011-05-19 16:24:46 +00:00
asfernandes
983686d71c Added IRoutineMetadata to external engines.
Not well tested:
1) EE is broken after shared page cache.
2) Semantics of addRef/release still keeps changing in developers minds.
2011-05-15 15:37:11 +00:00
hvlad
fef1f49c94 Shared page cache implementation 2011-05-09 10:15:19 +00:00
asfernandes
69dc52ba48 Integrate IAttachment and ITransaction in the external engines API. 2011-05-07 19:52:44 +00:00
asfernandes
9c42d4e5af Finish the statements refactor in the engine. Get rid of jrd_nod. 2010-12-04 22:15:03 +00:00
asfernandes
a3064848d6 Make ExprNodes and RecordSourceNodes reference others directly instead of via jrd_nod.
Store ValueExprNodes instead of jrd_nod in the metadata cache.
Make RecordSourceNode child of ExprNode as they share most operations.
Get rid of the JRD visitors in favor of direct calls.
Convert assignments statement lists created inside expressions to separate source and targets ValuesExprNodes.
2010-11-21 03:47:29 +00:00
alexpeshkoff
e05c1a825f Moved some more .h-files to common from jrd as Vlad suggested 2010-10-13 10:39:52 +00:00
alexpeshkoff
83d6a2f88c Restored a lot of changes, rolled back by me unintentionally 2010-10-12 11:36:51 +00:00
alexpeshkoff
2dc25a44bb OSRI and new posix build 2010-10-12 08:02:57 +00:00
asfernandes
18a6a6b4f9 More consts 2010-08-13 15:22:00 +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
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
dimitr
debe65bcfb Support for PSQL functions (other JRD changes). Still work in progress. 2009-12-21 17:43:01 +00:00
asfernandes
b6af6eea3f Fix problem of a random (first) engine being used - seen by Claudio some time ago 2009-11-14 22:21:11 +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
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