anjuta r4067 - in trunk: . libanjuta plugins/language-support-cpp-java plugins/symbol-db
- From: jhs svn gnome org
- To: svn-commits-list gnome org
- Subject: anjuta r4067 - in trunk: . libanjuta plugins/language-support-cpp-java plugins/symbol-db
- Date: Mon, 7 Jul 2008 07:12:00 +0000 (UTC)
Author: jhs
Date: Mon Jul 7 07:12:00 2008
New Revision: 4067
URL: http://svn.gnome.org/viewvc/anjuta?rev=4067&view=rev
Log:
2008-07-07 Johannes Schmid <jhs gnome org>
* plugins/symbol-db/plugin.c:
Fixed a double-free
2008-07-07 Massimo Cora\' <maxcvs email it>
* plugins/language-support-cpp-java/cpp-java-assist.c
(cpp_java_assist_create_word_completion_cache):
added some debugging info.
* plugins/symbol-db/plugin.c (on_project_root_added),
(isymbol_manager_search):
* plugins/symbol-db/symbol-db-engine.c
(sdb_engine_get_statement_by_query_id),
(sdb_engine_get_dyn_query_node_by_id),
(sdb_engine_insert_dyn_query_node_by_id),
(sdb_engine_get_query_parameters_list),
(sdb_engine_free_cached_queries),
(sdb_engine_free_cached_dynamic_queries),
(sdb_engine_get_tuple_id_by_unique_name),
(sdb_engine_get_tuple_id_by_unique_name2),
(sdb_engine_get_tuple_id_by_unique_name3), (sdb_engine_init),
(sdb_engine_finalize), (symbol_db_engine_new),
(symbol_db_engine_find_symbol_by_name_pattern_filtered):
* plugins/symbol-db/symbol-db-engine.h:
* plugins/symbol-db/symbol-db-prefs.c (symbol_db_prefs_init):
* plugins/symbol-db/symbol-db-system.c (destroy_single_scan_data),
(destroy_engine_scan_data), (sdb_system_init),
(sdb_system_finalize), (sdb_system_class_init),
(sdb_system_get_normalized_cflags),
(on_engine_package_single_file_scan_end), (symbol_db_system_new),
(symbol_db_system_is_package_parsed), (on_pkg_config_output),
(sdb_system_files_visit_dir), (prepare_files_to_be_scanned),
(on_engine_package_scan_end), (sdb_system_do_scan_package_1),
(sdb_system_do_scan_next_package),
(sdb_system_do_scan_new_package), (on_pkg_config_exit),
(symbol_db_system_scan_package),
(symbol_db_system_is_package_parseable):
* plugins/symbol-db/symbol-db-system.h:
fixed threaded libgda stuff. It was the static prepared statement that broke
the thing.
Modified:
trunk/ChangeLog
trunk/libanjuta/anjuta-launcher.c
trunk/plugins/language-support-cpp-java/cpp-java-assist.c
trunk/plugins/symbol-db/plugin.c
trunk/plugins/symbol-db/symbol-db-engine.c
trunk/plugins/symbol-db/symbol-db-engine.h
trunk/plugins/symbol-db/symbol-db-prefs.c
Modified: trunk/libanjuta/anjuta-launcher.c
==============================================================================
--- trunk/libanjuta/anjuta-launcher.c (original)
+++ trunk/libanjuta/anjuta-launcher.c Mon Jul 7 07:12:00 2008
@@ -617,7 +617,6 @@
g_free (line);
break;
case GTK_RESPONSE_CANCEL:
- anjuta_launcher_send_ptyin (launcher, "<canceled>\n");
anjuta_launcher_reset (launcher);
break;
default:
Modified: trunk/plugins/language-support-cpp-java/cpp-java-assist.c
==============================================================================
--- trunk/plugins/language-support-cpp-java/cpp-java-assist.c (original)
+++ trunk/plugins/language-support-cpp-java/cpp-java-assist.c Mon Jul 7 07:12:00 2008
@@ -370,17 +370,17 @@
TRUE,
IANJUTA_SYMBOL_FIELD_SIMPLE|IANJUTA_SYMBOL_FIELD_TYPE,
pre_word, TRUE, TRUE, TRUE, max_completions, -1, NULL);
- DEBUG_PRINT ("cpp_java_assist_create_word_completion_cache ()");
+
if (iter_project)
{
- DEBUG_PRINT ("cpp_java_assist_create_word_completion_cache () 1");
+ DEBUG_PRINT ("length iter_project %d", ianjuta_iterable_get_length (iter_project, NULL));
completion = create_completion (assist->priv->iassist, iter_project, NULL);
g_object_unref (iter_project);
}
if (iter_globals)
{
- DEBUG_PRINT ("cpp_java_assist_create_word_completion_cache () 2");
+ DEBUG_PRINT ("length iter_globals %d", ianjuta_iterable_get_length (iter_globals, NULL));
completion = create_completion (assist->priv->iassist, iter_globals, completion);
g_object_unref (iter_globals);
}
Modified: trunk/plugins/symbol-db/plugin.c
==============================================================================
--- trunk/plugins/symbol-db/plugin.c (original)
+++ trunk/plugins/symbol-db/plugin.c Mon Jul 7 07:12:00 2008
@@ -262,8 +262,7 @@
g_strdup (saved_uri));
on_editor_update_ui (editor, sdb_plugin);
- g_free (local_filename);
- g_free (saved_uri);
+ g_free (saved_uri);
}
}
@@ -1152,8 +1151,7 @@
G_CALLBACK (on_project_element_removed), sdb_plugin);
gtk_widget_hide (sdb_plugin->progress_bar_system);
-#if 0
-//FIXME libgda thread bug.
+
/* system's packages management */
GList* packages = ianjuta_project_manager_get_packages (pm, NULL);
GList *item = packages;
@@ -1168,7 +1166,6 @@
item = item->next;
}
-#endif
}
static void
@@ -1545,38 +1542,20 @@
pattern = g_strdup_printf ("%s", match_name);
/* should we lookup for project of system tags? */
- if (global_tags_search == FALSE)
- {
- DEBUG_PRINT ("project_tags scan ");
- /* get symbols from current opened project */
- iterator = symbol_db_engine_find_symbol_by_name_pattern_filtered (dbe_project,
- pattern,
- exact_match,
- filter_array,
- include_types,
- global_symbols_search,
- results_limit,
- results_offset,
- info_fields);
- }
- else
- {
- /* global_tags scan */
- /* the only parameters to change is the engine, dbe_globals */
- DEBUG_PRINT ("global_tags scan ");
-
- iterator =
- symbol_db_engine_find_symbol_by_name_pattern_filtered (dbe_globals,
- pattern,
- exact_match,
- filter_array,
- include_types,
- global_symbols_search,
- results_limit,
- results_offset,
- info_fields);
- }
-
+ DEBUG_PRINT ("tags scan [%s] [exact_match %d] [global %d]", pattern,
+ exact_match, global_symbols_search);
+ iterator =
+ symbol_db_engine_find_symbol_by_name_pattern_filtered (
+ global_tags_search == FALSE ? dbe_project : dbe_globals,
+ pattern,
+ exact_match,
+ filter_array,
+ include_types,
+ global_symbols_search,
+ results_limit,
+ results_offset,
+ info_fields);
+ DEBUG_PRINT ("iterator length %d", ianjuta_iterable_get_length (iterator, NULL));
g_free (pattern);
if (filter_array)
Modified: trunk/plugins/symbol-db/symbol-db-engine.c
==============================================================================
--- trunk/plugins/symbol-db/symbol-db-engine.c (original)
+++ trunk/plugins/symbol-db/symbol-db-engine.c Mon Jul 7 07:12:00 2008
@@ -195,389 +195,25 @@
PREP_QUERY_TMP_REMOVED_DELETE_ALL,
PREP_QUERY_COUNT
-} query_type;
+} static_query_type;
-
-typedef struct _query_node
+typedef struct _static_query_node
{
- query_type query_id;
- gchar *query_str;
+ static_query_type query_id;
+ const gchar *query_str;
GdaStatement *stmt;
GdaSet *plist;
-} query_node;
-
+} static_query_node;
-/* *MUST* respect query_type enum order. */
-static query_node query_list[PREP_QUERY_COUNT] = {
- /* -- workspace -- */
- {
- PREP_QUERY_WORKSPACE_NEW,
- "INSERT INTO workspace (workspace_name, analyse_time) "
- "VALUES (## /* name:'wsname' type:gchararray */,"
- "datetime ('now', 'localtime'))",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_WORKSPACE_ID_BY_UNIQUE_NAME,
- "SELECT workspace_id FROM workspace WHERE workspace_name = ## /* name:'wsname' "
- "type:gchararray */ LIMIT 1",
- NULL,
- NULL
- },
- /* -- project -- */
- {
- PREP_QUERY_PROJECT_NEW,
- "INSERT INTO project (project_name, wrkspace_id, analyse_time) "
- "VALUES (## /* name:'prjname' type:gchararray */,"
- "## /* name:'wsid' type:gint */, datetime ('now', 'localtime'))",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_PROJECT_ID_BY_UNIQUE_NAME,
- "SELECT project_id FROM project WHERE project_name = ## /* name:'prjname' "
- "type:gchararray */ LIMIT 1",
- NULL,
- NULL
- },
- {
- PREP_QUERY_UPDATE_PROJECT_ANALYSE_TIME,
- "UPDATE project SET analyse_time = datetime('now', 'localtime', '+10 seconds') WHERE "
- "project_name = ## /* name:'prjname' type:gchararray */",
- NULL,
- NULL
- },
- /* -- file -- */
- {
- PREP_QUERY_FILE_NEW,
- "INSERT INTO file (file_path, prj_id, lang_id, analyse_time) VALUES ("
- "## /* name:'filepath' type:gchararray */, ## /* name:'prjid' "
- "type:gint */, ## /* name:'langid' type:gint */, "
- "datetime ('now', 'localtime'))",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_FILE_ID_BY_UNIQUE_NAME,
- "SELECT file_id FROM file WHERE file_path = ## /* name:'filepath' "
- "type:gchararray */ LIMIT 1",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_ALL_FROM_FILE_BY_PROJECT_NAME,
- "SELECT * FROM file WHERE prj_id = (SELECT project_id FROM project "
- "WHERE project_name = ## /* name:'prjname' type:gchararray */)",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_ALL_FROM_FILE_BY_PROJECT_ID,
- "SELECT file_id, file_path, prj_id, lang_id, analyse_time FROM file "
- "WHERE prj_id = ## /* name:'prjid' type:gint */",
-/*
- "SELECT * FROM file JOIN project on project_id = prj_id WHERE "\
- "project.name = ## / * name:'prjname' type:gchararray * /",
-*/
- NULL,
- NULL
- },
- {
- PREP_QUERY_UPDATE_FILE_ANALYSE_TIME,
- "UPDATE file SET analyse_time = datetime('now', 'localtime') WHERE "
- "file_path = ## /* name:'filepath' type:gchararray */",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_ALL_FROM_FILE_WHERE_NOT_IN_SYMBOLS,
- "SELECT file_id, file_path FROM file WHERE file_id NOT IN (SELECT file_defined_id FROM symbol)",
- NULL
- },
- /* -- language -- */
- {
- PREP_QUERY_LANGUAGE_NEW,
- "INSERT INTO language (language_name) VALUES (## /* name:'langname' "
- "type:gchararray */)",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_LANGUAGE_ID_BY_UNIQUE_NAME,
- "SELECT language_id FROM language WHERE language_name = ## /* name:'langname' "
- "type:gchararray */ LIMIT 1",
- NULL,
- NULL
- },
- /* -- sym type -- */
- {
- PREP_QUERY_SYM_TYPE_NEW,
- "INSERT INTO sym_type (type_type, type_name) VALUES (## /* name:'type' "
- "type:gchararray */, ## /* name:'typename' type:gchararray */)",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_SYM_TYPE_ID,
- "SELECT type_id FROM sym_type WHERE type_type = ## /* name:'type' "
- "type:gchararray */ AND type_name = ## /* name:'typename' "
- "type:gchararray */ LIMIT 1",
- NULL,
- NULL
- },
- /* -- sym kind -- */
- {
- PREP_QUERY_SYM_KIND_NEW,
- "INSERT INTO sym_kind (kind_name) VALUES(## /* name:'kindname' "
- "type:gchararray */)",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_SYM_KIND_BY_UNIQUE_NAME,
- "SELECT sym_kind_id FROM sym_kind WHERE kind_name = ## /* "
- "name:'kindname' type:gchararray */",
- NULL,
- NULL
- },
- /* -- sym access -- */
- {
- PREP_QUERY_SYM_ACCESS_NEW,
- "INSERT INTO sym_access (access_name) VALUES(## /* name:'accesskind' "
- "type:gchararray */)",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_SYM_ACCESS_BY_UNIQUE_NAME,
- "SELECT access_kind_id FROM sym_access WHERE access_name = ## /* "
- "name:'accesskind' type:gchararray */ LIMIT 1",
- NULL,
- NULL
- },
- /* -- sym implementation -- */
- {
- PREP_QUERY_SYM_IMPLEMENTATION_NEW,
- "INSERT INTO sym_implementation (implementation_name) VALUES(## /* name:'implekind' "
- "type:gchararray */)",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_SYM_IMPLEMENTATION_BY_UNIQUE_NAME,
- "SELECT sym_impl_id FROM sym_implementation WHERE kind = ## /* "
- "name:'implekind' type:gchararray */ LIMIT 1",
- NULL,
- NULL
- },
- /* -- heritage -- */
- {
- PREP_QUERY_HERITAGE_NEW,
- "INSERT INTO heritage (symbol_id_base, symbol_id_derived) VALUES(## /* "
- "name:'symbase' type:gint */, ## /* name:'symderived' type:gint */)",
- NULL,
- NULL
- },
- /* -- scope -- */
- {
- PREP_QUERY_SCOPE_NEW,
- "INSERT INTO scope (scope_name, type_id) VALUES(## /* name:'scope' "
- "type:gchararray */, ## /* name:'typeid' type:gint */)",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_SCOPE_ID,
- "SELECT scope_id FROM scope WHERE scope_name = ## /* name:'scope' "
- "type:gchararray */ AND type_id = ## /* name:'typeid' type:gint */ LIMIT 1",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_PARENT_SCOPE_ID_BY_SYMBOL_ID_NO_FILE,
- "SELECT symbol.symbol_id, symbol.file_defined_id, "
- "symbol.file_position, symbol.scope_definition_id, symbol.scope_id "
- "FROM symbol WHERE symbol.scope_definition_id = ( "
- "SELECT symbol.scope_id FROM symbol WHERE symbol.symbol_id = "
- "## /* name:'symid' type:gint */) "
- "AND symbol.scope_definition_id > 0",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_PARENT_SCOPE_ID_BY_SYMBOL_ID,
- "SELECT symbol.symbol_id, symbol.file_defined_id, "
- "symbol.file_position, symbol.scope_definition_id, symbol.scope_id "
- "FROM symbol JOIN file "
- "ON symbol.file_defined_id = file.file_id "
- "WHERE symbol.scope_definition_id = ( "
- "SELECT symbol.scope_id FROM symbol WHERE symbol.symbol_id = "
- "## /* name:'symid' type:gint */) "
- "AND symbol.scope_definition_id > 0 "
- "AND file.file_path = ## /* name:'dbfile' type:gchararray */",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_PARENT_SCOPE_ID_BY_SYMBOL_ID_BY_SYMBOL_ID,
- "SELECT symbol.scope_definition_id FROM symbol WHERE "
- "file_defined_id = (SELECT file_defined_id FROM symbol WHERE symbol_id = "
- "/* name:'scopedsymid' type:gint */) "
- "AND file_position < (SELECT file_position FROM symbol WHERE symbol_id = "
- "/* name:'scopedsymid' type:gint */) "
- "ORDER BY file_position DESC",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_SCOPE_DEFINITION_ID_BY_WALK_DOWN_SCOPE_PATH,
- "SELECT scope_definition_id FROM symbol "
- "WHERE scope_id = /* name:'scopeid' type:gint */ AND scope_definition_id = ("
- "SELECT scope.scope_id FROM scope "
- "INNER JOIN sym_type ON scope.type_id = sym_type.type_id "
- "WHERE sym_type.type_type = /* name:'symtype' type:gchararray */ "
- "AND scope.scope_name = /* name:'scopename' type:gchararray */) LIMIT 1",
- NULL,
- NULL
- },
- /* -- tmp heritage -- */
- {
- PREP_QUERY_TMP_HERITAGE_NEW,
- "INSERT INTO __tmp_heritage_scope (symbol_referer_id, field_inherits, "
- "field_struct, field_typeref, field_enum, field_union, "
- "field_class, field_namespace) VALUES (## /* name:'symreferid' "
- "type:gint */, ## /* name:'finherits' type:gchararray */, ## /* "
- "name:'fstruct' type:gchararray */, ## /* name:'ftyperef' "
- "type:gchararray */, ## /* name:'fenum' type:gchararray */, ## /* "
- "name:'funion' type:gchararray */, ## /* name:'fclass' type:gchararray "
- "*/, ## /* name:'fnamespace' type:gchararray */)",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_ALL_FROM_TMP_HERITAGE,
- "SELECT * FROM __tmp_heritage_scope",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_ALL_FROM_TMP_HERITAGE_WITH_INHERITS,
- "SELECT * FROM __tmp_heritage_scope WHERE field_inherits != ''",
- NULL,
- NULL
- },
- {
- PREP_QUERY_TMP_HERITAGE_DELETE_ALL,
- "DELETE FROM __tmp_heritage_scope",
- NULL,
- NULL
- },
- /* -- symbol -- */
- {
- PREP_QUERY_SYMBOL_NEW,
- "INSERT INTO symbol (file_defined_id, name, file_position, "
- "is_file_scope, signature, scope_definition_id, scope_id, type_id, "
- "kind_id, access_kind_id, implementation_kind_id, update_flag) VALUES("
- "## /* name:'filedefid' type:gint */, ## /* name:'name' "
- "type:gchararray */, ## /* name:'fileposition' type:gint */, ## /* "
- "name:'isfilescope' type:gint */, ## /* name:'signature' "
- "type:gchararray */,## /* name:'scopedefinitionid' type:gint */, ## "
- "/* name:'scopeid' type:gint */,## /* name:'typeid' type:gint */, ## "
- "/* name:'kindid' type:gint */,## /* name:'accesskindid' type:gint */, "
- "## /* name:'implementationkindid' type:gint */, ## /* "
- "name:'updateflag' type:gint */)",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_SYMBOL_SCOPE_DEFINITION_ID,
- "SELECT scope_definition_id FROM symbol JOIN sym_type ON symbol.type_id "
- "= sym_type.type_id WHERE sym_type.type_type = ## /* name:'tokenname' "
- "type:gchararray */ AND sym_type.type_name = ## /* name:'objectname' "
- "type:gchararray */ LIMIT 1",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_SYMBOL_ID_BY_CLASS_NAME,
- "SELECT symbol_id FROM symbol JOIN sym_type ON symbol.type_id = "
- "sym_type.type_id WHERE scope_id=0 AND sym_type.type_type='class' AND "
- "name = ## /* name:'klassname' type:gchararray */ LIMIT 1",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_SYMBOL_ID_BY_CLASS_NAME_AND_NAMESPACE,
- "SELECT symbol_id FROM symbol JOIN scope ON symbol.scope_id = "
- "scope.scope_id JOIN sym_type ON scope.type_id = sym_type.type_id "
- "WHERE symbol.name = ## /* name:'klassname' type:gchararray */ AND "
- "scope.scope_name = ## /* name:'namespacename' type:gchararray */ AND "
- "sym_type.type_type = 'namespace' LIMIT 1",
- NULL,
- NULL
- },
- {
- PREP_QUERY_UPDATE_SYMBOL_SCOPE_ID,
- "UPDATE symbol SET scope_id = ## /* name:'scopeid' type:gint */ "
- "WHERE symbol_id = ## /* name:'symbolid' type:gint */",
- NULL,
- NULL
- },
- {
- PREP_QUERY_GET_SYMBOL_ID_BY_UNIQUE_INDEX_KEY,
- "SELECT symbol_id FROM symbol WHERE name = ## /* name:'symname' "
- "type:gchararray */ AND file_defined_id = ## /* name:'filedefid' "
- "type:gint */ AND type_id = ## /* name:'typeid' type:gint */ LIMIT 1",
- NULL,
- NULL
- },
- {
- PREP_QUERY_UPDATE_SYMBOL_ALL,
- "UPDATE symbol SET is_file_scope = ## /* name:'isfilescope' type:gint "
- "*/, file_position = ## /* name:'fileposition' type:gint */, "
- "signature = ## /* name:'signature' type:gchararray */, "
- "scope_definition_id = ## /* name:'scopedefinitionid' type:gint */, "
- "scope_id = ## /* name:'scopeid' type:gint */, kind_id = "
- "## /* name:'kindid' type:gint */, access_kind_id = ## /* name:"
- "'accesskindid' type:gint */, implementation_kind_id = ## /* name:"
- "'implementationkindid' type:gint */, update_flag = ## /* name:"
- "'updateflag' type:gint */ WHERE symbol_id = ## /* name:'symbolid' type:"
- "gint */",
- NULL,
- NULL
- },
- {
- PREP_QUERY_REMOVE_NON_UPDATED_SYMBOLS,
- "DELETE FROM symbol WHERE file_defined_id = (SELECT file_id FROM file "
- "WHERE file_path = ## /* name:'filepath' type:gchararray */) "
- "AND update_flag = 0",
- NULL,
- NULL
- },
- {
- PREP_QUERY_RESET_UPDATE_FLAG_SYMBOLS,
- "UPDATE symbol SET update_flag = 0 "
- "WHERE file_defined_id = (SELECT file_id FROM file WHERE "
- "file_path = ## /* name:'filepath' type:gchararray */)",
- NULL,
- NULL
- },
- /* -- tmp_removed -- */
- {
- PREP_QUERY_GET_REMOVED_IDS,
- "SELECT symbol_removed_id FROM __tmp_removed",
- NULL,
- NULL
- },
- {
- PREP_QUERY_TMP_REMOVED_DELETE_ALL,
- "DELETE FROM __tmp_removed",
- NULL,
- NULL
- }
-};
+#define STATIC_QUERY_POPULATE_INIT_NODE(query_list_ptr, query_type, gda_stmt) { \
+ static_query_node *q = g_new0 (static_query_node, 1); \
+ q->query_id = query_type; \
+ q->query_str = gda_stmt; \
+ q->stmt = NULL; \
+ q->plist = NULL; \
+ query_list_ptr [query_type] = q; \
+}
typedef enum {
@@ -611,59 +247,13 @@
} DynChildQueryNode;
-/* *MUST* respect dyn_query_type enum order. */
-static dyn_query_node dyn_query_list [DYN_PREP_QUERY_COUNT] = {
- {
- DYN_PREP_QUERY_GET_CLASS_PARENTS,
- NULL,
- TRUE
- },
- {
- DYN_PREP_QUERY_GET_CLASS_PARENTS_BY_SYMBOL_ID,
- NULL,
- FALSE
- },
- {
- DYN_PREP_QUERY_GET_GLOBAL_MEMBERS_FILTERED,
- NULL,
- TRUE
- },
- {
- DYN_PREP_QUERY_GET_SCOPE_MEMBERS,
- NULL,
- FALSE
- },
- {
- DYN_PREP_QUERY_GET_CURRENT_SCOPE,
- NULL,
- FALSE
- },
- {
- DYN_PREP_QUERY_GET_FILE_SYMBOLS,
- NULL,
- FALSE
- },
- {
- DYN_PREP_QUERY_GET_SYMBOL_INFO_BY_ID,
- NULL,
- FALSE
- },
- {
- DYN_PREP_QUERY_FIND_SYMBOL_NAME_BY_PATTERN,
- NULL,
- FALSE
- },
- {
- DYN_PREP_QUERY_FIND_SYMBOL_BY_NAME_PATTERN_FILTERED,
- NULL,
- TRUE
- },
- {
- DYN_PREP_QUERY_GET_SCOPE_MEMBERS_BY_SYMBOL_ID,
- NULL,
- TRUE
- }
-};
+#define DYN_QUERY_POPULATE_INIT_NODE(query_list_ptr, query_type, gtree_child) { \
+ dyn_query_node *q = g_new0 (dyn_query_node, 1); \
+ q->dyn_query_id = query_type; \
+ q->sym_extra_info_gtree = NULL; \
+ q->has_gtree_child = gtree_child; \
+ query_list_ptr [query_type] = q; \
+}
typedef void (SymbolDBEngineCallback) (SymbolDBEngine * dbe,
@@ -720,6 +310,9 @@
GHashTable *kind_cache;
GHashTable *access_cache;
GHashTable *implementation_cache;
+
+ static_query_node *static_query_list[PREP_QUERY_COUNT];
+ dyn_query_node *dyn_query_list[DYN_PREP_QUERY_COUNT];
};
typedef struct _ThreadDataOutput {
@@ -904,9 +497,9 @@
* A GdaSet will also be populated once, avoiding so to create again later on.
*/
static inline const GdaStatement *
-sdb_engine_get_statement_by_query_id (SymbolDBEngine * dbe, query_type query_id)
+sdb_engine_get_statement_by_query_id (SymbolDBEngine * dbe, static_query_type query_id)
{
- query_node *node;
+ static_query_node *node;
SymbolDBEnginePriv *priv;
priv = dbe->priv;
@@ -915,7 +508,7 @@
* a connection established to db before using this function */
g_return_val_if_fail (priv->db_connection != NULL, NULL);
- node = &query_list[query_id];
+ node = priv->static_query_list[query_id];
if (node->stmt == NULL)
{
@@ -954,14 +547,8 @@
priv = dbe->priv;
- node = &dyn_query_list[query_id];
+ node = priv->dyn_query_list[query_id];
-/* DEBUG_PRINT ("sdb_engine_get_dyn_query_node_by_id (): query %d has_gtree_child %d"
- "other_parameters %d, sym_info %d", query_id, node->has_gtree_child,
- other_parameters, sym_info
- );
- */
-
if (node->sym_extra_info_gtree == NULL)
{
/* we didn't find any extra info symbol, nor it has been added before */
@@ -970,8 +557,6 @@
if (node->has_gtree_child == FALSE)
{
-/* DEBUG_PRINT ("sdb_engine_get_dyn_query_node_by_id (): %d has_gtree_child FALSE",
- query_id);*/
/* use only sym_info as key, ignore other_parameters */
return g_tree_lookup (node->sym_extra_info_gtree, (gpointer)sym_info);
}
@@ -1024,7 +609,7 @@
* a connection established to db before using this function */
g_return_val_if_fail (priv->db_connection != NULL, NULL);
- node = &dyn_query_list[query_id];
+ node = priv->dyn_query_list[query_id];
if (node->sym_extra_info_gtree == NULL)
{
@@ -1120,10 +705,14 @@
* if it's null. You *must* be sure to have called sdb_engine_get_statement_by_query_id () first.
*/
static inline const GdaSet *
-sdb_engine_get_query_parameters_list (SymbolDBEngine *dbe, query_type query_id)
+sdb_engine_get_query_parameters_list (SymbolDBEngine *dbe, static_query_type query_id)
{
- query_node *node;
- node = &query_list[query_id];
+ SymbolDBEnginePriv *priv;
+
+ priv = dbe->priv;
+
+ static_query_node *node;
+ node = priv->static_query_list[query_id];
return node->plist;
}
@@ -1132,22 +721,25 @@
* destroying SymbolDBEngine object.
*/
static void
-sdb_engine_free_cached_queries ()
+sdb_engine_free_cached_queries (SymbolDBEngine *dbe)
{
+ SymbolDBEnginePriv *priv;
gint i;
- query_node *node;
+ static_query_node *node;
+
+ priv = dbe->priv;
for (i = 0; i < PREP_QUERY_COUNT; i++)
{
- node = &query_list[i];
+ node = priv->static_query_list[i];
- if (node->stmt != NULL)
+ if (node != NULL && node->stmt != NULL)
{
g_object_unref (node->stmt);
node->stmt = NULL;
}
- if (node->plist != NULL)
+ if (node != NULL && node->plist != NULL)
{
g_object_unref (node->plist);
node->plist = NULL;
@@ -1156,16 +748,20 @@
}
static void
-sdb_engine_free_cached_dynamic_queries ()
+sdb_engine_free_cached_dynamic_queries (SymbolDBEngine *dbe)
{
+ SymbolDBEnginePriv *priv;
gint i;
dyn_query_node *node;
+ priv = dbe->priv;
+
for (i = 0; i < DYN_PREP_QUERY_COUNT; i++)
{
- node = &dyn_query_list[i];
+ node = priv->dyn_query_list[i];
- if (node->sym_extra_info_gtree != NULL)
+
+ if (node != NULL && node->sym_extra_info_gtree != NULL)
{
g_object_unref (node->sym_extra_info_gtree );
node->sym_extra_info_gtree = NULL;
@@ -1201,7 +797,7 @@
* @return -1 on error. Otherwise the id of tuple.
*/
static gint
-sdb_engine_get_tuple_id_by_unique_name (SymbolDBEngine * dbe, query_type qtype,
+sdb_engine_get_tuple_id_by_unique_name (SymbolDBEngine * dbe, static_query_type qtype,
gchar * param_key,
const GValue * param_value)
{
@@ -1261,7 +857,8 @@
*
*/
static gint
-sdb_engine_get_tuple_id_by_unique_name2 (SymbolDBEngine * dbe, query_type qtype,
+sdb_engine_get_tuple_id_by_unique_name2 (SymbolDBEngine * dbe,
+ static_query_type qtype,
gchar * param_key1,
const GValue * value1,
gchar * param_key2,
@@ -1329,7 +926,8 @@
}
static gint
-sdb_engine_get_tuple_id_by_unique_name3 (SymbolDBEngine * dbe, query_type qtype,
+sdb_engine_get_tuple_id_by_unique_name3 (SymbolDBEngine * dbe,
+ static_query_type qtype,
gchar * param_key1,
const GValue * value1,
gchar * param_key2,
@@ -2135,6 +1733,338 @@
/* create Anjuta Launcher instance. It will be used for tags parsing. */
sdbe->priv->ctags_launcher = NULL;
+
+ /*
+ * STATIC QUERY STRUCTURE INITIALIZE
+ */
+
+ /* -- workspace -- */
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_WORKSPACE_NEW,
+ "INSERT INTO workspace (workspace_name, analyse_time) "
+ "VALUES (## /* name:'wsname' type:gchararray */,"
+ "datetime ('now', 'localtime'))");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_WORKSPACE_ID_BY_UNIQUE_NAME,
+ "SELECT workspace_id FROM workspace WHERE workspace_name = ## /* name:'wsname' "
+ "type:gchararray */ LIMIT 1");
+
+ /* -- project -- */
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_PROJECT_NEW,
+ "INSERT INTO project (project_name, wrkspace_id, analyse_time) "
+ "VALUES (## /* name:'prjname' type:gchararray */,"
+ "## /* name:'wsid' type:gint */, datetime ('now', 'localtime'))");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_PROJECT_ID_BY_UNIQUE_NAME,
+ "SELECT project_id FROM project WHERE project_name = ## /* name:'prjname' "
+ "type:gchararray */ LIMIT 1");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_UPDATE_PROJECT_ANALYSE_TIME,
+ "UPDATE project SET analyse_time = datetime('now', 'localtime', '+10 seconds') WHERE "
+ "project_name = ## /* name:'prjname' type:gchararray */");
+
+ /* -- file -- */
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_FILE_NEW,
+ "INSERT INTO file (file_path, prj_id, lang_id, analyse_time) VALUES ("
+ "## /* name:'filepath' type:gchararray */, ## /* name:'prjid' "
+ "type:gint */, ## /* name:'langid' type:gint */, "
+ "datetime ('now', 'localtime'))");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_FILE_ID_BY_UNIQUE_NAME,
+ "SELECT file_id FROM file WHERE file_path = ## /* name:'filepath' "
+ "type:gchararray */ LIMIT 1");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_ALL_FROM_FILE_BY_PROJECT_NAME,
+ "SELECT * FROM file WHERE prj_id = (SELECT project_id FROM project "
+ "WHERE project_name = ## /* name:'prjname' type:gchararray */)");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_ALL_FROM_FILE_BY_PROJECT_ID,
+ "SELECT file_id, file_path, prj_id, lang_id, analyse_time FROM file "
+ "WHERE prj_id = ## /* name:'prjid' type:gint */");
+/*
+ "SELECT * FROM file JOIN project on project_id = prj_id WHERE "\
+ "project.name = ## / * name:'prjname' type:gchararray * /",
+*/
+
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_UPDATE_FILE_ANALYSE_TIME,
+ "UPDATE file SET analyse_time = datetime('now', 'localtime') WHERE "
+ "file_path = ## /* name:'filepath' type:gchararray */");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_ALL_FROM_FILE_WHERE_NOT_IN_SYMBOLS,
+ "SELECT file_id, file_path FROM file WHERE file_id NOT IN "
+ "(SELECT file_defined_id FROM symbol)");
+
+ /* -- language -- */
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_LANGUAGE_NEW,
+ "INSERT INTO language (language_name) VALUES (## /* name:'langname' "
+ "type:gchararray */)");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_LANGUAGE_ID_BY_UNIQUE_NAME,
+ "SELECT language_id FROM language WHERE language_name = ## /* name:'langname' "
+ "type:gchararray */ LIMIT 1");
+
+ /* -- sym type -- */
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_SYM_TYPE_NEW,
+ "INSERT INTO sym_type (type_type, type_name) VALUES (## /* name:'type' "
+ "type:gchararray */, ## /* name:'typename' type:gchararray */)");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_SYM_TYPE_ID,
+ "SELECT type_id FROM sym_type WHERE type_type = ## /* name:'type' "
+ "type:gchararray */ AND type_name = ## /* name:'typename' "
+ "type:gchararray */ LIMIT 1");
+
+ /* -- sym kind -- */
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_SYM_KIND_NEW,
+ "INSERT INTO sym_kind (kind_name) VALUES(## /* name:'kindname' "
+ "type:gchararray */)");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_SYM_KIND_BY_UNIQUE_NAME,
+ "SELECT sym_kind_id FROM sym_kind WHERE kind_name = ## /* "
+ "name:'kindname' type:gchararray */");
+
+ /* -- sym access -- */
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_SYM_ACCESS_NEW,
+ "INSERT INTO sym_access (access_name) VALUES(## /* name:'accesskind' "
+ "type:gchararray */)");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_SYM_ACCESS_BY_UNIQUE_NAME,
+ "SELECT access_kind_id FROM sym_access WHERE access_name = ## /* "
+ "name:'accesskind' type:gchararray */ LIMIT 1");
+
+ /* -- sym implementation -- */
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_SYM_IMPLEMENTATION_NEW,
+ "INSERT INTO sym_implementation (implementation_name) VALUES(## /* name:'implekind' "
+ "type:gchararray */)");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_SYM_IMPLEMENTATION_BY_UNIQUE_NAME,
+ "SELECT sym_impl_id FROM sym_implementation WHERE kind = ## /* "
+ "name:'implekind' type:gchararray */ LIMIT 1");
+
+ /* -- heritage -- */
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_HERITAGE_NEW,
+ "INSERT INTO heritage (symbol_id_base, symbol_id_derived) VALUES(## /* "
+ "name:'symbase' type:gint */, ## /* name:'symderived' type:gint */)");
+
+ /* -- scope -- */
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_SCOPE_NEW,
+ "INSERT INTO scope (scope_name, type_id) VALUES(## /* name:'scope' "
+ "type:gchararray */, ## /* name:'typeid' type:gint */)");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_SCOPE_ID,
+ "SELECT scope_id FROM scope WHERE scope_name = ## /* name:'scope' "
+ "type:gchararray */ AND type_id = ## /* name:'typeid' type:gint */ LIMIT 1");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_PARENT_SCOPE_ID_BY_SYMBOL_ID_NO_FILE,
+ "SELECT symbol.symbol_id, symbol.file_defined_id, "
+ "symbol.file_position, symbol.scope_definition_id, symbol.scope_id "
+ "FROM symbol WHERE symbol.scope_definition_id = ( "
+ "SELECT symbol.scope_id FROM symbol WHERE symbol.symbol_id = "
+ "## /* name:'symid' type:gint */) "
+ "AND symbol.scope_definition_id > 0");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_PARENT_SCOPE_ID_BY_SYMBOL_ID,
+ "SELECT symbol.symbol_id, symbol.file_defined_id, "
+ "symbol.file_position, symbol.scope_definition_id, symbol.scope_id "
+ "FROM symbol JOIN file "
+ "ON symbol.file_defined_id = file.file_id "
+ "WHERE symbol.scope_definition_id = ( "
+ "SELECT symbol.scope_id FROM symbol WHERE symbol.symbol_id = "
+ "## /* name:'symid' type:gint */) "
+ "AND symbol.scope_definition_id > 0 "
+ "AND file.file_path = ## /* name:'dbfile' type:gchararray */");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_PARENT_SCOPE_ID_BY_SYMBOL_ID_BY_SYMBOL_ID,
+ "SELECT symbol.scope_definition_id FROM symbol WHERE "
+ "file_defined_id = (SELECT file_defined_id FROM symbol WHERE symbol_id = "
+ "/* name:'scopedsymid' type:gint */) "
+ "AND file_position < (SELECT file_position FROM symbol WHERE symbol_id = "
+ "/* name:'scopedsymid' type:gint */) "
+ "ORDER BY file_position DESC");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_SCOPE_DEFINITION_ID_BY_WALK_DOWN_SCOPE_PATH,
+ "SELECT scope_definition_id FROM symbol "
+ "WHERE scope_id = /* name:'scopeid' type:gint */ AND scope_definition_id = ("
+ "SELECT scope.scope_id FROM scope "
+ "INNER JOIN sym_type ON scope.type_id = sym_type.type_id "
+ "WHERE sym_type.type_type = /* name:'symtype' type:gchararray */ "
+ "AND scope.scope_name = /* name:'scopename' type:gchararray */) LIMIT 1");
+
+ /* -- tmp heritage -- */
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_TMP_HERITAGE_NEW,
+ "INSERT INTO __tmp_heritage_scope (symbol_referer_id, field_inherits, "
+ "field_struct, field_typeref, field_enum, field_union, "
+ "field_class, field_namespace) VALUES (## /* name:'symreferid' "
+ "type:gint */, ## /* name:'finherits' type:gchararray */, ## /* "
+ "name:'fstruct' type:gchararray */, ## /* name:'ftyperef' "
+ "type:gchararray */, ## /* name:'fenum' type:gchararray */, ## /* "
+ "name:'funion' type:gchararray */, ## /* name:'fclass' type:gchararray "
+ "*/, ## /* name:'fnamespace' type:gchararray */)");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_ALL_FROM_TMP_HERITAGE,
+ "SELECT * FROM __tmp_heritage_scope");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_ALL_FROM_TMP_HERITAGE_WITH_INHERITS,
+ "SELECT * FROM __tmp_heritage_scope WHERE field_inherits != ''");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_TMP_HERITAGE_DELETE_ALL,
+ "DELETE FROM __tmp_heritage_scope");
+
+ /* -- symbol -- */
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_SYMBOL_NEW,
+ "INSERT INTO symbol (file_defined_id, name, file_position, "
+ "is_file_scope, signature, scope_definition_id, scope_id, type_id, "
+ "kind_id, access_kind_id, implementation_kind_id, update_flag) VALUES("
+ "## /* name:'filedefid' type:gint */, ## /* name:'name' "
+ "type:gchararray */, ## /* name:'fileposition' type:gint */, ## /* "
+ "name:'isfilescope' type:gint */, ## /* name:'signature' "
+ "type:gchararray */,## /* name:'scopedefinitionid' type:gint */, ## "
+ "/* name:'scopeid' type:gint */,## /* name:'typeid' type:gint */, ## "
+ "/* name:'kindid' type:gint */,## /* name:'accesskindid' type:gint */, "
+ "## /* name:'implementationkindid' type:gint */, ## /* "
+ "name:'updateflag' type:gint */)");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_SYMBOL_SCOPE_DEFINITION_ID,
+ "SELECT scope_definition_id FROM symbol JOIN sym_type ON symbol.type_id "
+ "= sym_type.type_id WHERE sym_type.type_type = ## /* name:'tokenname' "
+ "type:gchararray */ AND sym_type.type_name = ## /* name:'objectname' "
+ "type:gchararray */ LIMIT 1");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_SYMBOL_ID_BY_CLASS_NAME,
+ "SELECT symbol_id FROM symbol JOIN sym_type ON symbol.type_id = "
+ "sym_type.type_id WHERE scope_id=0 AND sym_type.type_type='class' AND "
+ "name = ## /* name:'klassname' type:gchararray */ LIMIT 1");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_SYMBOL_ID_BY_CLASS_NAME_AND_NAMESPACE,
+ "SELECT symbol_id FROM symbol JOIN scope ON symbol.scope_id = "
+ "scope.scope_id JOIN sym_type ON scope.type_id = sym_type.type_id "
+ "WHERE symbol.name = ## /* name:'klassname' type:gchararray */ AND "
+ "scope.scope_name = ## /* name:'namespacename' type:gchararray */ AND "
+ "sym_type.type_type = 'namespace' LIMIT 1");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_UPDATE_SYMBOL_SCOPE_ID,
+ "UPDATE symbol SET scope_id = ## /* name:'scopeid' type:gint */ "
+ "WHERE symbol_id = ## /* name:'symbolid' type:gint */");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_SYMBOL_ID_BY_UNIQUE_INDEX_KEY,
+ "SELECT symbol_id FROM symbol WHERE name = ## /* name:'symname' "
+ "type:gchararray */ AND file_defined_id = ## /* name:'filedefid' "
+ "type:gint */ AND type_id = ## /* name:'typeid' type:gint */ LIMIT 1");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_UPDATE_SYMBOL_ALL,
+ "UPDATE symbol SET is_file_scope = ## /* name:'isfilescope' type:gint "
+ "*/, file_position = ## /* name:'fileposition' type:gint */, "
+ "signature = ## /* name:'signature' type:gchararray */, "
+ "scope_definition_id = ## /* name:'scopedefinitionid' type:gint */, "
+ "scope_id = ## /* name:'scopeid' type:gint */, kind_id = "
+ "## /* name:'kindid' type:gint */, access_kind_id = ## /* name:"
+ "'accesskindid' type:gint */, implementation_kind_id = ## /* name:"
+ "'implementationkindid' type:gint */, update_flag = ## /* name:"
+ "'updateflag' type:gint */ WHERE symbol_id = ## /* name:'symbolid' type:"
+ "gint */");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_REMOVE_NON_UPDATED_SYMBOLS,
+ "DELETE FROM symbol WHERE file_defined_id = (SELECT file_id FROM file "
+ "WHERE file_path = ## /* name:'filepath' type:gchararray */) "
+ "AND update_flag = 0");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_RESET_UPDATE_FLAG_SYMBOLS,
+ "UPDATE symbol SET update_flag = 0 "
+ "WHERE file_defined_id = (SELECT file_id FROM file WHERE "
+ "file_path = ## /* name:'filepath' type:gchararray */)");
+
+ /* -- tmp_removed -- */
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_GET_REMOVED_IDS,
+ "SELECT symbol_removed_id FROM __tmp_removed");
+
+ STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
+ PREP_QUERY_TMP_REMOVED_DELETE_ALL,
+ "DELETE FROM __tmp_removed");
+
+
+ /*
+ * DYNAMIC QUERY STRUCTURE INITIALIZE
+ */
+ DYN_QUERY_POPULATE_INIT_NODE(sdbe->priv->dyn_query_list,
+ DYN_PREP_QUERY_GET_CLASS_PARENTS,
+ TRUE);
+
+ DYN_QUERY_POPULATE_INIT_NODE(sdbe->priv->dyn_query_list,
+ DYN_PREP_QUERY_GET_CLASS_PARENTS_BY_SYMBOL_ID,
+ FALSE);
+
+ DYN_QUERY_POPULATE_INIT_NODE(sdbe->priv->dyn_query_list,
+ DYN_PREP_QUERY_GET_GLOBAL_MEMBERS_FILTERED,
+ TRUE);
+
+ DYN_QUERY_POPULATE_INIT_NODE(sdbe->priv->dyn_query_list,
+ DYN_PREP_QUERY_GET_SCOPE_MEMBERS,
+ FALSE);
+
+ DYN_QUERY_POPULATE_INIT_NODE(sdbe->priv->dyn_query_list,
+ DYN_PREP_QUERY_GET_CURRENT_SCOPE,
+ FALSE);
+
+ DYN_QUERY_POPULATE_INIT_NODE(sdbe->priv->dyn_query_list,
+ DYN_PREP_QUERY_GET_FILE_SYMBOLS,
+ FALSE);
+
+ DYN_QUERY_POPULATE_INIT_NODE(sdbe->priv->dyn_query_list,
+ DYN_PREP_QUERY_GET_SYMBOL_INFO_BY_ID,
+ FALSE);
+
+ DYN_QUERY_POPULATE_INIT_NODE(sdbe->priv->dyn_query_list,
+ DYN_PREP_QUERY_FIND_SYMBOL_NAME_BY_PATTERN,
+ FALSE);
+
+ DYN_QUERY_POPULATE_INIT_NODE(sdbe->priv->dyn_query_list,
+ DYN_PREP_QUERY_FIND_SYMBOL_BY_NAME_PATTERN_FILTERED,
+ TRUE);
+
+ DYN_QUERY_POPULATE_INIT_NODE(sdbe->priv->dyn_query_list,
+ DYN_PREP_QUERY_GET_SCOPE_MEMBERS_BY_SYMBOL_ID,
+ TRUE);
/* init cache hashtables */
sdb_engine_init_caches (sdbe);
@@ -2162,8 +2092,8 @@
g_source_remove (priv->thread_monitor_handler);
sdb_engine_disconnect_from_db (dbe);
- sdb_engine_free_cached_queries ();
- sdb_engine_free_cached_dynamic_queries ();
+ sdb_engine_free_cached_queries (dbe);
+ sdb_engine_free_cached_dynamic_queries (dbe);
if (priv->scan_queue)
{
@@ -2327,7 +2257,7 @@
}
SymbolDBEngine *
-symbol_db_engine_new ()
+symbol_db_engine_new (void)
{
SymbolDBEngine *sdbe;
SymbolDBEnginePriv *priv;
@@ -7918,7 +7848,7 @@
g_mutex_unlock (priv->mutex);
return NULL;
}
-
+DEBUG_PRINT ("SETTING globalsearch %d", !global_symbols_search);
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, !global_symbols_search);
gda_holder_set_value (param, value);
@@ -7934,8 +7864,8 @@
gda_holder_set_value_str (param, NULL, pattern);
-/* DEBUG_PRINT ("symbol_db_engine_find_symbol_by_name_pattern_filtered query: %s",
- dyn_node->query_str);*/
+ DEBUG_PRINT ("symbol_db_engine_find_symbol_by_name_pattern_filtered query: %s",
+ dyn_node->query_str);
/* execute the query with parametes just set */
data = gda_connection_statement_execute_select (priv->db_connection,
Modified: trunk/plugins/symbol-db/symbol-db-engine.h
==============================================================================
--- trunk/plugins/symbol-db/symbol-db-engine.h (original)
+++ trunk/plugins/symbol-db/symbol-db-engine.h Mon Jul 7 07:12:00 2008
@@ -82,7 +82,7 @@
GType sdb_engine_get_type (void) G_GNUC_CONST;
-SymbolDBEngine* symbol_db_engine_new ();
+SymbolDBEngine* symbol_db_engine_new (void);
/**
Modified: trunk/plugins/symbol-db/symbol-db-prefs.c
==============================================================================
--- trunk/plugins/symbol-db/symbol-db-prefs.c (original)
+++ trunk/plugins/symbol-db/symbol-db-prefs.c Mon Jul 7 07:12:00 2008
@@ -323,8 +323,8 @@
ctags_value = g_strdup (CTAGS_PATH);
}
- DEBUG_PRINT ("trying to set ->%s<-", ctags_value);
- if (gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (fchooser), ctags_value)
+ DEBUG_PRINT ("trying to select ->%s<-", ctags_value);
+ if (gtk_file_chooser_select_filename (GTK_FILE_CHOOSER (fchooser), ctags_value)
== FALSE )
{
DEBUG_PRINT ("error: could not select file uri with gtk_file_chooser_select_filename ()");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]