Our library should work for queries like SELECT * FROM table; As the library stands today, the user could only consume the results if they
a. Know exactly how many columns would be returned, and in what order
b. Know the types of each column so they could specify that as the arguments to reader->Rows<T1, T2, T3, ...>()
There may be cases where users do not know exactly how many columns will be returned, nor the order, and maybe not even the types of each column.
So, before we attempt to solve this problem, I think we need to better understand the actual use cases that we are solving for. To do this, we should look at what other Cloud Spanner libraries do (in other languages), talk w/ the Spanner team, etc.
We should also produce a small design doc clearly stating which use cases we're supporting and which (if any) we're not supporting. Then it should describe the design of how we plan to solve this.
Our library should work for queries like
SELECT * FROM table;As the library stands today, the user could only consume the results if theya. Know exactly how many columns would be returned, and in what order
b. Know the types of each column so they could specify that as the arguments to
reader->Rows<T1, T2, T3, ...>()There may be cases where users do not know exactly how many columns will be returned, nor the order, and maybe not even the types of each column.
So, before we attempt to solve this problem, I think we need to better understand the actual use cases that we are solving for. To do this, we should look at what other Cloud Spanner libraries do (in other languages), talk w/ the Spanner team, etc.
We should also produce a small design doc clearly stating which use cases we're supporting and which (if any) we're not supporting. Then it should describe the design of how we plan to solve this.