Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9312107
089.sql
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Subscribers
None
089.sql
View Options
-- SWH DB schema upgrade
-- from_version: 88
-- to_version: 89
-- description: indexer: Add content_ctags
insert
into
dbversion
(
version
,
release
,
description
)
values
(
89
,
now
(),
'Work In Progress'
);
create
type
ctags_languages
as
enum
(
'Ada'
,
'AnsiblePlaybook'
,
'Ant'
,
'Asm'
,
'Asp'
,
'Autoconf'
,
'Automake'
,
'Awk'
,
'Basic'
,
'BETA'
,
'C'
,
'C#'
,
'C++'
,
'Clojure'
,
'Cobol'
,
'CoffeeScript'
,
'CSS'
,
'ctags'
,
'D'
,
'DBusIntrospect'
,
'Diff'
,
'DosBatch'
,
'DTS'
,
'Eiffel'
,
'Erlang'
,
'Falcon'
,
'Flex'
,
'Fortran'
,
'gdbinit'
,
'Glade'
,
'Go'
,
'HTML'
,
'Iniconf'
,
'Java'
,
'JavaProperties'
,
'JavaScript'
,
'JSON'
,
'Lisp'
,
'Lua'
,
'M4'
,
'Make'
,
'man'
,
'MatLab'
,
'Maven2'
,
'Myrddin'
,
'ObjectiveC'
,
'OCaml'
,
'OldC'
,
'OldC++'
,
'Pascal'
,
'Perl'
,
'Perl6'
,
'PHP'
,
'PlistXML'
,
'pod'
,
'Protobuf'
,
'Python'
,
'PythonLoggingConfig'
,
'R'
,
'RelaxNG'
,
'reStructuredText'
,
'REXX'
,
'RpmSpec'
,
'Ruby'
,
'Rust'
,
'Scheme'
,
'Sh'
,
'SLang'
,
'SML'
,
'SQL'
,
'SVG'
,
'SystemdUnit'
,
'SystemVerilog'
,
'Tcl'
,
'Tex'
,
'TTCN'
,
'Vera'
,
'Verilog'
,
'VHDL'
,
'Vim'
,
'WindRes'
,
'XSLT'
,
'YACC'
,
'Yaml'
,
'YumRepo'
,
'Zephir'
);
-- ctags information per content
create
table
content_ctags
(
id
sha1
references
content
(
sha1
)
not
null
,
name
text
not
null
,
kind
text
not
null
,
line
bigint
not
null
,
lang
ctags_languages
not
null
);
comment
on
table
content_ctags
is
'Ctags information on a raw content'
;
comment
on
column
content_ctags
.
id
is
'Content identifier'
;
comment
on
column
content_ctags
.
name
is
'Symbol name'
;
comment
on
column
content_ctags
.
kind
is
'Symbol kind (function, class, variable, const...)'
;
comment
on
column
content_ctags
.
line
is
'Symbol line'
;
comment
on
column
content_ctags
.
lang
is
'Language information for that content'
;
create
index
on
content_ctags
(
id
);
create
unique
index
on
content_ctags
(
id
,
md5
(
name
),
kind
,
line
,
lang
);
-- add tmp_content_ctags entries to content_ctags, overwriting
-- duplicates if conflict_update is true, skipping duplicates otherwise.
--
-- If filtering duplicates is in order, the call to
-- swh_ctags_missing must take place before calling this function.
--
--
-- operates in bulk: 0. swh_mktemp(content_ctags), 1. COPY to tmp_content_ctags,
-- 2. call this function
create
or
replace
function
swh_content_ctags_add
()
returns
void
language
plpgsql
as
$$
begin
insert
into
content_ctags
(
id
,
name
,
kind
,
line
,
lang
)
select
id
,
name
,
kind
,
line
,
lang
from
tmp_content_ctags
on
conflict
(
id
,
md5
(
name
),
kind
,
line
,
lang
)
do
nothing
;
return
;
end
$$
;
comment
on
function
swh_content_ctags_add
()
IS
'Add new ctags symbols per content'
;
-- check which entries of tmp_bytea are missing from content_ctags
--
-- operates in bulk: 0. swh_mktemp_bytea(), 1. COPY to tmp_bytea,
-- 2. call this function
create
or
replace
function
swh_content_ctags_missing
()
returns
setof
sha1
language
plpgsql
as
$$
begin
return
query
(
select
id
::
sha1
from
tmp_bytea
as
tmp
where
not
exists
(
select
1
from
content_ctags
as
c
where
c
.
id
=
tmp
.
id
limit
1
));
return
;
end
$$
;
comment
on
function
swh_content_ctags_missing
()
IS
'Filter missing content ctags'
;
-- Retrieve list of content ctags from the temporary table.
--
-- operates in bulk: 0. mktemp(tmp_bytea), 1. COPY to tmp_bytea, 2. call this function
create
or
replace
function
swh_content_ctags_get
()
returns
setof
content_ctags
language
plpgsql
as
$$
begin
return
query
select
id
::
sha1
,
name
,
kind
,
line
,
lang
from
tmp_bytea
t
inner
join
content_ctags
using
(
id
)
order
by
line
;
return
;
end
$$
;
comment
on
function
swh_content_ctags_get
()
IS
'List content ctags'
;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Jul 3, 10:42 AM (1 w, 6 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3285650
Attached To
rDSTO Storage manager
Event Timeline
Log In to Comment