Open Feature Requests

Category: Build Issues

SF ID Description Group/Status  
451954 Replace MSVC with GNU compiler Feature request
 
This is a Windows build issue.

Category: Client/GDS32

SF ID Description Group/Status  
446227 Implement ThreadSafe code/operation Feature request
 
The current GDS32 library is NOT thread-safe.

468983 No collation orders for ISO_8859_2 Feature request
 
I finally found an ISO_8859_2 character set, but there's no collation orders for this set except for default, so character data does not collate correctly in Polish (b before ±, d before Æ and so on).

Category: Core Engine

SF ID Description Group/Status  
480750 Ability to clear/delete External Tables Feature request
 
Like the ZAP (dBase) command, users would like to clear the contents of an External table or delete the table completely.

451914 Ability to drop client connection Feature request
 
Extend API to allow for a specified client connection to be disconnected.

451920 Ability to set date format Feature request
 
Allow for the date format to be set outside of the server's local settings.

451912 Better query optimizer Feature request
 
The current optimizeroften does a poor job of selecting the optimal indexes.

451933 Case insensitive indexes Feature request
 

451939 Connection priority Feature request
 
Allow for task priority to be set by connection.

446182 Enable support for 32kb pages Feature request
 
Modify the engine and GBAK routines to allow for the database pages of 32kb in size to be specified.

451950 External table paths Feature request
 
Restrict 'valid' path for External Table to paths specified in IBConfig/ISCConfig.

451949 FK defined with active connections Feature request
 
Currently, FKs cannot be defined with active database connections.

446257 HTML/XML output Feature request
 
Allow for dataset to be returned in HTML/XML format using data-output templates.

446252 Hooks for external SP and Trigger debug Feature request
 
Enable hooks/support for external SP and Trigger debugging.

451946 Increase index key limit Feature request
 
Index keys are currently limited to 252 bytes.

451953 Indexes with NULLs Feature request
 
Allow for NULL values to be included in the index data, using the syntax:
     CREATE [WITHNULLS] INDEX...

446233 Kill Query - server timeout/runaway Feature request
 
The server should have built-in support to ensure that a query cannot run 'away'. A parameter in the server config file should establish the maximum query execution time.

446232 Kill query -- client requested Feature request
 
The user needs the ability to stop/kill a query.

451928 LOG ALL [INSERT|UPDATE|DELETE|SELECT] Command Feature request
 
Ability to have the system log all SQL statements executed for the entire database or a specific table.

233602 Like operator doesn't work correctly with UPPER() Feature request
 
     select * from gd_contact where
       upper(name) like upper('%some_lowercase_belarusian_string%')
this query returns empty cursor although there are records in the database which match the criteria. if you change the SQL to:
     select * from gd_contact where
       upper(name) like upper('%THE_SAME_STRING_IN_UPPERCASE%')
all works fine, but I need to convert string to uppercase pragramattically, and of course, there is no need for second UPPER().

Additional note: field NAME defined as VARCHAR(60) CHARACTER SET win1251 COLLATION PXW_CYRL.

227776 More information about dependencies is needed Feature request
 
I've logged this issue as a request for enhancement and I hope others will append what they think IB needs about keeping dependencies.

