Сортировка при выборке кортежей

459 views
Skip to first unread message

Алексей Орлов

unread,
Feb 5, 2013, 2:54:13 AM2/5/13
to tarant...@googlegroups.com
А существует ли способ делать обычный select с сортировкой по конкретному полю типа select * from t0 order by k1 desc?
Если это нужно делать в lua, то будьте добры exmaple ибо я в lua не силен
Заранее спасибо
Алексей

Dmitry E. Oboukhov

unread,
Feb 5, 2013, 3:03:47 AM2/5/13
to tarant...@googlegroups.com
пока нет такой возможности. но на lua можно действительно написать
процедуру сортировки (хотя конечно лучше на клиенте).

если Вы используете DR::Tarantool, то его выборку можно сортировать
используя методы sort и raw_sort
--

. ''`. Dmitry E. Oboukhov
: :’ : email: un...@debian.org jabber://UN...@uvw.ru
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
signature.asc

Konstantin Osipov

unread,
Feb 5, 2013, 4:00:37 AM2/5/13
to tarant...@googlegroups.com
* Алексей Орлов <minir...@gmail.com> [13/02/05 12:36]:
> А существует ли способ делать обычный select с сортировкой по конкретному
> полю типа select * from t0 order by k1 desc?
> Если это нужно делать в lua, то будьте добры exmaple ибо я в lua не силен

Если итератор идёт по TREE индексу, то кортежи возвращаются в
отсортированном порядке.

--
http://tarantool.org - an efficient, extensible in-memory data store

Алексей Орлов

unread,
Feb 5, 2013, 12:31:23 PM2/5/13
to tarant...@googlegroups.com
А в каком направлении(возрастание или убывание)?

вторник, 5 февраля 2013 г., 13:00:37 UTC+4 пользователь Konstantin Osipov написал:

Konstantin Osipov

unread,
Feb 5, 2013, 12:41:55 PM2/5/13
to tarant...@googlegroups.com
* Алексей Орлов <minir...@gmail.com> [13/02/05 21:38]:
> А в каком направлении(возрастание или убывание)?

Смотря какой итератор.

У нас есть и тот и другой:

http://tarantool.org/dist/master/tarantool_user_guide.html#id2501471

Курить табличку 4.1, iterator types.

Алексей Орлов

unread,
Feb 5, 2013, 3:50:54 PM2/5/13
to tarant...@googlegroups.com
как я говори, что в lua я не силен...
вот что делал
...
space[1].index[3].type = "TREE"
space[1].index[3].unique = 0
space[1].index[3].key_field[0].fieldno = 3
space[1].index[3].key_field[0].type = "NUM"
...
lua for v in box.space[1].index[3]:iterator(box.index.LT1360044090) do print(v) end
что получил
error: '[string "for v in box.space[1].index[3]:iterator(box.i..."]:1: attempt to call method ''iterator'' (a nil value)'
в спэйсе 1 есть запись, даже несколько...что я не так сделал понять не могу...


вторник, 5 февраля 2013 г., 21:41:55 UTC+4 пользователь Konstantin Osipov написал:

Konstantin Osipov

unread,
Feb 5, 2013, 4:12:38 PM2/5/13
to tarant...@googlegroups.com
* Алексей Орлов <minir...@gmail.com> [13/02/06 01:09]:
> что получил
> error: '[string "for v in box.space[1].index[3]:iterator(box.i..."]:1:
> attempt to call method ''iterator'' (a nil value)'
> в спэйсе 1 есть запись, даже несколько...что я не так сделал понять не
> могу...

Видимо, надо обновиться :)

Алексей Орлов

unread,
Feb 5, 2013, 4:30:08 PM2/5/13
to tarant...@googlegroups.com
show info
---
info:
  version: "1.4.7"
  uptime: 4339
  pid: 32465
  logger_pid: 32467
  lsn: 1705
  recovery_lag: 0.000
  recovery_last_update: 0.000
  status: primary
  config: "/var/lib/tarantool/started/profile"
...


среда, 6 февраля 2013 г., 1:12:38 UTC+4 пользователь Konstantin Osipov написал:

Konstantin Osipov

unread,
Feb 6, 2013, 4:13:40 AM2/6/13
to tarant...@googlegroups.com
* Алексей Орлов <minir...@gmail.com> [13/02/06 10:00]:

> show info
> ---
> info:
> version: "1.4.7"
> uptime: 4339
> pid: 32465
> logger_pid: 32467
> lsn: 1705
> recovery_lag: 0.000
> recovery_last_update: 0.000
> status: primary
> config: "/var/lib/tarantool/started/profile"
> ...

Надо обновиться до 1.4.8 хотя бы.

Попробуйте взять последний релиз вот отсюда:

http://tarantool.org/dist/master/




>
>
> среда, 6 февраля 2013 г., 1:12:38 UTC+4 пользователь Konstantin Osipov
> написал:
> >
> > * Алексей Орлов <minir...@gmail.com <javascript:>> [13/02/06 01:09]:
> > > что получил
> > > error: '[string "for v in box.space[1].index[3]:iterator(box.i..."]:1:
> > > attempt to call method ''iterator'' (a nil value)'
> > > в спэйсе 1 есть запись, даже несколько...что я не так сделал понять не
> > > могу...
> >
> > Видимо, надо обновиться :)
> >
> >
> > --
> > http://tarantool.org - an efficient, extensible in-memory data store
> >
>
> --
> Вы получили это сообщение, поскольку подписаны на группу tarantool-ru.
>
> Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес tarantool-ru...@googlegroups.com.
> Подробнее о функциях можно узнать на странице https://groups.google.com/groups/opt_out.

Алексей Орлов

unread,
Feb 6, 2013, 11:54:36 AM2/6/13
to tarant...@googlegroups.com
Поставил последний турунтул...итератор зарабртал, но теперь когда работаешь в консольном клиенте при попытке пролистать историю операций(просто нажать вверх на клавиатуре) получаю:
localhost> Ошибка сегментирования (сделан дамп памяти)
вот...
ЗЫ походу у меня одного какие то проблемы постоянно возникают о_О (краснею)

Dmitry Simonenko

unread,
Feb 7, 2013, 3:04:25 AM2/7/13
to tarant...@googlegroups.com
Привет. А какой Вы пакет поставили и какая у Вас система? :)

6 февраля 2013 г., 20:54 пользователь Алексей Орлов <minir...@gmail.com> написал:
--

Алексей Орлов

unread,
Feb 7, 2013, 9:29:03 AM2/7/13
to tarant...@googlegroups.com
Привет. ОС ubuntu 12.10, пакет отсюда версия 1.4.8(x64)

четверг, 7 февраля 2013 г., 12:04:25 UTC+4 пользователь pmwkaa написал:

Dmitry E. Oboukhov

unread,
Feb 8, 2013, 12:10:58 PM2/8/13
to tarant...@googlegroups.com
> Поставил последний турунтул...итератор зарабртал, но теперь когда работаешь в
> консольном клиенте при попытке пролистать историю операций(просто нажать вверх
> на клавиатуре) получаю:
> localhost> Ошибка сегментирования (сделан дамп памяти)
> вот...
> ЗЫ походу у меня одного какие то проблемы постоянно возникают о_О (краснею)

дайте бактрейс с этого падения :)
signature.asc
Reply all
Reply to author
Forward
0 new messages