didou Fri Feb 2 00:26:54 2007 UTC
Modified files: /phpdoc/en/reference/pdo_sqlite/functions PDO-sqliteCreateAggregate.xml PDO-sqliteCreateFunction.xml Log: Fix and document callbacks for PDO->sqliteCreateAggregate() Also fix links and revamp ref.pdo_sqlite
http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/pdo_sqlite/functions/PDO-sqliteCreateAggregate.xml?r1=1.4&r2=1.5&diff_format=u Index: phpdoc/en/reference/pdo_sqlite/functions/PDO-sqliteCreateAggregate.xml diff -u phpdoc/en/reference/pdo_sqlite/functions/PDO-sqliteCreateAggregate.xml:1.4 phpdoc/en/reference/pdo_sqlite/functions/PDO-sqliteCreateAggregate.xml:1.5 --- phpdoc/en/reference/pdo_sqlite/functions/PDO-sqliteCreateAggregate.xml:1.4 Sat Sep 10 16:45:52 2005 +++ phpdoc/en/reference/pdo_sqlite/functions/PDO-sqliteCreateAggregate.xml Fri Feb 2 00:26:54 2007 @@ -1,8 +1,8 @@ <?xml version='1.0' encoding='iso-8859-1'?> -<!-- $Revision: 1.4 $ --> +<!-- $Revision: 1.5 $ --> <refentry id="function.PDO-sqliteCreateAggregate"> <refnamediv> - <refname>PDO::sqliteCreateAggregate</refname> + <refname>PDO->sqliteCreateAggregate()</refname> <refpurpose> Registers an aggregating User Defined Function for use in SQL statements </refpurpose> @@ -10,31 +10,26 @@ <refsect1 role="description"> &reftitle.description; - <methodsynopsis> - <type>bool</type><methodname>PDO::sqliteCreateAggregate</methodname> - <methodparam><type>string</type><parameter>function_name</parameter></methodparam> - <methodparam><type>callback</type><parameter>step_func</parameter></methodparam> - <methodparam><type>callback</type><parameter>finalize_func</parameter></methodparam> - <methodparam choice="opt"><type>int</type><parameter>num_args</parameter></methodparam> - </methodsynopsis> + <classsynopsis> + <ooclass><classname>PDO</classname></ooclass> + <methodsynopsis> + <type>bool</type><methodname>sqliteCreateAggregate</methodname> + <methodparam><type>string</type><parameter>function_name</parameter></methodparam> + <methodparam><type>callback</type><parameter>step_func</parameter></methodparam> + <methodparam><type>callback</type><parameter>finalize_func</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter>num_args</parameter></methodparam> + </methodsynopsis> + </classsynopsis> &warn.experimental.func; <para> - <function>PDO::sqliteCreateAggregate</function> is similar to - <function>PDO::sqliteCreateFunction</function> except that it registers - functions that can be used to calculate a result aggregated across all the - rows of a query. - </para> - <para> - The key difference between this function and - <function>PDO::sqliteCreateFunction</function> is that two functions are - required to manage the aggregate; <parameter>step_func</parameter> is - called for each row of the result set. Your PHP function should - accumulate the result and store it into the aggregation context. - Once all the rows have been processed, - <parameter>finalize_func</parameter> will be called and it should then - take the data from the aggregation context and return the result. - Callback functions should return a type understood by SQLite (i.e. - <link linkend="language.types.intro">scalar type</link>). + This method is similar to <xref linkend="function.PDO-sqliteCreateFunction" + /> except that it registers functions that can be used to calculate a + result aggregated across all the rows of a query. + </para> + <para> + The key difference between this method and <xref + linkend="function.PDO-sqliteCreateFunction" /> is that two functions are + required to manage the aggregate. </para> </refsect1> @@ -54,7 +49,29 @@ <term><parameter>step_func</parameter></term> <listitem> <para> - Callback function called for each row of the result set. + Callback function called for each row of the result set. Your PHP + function should accumulate the result and store it in the aggregation + context. + </para> + <para> + This function need to be defined as: + <methodsynopsis> + <methodname><replaceable>step</replaceable></methodname> + <methodparam><type>mixed</type><parameter>context</parameter></methodparam> + <methodparam><type>int</type><parameter>rownumber</parameter></methodparam> + <methodparam><type>mixed</type><parameter>value1</parameter></methodparam> + <methodparam choice="opt"><type>mixed</type><parameter>value2</parameter></methodparam> + <methodparam choice="opt"><type>mixed</type><parameter>..</parameter></methodparam> + </methodsynopsis> + </para> + <para> + <varname>context</varname> will be &null; for the first row; on + subsequent rows it will have the value that was previously returned + from the step function; you should use this to maintain the aggregate + state. + </para> + <para> + <varname>rownumber</varname> will hold the current row number. </para> </listitem> </varlistentry> @@ -62,7 +79,32 @@ <term><parameter>finalize_func</parameter></term> <listitem> <para> - Callback function to aggregate the "stepped" data from each row. + Callback function to aggregate the "stepped" data from each row. + Once all the rows have been processed, this function will be called + and it should then take the data from the aggregation context and + return the result. Callback functions should return a type understood + by SQLite (i.e. <link + linkend="language.types.intro">scalar type</link>). + </para> + <para> + This function need to be defined as: + <methodsynopsis> + <methodname><replaceable>fini</replaceable></methodname> + <methodparam><type>mixed</type><parameter>context</parameter></methodparam> + <methodparam><type>int</type><parameter>rownumber</parameter></methodparam> + </methodsynopsis> + </para> + <para> + <varname>context</varname> will hold the return value from the very + last call to the step function. + </para> + <para> + <varname>rownumber</varname> will hold the number of rows over which + the aggregate was performed. + </para> + <para> + The return value of this function will be used as the return value for + the aggregate. </para> </listitem> </varlistentry> @@ -107,14 +149,14 @@ } $insert = null; -function max_len_step(&$context, $string) +function max_len_step(&$context, $rownumber, $string) { if (strlen($string) > $context) { $context = strlen($string); } } -function max_len_finalize(&$context) +function max_len_finalize(&$context, $rownumber) { return $context; } @@ -158,9 +200,9 @@ </tip> <tip> <para> - You can use <function>PDO::sqliteCreateFunction</function> and - <function>PDO::sqliteCreateAggregate</function> to override SQLite native - SQL functions. + You can use <xref linkend="function.PDO-sqliteCreateFunction" /> and + <xref linkend="function.PDO-sqliteCreateAggregate" /> to override SQLite + native SQL functions. </para> </tip> <note> @@ -177,7 +219,7 @@ &reftitle.seealso; <para> <simplelist> - <member><function>PDO::sqliteCreateFunction</function></member> + <member><xref linkend="function.PDO-sqliteCreateFunction" /></member> <member><function>sqlite_create_function</function></member> <member><function>sqlite_create_aggregate</function></member> </simplelist> http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/pdo_sqlite/functions/PDO-sqliteCreateFunction.xml?r1=1.4&r2=1.5&diff_format=u Index: phpdoc/en/reference/pdo_sqlite/functions/PDO-sqliteCreateFunction.xml diff -u phpdoc/en/reference/pdo_sqlite/functions/PDO-sqliteCreateFunction.xml:1.4 phpdoc/en/reference/pdo_sqlite/functions/PDO-sqliteCreateFunction.xml:1.5 --- phpdoc/en/reference/pdo_sqlite/functions/PDO-sqliteCreateFunction.xml:1.4 Sat Sep 10 16:45:53 2005 +++ phpdoc/en/reference/pdo_sqlite/functions/PDO-sqliteCreateFunction.xml Fri Feb 2 00:26:54 2007 @@ -1,8 +1,8 @@ <?xml version='1.0' encoding='iso-8859-1'?> -<!-- $Revision: 1.4 $ --> +<!-- $Revision: 1.5 $ --> <refentry id="function.PDO-sqliteCreateFunction"> <refnamediv> - <refname>PDO::sqliteCreateFunction</refname> + <refname>PDO->sqliteCreateFunction()</refname> <refpurpose> Registers a User Defined Function for use in SQL statements </refpurpose> @@ -10,18 +10,21 @@ <refsect1 role="description"> &reftitle.description; - <methodsynopsis> - <type>bool</type><methodname>PDO::sqliteCreateFunction</methodname> - <methodparam><type>string</type><parameter>function_name</parameter></methodparam> - <methodparam><type>callback</type><parameter>callback</parameter></methodparam> - <methodparam choice="opt"><type>int</type><parameter>num_args</parameter></methodparam> - </methodsynopsis> + <classsynopsis> + <ooclass><classname>PDO</classname></ooclass> + <methodsynopsis> + <type>bool</type><methodname>sqliteCreateFunction</methodname> + <methodparam><type>string</type><parameter>function_name</parameter></methodparam> + <methodparam><type>callback</type><parameter>callback</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter>num_args</parameter></methodparam> + </methodsynopsis> + </classsynopsis> &warn.experimental.func; <para> - <function>PDO::sqliteCreateFunction</function> allows you to register a PHP - function with SQLite as an <acronym>UDF</acronym> (User Defined - Function), so that it can be called from within your SQL statements. + This method allows you to register a PHP function with SQLite as an + <acronym>UDF</acronym> (User Defined Function), so that it can be called + from within your SQL statements. </para> <para> The UDF can be used in any SQL statement that can call functions, such as @@ -127,9 +130,9 @@ --> <tip> <para> - You can use <function>PDO::sqliteCreateFunction</function> and - <function>PDO::sqliteCreateAggregate</function> to override SQLite native - SQL functions. + You can use <xref linkend="function.PDO-sqliteCreateFunction" /> and + <xref linkend="function.PDO-sqliteCreateAggregate" /> to override SQLite + native SQL functions. </para> </tip> <note> @@ -144,7 +147,7 @@ &reftitle.seealso; <para> <simplelist> - <member><function>PDO::sqliteCreateAggregate</function></member> + <member><xref linkend="function.PDO-sqliteCreateAggregate" /></member> <member><function>sqlite_create_function</function></member> <member><function>sqlite_create_aggregate</function></member> </simplelist>