• Как сделать правильно check constraint?

    @masimka Автор вопроса
    я уже окончательно запутался. Сейчас сделал так:
    events trigger

    DECLARE
    table_master varchar(255) := 'events';
    table_part varchar(255) := '';
    curr_month varchar(255) := '';
    next_month varchar(255) := '';
    BEGIN
    -- Даём имя партиции --------------------------------------------------
    table_part := table_master
    || '' || to_char(NEW.dtime, 'YYYY')::text
    || 'm' || to_char(NEW.dtime, 'MM')::text;

    curr_month := date_part( 'year', NEW.dtime)::text ||'-'|| date_part( 'month', NEW.dtime )::text ||'-01';
    next_month := date_part( 'year', NEW.dtime)::text ||'-'|| date_part( 'month', NEW.dtime )::text ||'-31';

    -- Проверяем партицию на существование --------------------------------
    PERFORM
    1
    FROM
    pg_class
    WHERE
    relname = table_part
    LIMIT
    1;

    -- Если её ещё нет, то создаём --------------------------------------------
    IF NOT FOUND
    THEN
    -- Cоздаём партицию, наследуя мастер-таблицу --------------------------
    EXECUTE '
    CREATE TABLE ' || table_part || ' ( like '|| table_master ||' including all ) inherits ('|| table_master ||')' ;
    EXECUTE '
    alter table ' || table_part || ' add CONSTRAINT dtime_check CHECK (dtime >= '''|| curr_month||'''::timestamp AND dtime < '''||next_month||'''::timestamp)';

    END IF;

    -- Вставляем данные в партицию --------------------------------------------
    EXECUTE '
    INSERT INTO ' || table_part || '
    SELECT ( (' || quote_literal(NEW) || ')::' || TG_RELNAME || ' ).*';

    RETURN NULL;
    END;


    Вставляет за дату: '2017-10-20 00:00:00.000000'
    а за '2017-11-20 00:00:00.000000' Нет.

    Половина года просто не нужна? Ни февраль ни ноябрь?

    Что значит половина года?
    Дата текущего месяца
    curr_month :=  date_part( 'year', NEW.dtime)::text ||'-'|| date_part( 'month',    NEW.dtime )::text ||'-01';

    Конец текущего месяца:
    next_month :=  date_part( 'year', NEW.dtime)::text ||'-'|| date_part( 'month',    NEW.dtime )::text ||'-31';
  • Как ограничить поиск в партиции таблицы?

    @masimka Автор вопроса
    Melkij,
    \d events2016m11


    Table "public.events2016m11"
    Column | Type | Modifiers
    --------------+--------------------------+-----------------------------------------------------
    eventtype_id | integer | not null
    order_id | integer |
    product_id | integer |
    user_id | integer |
    values | character varying(64) |
    dtime | timestamp with time zone | not null default now()
    id | bigint | not null default nextval('events_id_seq'::regclass)
    config_id | integer |
    Indexes:
    "events2016m11_dtime" btree (dtime)
    Check constraints:
    "events2016m11_dtime_check" CHECK (dtime >= '2016-11-01'::date AND dtime < '2016-12-01'::date)
    Inherits: events

    explain analyze select * from events WHERE id = 105;

    Append (cost=0.00..130.26 rows=20 width=132) (actual time=0.302..3.823 rows=2 loops=1)
    -> Seq Scan on events (cost=0.00..0.00 rows=1 width=182) (actual time=0.000..0.000 rows=0 loops=1)
    Filter: (id = 105)
    -> Seq Scan on events2016m02 (cost=0.00..6.90 rows=2 width=38) (actual time=0.300..0.415 rows=2 loops=1)
    Filter: (id = 105)
    Rows Removed by Filter: 310
    -> Seq Scan on events2016m03 (cost=0.00..17.00 rows=2 width=38) (actual time=0.585..0.585 rows=0 loops=1)
    Filter: (id = 105)
    Rows Removed by Filter: 880
    -> Seq Scan on events2016m04 (cost=0.00..4.58 rows=2 width=38) (actual time=0.229..0.229 rows=0 loops=1)
    Filter: (id = 105)
    Rows Removed by Filter: 206
    -> Seq Scan on events2016m05 (cost=0.00..14.75 rows=2 width=182) (actual time=0.130..0.130 rows=0 loops=1)
    Filter: (id = 105)
    Rows Removed by Filter: 8
    -> Seq Scan on events2016m06 (cost=0.00..2.00 rows=1 width=182) (actual time=0.223..0.223 rows=0 loops=1)
    Filter: (id = 105)
    Rows Removed by Filter: 80
    -> Seq Scan on events2016m07 (cost=0.00..14.75 rows=2 width=182) (actual time=0.218..0.218 rows=0 loops=1)
    Filter: (id = 105)
    Rows Removed by Filter: 18
    -> Seq Scan on events2016m08 (cost=0.00..14.75 rows=2 width=182) (actual time=0.212..0.212 rows=0 loops=1)
    Filter: (id = 105)
    Rows Removed by Filter: 4
    -> Seq Scan on events2016m09 (cost=0.00..14.75 rows=2 width=182) (actual time=0.211..0.211 rows=0 loops=1)
    Filter: (id = 105)
    Rows Removed by Filter: 12
    -> Seq Scan on events2016m10 (cost=0.00..14.75 rows=2 width=182) (actual time=0.000..0.000 rows=0 loops=1)
    Filter: (id = 105)
    -> Seq Scan on events2016m11 (cost=0.00..1.15 rows=1 width=182) (actual time=0.216..0.216 rows=0 loops=1)
    Filter: (id = 105)
    Rows Removed by Filter: 12
    -> Seq Scan on events2016m12 (cost=0.00..24.89 rows=1 width=38) (actual time=1.381..1.381 rows=0 loops=1)
    Filter: (id = 105)
    Rows Removed by Filter: 1294
    Planning time: 4.189 ms
    Execution time: 3.931 ms
    \d+ events

    \d+ events
    Table "public.events"
    Column | Type | Modifiers | Storage | Stats target | Description
    --------------+--------------------------+-----------------------------------------------------+----------+--------------+-------------
    eventtype_id | integer | not null | plain | |
    order_id | integer | | plain | |
    product_id | integer | | plain | |
    user_id | integer | | plain | |
    values | character varying(64) | | extended | |
    dtime | timestamp with time zone | not null default now() | plain | |
    id | bigint | not null default nextval('events_id_seq'::regclass) | plain | |
    config_id | integer | | plain | |
    Indexes:
    "events_pkey" PRIMARY KEY, btree (id)
    "dtime" btree (dtime)
    "eventtype_id" btree (eventtype_id)
    "order_id" btree (order_id)
    "product_id" btree (product_id)
    "users_id" btree (user_id)
    Triggers:
    insert_events_trigger BEFORE INSERT ON events FOR EACH ROW EXECUTE PROCEDURE events_insert_trigger()
    Child tables: events2016m02,
    events2016m03,
    events2016m04,
    events2016m05,
    events2016m06,
    events2016m07,
    events2016m08,
    events2016m09,
    events2016m10,
    events2016m11,
    events2016m12



    Вижу
    Check constraints:
    "events2016m11_dtime_check" CHECK (dtime >= '2016-11-01'::date AND dtime < '2016-12-01'::date)


    сейчас выборка работает только с 11 по 12 месяц.
    Как сделать чтобы еще по ID было?
  • Я могу подготовить нужные мне участки шаблона в методе модели Kohana?

    @masimka Автор вопроса
    Антон Клочков, все верно. Так хотел, но всё же я тоже за частоту. Принял во внимание Ваш пост Выше.
  • Я могу подготовить нужные мне участки шаблона в методе модели Kohana?

    @masimka Автор вопроса
    примерно понял.
    В контроллере с помощью метода подготовить массивые с даными для блоков, и скидывать их в главный view в котором уже интерпретировать эти за ранее подготовленные данные для блоков.
  • Как сделать так чтобы все кнопки отправляли одну форму на странице?

    @masimka Автор вопроса
    AlexMaxTM: разве в вашем примере селектор jquery найдя первую кнопку не прикрепится к ней и не будет ждать только от неё нажатие?
  • Как сделать так чтобы все кнопки отправляли одну форму на странице?

    @masimka Автор вопроса
    Писал с телефона, по этому ошибки в коде. Код написан ровно так как вы меня подправили.
    Без jquery и asd() - Кнопка отправляет, но только первая. Остальные не реагируют.
    Решил вопрос - прикрепил ко всем кнопками в форме функцию asd(), тогда отпоавляет.
    Как можно в jquery минуя asd() сделать, так чтобы какждоц кнопке не присваивать идентификатор например?
  • Class 'Serps\Core\Browser\Browser' not found, что я делаю не так?

    @masimka Автор вопроса
    переустановить заново используя комкозер7
  • Как разрешить php доступ к /var/lib/mysql каталогу или ко всей файловой системе linux?

    @masimka Автор вопроса
    запустил апач с правами рута,
    внем апач в группу мускула., результат отрицательный.
    --
    PHP warning
    scandir(/var/lib/mysql/admin_d1_ru/): failed to open dir: Permission denied
    /var/www/html/splitter3000/protected/extensions/EZip.php(68)
    ---