Latihan 1 dari materi Replication & HA di Database — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi function routeQuery(sql, context) yang memutuskan sebuah query dikirim ke "primary" atau "replica", seperti router read/write Laravel.
- Ambil kata pertama dari
sql: buang spasi di awal dengan trim(), potong di spasi, lalu ubah ke huruf besar dengan toUpperCase() supaya select dan SELECT dianggap sama.
- Kata pertama
SELECT: kembalikan "primary" kalau context.justWrote === true (read-your-writes), selain itu "replica".
- Kata pertama
INSERT, UPDATE atau DELETE: kembalikan "primary".
- Kata lain apa pun (misalnya
TRUNCATE, CREATE, MERGE): kembalikan "primary" sebagai default aman.
Tujuh console.log di kode awal sudah ada, biarkan. Output yang dicek, berurutan:
replica
primary
primary
primary
primary
primary
replica
Satu cek lagi: routeQuery("SELECT 1", { justWrote: true }), routeQuery("select 1", {}) dan routeQuery("MERGE INTO t", {}) digabung dengan koma harus menghasilkan "primary,replica,primary".