Following with my example script described in: [Bug #125219] "isql -a: wrong order with domains based on table's fields"

I decided to drop the procedure named valid16 that handles the validation for the domain dom16. No problem. IB destroyed it. I still was able to select from tab16 (the one that uses the domain and it's used by the domain at the same time), since the proc was loaded in memory. As soon as I disconnected and reconnected, doing a simple
     select * from tab16
caused the following (expected) message:
Invalid request BLR at offset 8 procedure id 28 is not defined

I had to drop the constraint from the domain for IB to allow me to define the proc again (or it kept complaining about id 28), then I recreated the check constraint.

IB keeps track of table to table dependencies through PKs in rdb$ref_constraints. Procedures, views and triggers that depends on tables are tracked at rdb$dependencies and it tracks also procedure2procedure and trigger2procedure dependencies.

What's missing, among others dependencies:
- domain using procedure, table, generator or view
- computed field using procedure, table, generator or view
- procedure using generator
- trigger using generator
- view using generator

451942 New database object - Constants Feature request
 
Support constants to be stored within the database using the syntax:
       CREATE CONSTANT {ObjectName} {Datatype} AS {Value}.
This would allow for the constants to be used in other SQL statements like:
       CREATE DOMAIN TTypeKind AS SMALLINT DEFAULT {Constant) NOT NULL CHECK( VALUE IN ( {Constant}, {Constant}..));

451947 Over the wire encryption Feature request
 
Using one of the standard crypt libraries: SSL, NSS...

451927 ROWSAFFECTED system variable Feature request
 
Expose the current variable, which is available through the API for INSERT, DELETE and UPDATE statements, to be available to SP and triggers.

433293 Replication in linux Feature request
 
Add multi-machine replication support on linux

446249 Server Bi-directional cursors Feature request
 
Enable Bi-directional cursors for server processing

451915 Server needs to detect disconnects Feature request
 
Currently if a client disconnects, the server continues to execute the any pending query. It only stops the query when it is ready to return the first row from the result set.

446180 Server-side database aliases Feature request
 
Add functionality to engine to allow for database aliases to be defined in a server side text/INI file (FBAlias.INI) to assist in resolving client database names.

This would allow for clients to specify as database string like server:alias, and have the server resolve the 'alias' value into the full 'path\database.gdb' string.

446236 Session variable space Feature request
 
Support should be added to allow for session variables to be maintained. This includes support for Create/Set/Get/Drop operations.

446255 Support explicit record lock/unlock Feature request
 
?

446234 Support for Nested Transaction Feature request
 
Support should be added to provide support for nested transactions

451929 Tablespaces Feature request
 
The ability to define/control the location of data/user tables within a multi-file database.

451924 Temporary tables Feature request
 
Allow for the definition of temporary tables which are only visible within the current connection context and which are deleted upon connection disconnect/lost.

446243 Transaction ID Feature request
 
Similar to the Connection variables (SF #446238), each transaction should have it own unique ID value which should be exposed as a system variable to triggers/SPs and SELECT statements.

446214 Triggers/SPs on database operations Feature request
 
It would be a good thing if a trigger or SP was run when a database is attached/detached by the engine or when a user logs in or disconnects (also lost connection) from a database.

446223 True SMP support Feature request
 
Old news -- FB doesn't support SMP very well.

451952 UDF Search path Feature request
 
Include the database path when searching for UDF library.

451922 Universal Insert/Delete/Update triggers Feature request
 
As in the case of Oracle, allow for a single trigger to be defined for INSERT and/or DELETE and/or UPDATE operations for all tables in the database.

470859 exception created 'on-the-fly' Feature request
 
I think it would be usefull if an exception could be generated inside a trigger or procedure without having to declare it before. Something like:
     if ( condition ) then
      exception 'my exception';

452830 tx independent of connection Feature request
 
In order to really support an xa driver such as for ejb application servers, it would be really helpful if transactions were not tied to connections. I would like to be able to request work within any transaction on any connection. One obvious first step is to always use transaction ids rather than handles for server-client communication. I haven't yet thought about security and multithreading/smp issues.

412673 using collate in stored procedure Feature request
 
It would be nice to have collate in stored procedure for varchar data type.

Category: DSQL

SF ID Description Group/Status  
446225 Allow FK indexes to be disabled Feature request
 
This will resolve the current performance issues related to poor selectivity indexes. By disabling the index the system will not maintain an index which would otherwise contain too many duplicates to be efficient.

446251 Array support in SPs, Select, Insert... Feature request
 
Enable support for Array elements in SPs as well as SELECT, INSERT and UPDATE statements.

446229 Blob Type 1 compatibility with VarChar Feature request
 
Currently Blob Sub-Type 1 (text) column can not be treated in the same manner as a VarChar column.

451917 CASE, IIFand COALESE Feature request
 
Add support for CASE, IIF and COALESE.

446222 Comments in definition of db objects Feature request
 
When defining database objects, the user should be able to provide comments which would be stored in the existing (unused) columns in the system tables.

446238 Connection ID/User IP/Computer Name variables Feature request
 
System variables should be maintained for each connection. The variables include: CONNECTION_ID, CONNECTION_IP, CONNECTION_COMPUTER

447001 Create Table as Select .... Feature request
 
Submitted by nick@upsonuk.com. I'd like to see Firebird support, as Ingress does:
     Create Table as Select ....

446246 Domain for SP parameters Feature request
 
Allow domains to be used in the definition of the input/output parameters of SPs.

446245 Domain for Trigger/SP variables Feature request
 
Allow domains to be applied to variables within a trigger or SP.

446256 Dynamic SQL in Stored Procedures Feature request
 
Allow for Stored Procedures to support dynamic elements -- tablename, columnnames....

446250 Event # and Text at runtime Feature request
 
Allow for Event #'s and Text to be specified at runtime. Thus removing the requirement for Event to be pre-defined in the database

446240 Exception code and text at runtime Feature request
 
Allow exception code and text to be specified at runtime, ie. do not require the values to the pre-defined in order for an exception to be raised.

437859 Execute procedure and string concat Feature request
 
The engine does not allow to pass an expression with string concatenation to a SP. When I'm compiling a procedure with a line like this one:
     execute procedure p_do_something('a' || 'b');
I get an error:

Invalid token. Dynamic SQL Error. SQL error code = -104. Token unknown - line 14, char 57.

446253 Expression based indexes Feature request
 
Enable support for indexes based on Expressions (i.e. UPPER(NAME) ).

446211 Full Blob susport for Triggers and SPs Feature request
 
Allow blobs to be used as parameters and variables in Triggers and Stored Procedures.

451932 Functions as column values Feature request
 
Allow for functions, like procedures, to be used as column value.

446244 Multi-database access in triggers and SP Feature request
 
Allow for other databases to be accessed from within triggers and SPs.

446209 ON SELECT Triggers Feature request
 
Allow trigger to be defined and execute when SELECT statement is executed for a table.

446231 Order By/Group By computed columns Feature request
 
Order By/Group By needs to support computed columns

451935 REPLACE for procedures and triggers Feature request
 
This would allow for procedures and triggers to be created or altered without concern for whether the function already exists.

451936 REPLACE statement Feature request
 
This statement would combine the functionality of the INSERT and UPDATE statements. This is not a SQL standard feature.

446218 Trigger/SP on start/commit/rollback Feature request
 
Similar to the triggers/SPs for database operations, these procedures would fire on transaction start/committ/rollack.

446212 Type Flag for Stored Procedures Feature request
 
Add a new flag to the system tables to distinguish between SELECT and execute only Stored Procedures.

451916 Update ... From Select ... Feature request
 
Extends the UPDATE syntax to support using the SELECT statement.

441942 User Account maintanance in SQL Feature request
 
I think it a good idea to have the ability in the sql interface to Create, Edit and Delete User Accounts.
     Create  User MyUsername MyPassword;
     Delete User MyUsername;
     Alter User MyUsername MyPassword NewPassword;

451925 User names for PK and FK indexes Feature request
 
The user should be able to specify the names of the PK and FK indexes.

Category: Data Types/On-Disk Struc(ODS)

SF ID Description Group/Status  
446206 INT64 datatype alias for Numeric(18,0) Feature request
 
It is a common request/question for new users -- how do I create INT64 datatypes. Accordingly, we should create an alias INT64 which would equate to NUMERIC(18,0).

451923 Increase size of metadata update counter Feature request
 
Currently the maximum number of metadata update is limited to 255. This needs to be increased or eliminated.

446221 Longer index key values -- 1024 bytes Feature request
 
The current size limitation (252 char) creates problems for systems which use multi-byte collation sequences.

446220 Object names of at least 64bytes Feature request
 
Like other RDBMS's we should be supporting longer object names.

446215 Support for GUID datatype Feature request
 
This includes supporting a new function to create GUID values.

446258 True Boolean Datatype Feature request
 
A new datatype which the three states - true/false/null.

Category: GBAK

SF ID Description Group/Status  
446224 New snapshot DB backup Feature request
 
Create a new program which would allow for realtime snapshots of database to be created, with the database online/active/open. This program would create a 'image' of the database, which could be immediately restored, since it would be a physical copy of the source database.

Category: ISQL

SF ID Description Group/Status  
446226 isql - Command Line History Editing Feature request
 
It would be nice to have command line history and editing added to isql a la bash or tcsh.

Category: Security Issues

SF ID Description Group/Status  
451938 Configurable server network settings Feature request
 
Allow for the server to control the connections it will accept. Possible settings include:
- listen only unix-socket (don't listen INET),
- listen all from eth0,
- listen only IP xxx.xxx.xxx.xxx,
- listen only mask.

451948 Database encryption Feature request
 
Allow for database to be encrypted -- user defined/selectable library/parameters.

451918 Groups of users and rights Feature request
 
Database rights can be assigned to Groups. Groups can be assigned to users. The resulting user database rights are the combination of the group rights as well as user rights. All this must work without roles.

229239 Password algorithm poor Feature request
 
Users with the same password currently get the same hashed password stored in the USERS table in isc4.gdb and this seems to be a fairly poor method of doing it.

Also the isc4.gdb installed from Firebird 0.9-4 has the permissions of 666 which leaves it wide open to attack. Having it wide open like this is at least as bad as the backdoor recently discovered and more attention should be given to security issues like this.

For example as a simple denial of service attack, I just did a /opt/interbase/isc4.gdb as a regular user and pow; no users can login anymore to any database on the system! I could just as easily of used a binary editor to copy my password over another users and thus have changed their password to mine (an example why the same crypt result for two identical passwords is bad!).

213433 Poor ib security in unix installed version Feature request
 
From: sskracic@lavsa.com (Sebastian Skracic)

Some time ago I found out that default Linux installation of IB4.0 introduces Huge security holes. I've put up some thoughts about it at http://acs.lavsa.com/bboard/q-and-a-fetch-msg.tcl?msg_id=00000O

Pretty much all outlined above is still valid for InterBase 6.0, at least SuperServer which I have just (re)installed. This is not good.

The point here is that _default_ installation must be reasonably secure. Just to sum up some of the items (there are probably more) should necessarily be done in installation process:

- create 'interbas' (or some other) unix user
- all installed files should be owned by that user
- through 'gsec', add an entry in isc4.gdb for 'interbas' user
- through 'isql', exec 'grant all on users to interbas;' to /opt/interbase/isc4.gdb security database to which you have attached as sysdba - the point here is that all future db maintenance will be performed by 'interbas' user, so this step is necessary to allow 'interbas' managing user accounts through 'gsec'.
- fix 666 (or 777) modes on some files.
- create directory /var/interbase (or something like that) where .gdb files will be stored (or somewhere in ~interbase)

Somewhere deep in server code:
- check which will prevent InterBase daemon from as root

446248 SQL rights for defining External tables Feature request
 
Restrict definition of External tables to specified users.

446247 SQL security rights for adding UDFs Feature request
 
Restrict adding UDF definitions to specified users.

217055 Security on IB6 SS running on NT Feature request
 
Hello, I want to see steps to make IB6 to run under an account that's not SYSTEM or has administrative privileges under NT.

Currently, I was able to setup IB in an administrative account, then I proceed to subtract some privileges from the account, but using a plain userid even with several special OS privileges granted did not work. At least I was able to make IB run on an account other than SYSTEM and ADMINISTRATOR.

The problem seems to be the communication with the Guardian. IB alone can be started automatically as a service, but not through the guardian.

Since only SYSTEM is allowed to interact with the desktop but IB/Guardian as a service don't show a tray icon, I don't see the problem in removing administrative requirements other than revisiting the IPC schema between IB and the Guardian.

451931 User rights for metadata changes Feature request
 
Extend the rights model to incorporate INSERT/UPDATE/DELETE database objects (databases, procedures, triggers, tables, UDFs). As well as rights to backup/restore and database connection.

453322 location of users lists /DB permission/ Feature request
 
here is 2 possible ways :
1.relocate user list from isc4.gdb to user DB
2.create additional user list in user DB and secondary authentification mechanism per database

it's needed when peoples don't want share structure of created database with other include SYSDBA

Category: UDF/Built-In Functions

SF ID Description Group/Status  
474793 Add statistical functions (as agreg.?) Feature request
 
May be implemented in Firebird some statistical functions?

- computing of Median
- computing of Standard deviation (StdDev)
- computing of Skew
- computing of Kurtosis
- common and central statistical moments

446216 Built in GUID generator Feature request
 
A GUID generator should be added to the list of built-in functions.