Difference between revisions of "Base To-Do/Joins in dBase queries"
(→Sketch) |
|||
(6 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
+ | === Description === | ||
+ | |||
Queries to dBase files can currently contain one table only. Scope of the project is to enhance Base' built-in simple query engine to be capable of executing statements line <code>SELECT table1.field1, table2.field2 FROM table1, table2</code>. The dBase driver, the text/csv driver, and the Spreadsheet driver would all benefit from this extension. | Queries to dBase files can currently contain one table only. Scope of the project is to enhance Base' built-in simple query engine to be capable of executing statements line <code>SELECT table1.field1, table2.field2 FROM table1, table2</code>. The dBase driver, the text/csv driver, and the Spreadsheet driver would all benefit from this extension. | ||
Line 8: | Line 10: | ||
* effort: 4 weeks for an experienced developer | * effort: 4 weeks for an experienced developer | ||
* difficulty: high | * difficulty: high | ||
+ | |||
+ | === Sketch === | ||
+ | |||
+ | For Joins in dBase queries, you should be looking at the existing driver. The [http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/dbase/ dBase driver] is a specialization of the [http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/file/ file-based driver]. | ||
+ | |||
+ | The code which decides, on issuing a SELECT statement, from which table the data is to be obtained, is in the basic file driver, basically in [http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/file/fanalyzer.cxx?view=markup connectivity/source/drivers/file/fanalyzer.cxx]. For this, it employs OOo's own SQL parser, which you'll find in [http://dba.openoffice.org/source/browse/dba/connectivity/inc/connectivity/ connectivity/inc/connectivity], files sqlparse.hxx, sqliterator.hxx, sqlnode.hxx. | ||
+ | |||
+ | So finally, the main task is to extend the analyzer to cover more than one table. | ||
+ | [[Category:Database]][[Category:To-Do]] |
Latest revision as of 20:50, 12 March 2010
Description
Queries to dBase files can currently contain one table only. Scope of the project is to enhance Base' built-in simple query engine to be capable of executing statements line SELECT table1.field1, table2.field2 FROM table1, table2
. The dBase driver, the text/csv driver, and the Spreadsheet driver would all benefit from this extension.
Be prepared to dig around here before starting the project, the project touches low-level core implementations, including some heavy-to-read STL stuff, so be prepared to invest some time before writing the first line of code.
- required skills C++, SQL knowledge
- useful skills: Lexx and Yacc
- Contact: mailto:dev@dba.openoffice.org
- effort: 4 weeks for an experienced developer
- difficulty: high
Sketch
For Joins in dBase queries, you should be looking at the existing driver. The dBase driver is a specialization of the file-based driver.
The code which decides, on issuing a SELECT statement, from which table the data is to be obtained, is in the basic file driver, basically in connectivity/source/drivers/file/fanalyzer.cxx. For this, it employs OOo's own SQL parser, which you'll find in connectivity/inc/connectivity, files sqlparse.hxx, sqliterator.hxx, sqlnode.hxx.
So finally, the main task is to extend the analyzer to cover more than one table.