Base To-Do/Joins in dBase queries

From Apache OpenOffice Wiki
Jump to: navigation, search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.

Personal tools