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
asfernandes
d4bf9ab246
Split dsql_req into dsql_req and CompiledStatement. This should be my last refactoring to 2.5:
...
- dsql_req becomes a running request;
- CompiledStatement is derived from dsql_req. The compilation state previously in dsql_req comes to here;
- Rename many "request" parameters to "statement" where type is changed from dsql_req to CompiledStatement.
This changes makes easy the path to support compiled statement cache.
2008-05-24 03:19:52 +00:00
asfernandes
900c4ff7d3
Misc
2008-05-20 00:58:14 +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