Difference between revisions of "Base To-Do/Joins in dBase queries"

From Apache OpenOffice Wiki
Jump to: navigation, search
 
(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.

Personal tools