Overview   Package   Tree   Index 
Tv2 documentation
PREV  NEXT FRAMES  NO FRAME 
SUMMARY:  FIELD | CONSTR | METHOD DETAIL:  FIELD | CONSTR | METHOD

tv2-engine
Class tv2XQuery


class tv2XQuery

Query parser and processor.

Authors:
Emilis Dambauskas (emilis@gildija.lt)
Version:
$Id: tv2Xquery.class.php,v 1.5 2003/09/16 03:04:32 lunaticlt Exp $
Copyright:
2002–2003 Emilis Dambauskas under Artistic license

Field Summary
private array$b
Query branch array
private array$fat
Reference to tv2Xdb::fat array
private array$icontext
Experimental.
private array$ictime
document ids indexed by document ctime
private array$iid
Array of all tv2Xdb document ids
private array$ilanguage
Experimental.
private array$iname
document ids indexed by document name
private array$ipath
document ids indexed by document path
private array$istatus
Experimental.
private array$itype
document ids indexed by document type
private array$ivtime
Experimental.
private array$liid
Reference to tv2XQuery:$iid array
private array$qr
Query result
private object$xi
ctlIndexer object

Constructor Summary
void tv2XQuery()
Constructor

Method Summary
private integer addBNode(integer $t, integer $p, [array $c])
Inserts branch into branch array
private integer addBQF(string& $query, integer $p)
Adds full query branch
private integer addBQI(string& $q, integer $p)
Add indexed query branch
private integer addBQS(string& $q, integer $p)
Adds system query branch
private string bgn(string $s, integer $l)
return up to $l symbols from the begining of the string lowercased
private boolean error(string $msg)
Error reporting
private void fillResult(array $r)
Fills result array
private void iQuery(integer $i)
Executes indexed query branch
boolean load(array& $fat)
Fills system indexes with data, creates reference to all ids array
private boolean loadXIndex()
Loads ctlIndexer object into parameter $xi
private string matchOP(string& $q)
Takes operation from the query and returns it in internal format
private mixed matchVAL(string& $q)
Takes value from the query string
private boolean parseQuery(string $q)
Main query parsing loop
private void propagateDown(integer $c, array $s)
updates scope on child branch
private void propagateUp(integer $p, array $r, mixed $c)
Sends partial result to parent branch
array query(string $q, [array $o], [integer $s], [integer $l])
Queries Xdb using SQL-like synthax
private void removeNull()
Removes NULL branches from branch array
private array sortB()
Sorts branch array according to branch weights
private void sQuery(integer $i)
Executes system query branch
private void xQuery(integer $i)
Executes unknown branch


Field Detail

b

private array $b

Query branch array


fat

private array $fat

Reference to tv2Xdb::fat array


icontext

private array $icontext

Experimental. document ids indexed by document version context


ictime

private array $ictime

document ids indexed by document ctime


iid

private array $iid

Array of all tv2Xdb document ids


ilanguage

private array $ilanguage

Experimental. document ids indexed by document version language


iname

private array $iname

document ids indexed by document name


ipath

private array $ipath

document ids indexed by document path


istatus

private array $istatus

Experimental. document ids indexed by document version status


itype

private array $itype

document ids indexed by document type


ivtime

private array $ivtime

Experimental. document ids indexed by document version time


liid

private array $liid

Reference to tv2XQuery:$iid array


qr

private array $qr

Query result


xi

private object $xi

ctlIndexer object


Constructor Detail

tv2XQuery()

void tv2XQuery()

Constructor


Method Detail

addBNode()

private integer addBNode(integer $t, integer $p, [array $c])

Inserts branch into branch array

Parameters:
t - branch type
p - parent branch id
c - children array
Returns:
new branch id

addBQF()

private integer addBQF(string& $query, integer $p)

Adds full query branch

Parameters:
query - being parsed
p - parent node id
Returns:
new node id

addBQI()

private integer addBQI(string& $q, integer $p)

Add indexed query branch

Parameters:
q - query being parsed
p - parent branch id
Returns:
new branch id

addBQS()

private integer addBQS(string& $q, integer $p)

Adds system query branch

Parameters:
q - query being parsed
p - parent branch id
Returns:
new branch id

bgn()

private string bgn(string $s, integer $l)

return up to $l symbols from the begining of the string lowercased

Parameters:
s - input string
l - portion length
Returns:
portion of the string

error()

private boolean error(string $msg)

Error reporting

Parameters:
msg - - error message
Returns:
always returns FALSE
Uses the global variables:
errors

fillResult()

private void fillResult(array $r)

Fills result array

Parameters:
r - result array

iQuery()

private void iQuery(integer $i)

Executes indexed query branch

Parameters:
i - branch id
To Do:
  • check search operations nm,e,ne,>,>=,<,<=

load()

boolean load(array& $fat)

Fills system indexes with data, creates reference to all ids array

Parameters:
fat - array from tv2Xdb::fat
Returns:
always TRUE

loadXIndex()

private boolean loadXIndex()

Loads ctlIndexer object into parameter $xi

Returns:
TRUE on success, FALSE on failure
Uses the global variables:
$config

matchOP()

private string matchOP(string& $q)

Takes operation from the query and returns it in internal format

Parameters:
q - query string
Returns:
internal operation representation

matchVAL()

private mixed matchVAL(string& $q)

Takes value from the query string

Parameters:
q - query string
Returns:
string value or regexp: array('pattern', 'modifiers')

parseQuery()

private boolean parseQuery(string $q)

Main query parsing loop

Parameters:
q - query string
Returns:
FALSE on error, NULL otherwise

propagateDown()

private void propagateDown(integer $c, array $s)

updates scope on child branch

Parameters:
c - child branch id
s - scope array

propagateUp()

private void propagateUp(integer $p, array $r, mixed $c)

Sends partial result to parent branch

Parameters:
p - parent branch id
r - partial result
c - child branch id

query()

array query(string $q, [array $o], [integer $s], [integer $l])

Queries Xdb using SQL-like synthax

Parameters:
q - SQL like query
o - order by: array('field', 'ASC'/'DESC')
s - start from (default 0)
l - limit result number to
Returns:
document ID array

removeNull()

private void removeNull()

Removes NULL branches from branch array


sortB()

private array sortB()

Sorts branch array according to branch weights

Returns:
sorted branch key array

sQuery()

private void sQuery(integer $i)

Executes system query branch

Parameters:
i - branch id
To Do:
  • implement actions != nm

xQuery()

private void xQuery(integer $i)

Executes unknown branch

Parameters:
i - branch id

 Overview   Package   Tree   Index 
Tv2 documentation
PREV  NEXT FRAMES  NO FRAME 
SUMMARY:  FIELD | CONSTR | METHOD DETAIL:  FIELD | CONSTR | METHOD

Submit a bug

This document was generated by phpdocgen 0.17-rc3.
Copyright © 2002-03 Stéphane GALLAND (under the GNU General Public License)