2 402
edições
(→Lib de Grades: half side) |
m (→Lib de Grades: intlevel) |
||
Linha 6: | Linha 6: | ||
<syntaxhighlight lang="sql" style="font-size: 80%;"> | <syntaxhighlight lang="sql" style="font-size: 80%;"> | ||
drop FUNCTION if exists grid_br.xyS_collapseTo_ijS(int,int,int); | drop FUNCTION if exists grid_br.xyS_collapseTo_ijS(int,int,int,boolean); | ||
drop FUNCTION if exists grid_br.xyS_collapseTo_ijS(int[]); | drop FUNCTION if exists grid_br.xyS_collapseTo_ijS(int[],boolean); | ||
drop FUNCTION if exists grid_br.xylevel_collapseTo_ijS(int,int,int); | drop FUNCTION if exists grid_br.xylevel_collapseTo_ijS(int,int,int); | ||
drop FUNCTION if exists grid_br.xylevel_collapseTo_ijS(int[]); | drop FUNCTION if exists grid_br.xylevel_collapseTo_ijS(int[]); | ||
Linha 15: | Linha 15: | ||
$f$ LANGUAGE SQL IMMUTABLE; | $f$ LANGUAGE SQL IMMUTABLE; | ||
CREATE FUNCTION grid_br.xyS_collapseTo_ijS(yxs int[]) RETURNS int[] AS $wrap$ | CREATE FUNCTION grid_br.xyS_collapseTo_ijS( yxs int[], is_half boolean default false ) RETURNS int[] AS $wrap$ | ||
SELECT grid_br.xyS_collapseTo_ijS(yxs[1], yxs[2], yxs[3]) | SELECT grid_br.xyS_collapseTo_ijS(yxs[1], yxs[2], yxs[3], is_half) | ||
$wrap$ LANGUAGE SQL IMMUTABLE | $wrap$ LANGUAGE SQL IMMUTABLE | ||
; | ; | ||
CREATE FUNCTION grid_br.xylevel_collapseTo_ijS(y int, x int, | |||
SELECT grid_br.xyS_collapseTo_ijS($1, $2, (2^(20- | CREATE FUNCTION grid_br.xylevel_collapseTo_ijS(y int, x int, intlevel int default 0) RETURNS int[] AS $wrap$ | ||
SELECT grid_br.xyS_collapseTo_ijS($1, $2, (2^(20-intlevel/10.0))::int, (intlevel%2)=1) | |||
$wrap$ LANGUAGE SQL IMMUTABLE | $wrap$ LANGUAGE SQL IMMUTABLE | ||
; | ; | ||
Linha 28: | Linha 29: | ||
; | ; | ||
----- | ----- | ||
drop FUNCTION if exists grid_br.ijS_to_xySref(int,int,int); | drop FUNCTION if exists grid_br.ijS_to_xySref(int,int,int,boolean); | ||
drop FUNCTION if exists grid_br.ijS_to_xySref(int[]); | drop FUNCTION if exists grid_br.ijS_to_xySref(int[],boolean); | ||
CREATE or replace FUNCTION grid_br.ijS_to_xySref(i int, j int, s int, is_half boolean default false) RETURNS int[] AS $f$ | CREATE or replace FUNCTION grid_br.ijS_to_xySref(i int, j int, s int, is_half boolean default false) RETURNS int[] AS $f$ | ||
Linha 35: | Linha 36: | ||
$f$ LANGUAGE SQL IMMUTABLE; | $f$ LANGUAGE SQL IMMUTABLE; | ||
CREATE FUNCTION grid_br.ijS_to_xySref(yxl int[]) RETURNS int[] AS $wrap$ | CREATE FUNCTION grid_br.ijS_to_xySref(yxl int[], is_half boolean default false) RETURNS int[] AS $wrap$ | ||
SELECT grid_br.ijS_to_xySref(yxl[1], yxl[2], yxl[3]) | SELECT grid_br.ijS_to_xySref(yxl[1], yxl[2], yxl[3],is_half) | ||
$wrap$ LANGUAGE SQL IMMUTABLE; | $wrap$ LANGUAGE SQL IMMUTABLE; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Linha 48: | Linha 49: | ||
) t group by 1,2,3 order by 1; | ) t group by 1,2,3 order by 1; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Grade da Colômbia, de zero a "e": | |||
<pre> | <pre> | ||
grid_l0_cell_ij: 40 41 42 43 30 31 32 33 34 21 22 23 11 12 13 | grid_l0_cell_ij: 40 41 42 43 30 31 32 33 34 21 22 23 11 12 13 |
edições