Я пытаюсь найти некоторые значения в диапазоне дат для определенного типа, но содержимое дат, существующих в базе данных, не возвращается запросом.
Вот выдержка из кода Python:
deltaDays = timedelta(days= 20)
endDate = datetime.date.today()
startDate = endDate - deltaDays
result = db.GqlQuery(
"SELECT * FROM myData WHERE mytype = :1 AND pubdate >= :2 and pubdate <= :3", type, startDate, endDate
)
class myData(db.Model):
mytype = db.StringProperty(required=True)
value = db.FloatProperty(required=True)
pubdate = db.DateTimeProperty(required=True)
GQL возвращает данные, но я ожидаю, что некоторые строки отсутствуют:
2009-03-18 00:00:00
(missing date in results: 2009-03-20 data exists in database)
2009-03-23 00:00:00
2009-03-24 00:00:00
2009-03-25 00:00:00
2009-03-26 00:00:00
(missing date in results: 2009-03-27 data exists in database)
2009-03-30 00:00:00
(missing date in results: 2009-03-31. data exists in database)
2009-04-01 00:00:00
2009-04-02 00:00:00
2009-04-03 00:00:00
2009-04-06 00:00:00
Я загрузил данные через скрипт de bulkload. Я просто могу думать о поврежденных индексах или о чем-то подобном. Этот же запрос раньше работал для другой таблицы, которая у меня была. Но мне пришлось заменить его новым контентом из другого источника, и этот новый контент не отвечает на запрос таким же образом. Таблица имеет около 700 000 строк, если это имеет какое-либо значение.
Я провел дополнительные исследования и, похоже, это ошибка в AppSignEngine DataStore.
Для получения дополнительной информации об ошибке проверьте эту ссылку:
http://code.google.com/p/googleappengine/issues/detail?id=901
Я попытался удалить индекс и воссоздать его безуспешно.
спасибо