Base To-Do/Joins in dBase queries

From Apache OpenOffice Wiki
< Base To-Do
Revision as of 20:50, 12 March 2010 by R4zoli (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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