In-Memory SQL with CSV Initialization
Implement a small in-memory table engine that begins with a CSV string and then executes a sequence of SQL-like commands.
The first row of the CSV contains column names. Remaining rows contain data. Fields are comma-separated; quoted fields may contain commas and escaped double quotes.
Support the following commands:
SELECT col1,col2,... WHERE col=value: return matching rows with the selected columns joined by commasINSERT value1,value2,...: append one rowDELETE WHERE col=value: delete every matching row
Process commands in order and return every output row produced by the SELECT commands.
Complete the function runInMemorySql in the editor below.
runInMemorySql has the following parameters:
String csv: the initial table contentsString[] commands: the commands to execute in order
Returns
String[]: the output rows produced by all SELECT commands, in order.
1Example 1
The first query matches Alice. After inserting Charlie, the second query returns both NY rows in table order.
2Example 2
Deleting Alice leaves only Bob, who matches the final query.
Constraints
Limits and guarantees your solution can rely on.
- The total number of rows plus commands can be as large as
10^5. - Quoted CSV fields may contain commas and doubled quotes.
- Only equality filters are required for this problem version.