Correctly log slow queries when no statement is available
Don't create GIN index on tags for old Postgres versions

These aren't supported before Postgres 8.2, so we now have an explicit
check before adding them.
Add a warning message about old version of Postgres
Add a notification that the indexes migration may be slow
Merge branch 'no-gin-indexes-on-old-postgres'
Don't thread where a function call will suffice

The -> & ->> threading macros are very useful to sometimes untangle
nested function calls. However, as it's just a single function call on a
Clojure map, directly call the function with our data to simplify things
for the reader.
Using the string/join function for non-lazy evaluation

The use of interpose is useful if we're expecting to produce a lazy seq
seperated by our delimeter. In this case, we were taking this lazy
sequence and converting it into a string (non lazy) anyway.

Rather than add this implicit complexity, use clojure.string/join to do
the interposing of the delimeter using a StringBuilder recursing over
the sequence we provide it.
Merge pull request #271 from KushalP/master

Simple refactoring of two function calls
Support tag queries on Postgres 8.1

This version doesn't have the <@ operator for arrays, so we have to fall
back to using ANY.
Don't track the target directory

Sometimes we might build artefacts that end up in the target directory.
Don't bother tracking these as they are artefacts of the build process.
Remove use of threading operator to simplify function calls

There are cases where the threading operator has been used, but the raw
function calls end up being more readable.

Strip out this extra syntactic sugar and go with the raw functions and
data.
Add a reference to the Trello board to CONTRIBUTING.md
Merge branch 'no-gin-indexes-on-old-postgres'
Merge branch 'update-contributing'
Merge pull request #272 from KushalP/master

Remove extra uses of threading operator
Use a fixed revision of puppetdb module for acceptance tests

Prior to this commit, the acceptance tests were using the HEAD
revision of my puppetdb module to do setup during acceptance tests.
This was fragile and broke when I merged in some changes to the
module.

This commit simply changes the acceptance setup code to use a fixed
revision of the puppetdb module instead of HEAD.

As soon as we've released the module to the forge, we need to switch
over and use that instead of checking it out from git.
Settle on updates.puppetlabs.com for version-check

Signed-off-by: Deepak Giridharagopal <deepak@puppetlabs.com>
Update CHANGELOG for 0.11.0

Signed-off-by: Deepak Giridharagopal <deepak@puppetlabs.com>
Add support for a test configuration file

This commit adds support for a configuration file to be used
during unit test runs.  At present, the only thing that you
can define in the config file is a function that returns
a map of database settings.  There is a default configuration
file provided, which simply returns the same database settings
that we were using before (an in-memory hsql database with
a random UUID).  However, it also provides instruction for
creating a local override of the default config file, including
an example of how to configure your tests to run against
postgres instead of hsql.

This commit also tweaks the with-test-db fixture to call
a database-cleanup function prior to running the database
migration.  This cleanup function drops all of the tables
if they exist, so that each test can start with a fresh db.
Autoformat test/scf/storage.clj for indentation fixes

The previous commit changed a lot of the nesting of the
code in this file because it introduced several new
"deftest" calls, in order to work properly with the
with-test-db fixture.  This commit simply attempts to
clean up the whitespace / indentation of the file.