Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,16 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
"SELECT (c0_.object1 ??& ARRAY['test']) AS sclr_0 FROM ContainsJsons c0_",
'checks if single key exists in jsonb' => "SELECT (c0_.object1 ??& ARRAY['test']) AS sclr_0 FROM ContainsJsons c0_",
'checks if multiple keys exist in jsonb' => "SELECT (c0_.object1 ??& ARRAY['key1', 'key2']) AS sclr_0 FROM ContainsJsons c0_",
];
}

protected function getDqlStatements(): array
{
return [
\sprintf("SELECT ALL_ON_RIGHT_EXIST_ON_LEFT(e.object1, ARRAY('test')) FROM %s e", ContainsJsons::class),
'checks if single key exists in jsonb' => \sprintf("SELECT ALL_ON_RIGHT_EXIST_ON_LEFT(e.object1, ARRAY('test')) FROM %s e", ContainsJsons::class),
'checks if multiple keys exist in jsonb' => \sprintf("SELECT ALL_ON_RIGHT_EXIST_ON_LEFT(e.object1, ARRAY('key1', 'key2')) FROM %s e", ContainsJsons::class),
];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,18 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
"SELECT (c0_.object1 ??| ARRAY['test']) AS sclr_0 FROM ContainsJsons c0_",
'checks if any key exists in jsonb' => "SELECT (c0_.object1 ??| ARRAY['test']) AS sclr_0 FROM ContainsJsons c0_",
'checks if any of multiple keys exist in jsonb' => "SELECT (c0_.object1 ??| ARRAY['key1', 'key2']) AS sclr_0 FROM ContainsJsons c0_",
'checks with parameter' => 'SELECT (c0_.object1 ??| ?) AS sclr_0 FROM ContainsJsons c0_',
];
}

protected function getDqlStatements(): array
{
return [
\sprintf("SELECT ANY_ON_RIGHT_EXISTS_ON_LEFT(e.object1, ARRAY('test')) FROM %s e", ContainsJsons::class),
'checks if any key exists in jsonb' => \sprintf("SELECT ANY_ON_RIGHT_EXISTS_ON_LEFT(e.object1, ARRAY('test')) FROM %s e", ContainsJsons::class),
'checks if any of multiple keys exist in jsonb' => \sprintf("SELECT ANY_ON_RIGHT_EXISTS_ON_LEFT(e.object1, ARRAY('key1', 'key2')) FROM %s e", ContainsJsons::class),
'checks with parameter' => \sprintf('SELECT ANY_ON_RIGHT_EXISTS_ON_LEFT(e.object1, :parameter) FROM %s e', ContainsJsons::class),
];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
'SELECT c0_.id AS id_0 FROM ContainsArrays c0_ WHERE c0_.id > ANY(c0_.array1)',
'any elements match condition' => 'SELECT c0_.id AS id_0 FROM ContainsArrays c0_ WHERE c0_.id > ANY(c0_.array1)',
];
}

protected function getDqlStatements(): array
{
return [
\sprintf('SELECT e.id FROM %s e WHERE e.id > ANY_OF(e.array1)', ContainsArrays::class),
'any elements match condition' => \sprintf('SELECT e.id FROM %s e WHERE e.id > ANY_OF(e.array1)', ContainsArrays::class),
];
}
}
18 changes: 6 additions & 12 deletions tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/ArrTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,24 +19,18 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
// Multiple literal values
"SELECT ARRAY['foo', 'bar', 'baz'] AS sclr_0 FROM ContainsArrays c0_",
// Column references
'SELECT ARRAY[c0_.array1] AS sclr_0 FROM ContainsArrays c0_',
// Mix of column references and literals
"SELECT ARRAY[c0_.array1, 'test-value', c0_.array2] AS sclr_0 FROM ContainsArrays c0_",
'creates array from multiple literal values' => "SELECT ARRAY['foo', 'bar', 'baz'] AS sclr_0 FROM ContainsArrays c0_",
'creates array from column references' => 'SELECT ARRAY[c0_.array1] AS sclr_0 FROM ContainsArrays c0_',
'creates array from mix of column references and literals' => "SELECT ARRAY[c0_.array1, 'test-value', c0_.array2] AS sclr_0 FROM ContainsArrays c0_",
];
}

