summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlsces <lester@lsces.co.uk>2026-02-24 16:56:55 +0000
committerlsces <lester@lsces.co.uk>2026-02-24 16:56:55 +0000
commit87f4cfe44872d8514bd015d45a14b9a7dc7fc204 (patch)
treedf63526eb7a6ed914a70a6de545ea8a4f294d0d1
parent5a5c31e8b7471b7196c08254b386426059018780 (diff)
downloadilluminate-firebird-87f4cfe44872d8514bd015d45a14b9a7dc7fc204.tar.gz
illuminate-firebird-87f4cfe44872d8514bd015d45a14b9a7dc7fc204.tar.bz2
illuminate-firebird-87f4cfe44872d8514bd015d45a14b9a7dc7fc204.zip
Change the Builder overloads to follow the standard for other database drivers. This is the place where restoring the lower case key values needs to be processed.
-rwxr-xr-xsrc/FirebirdConnection.php6
-rwxr-xr-xsrc/Query/FirebirdBuilder.php (renamed from src/Query/Builder.php)57
-rwxr-xr-xsrc/Schema/FirebirdBuilder.php10
3 files changed, 69 insertions, 4 deletions
diff --git a/src/FirebirdConnection.php b/src/FirebirdConnection.php
index 8695799..a6a849b 100755
--- a/src/FirebirdConnection.php
+++ b/src/FirebirdConnection.php
@@ -4,10 +4,10 @@ namespace Xgrz\Firebird;
use Illuminate\Database\Connection as DatabaseConnection;
use Illuminate\Support\Collection;
-use Xgrz\Firebird\Query\Builder as FirebirdQueryBuilder;
+use Xgrz\Firebird\Query\FirebirdBuilder as FirebirdQueryBuilder;
use Xgrz\Firebird\Query\Grammars\FirebirdGrammar as FirebirdQueryGrammar;
use Xgrz\Firebird\Query\Processors\FirebirdProcessor as FirebirdQueryProcessor;
-use Xgrz\Firebird\Schema\Builder as FirebirdSchemaBuilder;
+use Xgrz\Firebird\Schema\FirebirdBuilder as FirebirdSchemaBuilder;
use Xgrz\Firebird\Schema\Grammars\FirebirdGrammar as FirebirdSchemaGrammar;
class FirebirdConnection extends DatabaseConnection
@@ -77,7 +77,7 @@ class FirebirdConnection extends DatabaseConnection
/**
* Get a new query builder instance.
*
- * @return \Xgrz\Firebird\Query\Builder
+ * @return \Xgrz\Firebird\Query\FirebirdBuilder
*/
public function query()
{
diff --git a/src/Query/Builder.php b/src/Query/FirebirdBuilder.php
index cda4f1f..98d2b18 100755
--- a/src/Query/Builder.php
+++ b/src/Query/FirebirdBuilder.php
@@ -3,8 +3,9 @@
namespace Xgrz\Firebird\Query;
use Illuminate\Database\Query\Builder as QueryBuilder;
+use Illuminate\Support\Collection;
-class Builder extends QueryBuilder
+class FirebirdBuilder extends QueryBuilder
{
/**
* Determine if any rows exist for the current query.
@@ -51,4 +52,58 @@ class Builder extends QueryBuilder
? parent::whereRaw("UPPER($wrapped) LIKE UPPER(?)", [$value])
: parent::orWhereRaw("UPPER($wrapped) LIKE UPPER(?)", [$value]);
}
+
+ /**
+ * Retrieve column values from rows represented as objects.
+ *
+ * @param array $queryResult
+ * @param string $column
+ * @param string $key
+ * @return Collection
+ */
+ protected function pluckFromObjectColumn($queryResult, $column, $key)
+ {
+ $results = [];
+ $column = strtoupper($column);
+ $key = strtoupper($key);
+
+ foreach ($queryResult as $item) {
+ if (is_null($key)) {
+ foreach ($queryResult as $row) {
+ $results[] = $row->$column;
+ }
+ } else {
+ foreach ($queryResult as $row) {
+ $results[$row->$key] = $row->$column;
+ }
+ }
+ }
+
+ return new Collection($results);
+ }
+
+ /**
+ * Retrieve column values from rows represented as arrays.
+ *
+ * @param array $queryResult
+ * @param string $column
+ * @param string $key
+ * @return Collection
+ */
+ protected function pluckFromArrayColumn($queryResult, $column, $key)
+ {
+ $results = [];
+
+ if (is_null($key)) {
+ foreach ($queryResult as $row) {
+ $results[] = $row[$column];
+ }
+ } else {
+ foreach ($queryResult as $row) {
+ $results[$row[$key]] = $row[$column];
+ }
+ }
+
+ return new Collection($results);
+ }
}
diff --git a/src/Schema/FirebirdBuilder.php b/src/Schema/FirebirdBuilder.php
new file mode 100755
index 0000000..0b5a1a7
--- /dev/null
+++ b/src/Schema/FirebirdBuilder.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace Xgrz\Firebird\Schema;
+
+use Illuminate\Database\Schema\Builder as SchemaBuilder;
+
+class FirebirdBuilder extends SchemaBuilder
+{
+ //
+}