public function getListTableColumnsSQL($table, $database = null)
{
$table = $this->quoteStringLiteral($table);
// We do the funky subquery and join syscat.columns.default this crazy way because
// as of db2 v10, the column is CLOB(64k) and the distinct operator won't allow a CLOB,
// it wants shorter stuff like a varchar.
return "\n SELECT\n cols.default,\n subq.*\n FROM (\n SELECT DISTINCT\n c.tabschema,\n c.tabname,\n c.colname,\n c.colno,\n c.typename,\n c.nulls,\n c.length,\n c.scale,\n c.identity,\n tc.type AS tabconsttype,\n c.remarks AS comment,\n k.colseq,\n CASE\n WHEN c.generated = 'D' THEN 1\n ELSE 0\n END AS autoincrement\n FROM syscat.columns c\n LEFT JOIN (syscat.keycoluse k JOIN syscat.tabconst tc\n ON (k.tabschema = tc.tabschema\n AND k.tabname = tc.tabname\n AND tc.type = 'P'))\n ON (c.tabschema = k.tabschema\n AND c.tabname = k.tabname\n AND c.colname = k.colname)\n WHERE UPPER(c.tabname) = UPPER(" . $table . ")\n ORDER BY c.colno\n ) subq\n JOIN syscat.columns cols\n ON subq.tabschema = cols.tabschema\n AND subq.tabname = cols.tabname\n AND subq.colno = cols.colno\n ORDER BY subq.colno\n ";
}