Skip to content

Commit ff40dfe

Browse files
committed
Final bug fixes for SHOW TABLES and Table Designer
1 parent 3600d92 commit ff40dfe

2 files changed

Lines changed: 38 additions & 36 deletions

File tree

minidb/database.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,10 @@ def execute_query(self, query_string):
138138
parsed = self.parser.parse(query_string)
139139
cmd_type = parsed['type']
140140

141+
if cmd_type == 'SHOW_TABLES':
142+
table_list = self.get_tables()
143+
return [{'table_name': name} for name in table_list]
144+
141145
# Transaction commands
142146
if cmd_type == 'BEGIN':
143147
return self.transaction.begin()
@@ -166,8 +170,9 @@ def execute_query(self, query_string):
166170
parsed['right_on']
167171
)
168172

173+
# Commands that require a target table
169174
table_name = parsed.get('table')
170-
if not table_name:
175+
if not table_name and cmd_type not in ['BEGIN', 'COMMIT', 'ROLLBACK', 'SHOW_TABLES', 'JOIN']:
171176
raise DBError(f"Missing table name for command type {cmd_type}")
172177

173178
if cmd_type == 'CREATE':
@@ -362,9 +367,6 @@ def execute_query(self, query_string):
362367
'foreign_keys': table.foreign_keys
363368
}
364369

365-
if cmd_type == 'SHOW_TABLES':
366-
table_list = self.get_tables()
367-
return [{'table_name': name} for name in table_list]
368370

369371
except (DBError, TypeError) as e:
370372
return f"Error: {e}"

templates/create_table.html

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -290,42 +290,42 @@ <h5 class="modal-title fw-bold text-dark"><i class="fas fa-terminal me-2 text-pr
290290
fkDiv.id = `fk-${fkCount}`;
291291

292292
// Get available tables
293-
const tables = {{ tables | tojson
293+
const availableTables = {{ tables | tojson
294294
}};
295295

296296
fkDiv.innerHTML = `
297-
<div class="row g-2 align-items-center">
298-
<div class="col-md-3">
299-
<label class="form-label small mb-1 fw-bold text-muted">Local Column</label>
300-
<select class="form-select form-select-sm" id="fkLocal-${fkCount}">
301-
<option value="">Select column...</option>
302-
</select>
303-
</div>
304-
<div class="col-md-1 text-center pt-3">
305-
<i class="fas fa-arrow-right text-muted opacity-50"></i>
306-
</div>
307-
<div class="col-md-3">
308-
<label class="form-label small mb-1 fw-bold text-muted">Ref Table</label>
309-
<select class="form-select form-select-sm" id="fkRefTable-${fkCount}"
310-
onchange="updateRefColumns(${fkCount})">
311-
<option value="">Select table...</option>
312-
${tables.map(t => `<option value="${t}">${t}</option>`).join('')}
313-
</select>
314-
</div>
315-
<div class="col-md-3">
316-
<label class="form-label small mb-1 fw-bold text-muted">Ref Column</label>
317-
<select class="form-select form-select-sm" id="fkRefCol-${fkCount}">
318-
<option value="">Select column...</option>
319-
</select>
320-
</div>
321-
<div class="col-md-2 text-end pt-3">
322-
<button type="button" class="btn btn-sm btn-remove"
323-
onclick="removeForeignKey(${fkCount})">
324-
<i class="fas fa-trash"></i>
325-
</button>
297+
<div class="row g-2 align-items-center">
298+
<div class="col-md-3">
299+
<label class="form-label small mb-1 fw-bold text-muted">Local Column</label>
300+
<select class="form-select form-select-sm" id="fkLocal-${fkCount}">
301+
<option value="">Select column...</option>
302+
</select>
303+
</div>
304+
<div class="col-md-1 text-center pt-3">
305+
<i class="fas fa-arrow-right text-muted opacity-50"></i>
306+
</div>
307+
<div class="col-md-3">
308+
<label class="form-label small mb-1 fw-bold text-muted">Ref Table</label>
309+
<select class="form-select form-select-sm" id="fkRefTable-${fkCount}"
310+
onchange="updateRefColumns(${fkCount})">
311+
<option value="">Select table...</option>
312+
${availableTables.map(t => `<option value="${t}">${t}</option>`).join('')}
313+
</select>
314+
</div>
315+
<div class="col-md-3">
316+
<label class="form-label small mb-1 fw-bold text-muted">Ref Column</label>
317+
<select class="form-select form-select-sm" id="fkRefCol-${fkCount}">
318+
<option value="">Select column...</option>
319+
</select>
320+
</div>
321+
<div class="col-md-2 text-end pt-3">
322+
<button type="button" class="btn btn-sm btn-remove"
323+
onclick="removeForeignKey(${fkCount})">
324+
<i class="fas fa-trash"></i>
325+
</button>
326+
</div>
326327
</div>
327-
</div>
328-
`;
328+
`;
329329

330330
container.appendChild(fkDiv);
331331
updateLocalColumns(fkCount);

0 commit comments

Comments
 (0)