Files
MetonaSqlark/test-alter.cjs
T
thzxx 29f8fd52a1
CI / test (18.x) (push) Successful in 10m0s
CI / test (20.x) (push) Successful in 10m2s
CI / test (22.x) (push) Successful in 9m58s
CI / test (24.x) (push) Successful in 9m54s
fix: ALTER TABLE DROP COLUMN only modifies schema, demo page deep-copies query results to prevent reference sharing
2026-07-29 22:28:47 +08:00

38 lines
1.3 KiB
JavaScript

const { MetonaSqlark } = require('./dist/metona-sqlark.cjs.js');
(async () => {
const db = new MetonaSqlark({ name: 'test', mode: 'memory' });
await db.init();
await db.defineTable('users', {
id: { type: 'string', primaryKey: true },
name: { type: 'string', required: true },
email: { type: 'string' },
age: { type: 'number', default: 0 },
});
// Step 1: ALTER TABLE ADD COLUMN
await db.query('ALTER TABLE users ADD COLUMN phone STRING');
const schema = await db.getEngine().getTableSchema('users');
console.log('Schema columns:', Object.keys(schema.columns));
// Step 2: INSERT
await db.query("INSERT INTO users (id, name, age, phone) VALUES ('6', 'Frank', 33, '123-4567')");
// Step 3: SELECT (first)
const result1 = await db.query("SELECT * FROM users WHERE id = '6'");
console.log('First query result:', JSON.stringify(result1));
console.log('First query fields:', Object.keys(result1[0]));
// Step 4: ALTER TABLE DROP COLUMN
await db.query('ALTER TABLE users DROP COLUMN phone');
// Step 5: SELECT (second)
const result2 = await db.query("SELECT * FROM users WHERE id = '6'");
console.log('Second query result:', JSON.stringify(result2));
console.log('Second query fields:', Object.keys(result2[0]));
await db.close();
})();