Added "enforce" field to BuildQuery, for being able of enforcing returning lists. #61
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
BuildQuery was returning a dictionary of lists if returned rows were larger than one, and a dictionary of elements if returned rows were exactly one. In some cases, this causes some trouble when a caller expects lists, but elements are obtained because there is only one row.
This patch adds a new parameter, "enforce", which by default is None, and can take as well the value "list". If the value is None, the previous behavior is respected, for backwards compatibility. If it is "list", a dictionary of lists is returned always.
In addition, an exception is raised if the sql string received is None, but only if enforce is "list", again for backwards compatibility.
top_questions_qaforums.py has been touched to use this new parameter, mostly as a test. All calls that expect a list should use this parameter, to avoid trouble when resulting row is one...