|
7 | 7 | use Exception;
|
8 | 8 | use Illuminate\Database\Connection as IlluminateConnection;
|
9 | 9 | use Illuminate\Database\Query\Builder;
|
10 |
| -use Illuminate\Support\Facades\Cache; |
11 | 10 | use Illuminate\Support\Facades\Schema;
|
12 | 11 | use PDO;
|
13 | 12 | use Uepg\LaravelSybase\Database\Query\Grammar as QueryGrammar;
|
@@ -164,10 +163,11 @@ private function compile(Builder $builder)
|
164 | 163 | }
|
165 | 164 |
|
166 | 165 | if ($cache) {
|
167 |
| - $cacheTime = key_exists('cache_time',$builder->connection->config) ? $builder->connection->config['cache_time'] : 3600; |
| 166 | + $cacheTime = key_exists('cache_time', $builder->connection->config) ? $builder->connection->config['cache_time'] : 3600; |
168 | 167 | $aux = cache()->remember("sybase_columns.$tables.columns_info", $cacheTime, function () use ($tables) {
|
169 | 168 | $queryString = $this->queryString($tables);
|
170 | 169 | $queryRes = $this->getPdo()->query($queryString);
|
| 170 | + |
171 | 171 | return $queryRes->fetchAll(PDO::FETCH_NAMED);
|
172 | 172 | });
|
173 | 173 | } else {
|
@@ -270,23 +270,18 @@ private function queryString($tables)
|
270 | 270 | JOIN
|
271 | 271 | {$explicitDB[0]}..systypes as systypes noholdlock ON systypes.usertype = syscolumns.usertype
|
272 | 272 | WHERE
|
273 |
| - systypes.name NOT IN ('timestamp', 'sysname', 'longsysname', 'nchar', 'nvarchar') |
274 |
| - AND systypes.usertype < 100 |
275 |
| - AND object_name(syscolumns.id, db_id('{$explicitDB[0]}')) = '{$explicitDB[1]}' |
| 273 | + object_name(syscolumns.id, db_id('{$explicitDB[0]}')) = '{$explicitDB[1]}' |
276 | 274 | SQL;
|
277 | 275 | } else {
|
278 | 276 | return <<<SQL
|
279 | 277 | SELECT
|
280 | 278 | syscolumns.name,
|
281 | 279 | systypes.name AS type
|
282 | 280 | FROM
|
283 |
| - syscolumns |
| 281 | + syscolumns noholdlock |
284 | 282 | JOIN
|
285 |
| - systypes ON systypes.usertype = syscolumns.usertype |
286 |
| - WHERE |
287 |
| - systypes.name NOT IN ('timestamp', 'sysname', 'longsysname', 'nchar', 'nvarchar') |
288 |
| - AND systypes.usertype < 100 |
289 |
| - AND object_name(syscolumns.id) = '{$tables}' |
| 283 | + systypes noholdlock ON systypes.usertype = syscolumns.usertype |
| 284 | + WHERE object_name(syscolumns.id) = '{$tables}' |
290 | 285 | SQL;
|
291 | 286 | }
|
292 | 287 | }
|
@@ -341,7 +336,7 @@ private function compileNewQuery($query, $bindings)
|
341 | 336 | $newQuery = join(array_map(fn ($k1, $k2) => $k1.$k2, $partQuery, $bindings));
|
342 | 337 | $newQuery = str_replace('[]', '', $newQuery);
|
343 | 338 | $application_encoding = config('database.sybase.application_encoding');
|
344 |
| - if (is_null($application_encoding)) { |
| 339 | + if (is_null($application_encoding) || $application_encoding == false) { |
345 | 340 | return $newQuery;
|
346 | 341 | }
|
347 | 342 | $database_charset = config('database.sybase.database_charset');
|
@@ -391,7 +386,7 @@ public function select($query, $bindings = [], $useReadPdo = true)
|
391 | 386 | $result = [...$result];
|
392 | 387 |
|
393 | 388 | $application_encoding = config('database.sybase.application_encoding');
|
394 |
| - if (is_null($application_encoding)) { |
| 389 | + if (is_null($application_encoding) || $application_encoding == false) { |
395 | 390 | return $result;
|
396 | 391 | }
|
397 | 392 | $database_charset = config('database.sybase.database_charset');
|
|
0 commit comments