protected function getDqlStatements(): array
{
return [
// Multiple literal values
\sprintf("SELECT ARRAY('foo', 'bar', 'baz') FROM %s e", ContainsArrays::class),
// Column references
\sprintf('SELECT ARRAY(e.array1) FROM %s e', ContainsArrays::class),
// Mix of column references and literals
\sprintf("SELECT ARRAY(e.array1, 'test-value', e.array2) FROM %s e", ContainsArrays::class),
'creates array from multiple literal values' => \sprintf("SELECT ARRAY('foo', 'bar', 'baz') FROM %s e", ContainsArrays::class),
'creates array from column references' => \sprintf('SELECT ARRAY(e.array1) FROM %s e', ContainsArrays::class),
'creates array from mix of column references and literals' => \sprintf("SELECT ARRAY(e.array1, 'test-value', e.array2) FROM %s e", ContainsArrays::class),
];
Comment on lines 30 to 34
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Consider adding more comprehensive PostgreSQL ARRAY test cases

The current test cases cover the basic usage of PostgreSQL ARRAY constructor, but could be expanded to include additional PostgreSQL-specific functionality according to the official documentation:

  1. Creating arrays with NULL values: ARRAY[1, NULL, 3]
  2. Creating arrays with different data types: ARRAY[1, 'text', TRUE]
  3. Creating multidimensional arrays: ARRAY[[1,2], [3,4]]
  4. Testing empty arrays: ARRAY[]

These additional test cases would provide more comprehensive coverage of PostgreSQL's ARRAY functionality.


🌐 Web query:

PostgreSQL ARRAY constructor examples and use cases

💡 Result:

PostgreSQL's ARRAY constructor provides flexible ways to work with array data types, offering both direct syntax options and programmatic functionality. Here's a breakdown of key implementations:

Array Creation and Insertion

Basic array insertion can be done with either:

  • ARRAY[] constructor syntax
INSERT INTO contacts (phones) VALUES (ARRAY['(+1)555-1234', '(+1)555-5678']) [5]
  • Curly brace literals (requires single-quoted string)
INSERT INTO sal_emp (pay_by_quarter) VALUES ('{10000,10000,10000,10000}') [3]

Multidimensional arrays require consistent sub-array dimensions:

CREATE TABLE teams (
    id SERIAL PRIMARY KEY,
    members TEXT[][]
);
INSERT INTO teams VALUES (ARRAY[['Alice','Bob'], ['Carol','Dave']]) [1][3]

Mismatched dimensions trigger errors like:
ERROR: multidimensional arrays must have matching sub-array dimensions [3]


Array Querying and Manipulation

Element access uses 1-based indexing:

SELECT phones[1] FROM contacts WHERE name = 'John' [5]

Array searching with ANY():

SELECT * FROM contacts WHERE '(+1)555-1234' = ANY(phones) [5]

Using UNNEST() to expand arrays:

SELECT element FROM UNNEST(ARRAY['A','B','C']) AS t(element) [2]

Aggregation with ARRAY_AGG():

SELECT ARRAY_AGG(product) FROM orders [2]

Common Use Cases

  1. Storing multiple related values

    • Phone numbers for contacts [5][6]
    • Coordinates in GIS data (REAL[2] for lat/long) [4][5]
  2. Matrix/Grid Data

    • Team structures (2D text arrays) [1]
    • Financial quarters (integer[4]) [3]
  3. Temporary Data Handling

    • Using arrays with UNNEST for batch operations [2]
    • Simplifying complex joins in analytical queries

Key Functions

Function Usage Example Purpose
array_cat() array_cat(ARRAY[1,2], ARRAY[3,4]) Concatenates arrays [3][4]
array_length() array_length(phones, 1) Returns dimension length [4][5]
array_replace() array_replace(phones, 'old','new') Modifies element values [5]
array_remove() array_remove(phones, '(discontinued)') Deletes elements [5]

Implementation Notes

  • Performance: Arrays > 100 elements may benefit from GIN/GIST indexes [4]
  • Type Safety: All elements must match declared type (e.g., text[] won't accept integers)
  • Updating Arrays: Modify individual elements (phones[2] = '...') or entire arrays [5]

For most relational datasets, normalization remains preferable, but arrays shine in scenarios requiring ordered collections or when integrating with applications using array data structures.

Citations:


Expand PostgreSQL ARRAY Test Cases for Comprehensive Coverage

The current tests in tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/ArrTest.php (lines 30–34) only validate basic usage of the ARRAY constructor. To better reflect PostgreSQL’s ARRAY functionality—as seen in standard usage examples—it would be beneficial to extend the test cases. Consider adding additional scenarios such as:

  • Arrays with NULL values: e.g., ARRAY[1, NULL, 3]
  • Arrays with mixed data types: e.g., ARRAY[1, 'text', TRUE]
  • Multidimensional arrays: e.g., ARRAY[[1,2], [3,4]]
  • Empty arrays: e.g., ARRAY[]

These extra tests would ensure robust coverage of both typical and edge-case behaviors.

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,18 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
'SELECT array_append(c0_.array1, 1989) AS sclr_0 FROM ContainsArrays c0_',
"SELECT array_append(c0_.array1, 'country') AS sclr_0 FROM ContainsArrays c0_",
'SELECT array_append(c0_.array1, ?) AS sclr_0 FROM ContainsArrays c0_',
'appends string element to array' => "SELECT array_append(c0_.array1, 'new-value') AS sclr_0 FROM ContainsArrays c0_",
'appends numeric element to array' => 'SELECT array_append(c0_.array1, 42) AS sclr_0 FROM ContainsArrays c0_',
'appends element using parameter' => 'SELECT array_append(c0_.array1, ?) AS sclr_0 FROM ContainsArrays c0_',
];
}

