Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
b27a83d5
Commit
b27a83d5
authored
Apr 12, 2011
by
Antony T Curtis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixup and debugging
parent
2037f387
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
63 additions
and
26 deletions
+63
-26
storage/oqgraph/oqgraph_thunk.cc
storage/oqgraph/oqgraph_thunk.cc
+62
-25
storage/oqgraph/oqgraph_thunk.h
storage/oqgraph/oqgraph_thunk.h
+1
-1
No files found.
storage/oqgraph/oqgraph_thunk.cc
View file @
b27a83d5
...
...
@@ -126,6 +126,7 @@ oqgraph3::graph::~graph()
oqgraph3
::
row_cursor
&
oqgraph3
::
row_cursor
::
operator
++
()
{
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
if
(
!
_current
)
return
*
this
;
...
...
@@ -147,6 +148,7 @@ oqgraph3::row_cursor& oqgraph3::row_cursor::operator++()
table
.
file
->
ha_index_init
(
0
,
1
);
printf
(
"%s:%d - %s
\n
"
,
__func__
,
__LINE__
,
"ha_index_read_map"
);
if
(
table
.
file
->
ha_index_read_map
(
table
.
record
[
0
],
reinterpret_cast
<
const
uchar
*>
(
current
->
first
.
_ref
.
data
()),
...
...
@@ -197,40 +199,33 @@ oqgraph3::row_cursor& oqgraph3::row_cursor::operator++()
oqgraph3
::
row_cursor
&
oqgraph3
::
row_cursor
::
first
()
{
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
TABLE
&
table
=
*
_cache
->
_table
;
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
table
.
file
->
ha_index_init
(
0
,
1
);
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
printf
(
"%s:%d
- %s
\n
"
,
__func__
,
__LINE__
,
"ha_index_first"
);
if
(
!
table
.
file
->
ha_index_first
(
table
.
record
[
0
]))
{
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
update_virtual_fields
(
table
.
in_use
,
&
table
);
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
edge_key
tmp
(
table
.
key_info
->
key_length
,
_cache
);
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
key_copy
(
reinterpret_cast
<
uchar
*>
(
const_cast
<
char
*>
(
tmp
.
_ref
.
data
())),
table
.
record
[
0
],
table
.
key_info
,
tmp
.
_ref
.
size
(),
true
);
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
graph
::
edge_cache_type
::
iterator
found
=
_cache
->
_cache_edges
.
find
(
tmp
);
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
if
(
found
!=
_cache
->
_cache_edges
.
end
())
{
// we already had a row
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
_current
.
reset
(
&
found
->
first
);
}
else
{
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
_current
.
reset
(
&
_cache
->
_cache_edges
.
insert
(
std
::
make_pair
(
tmp
,
...
...
@@ -245,19 +240,19 @@ oqgraph3::row_cursor& oqgraph3::row_cursor::first()
}
}
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
table
.
file
->
ha_index_end
();
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
return
*
this
;
}
oqgraph3
::
row_cursor
&
oqgraph3
::
row_cursor
::
last
()
{
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
TABLE
&
table
=
*
_cache
->
_table
;
table
.
file
->
ha_index_init
(
0
,
1
);
printf
(
"%s:%d - %s
\n
"
,
__func__
,
__LINE__
,
"ha_index_last"
);
if
(
!
table
.
file
->
ha_index_last
(
table
.
record
[
0
]))
{
update_virtual_fields
(
table
.
in_use
,
&
table
);
...
...
@@ -300,6 +295,7 @@ oqgraph3::row_cursor& oqgraph3::row_cursor::last()
oqgraph3
::
row_cursor
&
oqgraph3
::
row_cursor
::
operator
--
()
{
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
if
(
!
_current
)
return
last
();
...
...
@@ -320,6 +316,7 @@ oqgraph3::row_cursor& oqgraph3::row_cursor::operator--()
TABLE
&
table
=
*
_cache
->
_table
;
table
.
file
->
ha_index_init
(
0
,
1
);
printf
(
"%s:%d - %s
\n
"
,
__func__
,
__LINE__
,
"ha_index_read_map"
);
if
(
table
.
file
->
ha_index_read_map
(
table
.
record
[
0
],
reinterpret_cast
<
const
uchar
*>
(
current
->
first
.
_ref
.
data
()),
...
...
@@ -370,6 +367,7 @@ oqgraph3::row_cursor& oqgraph3::row_cursor::operator--()
oqgraph3
::
row_cursor
&
oqgraph3
::
row_cursor
::
operator
+=
(
difference_type
delta
)
{
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
if
(
!
delta
||
!
_current
)
return
*
this
;
...
...
@@ -403,6 +401,7 @@ oqgraph3::row_cursor& oqgraph3::row_cursor::operator+=(difference_type delta)
index_started
=
true
;
}
printf
(
"%s:%d - %s
\n
"
,
__func__
,
__LINE__
,
"ha_index_read_map"
);
if
(
table
.
file
->
ha_index_read_map
(
table
.
record
[
0
],
reinterpret_cast
<
const
uchar
*>
(
current
->
second
.
_next
->
data
()),
...
...
@@ -422,6 +421,7 @@ oqgraph3::row_cursor& oqgraph3::row_cursor::operator+=(difference_type delta)
index_started
=
true
;
}
printf
(
"%s:%d - %s
\n
"
,
__func__
,
__LINE__
,
"ha_index_read_map"
);
if
(
table
.
file
->
ha_index_read_map
(
table
.
record
[
0
],
reinterpret_cast
<
const
uchar
*>
(
current
->
first
.
_ref
.
data
()),
...
...
@@ -457,6 +457,7 @@ oqgraph3::row_cursor& oqgraph3::row_cursor::operator+=(difference_type delta)
if
(
!
index_started
)
return
*
this
;
printf
(
"%s:%d - %s
\n
"
,
__func__
,
__LINE__
,
"ha_index_next"
);
if
(
table
.
file
->
ha_index_next
(
table
.
record
[
0
]))
{
table
.
file
->
ha_index_end
();
...
...
@@ -486,6 +487,7 @@ oqgraph3::row_cursor& oqgraph3::row_cursor::operator+=(difference_type delta)
oqgraph3
::
row_cursor
&
oqgraph3
::
row_cursor
::
operator
-=
(
difference_type
delta
)
{
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
if
(
!
delta
||
!
_current
)
return
*
this
;
...
...
@@ -519,6 +521,7 @@ oqgraph3::row_cursor& oqgraph3::row_cursor::operator-=(difference_type delta)
index_started
=
true
;
}
printf
(
"%s:%d - %s
\n
"
,
__func__
,
__LINE__
,
"ha_index_read_map"
);
if
(
table
.
file
->
ha_index_read_map
(
table
.
record
[
0
],
reinterpret_cast
<
const
uchar
*>
(
current
->
second
.
_next
->
data
()),
...
...
@@ -537,6 +540,7 @@ oqgraph3::row_cursor& oqgraph3::row_cursor::operator-=(difference_type delta)
index_started
=
true
;
}
printf
(
"%s:%d - %s
\n
"
,
__func__
,
__LINE__
,
"ha_index_read_map"
);
if
(
table
.
file
->
ha_index_read_map
(
table
.
record
[
0
],
reinterpret_cast
<
const
uchar
*>
(
current
->
first
.
_ref
.
data
()),
...
...
@@ -571,6 +575,7 @@ oqgraph3::row_cursor& oqgraph3::row_cursor::operator-=(difference_type delta)
if
(
!
index_started
)
return
first
();
printf
(
"%s:%d - %s
\n
"
,
__func__
,
__LINE__
,
"ha_index_prev"
);
if
(
table
.
file
->
ha_index_prev
(
table
.
record
[
0
]))
{
table
.
file
->
ha_index_end
();
...
...
@@ -599,6 +604,7 @@ oqgraph3::row_cursor& oqgraph3::row_cursor::operator-=(difference_type delta)
oqgraph3
::
vertex_descriptor
oqgraph3
::
graph
::
vertex
(
vertex_id
id
)
{
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
vertex_cache_type
::
const_iterator
found
=
_cache_vertices
.
find
(
vertex_info
(
id
));
...
...
@@ -611,6 +617,7 @@ oqgraph3::vertex_descriptor oqgraph3::graph::vertex(vertex_id id)
oqgraph3
::
edge_descriptor
oqgraph3
::
graph
::
edge
(
const
edge_key
&
key
)
{
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
edge_cache_type
::
const_iterator
found
=
_cache_edges
.
find
(
key
);
...
...
@@ -621,6 +628,7 @@ oqgraph3::edge_descriptor oqgraph3::graph::edge(const edge_key& key)
table
.
file
->
ha_index_init
(
0
,
0
);
printf
(
"%s:%d - %s
\n
"
,
__func__
,
__LINE__
,
"ha_index_read_map"
);
if
(
table
.
file
->
ha_index_read_map
(
table
.
record
[
0
],
reinterpret_cast
<
const
uchar
*>
(
key
.
_ref
.
data
()),
...
...
@@ -652,6 +660,7 @@ oqgraph3::edge_descriptor oqgraph3::graph::edge(
const
vertex_descriptor
&
source
,
const
vertex_descriptor
&
target
)
{
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
vertex_cache_type
::
const_iterator
xsource
=
_cache_vertices
.
find
(
*
source
);
if
(
_cache_vertices
.
end
()
!=
xsource
&&
xsource
->
_out_edges
)
...
...
@@ -721,15 +730,20 @@ oqgraph3::edge_descriptor oqgraph3::graph::edge(
bitmap_clear_bit
(
table
.
write_set
,
_source
->
field_index
);
bitmap_clear_bit
(
table
.
write_set
,
_target
->
field_index
);
uint
key_len
=
key_info
->
key_part
[
0
].
store_length
+
key_info
->
key_part
[
1
].
store_length
;
uint
key_len
=
key_info
->
key_length
;
uchar
*
key_prefix
=
(
uchar
*
)
my_alloca
(
key_len
);
table
.
file
->
ha_index_init
(
i
,
0
);
key_copy
(
key_prefix
,
table
.
record
[
0
],
key_info
,
key_len
);
key_copy
(
key_prefix
,
table
.
record
[
0
],
key_info
,
key_len
,
1
);
printf
(
"%s:%d - %s
\n
"
,
__func__
,
__LINE__
,
"ha_index_read_map"
);
if
(
!
table
.
file
->
ha_index_read_map
(
table
.
record
[
0
],
key_prefix
,
(
key_part_map
)
3
,
HA_READ_KEY_EXACT
))
table
.
record
[
0
],
key_prefix
,
(
key_part_map
)
3
,
key_info
->
key_parts
==
2
?
HA_READ_KEY_EXACT
:
HA_READ_KEY_OR_NEXT
)
&&
_source
->
val_int
()
==
source
->
id
&&
_target
->
val_int
()
==
target
->
id
)
{
// We have found the edge,
...
...
@@ -795,6 +809,7 @@ oqgraph3::edges_size_type oqgraph3::graph::num_edges() const
const
oqgraph3
::
vertex_info
::
edge_list_type
&
oqgraph3
::
vertex_info
::
out_edges
()
{
printf
(
"%s:%d id=%lld
\n
"
,
__func__
,
__LINE__
,
id
);
if
(
!
_out_edges
)
{
_out_edges
=
edge_list_type
();
...
...
@@ -815,14 +830,18 @@ oqgraph3::vertex_info::out_edges()
_cache
->
_source
->
store
(
id
,
1
);
bitmap_clear_bit
(
table
.
write_set
,
_cache
->
_source
->
field_index
);
uint
key_len
=
key_info
->
key_
part
[
0
].
store_
length
;
uint
key_len
=
key_info
->
key_length
;
uchar
*
key
=
(
uchar
*
)
my_alloca
(
key_len
);
table
.
file
->
ha_index_init
(
i
,
1
);
key_copy
(
key
,
table
.
record
[
0
],
key_info
,
key_len
);
key_copy
(
key
,
table
.
record
[
0
],
key_info
,
key_len
,
true
);
printf
(
"%s:%d - %s
\n
"
,
__func__
,
__LINE__
,
"ha_index_read_map"
);
if
(
!
table
.
file
->
ha_index_read_map
(
table
.
record
[
0
],
key
,
(
key_part_map
)
1
,
HA_READ_KEY_EXACT
))
table
.
record
[
0
],
key
,
(
key_part_map
)
1
,
key_info
->
key_parts
==
1
?
HA_READ_KEY_EXACT
:
HA_READ_KEY_OR_NEXT
))
{
// We have found an edge,
do
...
...
@@ -854,9 +873,14 @@ oqgraph3::vertex_info::out_edges()
)).
first
;
}
_out_edges
->
push_back
(
found
->
first
.
_ref
);
printf
(
"%s:%d - %s
\n
"
,
__func__
,
__LINE__
,
"ha_index_next"
);
if
(
table
.
file
->
ha_index_next
(
table
.
record
[
0
]))
{
break
;
}
}
while
(
!
table
.
file
->
ha_index_next_same
(
table
.
record
[
0
],
key
,
key_len
));
while
(
_cache
->
_source
->
val_int
()
==
id
);
table
.
file
->
ha_index_end
();
my_afree
(
key
);
...
...
@@ -872,6 +896,7 @@ oqgraph3::vertex_info::out_edges()
const
oqgraph3
::
vertex_info
::
edge_list_type
&
oqgraph3
::
vertex_info
::
in_edges
()
{
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
if
(
!
_in_edges
)
{
_in_edges
=
edge_list_type
();
...
...
@@ -892,14 +917,18 @@ oqgraph3::vertex_info::in_edges()
_cache
->
_target
->
store
(
id
,
1
);
bitmap_clear_bit
(
table
.
write_set
,
_cache
->
_target
->
field_index
);
uint
key_len
=
key_info
->
key_
part
[
0
].
store_
length
;
uint
key_len
=
key_info
->
key_length
;
uchar
*
key
=
(
uchar
*
)
my_alloca
(
key_len
);
table
.
file
->
ha_index_init
(
i
,
1
);
key_copy
(
key
,
table
.
record
[
0
],
key_info
,
key_len
);
key_copy
(
key
,
table
.
record
[
0
],
key_info
,
key_len
,
true
);
printf
(
"%s:%d - %s
\n
"
,
__func__
,
__LINE__
,
"ha_index_read_map"
);
if
(
!
table
.
file
->
ha_index_read_map
(
table
.
record
[
0
],
key
,
(
key_part_map
)
1
,
HA_READ_KEY_EXACT
))
table
.
record
[
0
],
key
,
(
key_part_map
)
1
,
key_info
->
key_parts
==
1
?
HA_READ_KEY_EXACT
:
HA_READ_KEY_OR_NEXT
))
{
// We have found an edge,
do
...
...
@@ -931,9 +960,12 @@ oqgraph3::vertex_info::in_edges()
)).
first
;
}
_in_edges
->
push_back
(
found
->
first
.
_ref
);
printf
(
"%s:%d - %s
\n
"
,
__func__
,
__LINE__
,
"ha_index_next"
);
if
(
table
.
file
->
ha_index_next
(
table
.
record
[
0
]))
break
;
}
while
(
!
table
.
file
->
ha_index_next_same
(
table
.
record
[
0
],
key
,
key_len
));
while
(
_cache
->
_target
->
val_int
()
==
id
);
table
.
file
->
ha_index_end
();
my_afree
(
key
);
...
...
@@ -948,27 +980,32 @@ oqgraph3::vertex_info::in_edges()
std
::
size_t
oqgraph3
::
vertex_info
::
degree
()
{
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
return
out_edges
().
size
()
+
in_edges
().
size
();
}
oqgraph3
::
degree_size_type
oqgraph3
::
vertex_descriptor
::
in_degree
()
const
{
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
return
(
*
this
)
->
in_edges
().
size
();
}
oqgraph3
::
degree_size_type
oqgraph3
::
vertex_descriptor
::
out_degree
()
const
{
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
return
(
*
this
)
->
out_edges
().
size
();
}
oqgraph3
::
vertex_descriptor
oqgraph3
::
edge_descriptor
::
source
()
const
{
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
return
(
*
this
)
->
_cache
->
vertex
(
oqgraph3
::
row_cursor
(
*
this
,
(
*
this
)
->
_cache
)
->
first
);
}
oqgraph3
::
vertex_descriptor
oqgraph3
::
edge_descriptor
::
target
()
const
{
printf
(
"%s:%d
\n
"
,
__func__
,
__LINE__
);
return
(
*
this
)
->
_cache
->
vertex
(
oqgraph3
::
row_cursor
(
*
this
,
(
*
this
)
->
_cache
)
->
second
);
}
...
...
storage/oqgraph/oqgraph_thunk.h
View file @
b27a83d5
...
...
@@ -205,7 +205,7 @@ namespace oqgraph3
,
_weight
(
weight
)
,
_prev
(
prev
)
,
_next
(
next
)
{
}
{
printf
(
"row_info(%lld,%lld,%f)
\n
"
,
source
,
target
,
weight
);
}
};
namespace
internal
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment