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

From Apache OpenOffice Wiki
Jump to: navigation, search
(Sketch)
(Sketch: +Links directly to source tree instead of just referring to it.)
Line 13: Line 13:
 
=== Sketch ===
 
=== 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. Both are located in connectivity/source/drivers/file resp. connectivity/source/drivers/dBase.
+
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 issueing 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.
+
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.
 
So finally, the main task is to extend the analyzer to cover more than one table.

Revision as of 05:22, 5 April 2008

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