Fix column/card ordering: set COLLATE C on position columns
Postgres en_US.utf8 collation sorts case-insensitively, breaking the lexicographic fractional indexing. Setting COLLATE "C" ensures pure byte-order sorting. Applied via setup-collation.sql in entrypoint after prisma db push. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -20,6 +20,13 @@ if [ $RETRY -ge $MAX_RETRIES ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo "Applying position column collation fix..."
|
||||||
|
if psql "$DATABASE_URL" -f ./scripts/setup-collation.sql; then
|
||||||
|
echo "Collation fix applied successfully."
|
||||||
|
else
|
||||||
|
echo "WARNING: Failed to apply collation fix. Continuing anyway..."
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Applying RLS policies..."
|
echo "Applying RLS policies..."
|
||||||
if psql "$DATABASE_URL" -f ./scripts/setup-rls.sql; then
|
if psql "$DATABASE_URL" -f ./scripts/setup-rls.sql; then
|
||||||
echo "RLS policies applied successfully."
|
echo "RLS policies applied successfully."
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
-- Set COLLATE "C" on position columns so fractional indexing sorts correctly.
|
||||||
|
-- en_US.utf8 collation is case-insensitive and breaks lexicographic ordering.
|
||||||
|
-- This must run after prisma db push since push may reset column types.
|
||||||
|
|
||||||
|
ALTER TABLE columns ALTER COLUMN position SET DATA TYPE text COLLATE "C";
|
||||||
|
ALTER TABLE cards ALTER COLUMN position SET DATA TYPE text COLLATE "C";
|
||||||
Reference in New Issue
Block a user