Actually, it looks like we've solved that error too in Subs-Db-postgresql.php.
In between RC1 and RC2 you made a change to the code that reformats replace calls to PostgreSQL compatible calls. Here is the relevant diff section.
*** 579,600 ****
// Setup an UPDATE template.
$updateData = '';
$where = '';
- $count = 0;
foreach ($columns as $columnName => $type)
{
// Are we restricting the length?
if (strpos($type, 'string-') !== false)
! $actualType = sprintf($columnName . ' = SUBSTRING({string:%1$s}, 1, ' . substr($type, 7) . '), ', $count);
else
! $actualType = sprintf($columnName . ' = {%1$s:%2$s}, ', $type, $count);
// Has it got a key?
if (in_array($columnName, $keys))
$where .= (empty($where) ? '' : ' AND ') . substr($actualType,0, -2);
else
$updateData .= $actualType;
-
- $count++;
}
$updateData = substr($updateData, 0, -2);
--- 613,631 ----
// Setup an UPDATE template.
$updateData = '';
$where = '';
foreach ($columns as $columnName => $type)
{
// Are we restricting the length?
if (strpos($type, 'string-') !== false)
! $actualType = sprintf($columnName . ' = SUBSTRING({string:%1$s}, 1, ' . substr($type, 7) . '), ', $columnName);
else
! $actualType = sprintf($columnName . ' = {%1$s:%2$s}, ', $type, $columnName);
// Has it got a key?
if (in_array($columnName, $keys))
$where .= (empty($where) ? '' : ' AND ') . substr($actualType,0, -2);
else
$updateData .= $actualType;
}
$updateData = substr($updateData, 0, -2);
That removal of $count and changing the sprintfs to have $columnName rather than $count as the last argument breaks any operation that results in an SQL update. By reverting it back to the RC1 changes, it works perfectly, even with the new regexes. Attached is a diff for the exact patch to be made.
The Subs-Db-postgresql.php patch will fix the "The database value you're trying to insert does not exist: value" error on both upgrades and new installs using PostgreSQL, and the upgrade_2-0_postgresql.sql patch will fix upgrade issues from RC1 to RC2 using PostgreSQL. Apply with "patch -p1 < /path/to/diff" while in the SMF folder.
Everything else seems to be working at this point, I will mark this solved once I am able to confirm all functionality is working.