|
View:
New views
1 Messages
—
Rating Filter:
Alert me
|
|
|
[FB-Tracker] Created: (CORE-2738) The engine should stop the creation of invalid or useless viewsThe engine should stop the creation of invalid or useless views
--------------------------------------------------------------- Key: CORE-2738 URL: http://tracker.firebirdsql.org/browse/CORE-2738 Project: Firebird Core Issue Type: Bug Components: Engine Affects Versions: 3.0 Initial, 2.1.3, 2.5 Beta 2, 2.5 Beta 1, 2.1.2, 2.1.1, 2.5 Alpha 1, 2.1.0 Reporter: Claudio Valderrama C. I know nobody probably attempts this, but the engine should do more checks. F:\fb3dev\fbbuild\firebird30\temp\Win32\Debug\firebird\bin>isql Use CONNECT or CREATE DATABASE to specify a database SQL> create database 'poorview.fdb'; SQL> create table t(a int); SQL> create view vj1 as select a from t; SQL> create view vj2 as select v.a from vj1 v, vj1; SQL> create view vj3 as select v.a from vj2 v, vj2; SQL> create view vj4 as select v.a from vj3 v, vj3; SQL> create view vj5 as select v.a from vj4 v, vj4; SQL> create view vj6 as select v.a from vj5 v, vj5; SQL> create view vj7 as select v.a from vj6 v, vj6; SQL> create view vj8 as select v.a from vj7 v, vj7; SQL> create view vj9 as select v.a from vj8 v, vj8; SQL> create view vj10 as select v.a from vj9 v, vj9; SQL> create view vj11 as select v.a from vj10 v, vj10; SQL> create view vj12 as select v.a from vj11 v, vj11; SQL> create view vj13 as select v.a from vj12 v, vj12; SQL> create view vj14 as select v.a from vj13 v, vj13; SQL> create view vj15 as select v.a from vj14 v, vj14; SQL> create view vj16 as select v.a from vj15 v, vj15; SQL> create view vj17 as select v.a from vj16 v, vj16; SQL> create view vj18 as select v.a from vj17 v, vj17; SQL> create view vj19 as select v.a from vj18 v, vj18; SQL> create view vj20 as select v.a from vj19 v, vj19; SQL> create view vj21 as select v.a from vj20 v, vj20; SQL> create view vj22 as select v.a from vj21 v, vj21; SQL> create view vj23 as select v.a from vj22 v, vj22; SQL> create view vj24 as select v.a from vj23 v, vj23; SQL> create view vj25 as select v.a from vj24 v, vj24; SQL> create view vj26 as select v.a from vj25 v, vj25; SQL> create view vj27 as select v.a from vj26 v, vj26; SQL> commit; SQL> select rdb$relation_name, rdb$dbkey_length from rdb$relations where rdb$relation_name starting 'VJ'; RDB$RELATION_NAME RDB$DBKEY_LENGTH ===================================== VJ1 8 VJ2 16 VJ3 32 VJ4 64 VJ5 128 VJ6 256 VJ7 512 VJ8 1024 VJ9 2048 VJ10 4096 VJ11 8192 VJ12 16384 VJ13 -32768 VJ14 0 VJ15 0 VJ16 0 VJ17 0 VJ18 0 VJ19 0 VJ20 0 RDB$RELATION_NAME RDB$DBKEY_LENGTH ===================================== VJ21 0 VJ22 0 VJ23 0 VJ24 0 VJ25 0 VJ26 0 VJ27 0 We can see that vj13 is already invalid from the POV of the db_key's length, but the engine allow subsequent views based on it. When the db_key becomes negative or zero due to overflow, it's time to stop. SQL> select * from vj1; SQL> select * from vj2; SQL> select * from vj3; SQL> select * from vj4; SQL> select * from vj5; SQL> select * from vj6; SQL> select * from vj7; SQL> select * from vj8; Statement failed, SQLSTATE = 54001 Too many Contexts of Relation/Procedure/Views. Maximum allowed is 255 But we can see, too that vj8 is already invalid due to an internal limit: contexts. What's the value of allowing the creation of a view that cannot be queried? Even the most trivial query fails: SQL> select 1 from vj8; Statement failed, SQLSTATE = 54001 Too many Contexts of Relation/Procedure/Views. Maximum allowed is 255 Hence, whatever happens first, invalid db_key's length or maximum number of contexts, the engine should not allow further definitions. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://tracker.firebirdsql.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel |
| Free embeddable forum powered by Nabble | Forum Help |