You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@empire-db.apache.org by do...@apache.org on 2022/03/09 21:39:37 UTC

svn commit: r1898806 - in /empire-db/site/preview-v3: css/common.css css/content.css js/site.js pages/community.html pages/download.html pages/home.html pages/project.html

Author: doebele
Date: Wed Mar  9 21:39:37 2022
New Revision: 1898806

URL: http://svn.apache.org/viewvc?rev=1898806&view=rev
Log:
optimization

Modified:
    empire-db/site/preview-v3/css/common.css
    empire-db/site/preview-v3/css/content.css
    empire-db/site/preview-v3/js/site.js
    empire-db/site/preview-v3/pages/community.html
    empire-db/site/preview-v3/pages/download.html
    empire-db/site/preview-v3/pages/home.html
    empire-db/site/preview-v3/pages/project.html

Modified: empire-db/site/preview-v3/css/common.css
URL: http://svn.apache.org/viewvc/empire-db/site/preview-v3/css/common.css?rev=1898806&r1=1898805&r2=1898806&view=diff
==============================================================================
--- empire-db/site/preview-v3/css/common.css (original)
+++ empire-db/site/preview-v3/css/common.css Wed Mar  9 21:39:37 2022
@@ -165,7 +165,7 @@ table {
 	*/
 }
 .band .content {
-	padding: 20px;	
+	padding: 20px;
 }
 .first-letter {
 /*	font-weight: bold; */

Modified: empire-db/site/preview-v3/css/content.css
URL: http://svn.apache.org/viewvc/empire-db/site/preview-v3/css/content.css?rev=1898806&r1=1898805&r2=1898806&view=diff
==============================================================================
--- empire-db/site/preview-v3/css/content.css (original)
+++ empire-db/site/preview-v3/css/content.css Wed Mar  9 21:39:37 2022
@@ -369,17 +369,25 @@ table.layout > tbody > tr > th {
 	min-width: 400px;
 	text-align: justify;
 }
-.layout2col .col-inlay {
-	/* this is required for some unknown reason */
-	border-top:    1px transparent solid;
-	border-bottom: 1px transparent solid;
-}
 .layout2col .col-left {
 	padding-right: 20px;
 }
 .layout2col .col-right {
 	padding-left: 20px;
 }
+.layout2col .col-left > .col-inlay {
+	padding-left: 10px;
+}
+.layout2col .col-right > .col-inlay {
+	padding-right: 10px;
+}
+.layout2col .col-inlay {
+	padding-top: 5px;
+	padding-bottom: 15px;
+	/* this is required for some unknown reason */
+	border-top:    1px transparent solid;
+	border-bottom: 1px transparent solid;
+}
 .layout2col .col-one,
 .layout2col .col-four {
 	background-color: #E0E0E0;
@@ -397,14 +405,19 @@ table.layout > tbody > tr > th {
 		float: none;
 		min-width: inherit;
 	}
-	.layout2col .col-one > .col-inlay,
-	.layout2col .col-three > .col-inlay {
+	.layout2col .col-one,
+	.layout2col .col-three {
 		background-color: #E0E0E0;
 	}
-	.layout2col .col-two > .col-inlay,
-	.layout2col .col-four > .col-inlay {
+	.layout2col .col-two,
+	.layout2col .col-four {
 		background-color: #F0F0F0;
 	}
+	.layout2col .col-left > .col-inlay,
+	.layout2col .col-right > .col-inlay {
+		padding-left: 10px;
+		padding-right: 10px;
+	}
 }
 
 

Modified: empire-db/site/preview-v3/js/site.js
URL: http://svn.apache.org/viewvc/empire-db/site/preview-v3/js/site.js?rev=1898806&r1=1898805&r2=1898806&view=diff
==============================================================================
--- empire-db/site/preview-v3/js/site.js (original)
+++ empire-db/site/preview-v3/js/site.js Wed Mar  9 21:39:37 2022
@@ -79,6 +79,7 @@ const Page = {
 		// controls
 		TabView.init();
 		Checkbox.init();
+		LayoutResize.init();
 		// scroll to section
 		var section = $.urlParam('sec');
 		if (section) {
@@ -456,6 +457,53 @@ const TabView = {
 		});
 	}
 }
+
+
+/**
+ * LayoutResize
+ */
+const LayoutResize = {
+	layouts: null,
+	// init
+	init: function(menuId) {
+		layouts  = $('.layoutColResize:not(.initialized)');
+		if (layouts.length==0)
+			return;
+		layouts.addClass("initialized");
+		LayoutResize.resizeLayouts();
+		$(window).resize(function() {
+			LayoutResize.resizeLayouts();
+		});
+	},
+	/* resizeLayout */
+	resizeLayouts: function() {
+		layouts.each(function() {
+			let children = $(this).children();
+			if (children.length!=2)
+				return;
+			let left  = $(children[0]).find(".col-inlay");
+			let right = $(children[1]).find(".col-inlay");
+			if (left.length!=1 || right.length!=1)
+				return;
+			// reset
+			left.height('auto');
+			right.height('auto');
+			// check alignment
+			if (left.offset().top < right.offset().top)
+				return; // above;
+			// detect
+			let hl = left.height();
+			let hr = right.height();
+			if (hl==hr)
+				return;
+			log("resizeLayout");
+			if (hl>hr)
+				right.height(hl);
+		    else
+		    	left.height(hr);
+		});
+	}
+}
 
 /**
  * Checkbox

Modified: empire-db/site/preview-v3/pages/community.html
URL: http://svn.apache.org/viewvc/empire-db/site/preview-v3/pages/community.html?rev=1898806&r1=1898805&r2=1898806&view=diff
==============================================================================
--- empire-db/site/preview-v3/pages/community.html (original)
+++ empire-db/site/preview-v3/pages/community.html Wed Mar  9 21:39:37 2022
@@ -48,7 +48,7 @@
 </head>
 <body>
 <div id="bodywrapper">
-<a class="github-fork-ribbon" target="_blank" href="https://github.com/apache/empire-db" data-ribbon="Fork me on GitHub" title="Hello me on GitHub">Test me on GitHub</a>
+<a class="github-fork-ribbon" target="_blank" href="https://github.com/apache/empire-db" data-ribbon="Fork me on GitHub" title="Fork me on GitHub"></a>
 <nav id="navigation">
 <!-- Main Nav -->
 <div class="navbar navbar-dark navbar-fixed-top navbar-main-style" id="navbar-main">

Modified: empire-db/site/preview-v3/pages/download.html
URL: http://svn.apache.org/viewvc/empire-db/site/preview-v3/pages/download.html?rev=1898806&r1=1898805&r2=1898806&view=diff
==============================================================================
--- empire-db/site/preview-v3/pages/download.html (original)
+++ empire-db/site/preview-v3/pages/download.html Wed Mar  9 21:39:37 2022
@@ -52,7 +52,7 @@
 </head>
 <body>
 <div id="bodywrapper">
-<a class="github-fork-ribbon" target="_blank" href="https://github.com/apache/empire-db" data-ribbon="Fork me on GitHub" title="Hello me on GitHub">Test me on GitHub</a>
+<a class="github-fork-ribbon" target="_blank" href="https://github.com/apache/empire-db" data-ribbon="Fork me on GitHub" title="Fork me on GitHub"></a>
 <nav id="navigation">
 <!-- Main Nav -->
 <div class="navbar navbar-dark navbar-fixed-top navbar-main-style" id="navbar-main">
@@ -296,7 +296,7 @@
 
 			<p>Here's what we've got:</p>
 
-			<div class="layout2col">
+			<div class="layout2col layoutColResize">
 				<div class="col-left col-one">
 				<div class="col-inlay">
 				<!-- col start -->
@@ -317,7 +317,7 @@
 				</div>
 			</div>
 
-			<div class="layout2col">
+			<div class="layout2col layoutColResize">
 				<div class="col-left col-three">
 				<div class="col-inlay">
 				<!-- col start -->
@@ -442,7 +442,7 @@ app.<span class="func">generate</span>(d
 					<div>In order to start the code generation, run this from a command prompt</div>
 					<div class="codebox">
 <pre>
-<span class="prompt">&gt;</span> mvn <span class="literal">empire-db:codegen</span>
+<span class="prompt">&gt;</span> mvn <span class="obj">empire-db:codegen</span>
 </pre>
 					</div>
 				<!-- col end -->

Modified: empire-db/site/preview-v3/pages/home.html
URL: http://svn.apache.org/viewvc/empire-db/site/preview-v3/pages/home.html?rev=1898806&r1=1898805&r2=1898806&view=diff
==============================================================================
--- empire-db/site/preview-v3/pages/home.html (original)
+++ empire-db/site/preview-v3/pages/home.html Wed Mar  9 21:39:37 2022
@@ -49,7 +49,7 @@
 </head>
 <body>
 <div id="bodywrapper">
-<a class="github-fork-ribbon" target="_blank" href="https://github.com/apache/empire-db" data-ribbon="Fork me on GitHub" title="Hello me on GitHub">Test me on GitHub</a>
+<a class="github-fork-ribbon" target="_blank" href="https://github.com/apache/empire-db" data-ribbon="Fork me on GitHub" title="Fork me on GitHub"></a>
 <nav id="navigation">
 <!-- Main Nav -->
 <div class="navbar navbar-dark navbar-fixed-top navbar-main-style" id="navbar-main">

Modified: empire-db/site/preview-v3/pages/project.html
URL: http://svn.apache.org/viewvc/empire-db/site/preview-v3/pages/project.html?rev=1898806&r1=1898805&r2=1898806&view=diff
==============================================================================
--- empire-db/site/preview-v3/pages/project.html (original)
+++ empire-db/site/preview-v3/pages/project.html Wed Mar  9 21:39:37 2022
@@ -48,7 +48,7 @@
 </head>
 <body>
 <div id="bodywrapper">
-<a class="github-fork-ribbon" target="_blank" href="https://github.com/apache/empire-db" data-ribbon="Fork me on GitHub" title="Hello me on GitHub">Test me on GitHub</a>
+<a class="github-fork-ribbon" target="_blank" href="https://github.com/apache/empire-db" data-ribbon="Fork me on GitHub" title="Fork me on GitHub"></a>
 <nav id="navigation">
 <!-- Main Nav -->
 <div class="navbar navbar-dark navbar-fixed-top navbar-main-style" id="navbar-main">
@@ -334,12 +334,12 @@ log.<span class="func">info</span>(<span
 						<div class="tab-body">
 							<!-- tab-page -->
 <pre>
-<span class="comment">// Microsoft SQL-Server syntax</span>
+<span class="comment">// Microsoft SQLServer syntax</span>
 <span class="word">UPDATE</span> <span class="alias">t2</span>
 <span class="word">SET</span> BASE_PRICE=<span class="func">round</span>(<span class="alias">t2</span>.BASE_PRICE*105/100,2), SALES_INFO=<span class="param"><span class="literal">'Price update 2022-03-03'</span></span>
 <span class="word">FROM</span> MODEL <span class="alias">t2</span>
      <span class="word">INNER JOIN</span> BRAND <span class="alias">t1</span> <span class="word">ON</span> <span class="alias">t1</span>.WMI = <span class="alias">t2</span>.WMI
-<span class="word">WHERE</span> upper(<span class="alias">t1</span>.NAME) LIKE <span class="param"><span class="literal">'VOLKSWAGEN'</span></span> <span class="word">AND</span> <span class="alias">t2</span>.ENGINE_TYPE=<span class="param"><span class="literal">'D'</span></span>
+<span class="word">WHERE</span> upper(<span class="alias">t1</span>.NAME) <span class="word">LIKE</span> <span class="param"><span class="literal">'VOLKSWAGEN'</span></span> <span class="word">AND</span> <span class="alias">t2</span>.ENGINE_TYPE=<span class="param"><span class="literal">'D'</span></span>
 </pre>
 							<!-- tab-page -->
 <pre>
@@ -349,15 +349,15 @@ log.<span class="func">info</span>(<span
 <span class="word">FROM</span> MODEL <span class="alias">t2</span>
      <span class="word">INNER JOIN</span> BRAND <span class="alias">t1</span> <span class="word">ON</span> <span class="alias">t1</span>.WMI = <span class="alias">t2</span>.WMI
 <span class="word">WHERE</span> <span class="alias">t0</span>.ID=<span class="alias">t2</span>.ID
-  <span class="word">AND</span> upper(<span class="alias">t1</span>.NAME) LIKE <span class="param"><span class="literal">'VOLKSWAGEN'</span></span> <span class="word">AND</span> <span class="alias">t2</span>.ENGINE_TYPE=<span class="param"><span class="literal">'D'</span></span>
+  <span class="word">AND</span> upper(<span class="alias">t1</span>.NAME) <span class="word">LIKE</span> <span class="param"><span class="literal">'VOLKSWAGEN'</span></span> <span class="word">AND</span> <span class="alias">t2</span>.ENGINE_TYPE=<span class="param"><span class="literal">'D'</span></span>
 </pre>
 							<!-- tab-page -->
 <pre>
 <span class="comment">// Oracle syntax</span>
 <span class="word">MERGE INTO</span> MODEL <span class="alias">t2</span>
-<span class="word">USING</span> (<span class="word">SELECT</span> <span class="alias">t2</span>.ID, <span class="func">round</span>(<span class="alias">t2</span>.BASE_PRICE*105/100,2) AS COL_0
+<span class="word">USING</span> (<span class="word">SELECT</span> <span class="alias">t2</span>.ID, <span class="func">round</span>(<span class="alias">t2</span>.BASE_PRICE*105/100,2) <span class="word">AS</span> COL_0
        <span class="word">FROM</span> MODEL <span class="alias">t2</span> <span class="word">INNER JOIN</span> BRAND <span class="alias">t1</span> <span class="word">ON</span> <span class="alias">t1</span>.WMI = <span class="alias">t2</span>.WMI
-       <span class="word">WHERE</span> upper(<span class="alias">t1</span>.NAME) LIKE <span class="param"><span class="literal">'VOLKSWAGEN'</span></span> <span class="word">AND</span> <span class="alias">t2</span>.ENGINE_TYPE=<span class="param"><span class="literal">'D'</span></span>) <span class="alias">q0</span>
+       <span class="word">WHERE</span> upper(<span class="alias">t1</span>.NAME) <span class="word">LIKE</span> <span class="param"><span class="literal">'VOLKSWAGEN'</span></span> <span class="word">AND</span> <span class="alias">t2</span>.ENGINE_TYPE=<span class="param"><span class="literal">'D'</span></span>) <span class="alias">q0</span>
    <span class="word">ON</span> ( <span class="alias">q0</span>.ID=<span class="alias">t2</span>.ID)
 <span class="word">WHEN MATCHED THEN</span> <span class="word">UPDATE</span> 
 <span class="word">SET</span> BASE_PRICE=<span class="alias">q0</span>.COL_0, SALES_INFO=<span class="param"><span class="literal">'Price update 2022-03-03'</span></span>
@@ -553,7 +553,7 @@ log.<span class="func">info</span>(<span
 <span class="comment">// query a single String </span>
 <span class="type">String</span> text = <span class="var">utils</span>.<span class="func">querySingleString</span>(<span class="var">cmd</span>);
 <span class="comment">// query a list of Strings</span>
-<span class="type">List</span>&lt;String&gt; <span class="var">list</span> = <span class="var">utils</span>.<span class="func">querySimpleList</span>(<span class="type">String</span>.<span class="keyword">class</span>, <span class="var">cmd</span>);
+<span class="type">List</span>&lt;<span class="type">String</span>&gt; <span class="var">list</span> = <span class="var">utils</span>.<span class="func">querySimpleList</span>(<span class="type">String</span>.<span class="keyword">class</span>, <span class="var">cmd</span>);
 <span class="comment">// query a single row of data</span>
 <span class="type">Object</span>[] row = <span class="var">utils</span>.<span class="func">querySingleRow</span>(<span class="var">cmd</span>);
 <span class="comment">// query a set of options consisting of a value + text pair</span>
@@ -697,7 +697,7 @@ log.<span class="func">info</span>(<span
 			<p>In practice you almost never have "the one query" on a set of data. Rather your query often depends on the context and certain conditions for which you might need to dynamically select columns, add constraints and joins or set the row order.</p>
 
 			<p>Suppose your application provides a view of car dealers. A user might decide to list them all, or choose to set any of three possible filters: Country, Brand and/or the Minimum Annual Turnover. 
-			Depending on which of those filters the user chooses, different constraints and joins need to be set and even the columns that should be displayed differ. So how do you dynamically build such a query statement?</p>
+			Depending on which of those filters the user chooses, different constraints and joins need to be added to the statement and even the columns that should be displayed (i.e. selected) differ. So how do you dynamically build such a query statement?</p>
 			<!-- example -->
 			<div><a class="showMe">OK, show me how to do it</a></div>
 			
@@ -717,7 +717,7 @@ log.<span class="func">info</span>(<span
     if (brand!=<span class="keyword">null</span>) {
         <span class="comment">// Single brand</span>
         <span class="var">cmd</span>.<span class="func">join</span>(<span class="obj">DEALER</span>.<span class="field">ID</span>, <span class="obj">DEALER_BRANDS</span>.<span class="field">DEALER_ID</span>)
-           .<span class="func">where</span>(<span class="obj">BRAND</span>.<span class="field">NAME</span>.<span class="func">likeUpper</span>(brand));
+           .<span class="func">where</span>(<span class="obj">BRAND</span>.<span class="field">NAME</span>.<span class="func">likeUpper</span>(brand+<span class="literal">"%"</span>));
         <span class="comment">// select the BRAND NAME</span>
         <span class="var">cmd</span>.<span class="func">select</span>(<span class="obj">BRAND</span>.<span class="field">NAME</span>);
     } else {
@@ -741,19 +741,20 @@ log.<span class="func">info</span>(<span
             .<span class="func">groupBy</span>(<span class="obj">SALES</span>.<span class="field">DEALER_ID</span>)
             .<span class="func">having</span>(<span class="obj">SALES</span>.<span class="field">PRICE</span>.<span class="func">sum</span>().<span class="func">isMoreOrEqual</span>(minTurnover));
         <span class="type">DBQuery</span> qry = <span class="keyword">new</span> <span class="type">DBQuery</span>(qryCmd, <span class="literal">"qsales"</span>);
+        <span class="type">DBColumn</span> <span class="obj">PRICE_SUM</span> = qry.<span class="func">column</span>(<span class="obj">SALES</span>.<span class="field">PRICE</span>.<span class="func">sum</span>());
         <span class="comment">// join with dealer query</span>
         <span class="var">cmd</span>.<span class="func">join</span>(<span class="obj">DEALER</span>.<span class="field">ID</span>, qry.<span class="func">column</span>(<span class="obj">SALES</span>.<span class="field">DEALER_ID</span>));
         <span class="comment">// select the turnover</span>
-        <span class="var">cmd</span>.<span class="func">select</span>(qry.<span class="func">column</span>(<span class="obj">SALES</span>.<span class="field">PRICE</span>.<span class="func">sum</span>()).<span class="func">as</span>(<span class="literal">"TURNOVER"</span>));
+        <span class="var">cmd</span>.<span class="func">select</span>(<span class="obj">PRICE_SUM</span>.<span class="func">as</span>(<span class="literal">"TURNOVER"</span>));
         <span class="comment">// order by turnover descending</span>
-        <span class="var">cmd</span>.<span class="func">orderBy</span>(qry.<span class="func">column</span>(<span class="obj">SALES</span>.<span class="field">PRICE</span>.<span class="func">sum</span>()).<span class="func">desc</span>());
+        <span class="var">cmd</span>.<span class="func">orderBy</span>(<span class="obj">PRICE_SUM</span>.<span class="func">desc</span>());
     }
     <span class="comment">// order by</span>
     <span class="var">cmd</span>.<span class="func">orderBy</span>(<span class="obj">DEALER</span>.<span class="field">COMPANY_NAME</span>);
     
     <span class="comment">// Done. For curiosity, get the row count</span>
     <span class="type">int</span> dealerCount = <span class="var">context</span>.<span class="func">getUtils</span>().<span class="func">queryRowCount</span>(<span class="var">cmd</span>);
-    log.<span class="func">info</span>(<span class="literal">"Query will <span class="keyword">return</span> {} dealers"</span>, dealerCount);
+    log.<span class="func">info</span>(<span class="literal">"Query will return {} dealers"</span>, dealerCount);
     
     <span class="comment">// Finally, execute the query and print the result</span>
     <span class="type">List</span>&lt;<span class="type">DataListEntry</span>&gt; <span class="var">list</span> = <span class="var">context</span>.<span class="func">getUtils</span>().<span class="func">queryDataList</span>(<span class="var">cmd</span>);
@@ -767,19 +768,19 @@ log.<span class="func">info</span>(<span
 						<div class="title">SQL (just one possiblity)</div>
 <pre>
 <span class="word">SELECT</span> <span class="alias">t3</span>.COMPANY_NAME, <span class="alias">t3</span>.CITY, <span class="alias">t3</span>.COUNTRY, 
-     <span class="alias">qbrands</span>.NAME_STRAGG AS ALL_BRANDS, <span class="alias">qsales</span>.PRICE_SUM AS TURNOVER
+     <span class="alias">qbrands</span>.NAME_STRAGG <span class="word">AS</span> ALL_BRANDS, <span class="alias">qsales</span>.PRICE_SUM <span class="word">AS</span> TURNOVER
 <span class="word">FROM</span> DEALER <span class="alias">t3</span>
-     <span class="word">INNER JOIN</span> (<span class="word">SELECT</span> <span class="alias">t4</span>.DEALER_ID, string_agg(<span class="alias">t1</span>.NAME,<span class="literal">'|'</span>) AS NAME_STRAGG
+     <span class="word">INNER JOIN</span> (<span class="word">SELECT</span> <span class="alias">t4</span>.DEALER_ID, string_agg(<span class="alias">t1</span>.NAME,<span class="literal">'|'</span>) <span class="word">AS</span> NAME_STRAGG
                  <span class="word">FROM</span> DEALER_BRANDS <span class="alias">t4</span> <span class="word">INNER JOIN</span> BRAND <span class="alias">t1</span> <span class="word">ON</span> <span class="alias">t1</span>.WMI = <span class="alias">t4</span>.WMI
                  <span class="word">GROUP BY</span> <span class="alias">t4</span>.DEALER_ID
                ) <span class="alias">qbrands</span> <span class="word">ON</span> <span class="alias">qbrands</span>.DEALER_ID = <span class="alias">t3</span>.ID
-     <span class="word">INNER JOIN</span> (<span class="word">SELECT</span> <span class="alias">t5</span>.DEALER_ID, sum(<span class="alias">t5</span>.PRICE) AS PRICE_SUM
+     <span class="word">INNER JOIN</span> (<span class="word">SELECT</span> <span class="alias">t5</span>.DEALER_ID, sum(<span class="alias">t5</span>.PRICE) <span class="word">AS</span> PRICE_SUM
                  <span class="word">FROM</span> SALES <span class="alias">t5</span>
                  <span class="word">WHERE</span> <span class="alias">t5</span>.YEAR=<span class="literal">2021</span>
                  <span class="word">GROUP BY</span> <span class="alias">t5</span>.DEALER_ID
                  <span class="word">HAVING</span> sum(<span class="alias">t5</span>.PRICE)&gt;=<span class="literal">100000</span>
                ) <span class="alias">qsales</span> <span class="word">ON</span> <span class="alias">qsales</span>.DEALER_ID = <span class="alias">t3</span>.ID
-<span class="word">WHERE</span> ucase(<span class="alias">t3</span>.COUNTRY) LIKE ucase(<span class="literal">'USA'</span>)
+<span class="word">WHERE</span> ucase(<span class="alias">t3</span>.COUNTRY) <span class="word">LIKE</span> ucase(<span class="literal">'USA'</span>)
 <span class="word">ORDER BY</span> <span class="alias">qsales</span>.PRICE_SUM DESC, <span class="alias">t3</span>.COMPANY_NAME
 </pre>
 						</div>
@@ -805,7 +806,8 @@ log.<span class="func">info</span>(<span
 			<div class="footer-info">
 				<table class="inline">
 					<tr>
-						<td class="logo"><img alt="Empire-db" src="../res/empire-db-sg.png" /></td>
+						<td class="logo">
+						<img alt="Empire-db" src="../res/empire-db-sg.png" /></td>
 						<td class="info">
 							<span>Copyright © The Apache Software Foundation. All Rights Reserved.</span>
 							<br/>