[ Expand All ] [ Collapse All ] - [ Properties (2) ] [ Methods (10) ] - [ Legend ]

RdqlDbEngine Class v. V0.9.1

Object
RdqlEngine
RdqlDbEngine

Class: RdqlDbEngine ----------------------------------------------------------------------------------

This class performs as RDQL query on a DbModel.

Provided an rdql query parsed into an array of php variables and constraints at first the engine generates an sql statement and queries the database for tuples matching all patterns from the WHERE clause of the given RDQL query. Subsequently the result set is is filtered with evaluated boolean expressions from the AND clause of the given RDQL query.

<BR><BR>History:<UL> <LI>09-27-2004 : Multiple queries bug fixed</LI> <LI>05-12-2004 : Bug in the handling of empty Literals fixed.</LI> <LI>08-29-2003 : Function filterTuples(): some bugs fixed:

  • strEqExpr with NE operator
  • regExExpr combined with other expr. and negation (!) e.g. !(?x ~~ "/sth/" && ?x > 5)

AuthorRadoslaw Oldakowski
Properties implemented by RdqlDbEngine
private method parsedQuery

Parsed query variables and constraints.

private method rsIndexes

When an RDQL query is performed on a DbModel, in first step the engine searches in database for triples matching the Rdql-WHERE clause. A recordSet is returned. $rsIndexes maps select and filter variables to their corresponding indexes in the returned recordSet.

Methods implemented by RdqlDbEngine
private method _convertRsRowToQueryResultRow

PHParray _convertRsRowToQueryResultRow(unknown $record)

Converts a single row of ADORecordSet->fields array to the format of $queryResult array using pointers to indexes ($this->rsIndexes) in RecordSet->fields.

Arguments

Return

[?VARNAME]['value'] = string ['nType'] = string ['l_lang'] = string ['l_dtype'] = string

private method _generateSql_SelectVar

PHPstring _generateSql_SelectVar(string $varName, unknown $index)

Generate a piece of an sql select statement for a variable. Look first if the given variable is defined as a pattern object. (So you can select the node type, literal lang and dtype) If not found - look for subjects and select node label and type. If there is no result either go to predicates. Predicates are always resources therefore select only the node label.

Arguments

private method filterQueryResult

PHParray filterQueryResult(unknown $recordSet)

Filter tuples containing variables matching all patterns from the WHERE clause of an RDQL query. As a result of a database query using ADOdb these tuples are returned as an ADORecordSet object, which is then passed to this function.

Arguments

Return

[][?VARNAME]['value'] = string ['nType'] = string ['l_lang'] = string ['l_dtype'] = string

private method generateSql

PHPstring generateSql(integer $modelID)

Generate an SQL string to query the database for tuples matching all patterns of $parsedQuery.

Arguments

private method generateSql_FromClause

PHPstring generateSql_FromClause()

Generate SQL FROM clause

private method generateSql_SelectClause

PHPstring generateSql_SelectClause()

Generate SQL SELECT clause.

private method generateSql_WhereClause

PHPstring generateSql_WhereClause(integer $modelID)

Generate an SQL WHERE clause

Arguments

public method queryModel

PHParray queryModel(unknown $dbModel, unknown $parsedQuery, boolean $returnNodes)

Perform an RDQL Query on the given DbModel.

Arguments

Return

[][?VARNAME] = object Node (if $returnNodes = TRUE) OR array [][?VARNAME] = string

private method toNodes

PHParray toNodes(unknown $queryResult)

Convert variable values of $queryResult to objects (Node).

Arguments

Return

[][?VARNAME] = object Node

private method toString

PHParray toString(unknown $queryResult)

Serialize variable values of $queryResult to string.

Arguments

Return

[][?VARNAME] = string

Generated by PHPEdit - Copyright © 1999-2004 - Sébastien Hordeaux - WaterProof SARL