protected function getDqlStatements(): array
{
return [
\sprintf('SELECT ARRAY_APPEND(e.array1, 1989) FROM %s e', ContainsArrays::class),
\sprintf("SELECT ARRAY_APPEND(e.array1, 'country') FROM %s e", ContainsArrays::class),
\sprintf('SELECT ARRAY_APPEND(e.array1, :dql_parameter) FROM %s e', ContainsArrays::class),
'appends string element to array' => \sprintf("SELECT ARRAY_APPEND(e.array1, 'new-value') FROM %s e", ContainsArrays::class),
'appends numeric element to array' => \sprintf('SELECT ARRAY_APPEND(e.array1, 42) FROM %s e', ContainsArrays::class),
'appends element using parameter' => \sprintf('SELECT ARRAY_APPEND(e.array1, :dql_parameter) FROM %s e', ContainsArrays::class),
];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
'SELECT cardinality(c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
'gets cardinality of array' => 'SELECT cardinality(c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
];
}

protected function getDqlStatements(): array
{
return [
\sprintf('SELECT ARRAY_CARDINALITY(e.array1) FROM %s e', ContainsArrays::class),
'gets cardinality of array' => \sprintf('SELECT ARRAY_CARDINALITY(e.array1) FROM %s e', ContainsArrays::class),
];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,16 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
'SELECT array_cat(c0_.array1, c0_.array2) AS sclr_0 FROM ContainsArrays c0_',
'concatenates two arrays' => 'SELECT array_cat(c0_.array1, c0_.array2) AS sclr_0 FROM ContainsArrays c0_',
'concatenates with parameter' => 'SELECT array_cat(c0_.array1, ?) AS sclr_0 FROM ContainsArrays c0_',
];
}

protected function getDqlStatements(): array
{
return [
\sprintf('SELECT ARRAY_CAT(e.array1, e.array2) FROM %s e', ContainsArrays::class),
'concatenates two arrays' => \sprintf('SELECT ARRAY_CAT(e.array1, e.array2) FROM %s e', ContainsArrays::class),
'concatenates with parameter' => \sprintf('SELECT ARRAY_CAT(e.array1, :parameter) FROM %s e', ContainsArrays::class),
];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
'SELECT array_dims(c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
'gets dimensions of array field' => 'SELECT array_dims(c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
];
}

protected function getDqlStatements(): array
{
return [
\sprintf('SELECT ARRAY_DIMENSIONS(e.array1) FROM %s e', ContainsArrays::class),
'gets dimensions of array field' => \sprintf('SELECT ARRAY_DIMENSIONS(e.array1) FROM %s e', ContainsArrays::class),
];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,16 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
'SELECT array_length(c0_.array1, 1) AS sclr_0 FROM ContainsArrays c0_',
'SELECT array_length(c0_.array1, ?) AS sclr_0 FROM ContainsArrays c0_',
'gets length of array with hardcoded dimension' => 'SELECT array_length(c0_.array1, 1) AS sclr_0 FROM ContainsArrays c0_',
'gets length of array with parameterized dimension' => 'SELECT array_length(c0_.array1, ?) AS sclr_0 FROM ContainsArrays c0_',
];
}

protected function getDqlStatements(): array
{
return [
\sprintf('SELECT ARRAY_LENGTH(e.array1, 1) FROM %s e', ContainsArrays::class),
\sprintf('SELECT ARRAY_LENGTH(e.array1, :dql_parameter) FROM %s e', ContainsArrays::class),
'gets length of array with hardcoded dimension' => \sprintf('SELECT ARRAY_LENGTH(e.array1, 1) FROM %s e', ContainsArrays::class),
'gets length of array with parameterized dimension' => \sprintf('SELECT ARRAY_LENGTH(e.array1, :dql_parameter) FROM %s e', ContainsArrays::class),
];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
'SELECT array_ndims(c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
'gets number of dimensions of array field' => 'SELECT array_ndims(c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
];
}

