New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
External Virtual Tables support [CORE674] #1040
Comments
Modified by: @pcisarWorkflow: jira [ 10698 ] => Firebird [ 15089 ] |
Commented by: Vivien Malerba (vivien) I'd really like to have that feature in Firebird... SQLite has a virtual tables features which is fairly easy to use (you have to write some C code for that purpose), see http://www.sqlite.org/lang_createvtab.html and http://www.sqlite.org/cvstrac/wiki?p=VirtualTables. |
Commented by: Cosmin Apreutesei (cosmin_ap2) I've been thinking about this kind of functionality for years. And it's not just for tables that you could have a C API, stored procedures and triggers too. I'd jump right in and make a library of external tables/stored procs for firebird to access filesystems, processes, heck you can even implement the Win32 API as tables and create/destroy/query its objects with SQL. Generating full GUIs would be just a matter of literally joining your business logic with the user interface. |
Commented by: Sean Leyne (seanleyne) edited for layout/format, not content |
Modified by: Sean Leyne (seanleyne)description: SFID: 1098689# I have been looking for am open source RDBMS that can My requirements are: The plug-in interface needs to be a C API based so that It should not assume that the external interface is It should have capability based settings (IE it could The source may be live and could be changed by The API for the plugin would need to have "init" and Additional syntax to SQL would be needed to Ideally virtual table implementation should have as => SFID: 1098689# I have been looking for am open source RDBMS that can treat external sources of data like text/csv/xml/dbf files as a virtual table which can then be used in sql and be updateable. Informix currently supports this via an external plugin interface. I am desperately seeking an open source DB that will implement this. My requirements are: The plug-in interface needs to be a C API based so that just about any language can be used to create them. It should not assume that the external interface is file based (it could be anything even another RDBMS) It should have capability based settings (IE it could be defined as readonly or writable so not all methods would be appropriate) The source may be live and could be changed by something else whilst firebird is using it so there needs to be a callback function in the plugin to tell firebird to refresh the source when this happens. The API for the plugin would need to have "init" and "final" functions. Additional syntax to SQL would be needed to activate/deactivate the plugins. I suggest extending create table to specify a plugin to activate and drop table to deactivate that plugin. On activation of a plugin the "init" function for that plugin should be called (ditto for "final" when deactivated). Ideally virtual table implementation should have as much functionality as ordinary tables have (IE they can be indexed, have permissions etc) |
Submitted by: jmccracken (jmccracken)
Votes: 7
SFID: 1098689#
Submitted By: jmccracken
I have been looking for am open source RDBMS that can treat external sources of data like text/csv/xml/dbf files as a virtual table which can then be used in sql and be updateable. Informix currently supports this via an external plugin interface. I am desperately seeking an open source DB that will implement this.
My requirements are:
The plug-in interface needs to be a C API based so that just about any language can be used to create them.
It should not assume that the external interface is file based (it could be anything even another RDBMS)
It should have capability based settings (IE it could be defined as readonly or writable so not all methods would be appropriate)
The source may be live and could be changed by something else whilst firebird is using it so there needs to be a callback function in the plugin to tell firebird to refresh the source when this happens.
The API for the plugin would need to have "init" and "final" functions.
Additional syntax to SQL would be needed to activate/deactivate the plugins. I suggest extending create table to specify a plugin to activate and drop table to deactivate that plugin. On activation of a plugin the "init" function for that plugin should be called (ditto for "final" when deactivated).
Ideally virtual table implementation should have as much functionality as ordinary tables have (IE they can be indexed, have permissions etc)
The text was updated successfully, but these errors were encountered: