- Fixed the missing DISTINCT keyword while rendering select()
- Added a fragment remover in Repository
This commit is contained in:
		
							parent
							
								
									8f9332fbad
								
							
						
					
					
						commit
						e7d5d5965b
					
				@ -17,7 +17,7 @@ class Select extends Fragment {
 | 
			
		||||
    protected array $fields = [];
 | 
			
		||||
 | 
			
		||||
    const SQL_TOKEN = "SELECT";
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    public function set($fields) : self
 | 
			
		||||
    {
 | 
			
		||||
        $this->fields = is_array($fields) ? $fields : [ $fields ];
 | 
			
		||||
@ -48,6 +48,7 @@ class Select extends Fragment {
 | 
			
		||||
        return $this->renderSegments([
 | 
			
		||||
            ( $this->union ? 'UNION' : false ),
 | 
			
		||||
            static::SQL_TOKEN,
 | 
			
		||||
            ( $this->distinct ? 'DISTINCT' : false ),
 | 
			
		||||
            ( $this->top ? sprintf('TOP (%s)', $this->top) : false ),
 | 
			
		||||
            implode(', ', $this->fields)
 | 
			
		||||
        ]);
 | 
			
		||||
 | 
			
		||||
@ -271,6 +271,13 @@ class Repository
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function removeQueryFragment(Query\Fragment $fragment) : self
 | 
			
		||||
    {
 | 
			
		||||
        $this->queryBuilder->removeFragment($fragment);
 | 
			
		||||
 | 
			
		||||
        return $this;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function select(/*array|Stringable*/ $fields) : self
 | 
			
		||||
    {
 | 
			
		||||
        $this->queryBuilder->select($fields);
 | 
			
		||||
@ -278,6 +285,14 @@ class Repository
 | 
			
		||||
        return $this;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function distinct(/*array|Stringable*/ $fields) : self
 | 
			
		||||
    {
 | 
			
		||||
        $this->queryBuilder->select($fields);
 | 
			
		||||
        $this->queryBuilder->getFragment(Query\Select::class)->distinct = true;
 | 
			
		||||
 | 
			
		||||
        return $this;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function insert(array $fieldlist, string $table, string $alias, ? string $schema) : self
 | 
			
		||||
    {
 | 
			
		||||
        $this->queryBuilder->insert($fieldlist, $this->escapeTable($table), $alias, $this->escapedDatabase(), $schema);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user