protected function getDqlStatements(): array
{
return [
\sprintf('SELECT ARRAY_NUMBER_OF_DIMENSIONS(e.array1) FROM %s e', ContainsArrays::class),
'gets number of dimensions of array field' => \sprintf('SELECT ARRAY_NUMBER_OF_DIMENSIONS(e.array1) FROM %s e', ContainsArrays::class),
];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,18 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
'SELECT array_prepend(1885, c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
"SELECT array_prepend('red', c0_.array1) AS sclr_0 FROM ContainsArrays c0_",
'SELECT array_prepend(?, c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
'prepends string element to array' => "SELECT array_prepend('new-value', c0_.array1) AS sclr_0 FROM ContainsArrays c0_",
'prepends numeric element to array' => 'SELECT array_prepend(42, c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
'prepends element using parameter' => 'SELECT array_prepend(?, c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
];
}

protected function getDqlStatements(): array
{
return [
\sprintf('SELECT ARRAY_PREPEND(1885, e.array1) FROM %s e', ContainsArrays::class),
\sprintf("SELECT ARRAY_PREPEND('red', e.array1) FROM %s e", ContainsArrays::class),
\sprintf('SELECT ARRAY_PREPEND(:dql_parameter, e.array1) FROM %s e', ContainsArrays::class),
'prepends string element to array' => \sprintf("SELECT ARRAY_PREPEND('new-value', e.array1) FROM %s e", ContainsArrays::class),
'prepends numeric element to array' => \sprintf('SELECT ARRAY_PREPEND(42, e.array1) FROM %s e', ContainsArrays::class),
'prepends element using parameter' => \sprintf('SELECT ARRAY_PREPEND(:dql_parameter, e.array1) FROM %s e', ContainsArrays::class),
];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,18 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
'SELECT array_remove(c0_.array1, 1944) AS sclr_0 FROM ContainsArrays c0_',
"SELECT array_remove(c0_.array1, 'peach') AS sclr_0 FROM ContainsArrays c0_",
'SELECT array_remove(c0_.array1, ?) AS sclr_0 FROM ContainsArrays c0_',
'removes string element from array' => "SELECT array_remove(c0_.array1, 'value-to-remove') AS sclr_0 FROM ContainsArrays c0_",
'removes numeric element from array' => 'SELECT array_remove(c0_.array1, 42) AS sclr_0 FROM ContainsArrays c0_',
'removes element using parameter' => 'SELECT array_remove(c0_.array1, ?) AS sclr_0 FROM ContainsArrays c0_',
];
}

protected function getDqlStatements(): array
{
return [
\sprintf('SELECT ARRAY_REMOVE(e.array1, 1944) FROM %s e', ContainsArrays::class),
\sprintf("SELECT ARRAY_REMOVE(e.array1, 'peach') FROM %s e", ContainsArrays::class),
\sprintf('SELECT ARRAY_REMOVE(e.array1, :dql_parameter) FROM %s e', ContainsArrays::class),
'removes string element from array' => \sprintf("SELECT ARRAY_REMOVE(e.array1, 'value-to-remove') FROM %s e", ContainsArrays::class),
'removes numeric element from array' => \sprintf('SELECT ARRAY_REMOVE(e.array1, 42) FROM %s e', ContainsArrays::class),
'removes element using parameter' => \sprintf('SELECT ARRAY_REMOVE(e.array1, :dql_parameter) FROM %s e', ContainsArrays::class),
];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,18 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
'SELECT array_replace(c0_.array1, 1939, 1957) AS sclr_0 FROM ContainsArrays c0_',
"SELECT array_replace(c0_.array1, 'green', 'mint') AS sclr_0 FROM ContainsArrays c0_",
"SELECT array_replace(c0_.array1, 'green', ?) AS sclr_0 FROM ContainsArrays c0_",
'replaces string element in array' => "SELECT array_replace(c0_.array1, 'old-value', 'new-value') AS sclr_0 FROM ContainsArrays c0_",
'replaces numeric element in array' => 'SELECT array_replace(c0_.array1, 42, 43) AS sclr_0 FROM ContainsArrays c0_',
'replaces element using parameters' => 'SELECT array_replace(c0_.array1, ?, ?) AS sclr_0 FROM ContainsArrays c0_',
];
}

