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
robocop
21cd78a0fd
Cleanup: unused functions, parameters & variables.
2012-01-24 03:37:43 +00:00
dimitr
f0112290c6
Disallowed deletions from RDB$DATABASE. This fixes the only problematic part of CORE-3735: Unprivileged user can delete from RDB$DATABASE, RDB$COLLATIONS, RDB$CHARACTER_SETS. The implemented solution could be used to protect other system tables from direct modifications.
2012-01-20 10:23:31 +00:00
asfernandes
c44c548f8c
Corrections and cleanup.
2012-01-09 00:08:33 +00:00
dimitr
e956e2e6c0
1) Restricted ALTER/DROP permissions to the object owners only. Now this applies to domains, charsets, collations, generators and exceptions. This fixes CORE-304: Metadata security hole - any user can alter/drop generators and exceptions.
...
2) Opened the gates to implement the standard USAGE privilege (CORE-2884). SQL support and validation logic are still to be developed.
3) Added the grant option to the owner permissions for packages, procedures and functions.
4) Misc cleanup and refactoring.
2012-01-08 14:05:29 +00:00
dimitr
aa4e36e0d6
Correction.
2011-12-01 09:37:25 +00:00
dimitr
e3fb73cdca
Attempted to fix CORE-3490: Concurrency problem when using named cursors. The solution may look sub-optimal but it doesn't seem to affect the performance.
2011-12-01 09:24:59 +00:00
dimitr
d542f5ac88
Fixed the races leading to a crash during dbb finalization. Thanks to Adriano for assistance.
2011-11-01 04:02:59 +00:00
asfernandes
906ea4729e
Misc.
2011-10-27 01:04:14 +00:00
dimitr
444d5302e1
Refactored the tdbb initialization, especially in AST and BG threads.
...
Replaced dbb_use_count with a list of active requests (to be utilized later).
Misc cleanup.
2011-10-18 18:02:57 +00:00
asfernandes
eb5689ef0e
Misc.
2011-10-07 02:33:02 +00:00
hvlad
ca1a67992c
Return explicit sign of active transaction from VIO_get_current() - it makes logic more clear in check_duplicates() and allows to clear transient lock error from status vector and not propagate up to the callers.
...
Cleanup : removed my old disabled code (checking for old and new values) and restored original code in check_duplicates().
2011-10-03 11:27:46 +00:00
hvlad
dc4abc05e4
Protect system attachments list with dedicated sync object. It prevents deadlocks with common sync object on process shutdown.
2011-10-02 10:19:06 +00:00
hvlad
fb36296224
Port forward fix for bug CORE-3610 : Can insert DUPLICATE keys in UNIQUE index
2011-09-29 12:34:07 +00:00
dimitr
b100b395eb
Being a little bit more paranoid doesn't hurt.
2011-09-22 18:15:21 +00:00
dimitr
031339406c
Methinks it's more correct from the scoping POV.
2011-09-21 17:49:49 +00:00
dimitr
809fba5ec9
Reworked the garbage collector thread:
...
- a single try-catch block looks better
- cross-helping between GC and CW/CR threads is agreed to be a bad idea
- replaced ATT_disable_gc_notify with a check inside notify_garbage_collector()
- made the logic more straightforward
Careful review would be appreciated.
2011-09-21 07:59:15 +00:00
hvlad
652200448a
Port forward fix for bug CORE-3557 : AV in engine when preparing query against dropping table
2011-07-16 10:41:27 +00:00
asfernandes
47489fa71b
Misc.
2011-06-26 18:48:00 +00:00
robocop
1c250c02eb
Misc.
2011-06-25 03:40:18 +00:00
hvlad
f12c243e1c
Improvement CORE-3537 : There is no need to undo changes made in GTT created with ON COMMIT DELETE ROWS option when transaction is rolled back.
2011-06-24 12:54:46 +00:00
hvlad
f2aaa12ce5
Improvement CORE-3536 : Garbage collection in GTT is unnecessary delayed by active transactions in another attachments
2011-06-24 12:49:08 +00:00
hvlad
7c68e15a0f
Delete deferred work when savepoint is cleaned up after failure even if no records was modified. Else DFW task will be repeated at commit making system tables logically inconsistent.
2011-06-24 12:03:32 +00:00
robocop
5ad96271e6
Misc.
2011-06-24 06:34:16 +00:00
hvlad
81cec16f83
Fixed leak of SysAttachment instance. Noted by Claudio.
2011-06-13 11:09:19 +00:00
asfernandes
add3d8ddef
Misc.
2011-06-08 01:55:13 +00:00
hvlad
945a1bdbf4
Fixed bug CORE-3515 : Index corruption. Validation put "missing entries" message into firebird.log
2011-06-05 08:15:33 +00:00
dimitr
df893a708d
Better (I hope) solution for CORE-3058: New generators are created with wrong value when more than 32K generators was previously created. It also resolves the [temporary] inability to restore generator values.
2011-06-01 16:58:55 +00:00
asfernandes
2c9dd7e1ff
Misc.
2011-05-28 02:05:45 +00:00
hvlad
99c9c8e2db
Enabled background threads (garbage collector and cache writer).
...
Introduced special kind of system attachments used in this threads and show its activity in monitoring.
2011-05-27 07:57:16 +00:00
asfernandes
3ce54d2eda
Misc.
2011-05-11 01:18:28 +00:00
hvlad
fef1f49c94
Shared page cache implementation
2011-05-09 10:15:19 +00:00
dimitr
4b3033c013
Better locality of allocations. This also fixes a tiny memory leak in SuperServer.
2011-04-05 05:36:05 +00:00
robocop
82403a5621
Misc, style, etc.
2011-04-02 04:45:26 +00:00
asfernandes
e4658d76c3
Misc
2011-03-20 16:24:46 +00:00
hvlad
58a55cc813
Improvement CORE-3399 : Allow write operations to temporary tables in read only transactions
2011-03-19 13:10:51 +00:00
dimitr
d68affa114
More complex fix for CORE-3374: Server may crash or corrupt data if SELECT WITH LOCK is issued against records not in the latest format. It involves upgrading the record to the current format, like UPDATE does.
2011-03-05 17:33:01 +00:00
asfernandes
72b7e83082
Misc
2011-02-26 19:05:09 +00:00
asfernandes
87ec1ad31c
The (bad) definition of fb_assert cause this code to not work in clang. It's a surprive if it works in MSVC.
2011-02-25 15:28:10 +00:00
hvlad
07e245ab1b
Implement improvement CORE-3362 : Cursors should ignore changes made by the same statement
2011-02-25 12:26:57 +00:00
dimitr
7a405a4eea
Fixed CORE-3058: New generators are created with wrong value when more than 32K generators was previously created.
2011-02-17 06:05:16 +00:00
alexpeshkoff
f89ac854ef
Getting ready to use 32 (not 31) page and transaction numbers
2011-01-21 17:55:04 +00:00
asfernandes
5c7e5ce634
Misc
2010-10-22 01:24:31 +00:00
hvlad
f223086fdd
Corrections for new build system. Work in progress...
2010-10-18 17:23:36 +00:00
dimitr
af23581244
Front ported my recent changes. I'm unable to verify the compilation now, sorry.
2010-10-14 05:27:08 +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
dimitr
34dd100554
Fixed CORE-3137: Partial rollback is possible for a selectable procedure modifying data.
2010-09-18 06:52:46 +00:00
asfernandes
96cd57ba83
Better error reporting and adjustments
2010-07-29 00:36:31 +00:00
asfernandes
36f092fe0e
Improvement CORE-3085 - Add clause ALTER DOMAIN <name> [NOT] NULL
2010-07-28 16:14:20 +00:00
dimitr
60763936ac
Fixed the second part of the problem described in CORE-2933: Very slow execution of a script that creates a lot of metadata.
2010-05-17 09:58:45 +00:00
asfernandes
d6e4b53865
Misc
2010-05-08 02:25:58 +00:00
skidder
c84d62d82e
Fix CORE-2988. Concurrent transaction number not reported if lock timeout occurs
2010-05-04 17:29:44 +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
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
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
hvlad
521f7a5cbc
Fixed bug CORE-2879 : Sweep could raise error : page 0 is of wrong type (expected 6, found 1)
2010-02-22 11:09:59 +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
dimitr
4c4a77a4fe
Refactored SQZ into a class. Fixed all the SCHAR* pointers to be UCHAR* + appropriate cleanup.
...
Make the interface and internals friendly to any byte sequence, even the one longer than 32K.
2010-02-12 12:53:06 +00:00
robocop
656dcdb1a5
Got rid of some casts. Please double check it as it's critical for data. The only trick seems to be taking the value of a byte as a signed char, so it can become negative.
2010-02-12 11:29:51 +00:00
robocop
753f914fb1
CORE-2858: Possible memory trashing when raising some exceptions to signal failed security checks. Thanks Dmitry.
2010-02-12 11:22:22 +00:00
robocop
1d87d749f0
Misc.
2010-01-26 08:20:27 +00:00
asfernandes
2faab16698
Misc
2010-01-21 02:51:32 +00:00
hvlad
258f322f67
Avoid possible deadlock in VIO.
2010-01-19 18:41:44 +00:00
hvlad
abdfa188d5
Preserve record's flags when gathering record from fragments. Its used in prepare_update() to check if primary record was backed out.
2010-01-19 18:38:52 +00:00
asfernandes
e8cc188227
Store the view context type when it doesn't came from backup and simplify the code. Still problems altering procedures used in views.
2009-12-28 15:31:09 +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
534b8c020e
Misc
2009-12-25 19:29:58 +00:00
dimitr
ea23c03133
PSQL functions (security).
2009-12-25 12:58:06 +00:00
dimitr
cd6f04ffb2
Corrections.
2009-12-25 10:49:53 +00:00
dimitr
cb4d798aca
Corrections.
2009-12-25 09:50:35 +00:00
robocop
f3091483ca
Misc.
2009-12-25 04:41:10 +00:00
dimitr
33155c65b7
An alternative way to assign auto-generated metadata IDs while restoring a database. It doesn't require system triggers.
...
If nobody objects, I will migrate procedure/exception/generator IDs to this approach and then redo my system triggers cleanup.
2009-12-24 15:41:39 +00:00
dimitr
6e1f8db753
Metadata cache support for PSQL functions.
2009-12-24 14:15:21 +00:00
dimitr
debe65bcfb
Support for PSQL functions (other JRD changes). Still work in progress.
2009-12-21 17:43:01 +00:00
robocop
00c5d74904
Cleanup.
2009-12-13 13:49:43 +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
robocop
f955568fc9
The architect created ODS12 and saw it was good, then he said "thy shall be the only one among your race", dropped the older ones and sent the developers to the four corners of the cyberspace to convert the masses to ODS12.
2009-11-27 02:33:40 +00:00
robocop
2ffcc8b2ce
Style.
2009-11-25 04:06:48 +00:00
asfernandes
13e1546a70
Misc
2009-11-21 00:10:16 +00:00
robocop
9ce4040042
Replace the now obsolete dbb_minor_original by dbb_minor_version.
2009-11-18 12:02:00 +00:00
robocop
1386adcf90
Style.
2009-11-16 08:06:31 +00:00
asfernandes
79caf4e326
Improve efficiency and error reporting of CORE-1180
2009-11-11 15:12:56 +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
a52967acfb
Misc
2009-10-29 14:39:50 +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
asfernandes
90dfb9a411
Misc
2009-09-30 01:10:11 +00:00
alexpeshkoff
b19dacee16
Ported fix for CORE-2634: Performance regression when restoring database with big metadata
2009-09-29 10:35:16 +00:00
robocop
17cefa486e
Comments.
2009-08-21 08:54:56 +00:00
robocop
bb83e70cfe
Isolate even more the scrollable cursors-related code.
2009-06-22 08:45:38 +00:00
asfernandes
26c1892310
Misc
2009-06-20 18:46:59 +00:00
hvlad
e0a9bd88d9
Initialize variables before it could be used.
...
GCC complains about potential use of not initialized variables : if exception occurs "goto gc_exit" will bypass initialization.
2009-06-19 13:34:06 +00:00
robocop
3c65def766
- Better input type for SQZ_decompress plus a bit of style.
...
- Txn state is int.
- Some internal data is better handled as plain int.
2009-06-14 12:19:32 +00:00
robocop
ad1621c0e5
Style.
2009-06-13 05:40:47 +00:00
robocop
6e1ec65c25
Misc.
2009-06-10 14:09:39 +00:00
hvlad
643a6f933b
Undo huge and not friendly fix for Sun compiler
2009-06-10 12:11:53 +00:00
robocop
bfcf6a699d
Missing rpb_page/rpb_line changes and misc.
2009-06-10 10:50:45 +00:00
alexpeshkoff
cf14a23b6f
Fixed Sun compiler build
2009-06-10 10:09:01 +00:00
robocop
2d7cb94844
Unused params
...
Some BLR checks
2009-04-28 13:08:04 +00:00