PostgreSQL 9.4.13 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4), 64-bit
Django supports PostgreSQL 10 and higher. psycopg2 2.8.4 or higher is required, though the latest release is recommended.
host all all all md5
.CREATE OR REPLACE FUNCTION public.foo(str character varying)
RETURNS SETOF record
LANGUAGE plpgsql
AS $$
BEGIN
IF str = 'i' THEN
RETURN QUERY SELECT i, i*i FROM generate_series(1, 10) i;
ELSE
RETURN QUERY SELECT i, SQRT(i::float) FROM generate_series(1, 10) i;
END IF;
END;
$$
# select * from foo('i') as (key int, value int);
key | value
-----+-------
1 | 1
2 | 4
3 | 9
4 | 16
5 | 25
6 | 36
7 | 49
8 | 64
9 | 81
10 | 100
(10 rows)
# select * from foo('x') as (key int, value float);
key | value
-----+--------------------
1 | 1
2 | 1.4142135623730951
3 | 1.7320508075688772
4 | 2
5 | 2.23606797749979
6 | 2.449489742783178
7 | 2.6457513110645907
8 | 2.8284271247461903
9 | 3
10 | 3.1622776601683795
(10 rows)
$ppk =(string)$pickup_date[0]че ж 0-то? Уж скорее так:
$ppk =(string)$pickup_date["[]"]...
SELECT
t.str,
SUM(n)
FROM (
(SELECT str1 as str, COUNT(*) as n FROM tableName WHERE date BETWEEN '2021-01-01' AND '2021-12-31' GROUP BY str1)
UNION
(SELECT str2 as str, COUNT(*) as n FROM tableName WHERE date BETWEEN '2021-01-01' AND '2021-12-31' GROUP BY str2)
) as t
GROUP BY t.str
Задача - узнать кол-во потенциально полученных строк до их фактической выборки.
SELECT count(*) ...
Ну и - если допустимо - организовать pagination.
SELECT * FROM table
) выборка первых страниц происходит очень быстро (особенно через LIMIT). Но это легко сломать, например, сортировкой create table p (id serial primary key, val text);
create table c (id serial primary key, p_id int not null references p(id) on delete no action deferrable, val text);
insert into p (val) values ('a'), ('b');
insert into c (p_id, val) values (1, 'a1'), (1, 'a2'), (1, 'a3'), (2, 'b1');
begin;
set constraints all deferred;
delete from p where id = 2;
delete from c where p_id = 2;
commit;
CREATE OR REPLACE FUNCTION Foo(st TIMESTAMP, fin TIMESTAMP)
RETURNS TABLE (tstamp timestamptz, val float) AS $$
...
RETURN QUERY SELECT tstamp, val FROM hyptab WHERE tstamp >= st AND tstamp < fin;
END;
$$ LANGUAGE plpgsql;
serialize() обрабатывает все типы, кроме resource и некоторых типов object
<html>
<head>
<title>PHP is<? if ($a): ?> cool<? else: ?> not cool<? endif; ?></title>
</head>
<body>
<h1><?=$head1 ?></h1>
</body>
</html>
<?
на самом деле короче и удобнее, чем <?php
, но он, например, конфликтует синтаксически с тем же XML:<?xml version="1.0" encoding="UTF-8"?>
...