Wildcard queries

Wildcard queries are queries which do not explicitly list the columns that you want to look at. They look like this:

SELECT * FROM ...

Wildcard queries will cause your scripts to fail if, in the future, an upgrade of Smile adds new columns to a table referred to in your query, or if a change to the view also changes the order of the columns. This is because your script will be expecting a particular number of columns in a particular order, but the * wildcard makes no guarantees about either.

To keep your scripts working, avoid using wildcard columns (“*”) in your queries. Name the columns directly.

For example, to see all the tax schedules in Smile, do not use:

SELECT * FROM tax_schedule;

but rather use:

SELECT tax_schedule, company, name, currency FROM tax_schedule;

Note that it is acceptable to use wildcards in interactive queries and one-off scripts. You only need to worry about using column names if you want the script to survive upgrades to Smile.