Skip to content

Commit db8c4cc

Browse files
committed
v.1.1.0 contd,
* parse and cache GrammarTemplate clauses once and re-use in subsequent calls
1 parent f3492bf commit db8c4cc

4 files changed

Lines changed: 21 additions & 7 deletions

File tree

src/js/Dialect.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1745,6 +1745,11 @@ function Dialect( type )
17451745
self.q = Dialect.dialects[ self.type ][ 'quotes' ][ 0 ];
17461746
self.qn = Dialect.dialects[ self.type ][ 'quotes' ][ 1 ];
17471747
self.e = Dialect.dialects[ self.type ][ 'quotes' ][ 2 ] || ['','','',''];
1748+
if ( !(self.clauses instanceof Dialect.GrammarTemplate) )
1749+
{
1750+
self.clauses = new Dialect.GrammarTemplate( self.clauses );
1751+
Dialect.dialects[ self.type ][ 'clauses' ] = self.clauses;
1752+
}
17481753
}
17491754
Dialect.VERSION = "1.1.0";
17501755
//Dialect.TPL_RE = /\$\(([^\)]+)\)/g;
@@ -1852,8 +1857,8 @@ Dialect[PROTO] = {
18521857
self.tbls = { };
18531858
self.cols = { };
18541859
self.clau = clause;
1855-
if ( !(self.clauses/*[ self.clau ]*/ instanceof Dialect.GrammarTemplate) )
1856-
self.clauses/*[ self.clau ]*/ = new Dialect.GrammarTemplate( self.clauses/*[ self.clau ]*/ );
1860+
//if ( !(self.clauses/*[ self.clau ]*/ instanceof Dialect.GrammarTemplate) )
1861+
// self.clauses/*[ self.clau ]*/ = new Dialect.GrammarTemplate( self.clauses/*[ self.clau ]*/ );
18571862
return self;
18581863
}
18591864

src/js/Dialect.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/php/Dialect.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1686,6 +1686,11 @@ public function __construct( $type='mysql' )
16861686
$this->q = self::$dialects[ $this->type ][ 'quotes' ][ 0 ];
16871687
$this->qn = self::$dialects[ $this->type ][ 'quotes' ][ 1 ];
16881688
$this->e = isset(self::$dialects[ $this->type ][ 'quotes' ][ 2 ]) ? self::$dialects[ $this->type ][ 'quotes' ][ 2 ] : array('','','','');
1689+
if ( !($this->clauses instanceof GrammarTemplate) )
1690+
{
1691+
$this->clauses = new GrammarTemplate($this->clauses);
1692+
self::$dialects[ $this->type ][ 'clauses' ] = $this->clauses;
1693+
}
16891694
}
16901695

16911696
public function dispose( )
@@ -1773,8 +1778,8 @@ public function reset( $clause )
17731778
$this->cols = array( );
17741779
$this->clau = $clause;
17751780

1776-
if ( !($this->clauses/*[ $this->clau ]*/ instanceof GrammarTemplate) )
1777-
$this->clauses/*[ $this->clau ]*/ = new GrammarTemplate( $this->clauses/*[ $this->clau ]*/ );
1781+
//if ( !($this->clauses/*[ $this->clau ]*/ instanceof GrammarTemplate) )
1782+
// $this->clauses/*[ $this->clau ]*/ = new GrammarTemplate( $this->clauses/*[ $this->clau ]*/ );
17781783
return $this;
17791784
}
17801785

src/python/Dialect.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1514,6 +1514,10 @@ def __init__( self, type='mysql' ):
15141514
self.q = Dialect.dialects[ self.type ][ 'quotes' ][ 0 ]
15151515
self.qn = Dialect.dialects[ self.type ][ 'quotes' ][ 1 ]
15161516
self.e = Dialect.dialects[ self.type ][ 'quotes' ][ 2 ] if 1 < len(Dialect.dialects[ self.type ][ 'quotes' ]) else ['','','','']
1517+
if not isinstance(self.clauses, Dialect.GrammarTemplate):
1518+
self.clauses = Dialect.GrammarTemplate(self.clauses)
1519+
Dialect.dialects[ self.type ][ 'clauses' ] = self.clauses
1520+
15171521

15181522
def __del__( self ):
15191523
self.dispose()
@@ -1581,8 +1585,8 @@ def reset( self, clause ):
15811585
self.clau = clause
15821586
#if not isinstance(self.clauses[ self.clau ], Dialect.GrammarTemplate):
15831587
# self.clauses[ self.clau ] = Dialect.GrammarTemplate( self.clauses[ self.clau ] )
1584-
if not isinstance(self.clauses, Dialect.GrammarTemplate):
1585-
self.clauses = Dialect.GrammarTemplate( self.clauses )
1588+
#if not isinstance(self.clauses, Dialect.GrammarTemplate):
1589+
# self.clauses = Dialect.GrammarTemplate( self.clauses )
15861590
return self
15871591

15881592
def clear( self ):

0 commit comments

Comments
 (0)