gXbfB#) ۻbis_IIߪ ۻbis_IIߪ ۻbis_IIߪ ۻbis_II4&D.5;Aϳކ:}Wۻp%7ޔ_#5L@?ss\,fa\eChɛ+MMX,-\_[6Eq_uC^avh ->]+/Wg׿>|"d2D^1=]mwgFN5K]OElf5F \wgFN5K]OwgFN5K]OwgFN5K]O[_׮|S 6 iS&XVŰįwgFN5K]OwgFN5K]OwgFN5K]O7XxKѨ#TKl]-ފ@έlJwh(B_;R0ԉ"T L"z{P3s8DʚjB:t^^$>,ǹknbj2ͥ_>@wgFN5K]O{[SԥRYcxsc!^C ۻbis_IIߪ ۻbis_IIߪ ۻbis_II߸Hh)+|J &O9VCdt{g6}D #F _PRMwgFN5K]OT y/5Oڪ ۻbis_IIߪ ۻbis_IIߪ ۻbis_II=o@h7p̢V:q۪ 9Z6ZlX_S)V0AE 9B!U! Σr#ʞTQ |gTO= Y-mi?r-" ckdpE )uaOc]IAsN,Y)-A30V\[M靖URM&V1xW#) (YIT[dd_G%*k$Orgpj\9Z䶟(}#"hy#/I!lL ΙN6&XIeaB>b\ xekm$kG ߀ܣq\_f0!`kfw63MPz XӸH_ S̔!"p \JmQˌx{GģK$f TwDedƎ}~ (g]RrfH*y`Fa){n@ u[`F}`[ߣ_ӪF<@W'cCdZ(cV#F5D{}& BV|^%&pŹXcha281|óLѡ /qI1fK5 `֋\jX"8jH^g0tmȨ+bcm# ;Br;e˔}6y{(# ˖  7b‰s~Ln &8f/D35.γpezM{e)y]0uMYO&Xa ŋrpvŇm ڞ >)XrBOJ2-Ndn8[wEюJgvZJglt"ZqN*rm(YZ^q9/|;A-Tw{ϐ͓y/ +=hSǙeGxC4@}+Ӵx0s`a2N<1FZ =-%'p@=F bB+Ϗ~bI9ₓэ*TYmiqR+ F>ti=; U(x^" S5F?tst$^^~,I)`Mc'7 exa%9ؗ| Ė?T-F|HjT-*)u^gU=~:TO*!CfΎN1{ 6];Q,%O,8{u3k{8|A o B97@pV 䯊8Pd{ 2 6 7u\,Bgh_PH|9V#QmYQUR @3 NC@Ok ^*Ws:}emJGwxg##Rc3a@x\=t%KuQqs#WMGAN`ԗՙ MPZPOQݻM/,Kbi5ו]ݑR.rQ- Ff#3[pdN0!oub]--vYH $query = preg_replace('/^SELECT\s/i', '', $query); $query = "WITH paging AS (SELECT ROW_NUMBER() OVER ($orderby) AS [RowNumber], $query)" . " SELECT * FROM paging WHERE [RowNumber] BETWEEN $offset AND $end ORDER BY [RowNumber]"; return $query; } /** * Returns PDO DSN string from DSN array */ protected function dsn_string($dsn) { $params = []; $result = $dsn['phptype'] . ':'; if (isset($dsn['hostspec'])) { $host = $dsn['hostspec']; if (isset($dsn['port'])) { $host .= ',' . $dsn['port']; } $params[] = 'host=' . $host; } if (isset($dsn['database'])) { $params[] = 'dbname=' . $dsn['database']; } if (!empty($params)) { $result .= implode(';', $params); } return $result; } /** * Parse SQL file and fix table names according to table prefix */ protected function fix_table_names($sql) { if (!$this->options['table_prefix']) { return $sql; } // replace sequence names, and other postgres-specific commands $sql = preg_replace_callback( '/((TABLE|(?