/*=====================================================================
  isqlversion.h - the one place the Internet SQL version is defined.

  BUMP THE VERSION HERE AND NOWHERE ELSE. Before this file existed the
  version was typed literally into each program that printed it, so the
  shells announced "Version 2.0", the server sent "Version 1.22" to its
  clients, and isqlsh said "1.22" - three different answers from one
  release. Anything that prints, logs or reports a version must include
  this header and use these macros.

  The matching plain-text file, VERSION in the tree root, holds the same
  string for build scripts and packaging, which cannot include a C header.
  The two must agree; VERSION is the human-editable copy and this header
  is what the binaries compile against.

  Versioning is MAJOR.MINOR:
    MAJOR  changes when the on-disk database format or the C API breaks
           compatibility, so an existing home or application needs work.
    MINOR  changes for a release that adds capability or fixes defects
           while staying compatible - an existing home and an existing
           application keep working.

  1.23 is such a release: it fixes teardown and multi-process defects and
  adds isqlsh, but reads a 1.22 database unchanged.
 =====================================================================*/
#ifndef ISQL_VERSION_H
#define ISQL_VERSION_H

/* 1.25, released and tagged v1.25; see docs/RELEASE_NOTES_1.25.md.
   Bump this the moment a release is tagged, so that anything built from source
   afterwards is distinguishable from the released binaries - and so that this
   comment never ships describing the shipped version as unreleased.

   1.25 exists because the GROUP BY defects found in 1.24 testing changed what
   the engine RETURNS, not just whether it crashes. Shipping the corrected
   binaries as "1.24" would leave two different engines answering -version with
   the same string, and a bug report naming 1.24 would no longer identify what
   was run. */
#define ISQL_VERSION_MAJOR   1
#define ISQL_VERSION_MINOR   25

#define ISQL_VERSION_STRING  "1.25"
#define ISQL_PRODUCT_NAME    "Internet SQL"

/* "Internet SQL 1.25" - what a banner should normally print. */
#define ISQL_PRODUCT_BANNER  ISQL_PRODUCT_NAME " " ISQL_VERSION_STRING

#endif /* ISQL_VERSION_H */
