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

153 Commits

Author SHA1 Message Date
asfernandes
d67b091ee5 Misc 2011-03-11 00:58:55 +00:00
hvlad
60dc5dd571 Additional patch for CORE-3362 : Cursors should ignore changes made by the same statement
Better (i hope) fix for implicit cursors stability in PSQL
2011-03-08 09:05:28 +00:00
asfernandes
9dd82235f7 Replace some nod_list by array of nodes and change implementation of nod_returning to ReturningClause. 2011-03-07 03:15:07 +00:00
asfernandes
604bb0d769 Misc 2011-03-06 17:18:04 +00:00
asfernandes
5ffa89e0c7 Reference DML statements in DSQL with StmtNode instead of dsql_nod. 2011-03-06 02:48:34 +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
8d6c054d87 Refactored nod_src_info. 2011-03-05 02:47:22 +00:00
asfernandes
1c6e990926 Refactor DSQL INSERT, UPDATE, DELETE, MERGE, UPDATE OR INSERT and assignment statements. 2011-03-04 01:47:49 +00:00
hvlad
69df3d720f Additional patch for CORE-3362 : Cursors should ignore changes made by the same statement
Statements with more that one cursors should not create savepoint for the first cursor
2011-03-02 09:43:13 +00:00
hvlad
4cb57947fd Additional patch for CORE-3362 : Cursors should ignore changes made by the same statement 2011-02-28 10:11:37 +00:00
asfernandes
0e58483989 Refactor nod_cursor. 2011-02-26 21:51:45 +00:00
asfernandes
74a6076b50 Replace some blr_block by blr_begin, as before. 2011-02-26 01:10:26 +00:00
asfernandes
2096bd7239 Refactor DSQL exceptions: nod_on_error, nod_sqlcode, nod_gdscode, nod_exception and nod_default. 2011-02-25 02:52:51 +00:00
asfernandes
0ab05bd41c Refactor nod_start_savepoint and nod_end_savepoint. 2011-02-22 16:06:08 +00:00
asfernandes
dca1961a82 Refactor nod_while. 2011-02-22 15:30:06 +00:00
asfernandes
db4390bf9f Refactor SET GENERATOR / ALTER SEQUENCE. 2011-02-22 01:57:51 +00:00
asfernandes
0a6e338392 Refactoring nod_list and nod_block statements. 2011-02-22 00:51:56 +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
asfernandes
305b989cf8 Fixed hang found with CORE-3340 test-case. 2011-02-09 21:26:18 +00:00
dimitr
679367a35f Misc. 2011-02-09 10:57:32 +00:00
asfernandes
1388655673 Fixed CORE-3255 - The server could crash using views with GROUP BY. 2011-02-06 21:59:20 +00:00
asfernandes
bf77761d84 Fixed CORE-3310 - RDB$GET_CONTEXT and between in view.
Fixed CORE-3338 - Some expression indexes with COALESCE, CASE and DECODE became inoperant.
Removed DSQL hidden variables expressions.
Refactored COALESCE, DECODE and (simple) CASE, using new BLR verbs.
Fixed v3 regression with UPDATE OR INSERT inside PROCEDURE/FUNCTION.
Fixed assert with DECODE/CASE with only test parameters and no values.
2011-02-06 18:13:12 +00:00
asfernandes
b0f702e7bd Another small refactor on variables in DSQL. 2011-01-31 14:47:41 +00:00
asfernandes
d7d3c4d8ab Refactor internals of DSQL variables. 2011-01-31 00:13:15 +00:00
asfernandes
ccaaca7c72 Misc 2011-01-29 17:24:29 +00:00
dimitr
d037cc2ef0 More work on enlarging the message buffers. To be continued. 2011-01-28 18:51:23 +00:00
dimitr
e0f5a68da0 More work on enlarging the message buffers. To be continued. 2011-01-28 18:50:27 +00:00
asfernandes
23ae9f62e8 Refactor DSQL's BREAK, LEAVE and CONTINUE. 2011-01-22 21:32:29 +00:00
asfernandes
ffb28dfc3d Misc 2011-01-22 17:15:52 +00:00
alexpeshkoff
fc41c54a62 warnings 2011-01-21 17:16:13 +00:00
hvlad
8e4755b20f Front ported fix for bug CORE-3282 : EXECUTE STATEMENT parses the SQL text using wrong charset 2011-01-21 10:03:17 +00:00
asfernandes
123aa675ab Refactor nod_aggregate, nod_relation, nod_rse, nod_derived_table, nod_query_spec and nod_limit 2011-01-09 21:58:56 +00:00
asfernandes
0b1fa97b4a Refactored the DSQL support of cursor statements, execute procedure and execute statement 2010-12-23 18:42:06 +00:00
asfernandes
c268c1f25c Fixed CORE-2204 - Constraints on SP output parameters are checked even when the SP returns zero rows 2010-12-05 16:49:24 +00:00
asfernandes
5e95a16141 Use the impure space of string variable in a consistently (first or subsequent request execution) and optimized (no double allocation) way 2010-12-05 14:44:28 +00:00
asfernandes
83d74dc2b4 Rework on line/column info support to make it faster 2010-12-05 00:55:54 +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
bcbc1ed46e Move some previously static functions to StmtNodes.cpp 2010-11-29 14:54:07 +00:00
asfernandes
8af7ec0211 Refactored the support for blr_handler, blr_loop, blr_exec_sql, blr_exec_into, blr_exec_stmt,
blr_start_savepoint, blr_end_savepoint, blr_store, blr_store2, blr_erase, blr_modify,
blr_modify2, blr_exec_proc, blr_exec_proc2, blr_exec_pid, blr_dcl_cursor, blr_cursor_stmt,
blr_set_generator, blr_receive, blr_stall, blr_select, blr_block, blr_error_handler,
blr_label, blr_leave, blr_continue and the source info node.
2010-11-29 02:17:04 +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
asfernandes
4dea3a42a1 Remove dependency of jrd_nod in ExprNode 2010-11-14 22:31:42 +00:00
asfernandes
2b6106938e Refactor variables 2010-11-02 17:05:01 +00:00
asfernandes
51f4b27991 Simplify the internal "null replacement" logic 2010-11-01 00:42:12 +00:00
alexpeshkoff
e05c1a825f Moved some more .h-files to common from jrd as Vlad suggested 2010-10-13 10:39:52 +00:00
dimitr
0a34f7c97a Fixed one of the problems with PSQL functions reported by Vlad privately. 2010-09-27 12:29:49 +00:00
asfernandes
b49391c8d0 Misc 2010-09-25 23:08:18 +00:00
robocop
98a2c6822d Warnings. 2010-09-24 09:53:51 +00:00
asfernandes
9b8171d5c1 1) Refactor nod_value_if.
2) Created ExprNode::expressionEqual method to replace a new big and ugly switch.
3) Make boolean referencers use BoolExprNode instead of jrd_nod, except nod_validate for now. This includes BinaryBoolNode and NotBoolNode working without jrd_nod references.
4) Rework in the impure allocation code (replace "csb_impure += ..." by CMP_impure calls).
2010-09-20 16:07:50 +00:00
asfernandes
c1b5abfdf2 1) Refactor all types of boolean nodes.
2) Remove the scratch from the nodes.
2010-09-17 03:15:32 +00:00
asfernandes
52a4c39f41 1) Separate DsqlCompilerScratch in its own files.
2) Move BlockNode functionality to it.
3) Move some related CTE functions to it.
2010-08-27 02:18:00 +00:00
asfernandes
48d83b8fef Refactor nod_rse, nod_relation, nod_procedure, nod_union, nod_aggregate and nod_window. 2010-08-24 03:25:01 +00:00
asfernandes
8657f4b599 Better internal handling of dependencies 2010-08-11 02:59:33 +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
robocop
4edd547b17 Misc. 2010-06-30 08:55:16 +00:00
asfernandes
75af3ccf65 Misc/cleanup 2010-06-22 00:53:35 +00:00
asfernandes
6249162c4e Fixed CORE-3047 - Wrong logic is used to resolve EXECUTE BLOCK parameters collations 2010-06-20 03:11:05 +00:00
asfernandes
12079f5ece Created class BlrWriter and reorganization (move BLR generation from statement to scratch) 2010-06-17 01:18:40 +00:00
alexpeshkoff
a9446e6740 Fixed segfault during DEV_BUILD 2010-06-16 12:44:43 +00:00
asfernandes
a9adf6d626 1) Refactor PSQL support in DSQL. This started as subprocedure implementation, but I'm now separating things.
2) Fix thrown of isc_bad_default_value
2010-06-15 16:07:58 +00:00
asfernandes
22e99e49ce Improvement CORE-3020 - Add clause RETURNING ... INTO ... to MERGE statement 2010-06-10 02:03:03 +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
asfernandes
5ac2130415 Cleanup - switch from pointer arithmetics to sane way to get impure places 2010-04-05 21:20:08 +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
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
4f9b9161b4 Feature CORE-2006 - SUBSTRING with regular expression (SIMILAR TO) capability 2010-02-21 01:47:54 +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
50f1ad96e2 Misc. 2010-01-15 04:57:57 +00:00
asfernandes
e0ce09805a Remove the not agreed feature. Bad, bad... 2010-01-15 03:00:15 +00:00
asfernandes
72fab0e317 Update way to deliver parameterized exceptions so the client doesn't need special handling 2010-01-08 14:13:12 +00:00
asfernandes
be859980ea Feature CORE-832 - Parameterized exceptions 2010-01-07 00:16:50 +00:00
asfernandes
e4d9593ef1 Misc 2010-01-06 22:38:20 +00:00
asfernandes
63f481da40 1) Refactor the EXCEPTION statement
2) Cleanup DSQL nod_abort
2010-01-05 17:32:42 +00:00
asfernandes
534b8c020e Misc 2009-12-25 19:29:58 +00:00
dimitr
2702907c88 We don't need an EOS slot for PSQL functions. 2009-12-25 11:16:20 +00:00
robocop
105bb19114 Shortcut. 2009-12-24 12:56:31 +00:00
robocop
cd4c00ab21 Misc. 2009-12-24 10:42:32 +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
asfernandes
8968888820 Getters and setters for DsqlCompiledStatement and consts 2009-12-22 15:36:10 +00:00
asfernandes
dd6331f002 Some fixes; Misc. 2009-12-22 00:08:49 +00:00
dimitr
1f3694c903 Support for PSQL functions (only the DSQL part so far). Still work in progress. 2009-12-21 17:23:07 +00:00
asfernandes
985bc2db87 Separate the scratch, statement and request flags. Don't ask me why I didn't change them to bools. 2009-12-20 22:42:43 +00:00
asfernandes
488eb40fe0 Refactor DSQL, continuing the work I started in 2.5:
- Renamed CompiledStatement to DsqlCompilerScratch and removed inheritance to dsql_req.
- Introduced DsqlCompilerStatement, moving things from dsql_req - not completelly shareable yet.
- Make dsql_req reference a DsqlCompilerStatement. DsqlCompilerScratch may be discarded in the future.
- Replaced AlterCharSetNode usage by PreparedStatement for the default collation in database creation.
- Changed METD API.
2009-12-20 21:01:10 +00:00
asfernandes
20ed875d57 Replaced linked list of dsql parameters by array 2009-12-19 18:50:38 +00:00
hvlad
08bb67cff2 Fixed AV 2009-12-19 13:03:18 +00:00
robocop
503f2da15f Misc. 2009-11-22 10:08:13 +00:00
asfernandes
200a63b1b4 Reduce usage of legacy (and unsafe) nodes related to PSQL parameters and variables.
Use btyacc feature "inherited attributes" (kind of parameters for non-terminals).
2009-11-21 20:42:27 +00:00
robocop
4d71e728be Style. 2009-11-17 08:18:54 +00:00
robocop
16361cada8 Misc. 2009-11-01 10:58:16 +00:00
asfernandes
4a3d198ade Misc 2009-10-31 01:46:06 +00:00
robocop
b304b96224 Misc. 2009-10-30 10:43:42 +00:00
asfernandes
5b63c76a78 Misc 2009-10-25 01:08:00 +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
hvlad
4d1e602903 Fixed error in my patch for CORE-2558 : store save point number at impure area. Thanks to Adriano. 2009-08-06 06:30:35 +00:00
hvlad
7964c35930 Fixed bug CORE-2558 : AV at engine when some statement under autonomous transaction dropped transaction level savepoint 2009-08-05 21:36:49 +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
robocop
4e167d6fa6 Style. 2009-01-08 09:26:06 +00:00
asfernandes
8fbf0e8e8c Remove trailing spaces (.cpp files) 2008-12-05 01:20:14 +00:00
robocop
a1906d634f Style. 2008-06-03 06:19:50 +00:00
asfernandes
dbaf050e86 Set the tdbb->request to NULL when committing an autonomous transaction, as a normal COMMIT does. This fixes assertion related to system blobs created by DDL commands in EXECUTE STATEMENT. Test case:
execute block
as
begin
  in autonomous transaction do
     execute statement 'create table x (n integer)';
end!
2008-06-01 19:14:41 +00:00