static async Task ExecHqlCmd(string traceId, string hqlCmd, string[] settings = null, bool skipResults = true)
        {
            Trace.TraceInformation(traceId + " : strated");

            var connectionString = OdbcUnitTests.GetConnectionString(OdbcUnitTests.HiveDsnConnectionString, settings);
            Trace.TraceInformation("{0} Using connection string => {1} ", traceId, connectionString);
            using (OdbcConnection conn = new OdbcConnection(connectionString))
            {
                var startTime = DateTimeOffset.UtcNow;

                await conn.OpenAsync();
                using (OdbcCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = hqlCmd;

                    using (DbDataReader dr = await cmd.ExecuteReaderAsync())
                    {
                        var completionTime = DateTimeOffset.UtcNow;
                        var execTime = completionTime.Subtract(startTime);
                        Trace.TraceInformation(traceId + " : execution time (sec) -> " + execTime.TotalSeconds);

                        if (!skipResults)
                        {
                            while (dr.Read())
                            {
                                var columns = new List<string>();
                                for (int i = 0; i < dr.VisibleFieldCount; i++)
                                {
                                    columns.Add(dr.GetValue(i).ToString());
                                }
                                Trace.TraceInformation(traceId + " : " + string.Join(", ", columns));
                            }
                        }
                    }
                }
            }

            Trace.TraceInformation(traceId + " : completed");
        }