LogQueryLanguageHelp =
{
	"Log Query Language Quick Reference",
	"----------------------------------",
	"",
	"A query is constitued of a series of predicates combined by 'or' and 'and' logical operator.",
	"Each predicate is applied on each log, then the result combined to obtain a list of 'selected' log.",
	"",
	"General query format :",
	"",
	"   (options) predicate (logicalCombiner predicate)*",
	"",
	"options format :",
	"  option*",
	"",
	"  Available option :",
	"    - 'full_context' : extract all the log that are in the context of a ",
	"                       selected log",
	"    - 'output_prefix='<prefix> : set a prefix for the result file of the query",
	"",
	"logicalCombiner format :",
	"  Supported logical combiner are 'or' and 'and'.",
	"  The 'and' combiner have the hightest priority over 'or'.",
	"  You can also manually force the priority of combiner by",
	"  grouping predicate with parenthesis.",
	"    e.g : '(' predicate1 'or' predicate2 ')' 'and' predicate3'",
	"         In this case, the 'or' between predicate1 and predicate2 is avaluated ",
	"         before the 'and' with predicated3",
	"",
	"Predicate format :",
	"  <paramName | paramType> <operator> <constant>",
	"",
	"ParamName format :",
	"  Any parameter name that exist in a log. Any log that use this param name will",
	"  be tested againts the predicate.",
	"  e.g : userId",
	"",
	"",
	"ParamType format:",
	"  You can test a predicate against any parameter of a given type, whatever it's name.",
	"    '{' typeName '}'",
	"  The available type names are :",
	"     uint32, uint64, sint32, float, string, entityId, itemId, sheetId.",
	"  Clearly, the entityId, itemId and sheetId are the most interesting.",
	"",
	"Operator format :",
	"  All classicle operators are available:",
	"    '<', '<=', '>', '>=', '=' (or '=='), '!=' and 'like'.",
	"  The 'like' operator try to find the constant as a substring of the parameter.",
	"",
	"Constant format :",
	"  Right part of a predicate are always constant.",
	"  You can write constant of different type :",
	"    uint32 : any decimal or hexacimal (prefixed with '0x')",
	"    sint32 : any decimal prefixed with the minus sign '-'",
	"    string : any list of characters surrounded by double quote",
	"    entityId : an entity id as formated by NeL '(0x1234:12:34:56)'",
	"    sheeId : any characters that can be considered as a sheet name (e.g 'foo.sitem')",
	"    itemId : an item id as printed by the ryzom tool : '[123:0x123456:1234]'",
	"",
	"",
	"Special param name :",
	"  There are threee hardcoded parameter name :",
	"    'LogName', 'LogDate' and 'ShardId'.",
	"",
	"  'LogName' is used to build query based on the name of the log instead of",
	"  on the value of the parameters. e.g : 'LogName = '''Item_Create''' will select",
	"  all logs of item creation.",
	"",
	"  'LogDate' is used to restrict the scope of the query on a limited time frame.",
	"  LogDate accept date of the following format :",
	"    - literal date         : YYYY-MM-DD",
	"    - literal date and time: YYYY-MM-DD HH:MM",
	"    - literal date and time: YYYY-MM-DD HH:MM:SS",
	"    - yesterday : 'yesterday'",
	"    - some time ago : <count> secs|mins|hours|days|weeks|months|years",
	"",
	"    e.g :   'LogDate > yesterday' -> any log from yesterday to now",
	"            'LogDate > 2 days'    -> any log from 2 days ago to now",
	"            'LogDate < 3 weeks'   -> any log older than 3 weeks",
	"",
	"  'ShardId' is used to select log from a specific shard. You must",
	"  give a numeric shard id as predicate parameter. ",
	"",
	"",
	"",
};