Я установил phpPgAdmin, чтобы попытаться воспроизвести вашу ошибку. Я получил это сразу, когда попытался создать тестовую таблицу:
[/g2]
Так выглядит, как phpPgAdmin, сжимающий ваш запрос в select count(*) as total from (...)
. Я обнаружил, что это происходит, только когда установлен флажок «Результаты Paginate» на странице запроса (очевидно, phpPgAdmin пытается подсчитать, сколько строк он получит, а затем покажет его по страницам). Снимите этот флажок, и ваш запрос будет работать нормально:
[/g3]
обновлено 1
Аналогичный вопрос - INSERT INTO PostgreSQL
обновлено 2
Как упоминалось в комментариях к @akshay, вы также можете получить аналогичную ошибку при запуске запросов через командную строку, см. объясненную ситуацию и ответ здесь - PostgreSQL отключить больше выхода
Если Вы имеете в виду недженерик Queue
класс, то можно просто переопределить Enqueue
:
public override void Enqueue(object obj)
{
base.Enqueue(obj);
OnChanged(EventArgs.Empty);
}
Однако, если Вы имеете в виду дженерик Queue<T>
класс, затем обратите внимание, что нет никакого подходящего виртуального метода для переопределения. Вы могли бы добиться большего успеха к [1 110], инкапсулируют очередь с Вашим собственным классом:
(** важное редактирование: удаленный базовый класс!!! **)
class Foo<T>
{
private readonly Queue<T> queue = new Queue<T>();
public event EventHandler Changed;
protected virtual void OnChanged()
{
if (Changed != null) Changed(this, EventArgs.Empty);
}
public virtual void Enqueue(T item)
{
queue.Enqueue(item);
OnChanged();
}
public int Count { get { return queue.Count; } }
public virtual T Dequeue()
{
T item = queue.Dequeue();
OnChanged();
return item;
}
}
Однако рассмотрение Вашего кода, кажется возможным, что Вы используете несколько потоков здесь. Если это так, рассмотрите , распараллелил очередь вместо этого.
попробуйте
public new void Enqueue(Delegate d)
{
base.Enqueue(d);
OnChanged(EventArgs.Empty);
}
Необходимо переопределить, Ставят в очередь, для вызова OnChanged.