Re: Issue related with patitioned table:How can I quickly determine which child table my record is in,given a specific primary key value?

Поиск
Список
Период
Сортировка
От James(王旭)
Тема Re: Issue related with patitioned table:How can I quickly determine which child table my record is in,given a specific primary key value?
Дата
Msg-id tencent_3398A66F571334E95E5B4093@qq.com
обсуждение исходный текст
Ответ на Re: Issue related with patitioned table:How can I quickly determinewhich child table my record is in,given a specific primary key value?  (Luca Ferrari <fluca1978@gmail.com>)
Ответы Re: Issue related with patitioned table:How can I quickly determine which child table my record is in,given a specific primary key value?  ("James(王旭)" <wangxu@gu360.com>)
Список pgsql-general
Thanks you Luca.

Yes my intention was " SELECT (hashint2(6365::SMALLINT)% 3) ", that's my mistake, thank you for pointing out.
 
Actually I just did a simple query in my single table: 

SELECT distinct(symbol_id) FROM xxxx_0 

and I got these results:

"symbol_id"
6521
1478
1964
5642
7470
1158
2429
9882
4542
5196
9178
8303
1091
9435
8133
1437
9072

From these results I can tell the route to a table is not even related with the mod function, right?
So It's hard for me to do any kind of guesses...
 
------------------ Original ------------------
Date:  Wed, Jul 17, 2019 05:13 PM
To:  "王旭"<wangxu@gu360.com>;
Cc:  "pgsql-general"<pgsql-general@lists.postgresql.org>;
Subject:  Re: Issue related with patitioned table:How can I quickly determine which child table my record is in,given a specific primary key value?
 
On Wed, Jul 17, 2019 at 9:19 AM 王旭 <wangxu@gu360.com> wrote:
> I tried something like this:  e.g., for symbol_id 6365,
> SELECT (hashint2(6365::SMALLINT)% 10)

shouldn't this be modulus 3 instead of 10?
The problem is that record 6365 is not where you expected to be?

As far as I know, there is no easy user-level way to get the route to
a table, but you can juggle with the expression that defined each
table and make a good guess.
However, your query should give a good idea:

# SELECT 'my_table_' || (hashint2(6365::smallint)% 3);
  ?column?
------------
 my_table_2

В списке pgsql-general по дате отправления:

Предыдущее
От: Luca Ferrari
Дата:
Сообщение: Re: Issue related with patitioned table:How can I quickly determinewhich child table my record is in,given a specific primary key value?
Следующее
От: "James(王旭)"
Дата:
Сообщение: Re: Issue related with patitioned table:How can I quickly determine which child table my record is in,given a specific primary key value?