protected function getDqlStatements(): array
{
return [
\sprintf('SELECT ARRAY_REPLACE(e.array1, 1939, 1957) FROM %s e', ContainsArrays::class),
\sprintf("SELECT ARRAY_REPLACE(e.array1, 'green', 'mint') FROM %s e", ContainsArrays::class),
\sprintf("SELECT ARRAY_REPLACE(e.array1, 'green', :dql_parameter) FROM %s e", ContainsArrays::class),
'replaces string element in array' => \sprintf("SELECT ARRAY_REPLACE(e.array1, 'old-value', 'new-value') FROM %s e", ContainsArrays::class),
'replaces numeric element in array' => \sprintf('SELECT ARRAY_REPLACE(e.array1, 42, 43) FROM %s e', ContainsArrays::class),
'replaces element using parameters' => \sprintf('SELECT ARRAY_REPLACE(e.array1, :old_value, :new_value) FROM %s e', ContainsArrays::class),
];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
'SELECT array_to_json(c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
'converts array to json' => 'SELECT array_to_json(c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
];
}

protected function getDqlStatements(): array
{
return [
\sprintf('SELECT ARRAY_TO_JSON(e.array1) FROM %s e', ContainsArrays::class),
'converts array to json' => \sprintf('SELECT ARRAY_TO_JSON(e.array1) FROM %s e', ContainsArrays::class),
];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
"SELECT array_to_string(c0_.array1, '; ') AS sclr_0 FROM ContainsArrays c0_",
'converts array to string with delimiter' => "SELECT array_to_string(c0_.array1, ',') AS sclr_0 FROM ContainsArrays c0_",
];
}

protected function getDqlStatements(): array
{
return [
\sprintf("SELECT ARRAY_TO_STRING(e.array1, '; ') FROM %s e", ContainsArrays::class),
'converts array to string with delimiter' => \sprintf("SELECT ARRAY_TO_STRING(e.array1, ',') FROM %s e", ContainsArrays::class),
];
}
}
20 changes: 13 additions & 7 deletions tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/CastTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions;

use Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsIntegers;
use Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsTexts;
use MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\Cast;

class CastTest extends TestCase
Expand All @@ -19,18 +19,24 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
'SELECT cast(c0_.integer1 as text) AS sclr_0 FROM ContainsIntegers c0_',
'SELECT cast(c0_.integer1 as varchar(8)) AS sclr_0 FROM ContainsIntegers c0_',
'SELECT cast(c0_.integer1 as numeric(8, 2)) AS sclr_0 FROM ContainsIntegers c0_',
'cast as integer' => 'SELECT cast(c0_.text1 as INTEGER) AS sclr_0 FROM ContainsTexts c0_',
'cast as text' => 'SELECT cast(c0_.text1 as TEXT) AS sclr_0 FROM ContainsTexts c0_',
'cast as json' => 'SELECT cast(c0_.text1 as JSON) AS sclr_0 FROM ContainsTexts c0_',
'cast as jsonb' => 'SELECT cast(c0_.text1 as JSONB) AS sclr_0 FROM ContainsTexts c0_',
'cast as boolean' => 'SELECT cast(c0_.text1 as BOOLEAN) AS sclr_0 FROM ContainsTexts c0_',
'cast with precision' => 'SELECT cast(c0_.text1 as DECIMAL(10, 2)) AS sclr_0 FROM ContainsTexts c0_',
];
}

protected function getDqlStatements(): array
{
return [
\sprintf('SELECT CAST(e.integer1 AS text) FROM %s e', ContainsIntegers::class),
\sprintf('SELECT CAST(e.integer1 AS varchar(8)) FROM %s e', ContainsIntegers::class),
\sprintf('SELECT CAST(e.integer1 AS numeric(8, 2)) FROM %s e', ContainsIntegers::class),
'cast as integer' => \sprintf('SELECT CAST(e.text1 AS INTEGER) FROM %s e', ContainsTexts::class),
'cast as text' => \sprintf('SELECT CAST(e.text1 AS TEXT) FROM %s e', ContainsTexts::class),
'cast as json' => \sprintf('SELECT CAST(e.text1 AS JSON) FROM %s e', ContainsTexts::class),
'cast as jsonb' => \sprintf('SELECT CAST(e.text1 AS JSONB) FROM %s e', ContainsTexts::class),
'cast as boolean' => \sprintf('SELECT CAST(e.text1 AS BOOLEAN) FROM %s e', ContainsTexts::class),
'cast with precision' => \sprintf('SELECT CAST(e.text1 AS DECIMAL(10, 2)) FROM %s e', ContainsTexts::class),
];
}
}
Loading
Loading