From 19d5e1a1989e83b00e376cc008304a4f65a95cc1 Mon Sep 17 00:00:00 2001 From: miker Date: Thu, 17 Apr 2008 18:04:26 +0000 Subject: [PATCH] use the class hint for the fully qualified field name, instead of the table (which is not always available) git-svn-id: svn://svn.open-ils.org/ILS/trunk@9372 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/c-apps/oils_cstore.c | 6 +++--- Open-ILS/src/sql/Pg/002.functions.config.sql | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Open-ILS/src/c-apps/oils_cstore.c b/Open-ILS/src/c-apps/oils_cstore.c index 24a9dd3cbc..ce5dbdc25e 100644 --- a/Open-ILS/src/c-apps/oils_cstore.c +++ b/Open-ILS/src/c-apps/oils_cstore.c @@ -1868,7 +1868,7 @@ static char* SELECT ( char* pkey = osrfHashGet(idlClass, "primarykey"); char* tname = osrfHashGet(idlClass, "tablename"); - buffer_fadd(select_buf, " oils_i18n_xlate('%s', '%s', '%s', \"%s\".%s::TEXT, '%s') AS \"%s\"", tname, __column, pkey, cname, pkey, locale, __column); + buffer_fadd(select_buf, " oils_i18n_xlate('%s', '%s', '%s', '%s', \"%s\".%s::TEXT, '%s') AS \"%s\"", tname, cname, __column, pkey, cname, pkey, locale, __column); } else { buffer_fadd(select_buf, " \"%s\".%s AS \"%s\"", cname, __column, __column); } @@ -1912,7 +1912,7 @@ static char* SELECT ( char* pkey = osrfHashGet(idlClass, "primarykey"); char* tname = osrfHashGet(idlClass, "tablename"); - buffer_fadd(select_buf, " oils_i18n_xlate('%s', '%s', '%s', \"%s\".%s::TEXT, '%s') AS \"%s\"", tname, fname, pkey, cname, pkey, locale, __alias); + buffer_fadd(select_buf, " oils_i18n_xlate('%s', '%s', '%s', '%s', \"%s\".%s::TEXT, '%s') AS \"%s\"", tname, cname, fname, pkey, cname, pkey, locale, __alias); } else { buffer_fadd(select_buf, " \"%s\".%s AS \"%s\"", cname, fname, __alias); } @@ -2285,7 +2285,7 @@ static char* buildSELECT ( jsonObject* search_hash, jsonObject* order_hash, osrf char* pkey = osrfHashGet(idlClass, "primarykey"); char* tname = osrfHashGet(idlClass, "tablename"); - buffer_fadd(select_buf, " oils_i18n_xlate('%s', '%s', '%s', \"%s\".%s::TEXT, '%s') AS \"%s\"", tname, fname, pkey, cname, pkey, locale, fname); + buffer_fadd(select_buf, " oils_i18n_xlate('%s', '%s', '%s', '%s', \"%s\".%s::TEXT, '%s') AS \"%s\"", tname, cname, fname, pkey, cname, pkey, locale, fname); } else { buffer_fadd(select_buf, " \"%s\".%s", cname, fname); } diff --git a/Open-ILS/src/sql/Pg/002.functions.config.sql b/Open-ILS/src/sql/Pg/002.functions.config.sql index bb327c9477..ded3995cb0 100644 --- a/Open-ILS/src/sql/Pg/002.functions.config.sql +++ b/Open-ILS/src/sql/Pg/002.functions.config.sql @@ -40,13 +40,13 @@ $_$ LANGUAGE SQL; */ -CREATE OR REPLACE FUNCTION oils_i18n_xlate ( keytable TEXT, keycol TEXT, identcol TEXT, keyvalue TEXT, raw_locale TEXT ) RETURNS TEXT AS $func$ +CREATE OR REPLACE FUNCTION oils_i18n_xlate ( keytable TEXT, keyclass TEXT, keycol TEXT, identcol TEXT, keyvalue TEXT, raw_locale TEXT ) RETURNS TEXT AS $func$ DECLARE locale TEXT := LOWER( REGEXP_REPLACE( REGEXP_REPLACE( raw_locale, E'[;, ].+$', '' ), E'-', '_', 'g' ) ); language TEXT := REGEXP_REPLACE( locale, E'_.+$', '' ); result config.i18n_core%ROWTYPE; fallback TEXT; - keyfield TEXT := keytable || '.' || keycol; + keyfield TEXT := keyclass || '.' || keycol; BEGIN -- Try the full locale -- 2.43.2