Hi,
thank you, I have already the adapter platform and got the limit and skip on
the sql platform working.
But a few questions remain, in \Zend\Db\Sql\Select in processSelect the
quantifier are processed.
The skip and first of informix seem similar and my first apporach was to add
another select specification with 4 arguments and
do something like this:
protected $specifications = array(
...
self::SELECT => array(
'SELECT %1$s FROM %2$s' => array(
array(1 => '%1$s', 2 => '%1$s AS %2$s', 'combinedby' => ', '),
null
),
'SELECT %1$s %2$s FROM %3$s' => array(
null,
array(1 => '%1$s', 2 => '%1$s AS %2$s', 'combinedby' => ', '),
null
),
'SELECT SKIP %1$s FIRST %2$s %3$s FROM %4$s' => array(
null,
null,
array(1 => '%1$s', 2 => '%1$s AS %2$s', 'combinedby' => ', '),
null
),
'SELECT %1$s' => array(
array(1 => '%1$s', 2 => '%1$s AS %2$s', 'combinedby' => ', '),
),
),
...
in processSelect() I return:
if (!isset($table)) {
return array($columns);
} elseif (isset($quantifier)) {
return array($quantifier, $columns, $table);
} elseif (isset($this->offset) && isset($this->limit)) {
return array($this->offset, $this->limit, $columns, $table);
} else {
return array($columns, $table);
}
That worked likea charm, but is a totally other way than in Platform\MySql.
Is there an oversight on my side why the other method is better in Mysql?
Greetings
Marc
> -----Ursprüngliche Nachricht-----
> Von: Ralf Eggert [mailto:[email protected]]
> Gesendet: Mittwoch, 26. November 2014 17:43
> An: [email protected]
> Betreff: Re: [fw-general] \Zend\Db and what to do?
>
> Hi Marc,
>
> first of all, I have no idea about informix at all. But this is what I would
> do to
> start informix support for ZF2.
>
> First, you need the driver. You must decide if you want to use PDO or the
> native ifx extension. If you want to use PDO the driver part is quite simple,
> because you can use the Zend\Db\Adapter\Driver\Pdo. If not you need to
> implement the native ifx support. Please look at the classes of
> Zend\Db\Adapter\Driver\Mysqli to get you started.
>
> Second, you need the platform. For example look at the MySQL
> implementation at Zend\Db\Adapter\Platform\Mysql. The platform is
> independent from the driver, ie. from PDO or ifx support.
>
> Third, you need the SQL implementation. Please look at the classes of
> Zend\Db\Sql\Platform\Mysql for MySQL inspiration. The concrete
> implementation for LIMIT and OFFSET can be found in the class
> Zend\Db\Sql\Platform\Mysql\SelectDecorator.
>
> Please could others correct me, if I am wrong in any point?
>
> Marc, good luck and have fun. Although I won't need it personally, but it
> would be nice if you could add your implementation to the framework by a
> PR if finished or at least create a module for the informix support.
>
> Thanks and best regards,
>
> Ralf
>
> --
> List: [email protected]
> Info: http://framework.zend.com/archives
> Unsubscribe: [email protected]
>